{
  "schemaVersion": 1,
  "build": "1.60.1.70009",
  "generated": "2026-09-26",
  "sourceUrl": "https://talentsforever.com/data.json",
  "legacyBuild": "Forever beta client 1.60.1.69876",
  "classes": [
    {
      "slug": "druid",
      "name": "Druid",
      "icon": "class_druid",
      "treeIcons": {
        "Balance": "spell_nature_starfall",
        "Feral Combat": "ability_racial_bearform",
        "Restoration": "spell_nature_healingtouch"
      },
      "trees": [
        "Balance",
        "Feral Combat",
        "Restoration"
      ],
      "talents": [
        {
          "name": "Improved Wrath",
          "icon": "spell_nature_abolishmagic",
          "tree": "Balance",
          "row": 1,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Genesis",
          "icon": "spell_arcane_arcane03",
          "tree": "Balance",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Moonglow",
          "icon": "spell_nature_sentinal",
          "tree": "Balance",
          "row": 2,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Moonfire",
          "icon": "spell_nature_starfall",
          "tree": "Balance",
          "row": 2,
          "column": 2,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Nature's Majesty",
          "icon": "inv_staff_01",
          "tree": "Balance",
          "row": 2,
          "column": 3,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Nature's Reach",
          "icon": "spell_nature_naturetouchgrow",
          "tree": "Balance",
          "row": 2,
          "column": 4,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Entangling Roots",
          "icon": "spell_nature_stranglevines",
          "tree": "Balance",
          "row": 3,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Nature's Splendor",
          "icon": "spell_nature_natureresistancetotem",
          "tree": "Balance",
          "row": 3,
          "column": 3,
          "maxRank": 1,
          "prerequisite": {
            "name": "Nature's Majesty",
            "rank": 2
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Insect Swarm",
          "icon": "spell_nature_insectswarm",
          "tree": "Balance",
          "row": 4,
          "column": 1,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Vengeance",
          "icon": "spell_nature_purge",
          "tree": "Balance",
          "row": 4,
          "column": 2,
          "maxRank": 5,
          "prerequisite": {
            "name": "Improved Moonfire",
            "rank": 2
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Improved Starfire",
          "icon": "spell_arcane_starfire",
          "tree": "Balance",
          "row": 4,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Overgrowth",
          "icon": "inv_misc_herb_15",
          "tree": "Balance",
          "row": 5,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Nature's Grace",
          "icon": "spell_nature_naturesblessing",
          "tree": "Balance",
          "row": 5,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Eclipse",
          "icon": "ability_druid_eclipse",
          "tree": "Balance",
          "row": 5,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Moonfury",
          "icon": "spell_nature_moonglow",
          "tree": "Balance",
          "row": 6,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Moonkin Form",
          "icon": "spell_nature_forceofnature",
          "tree": "Balance",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        },
        {
          "name": "Ferocity",
          "icon": "ability_hunter_pet_hyena",
          "tree": "Feral Combat",
          "row": 1,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Heart of the Wild",
          "icon": "spell_holy_blessingofagility",
          "tree": "Feral Combat",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Feral Swiftness",
          "icon": "spell_nature_spiritwolf",
          "tree": "Feral Combat",
          "row": 2,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Feral Instinct",
          "icon": "ability_ambush",
          "tree": "Feral Combat",
          "row": 2,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Brutal Impact",
          "icon": "ability_druid_bash",
          "tree": "Feral Combat",
          "row": 2,
          "column": 3,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Thick Hide",
          "icon": "inv_misc_pelt_bear_03",
          "tree": "Feral Combat",
          "row": 2,
          "column": 4,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Savage Fury",
          "icon": "ability_druid_ravage",
          "tree": "Feral Combat",
          "row": 3,
          "column": 2,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Feral Charge",
          "icon": "ability_hunter_pet_bear",
          "tree": "Feral Combat",
          "row": 3,
          "column": 3,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Sharpened Claws",
          "icon": "inv_misc_monsterclaw_04",
          "tree": "Feral Combat",
          "row": 3,
          "column": 4,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Shredding Attacks",
          "icon": "spell_shadow_vampiricaura",
          "tree": "Feral Combat",
          "row": 4,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Primal Bite",
          "icon": "ability_racial_cannibalize",
          "tree": "Feral Combat",
          "row": 4,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Savage Fury",
            "rank": 2
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Predatory Strikes",
          "icon": "ability_hunter_pet_cat",
          "tree": "Feral Combat",
          "row": 4,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Blood Frenzy",
          "icon": "ability_ghoulfrenzy",
          "tree": "Feral Combat",
          "row": 4,
          "column": 4,
          "maxRank": 2,
          "prerequisite": {
            "name": "Sharpened Claws",
            "rank": 2
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Predatory Instincts",
          "icon": "ability_druid_predatoryinstincts",
          "tree": "Feral Combat",
          "row": 5,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Leader of the Pack",
          "icon": "spell_nature_unyeildingstamina",
          "tree": "Feral Combat",
          "row": 5,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "King of the Jungle",
          "icon": "ability_druid_kingofthejungle",
          "tree": "Feral Combat",
          "row": 5,
          "column": 4,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Natural Reaction",
          "icon": "ability_bullrush",
          "tree": "Feral Combat",
          "row": 6,
          "column": 1,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Rend and Tear",
          "icon": "ability_druid_primalagression",
          "tree": "Feral Combat",
          "row": 6,
          "column": 3,
          "maxRank": 5,
          "prerequisite": {
            "name": "Predatory Strikes",
            "rank": 3
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Berserk",
          "icon": "ability_druid_berserk",
          "tree": "Feral Combat",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Leader of the Pack",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        },
        {
          "name": "Nature's Focus",
          "icon": "spell_nature_healingwavegreater",
          "tree": "Restoration",
          "row": 1,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Furor",
          "icon": "spell_holy_blessingofstamina",
          "tree": "Restoration",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Naturalist",
          "icon": "spell_nature_healingtouch",
          "tree": "Restoration",
          "row": 2,
          "column": 1,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Subtlety",
          "icon": "ability_eyeoftheowl",
          "tree": "Restoration",
          "row": 2,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Natural Shapeshifter",
          "icon": "spell_nature_wispsplode",
          "tree": "Restoration",
          "row": 2,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Reflection",
          "icon": "spell_frost_windwalkon",
          "tree": "Restoration",
          "row": 3,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Gift of Nature",
          "icon": "spell_nature_protectionformnature",
          "tree": "Restoration",
          "row": 3,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Gift of the Earthmother",
          "icon": "spell_nature_spiritarmor",
          "tree": "Restoration",
          "row": 3,
          "column": 4,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Tranquil Spirit",
          "icon": "spell_holy_elunesgrace",
          "tree": "Restoration",
          "row": 4,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Improved Rejuvenation",
          "icon": "spell_nature_rejuvenation",
          "tree": "Restoration",
          "row": 4,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Swiftmend",
          "icon": "inv_relics_idolofrejuvenation",
          "tree": "Restoration",
          "row": 4,
          "column": 4,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Nature's Swiftness",
          "icon": "spell_nature_ravenform",
          "tree": "Restoration",
          "row": 5,
          "column": 1,
          "maxRank": 1,
          "prerequisite": {
            "name": "Naturalist",
            "rank": 5
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Living Spirit",
          "icon": "spell_nature_giftofthewaterspirit",
          "tree": "Restoration",
          "row": 5,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Improved Tranquility",
          "icon": "spell_nature_tranquility",
          "tree": "Restoration",
          "row": 5,
          "column": 4,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Improved Regrowth",
          "icon": "spell_nature_resistnature",
          "tree": "Restoration",
          "row": 6,
          "column": 3,
          "maxRank": 5,
          "prerequisite": {
            "name": "Improved Rejuvenation",
            "rank": 3
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Wild Growth",
          "icon": "ability_druid_flourish",
          "tree": "Restoration",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Living Spirit",
            "rank": 3
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        }
      ],
      "abilities": [
        {
          "name": "Abolish Poison",
          "icon": "spell_nature_nullifypoison_02",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 26,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 26,
              "spellId": 2893
            }
          ]
        },
        {
          "name": "Aquatic Form",
          "icon": "ability_druid_aquaticform",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 16,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Shapeshift",
              "level": 16,
              "spellId": 1066
            }
          ]
        },
        {
          "name": "Barkskin",
          "icon": "spell_nature_stoneclawtotem",
          "category": "class_ability",
          "tabs": [
            "Balance"
          ],
          "level": 44,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 44,
              "spellId": 22812
            }
          ]
        },
        {
          "name": "Bash",
          "icon": "ability_druid_bash",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 14,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Bear Form, Dire Bear Form"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 14,
              "spellId": 5211
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 6798
            },
            {
              "label": "Rank 3",
              "level": 46,
              "spellId": 8983
            }
          ]
        },
        {
          "name": "Bear Form",
          "icon": "ability_racial_bearform",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Shapeshift",
              "level": 10,
              "spellId": 5487
            }
          ]
        },
        {
          "name": "Berserk",
          "icon": "ability_druid_berserk",
          "category": "talent_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 40,
          "talent": "Berserk",
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Requires Cat Form, Bear Form, Dire Bear Form"
          ],
          "ranks": [
            {
              "label": null,
              "level": 40,
              "spellId": 417141
            }
          ]
        },
        {
          "name": "Cat Form",
          "icon": "ability_druid_catform",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Shapeshift",
              "level": 20,
              "spellId": 768
            }
          ]
        },
        {
          "name": "Challenging Roar",
          "icon": "ability_druid_challangingroar",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 28,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Bear Form, Dire Bear Form"
          ],
          "ranks": [
            {
              "label": null,
              "level": 28,
              "spellId": 5209
            }
          ]
        },
        {
          "name": "Claw",
          "icon": "ability_druid_rake",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Cat Form"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 1082
            },
            {
              "label": "Rank 2",
              "level": 28,
              "spellId": 3029
            },
            {
              "label": "Rank 3",
              "level": 38,
              "spellId": 5201
            },
            {
              "label": "Rank 4",
              "level": 48,
              "spellId": 9849
            },
            {
              "label": "Rank 5",
              "level": 58,
              "spellId": 9850
            }
          ]
        },
        {
          "name": "Cower",
          "icon": "ability_druid_cower",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 28,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Cat Form"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 28,
              "spellId": 8998
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 9000
            },
            {
              "label": "Rank 3",
              "level": 52,
              "spellId": 9892
            }
          ]
        },
        {
          "name": "Cure Poison",
          "icon": "spell_nature_nullifypoison",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 14,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 14,
              "spellId": 8946
            }
          ]
        },
        {
          "name": "Dash",
          "icon": "ability_druid_dash",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 26,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Cat Form"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 26,
              "spellId": 1850
            },
            {
              "label": "Rank 2",
              "level": 46,
              "spellId": 9821
            }
          ]
        },
        {
          "name": "Demoralizing Roar",
          "icon": "ability_druid_demoralizingroar",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Bear Form, Dire Bear Form"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 99
            },
            {
              "label": "Rank 2",
              "level": 20,
              "spellId": 1735
            },
            {
              "label": "Rank 3",
              "level": 32,
              "spellId": 9490
            },
            {
              "label": "Rank 4",
              "level": 42,
              "spellId": 9747
            },
            {
              "label": "Rank 5",
              "level": 52,
              "spellId": 9898
            }
          ]
        },
        {
          "name": "Dire Bear Form",
          "icon": "ability_racial_bearform",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 40,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Shapeshift",
              "level": 40,
              "spellId": 9634
            }
          ]
        },
        {
          "name": "Enrage",
          "icon": "ability_druid_enrage",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "needs-verification",
          "requirements": [
            "Requires Bear Form, Dire Bear Form"
          ],
          "ranks": [
            {
              "label": null,
              "level": 12,
              "spellId": 5229
            }
          ]
        },
        {
          "name": "Entangling Roots",
          "icon": "spell_nature_stranglevines",
          "category": "class_ability",
          "tabs": [
            "Balance"
          ],
          "level": 8,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 8,
              "spellId": 339
            },
            {
              "label": "Rank 2",
              "level": 18,
              "spellId": 1062
            },
            {
              "label": "Rank 3",
              "level": 28,
              "spellId": 5195
            },
            {
              "label": "Rank 4",
              "level": 38,
              "spellId": 5196
            },
            {
              "label": "Rank 5",
              "level": 48,
              "spellId": 9852
            },
            {
              "label": "Rank 6",
              "level": 58,
              "spellId": 9853
            }
          ]
        },
        {
          "name": "Faerie Fire",
          "icon": "spell_nature_faeriefire",
          "category": "class_ability",
          "tabs": [
            "Balance"
          ],
          "level": 18,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Cat Form, Bear Form, Dire Bear Form"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 18,
              "spellId": 770
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 778
            },
            {
              "label": "Rank 3",
              "level": 42,
              "spellId": 9749
            },
            {
              "label": "Rank 4",
              "level": 54,
              "spellId": 9907
            }
          ]
        },
        {
          "name": "Feline Grace",
          "icon": "inv_feather_01",
          "category": "passive_class_skill",
          "tabs": [
            "Feral Combat"
          ],
          "level": 40,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Requires Cat Form",
            "Passive class skill; not a castable action."
          ],
          "ranks": [
            {
              "label": "Passive",
              "level": 40,
              "spellId": 20719
            }
          ]
        },
        {
          "name": "Feral Charge",
          "icon": "ability_hunter_pet_bear",
          "category": "talent_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 20,
          "talent": "Feral Charge",
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Requires Cat Form, Bear Form, Dire Bear Form"
          ],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 1238122
            }
          ]
        },
        {
          "name": "Ferocious Bite",
          "icon": "ability_druid_ferociousbite",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 32,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Cat Form"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 32,
              "spellId": 22568
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 22827
            },
            {
              "label": "Rank 3",
              "level": 48,
              "spellId": 22828
            },
            {
              "label": "Rank 4",
              "level": 56,
              "spellId": 22829
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 31018
            }
          ]
        },
        {
          "name": "Frenzied Regeneration",
          "icon": "ability_bullrush",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 36,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Bear Form, Dire Bear Form"
          ],
          "ranks": [
            {
              "label": null,
              "level": 36,
              "spellId": 22842
            }
          ]
        },
        {
          "name": "Gift of the Wild",
          "icon": "spell_nature_regeneration",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 50,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Rank 1 (level 50): Reagents: Wild Berries",
            "Rank 2 (level 60): Reagents: Wild Thornroot"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 50,
              "spellId": 21849
            },
            {
              "label": "Rank 2",
              "level": 60,
              "spellId": 21850
            }
          ]
        },
        {
          "name": "Growl",
          "icon": "ability_physical_taunt",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Bear Form, Dire Bear Form"
          ],
          "ranks": [
            {
              "label": null,
              "level": 10,
              "spellId": 6795
            }
          ]
        },
        {
          "name": "Healing Touch",
          "icon": "spell_nature_healingtouch",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 5185
            },
            {
              "label": "Rank 2",
              "level": 8,
              "spellId": 5186
            },
            {
              "label": "Rank 3",
              "level": 14,
              "spellId": 5187
            },
            {
              "label": "Rank 4",
              "level": 20,
              "spellId": 5188
            },
            {
              "label": "Rank 5",
              "level": 26,
              "spellId": 5189
            },
            {
              "label": "Rank 6",
              "level": 32,
              "spellId": 6778
            },
            {
              "label": "Rank 7",
              "level": 38,
              "spellId": 8903
            },
            {
              "label": "Rank 8",
              "level": 44,
              "spellId": 9758
            },
            {
              "label": "Rank 9",
              "level": 50,
              "spellId": 9888
            },
            {
              "label": "Rank 10",
              "level": 56,
              "spellId": 9889
            },
            {
              "label": "Rank 11",
              "level": 60,
              "spellId": 25297
            }
          ]
        },
        {
          "name": "Hibernate",
          "icon": "spell_nature_sleep",
          "category": "class_ability",
          "tabs": [
            "Balance"
          ],
          "level": 18,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 18,
              "spellId": 2637
            },
            {
              "label": "Rank 2",
              "level": 38,
              "spellId": 18657
            },
            {
              "label": "Rank 3",
              "level": 58,
              "spellId": 18658
            }
          ]
        },
        {
          "name": "Hurricane",
          "icon": "spell_nature_cyclone",
          "category": "class_ability",
          "tabs": [
            "Balance"
          ],
          "level": 40,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 40,
              "spellId": 16914
            },
            {
              "label": "Rank 2",
              "level": 50,
              "spellId": 17401
            },
            {
              "label": "Rank 3",
              "level": 60,
              "spellId": 17402
            }
          ]
        },
        {
          "name": "Innervate",
          "icon": "spell_nature_lightning",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 40,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 40,
              "spellId": 29166
            }
          ]
        },
        {
          "name": "Insect Swarm",
          "icon": "spell_nature_insectswarm",
          "category": "talent_ability",
          "tabs": [
            "Balance"
          ],
          "level": 25,
          "talent": "Insect Swarm",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 25,
              "spellId": 5570
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 24974
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 24975
            },
            {
              "label": "Rank 4",
              "level": 50,
              "spellId": 24976
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 24977
            }
          ]
        },
        {
          "name": "Lacerate",
          "icon": "ability_druid_lacerate",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 42,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Bear Form, Dire Bear Form"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 42,
              "spellId": 414644
            },
            {
              "label": "Rank 2",
              "level": 50,
              "spellId": 1235826
            },
            {
              "label": "Rank 3",
              "level": 58,
              "spellId": 1235827
            }
          ]
        },
        {
          "name": "Mark of the Wild",
          "icon": "spell_nature_regeneration",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 1126
            },
            {
              "label": "Rank 2",
              "level": 10,
              "spellId": 5232
            },
            {
              "label": "Rank 3",
              "level": 20,
              "spellId": 6756
            },
            {
              "label": "Rank 4",
              "level": 30,
              "spellId": 5234
            },
            {
              "label": "Rank 5",
              "level": 40,
              "spellId": 8907
            },
            {
              "label": "Rank 6",
              "level": 50,
              "spellId": 9884
            },
            {
              "label": "Rank 7",
              "level": 60,
              "spellId": 9885
            }
          ]
        },
        {
          "name": "Maul",
          "icon": "ability_druid_maul",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Bear Form, Dire Bear Form"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 6807
            },
            {
              "label": "Rank 2",
              "level": 18,
              "spellId": 6808
            },
            {
              "label": "Rank 3",
              "level": 26,
              "spellId": 6809
            },
            {
              "label": "Rank 4",
              "level": 34,
              "spellId": 8972
            },
            {
              "label": "Rank 5",
              "level": 42,
              "spellId": 9745
            },
            {
              "label": "Rank 6",
              "level": 50,
              "spellId": 9880
            },
            {
              "label": "Rank 7",
              "level": 58,
              "spellId": 9881
            }
          ]
        },
        {
          "name": "Moonfire",
          "icon": "spell_nature_starfall",
          "category": "class_ability",
          "tabs": [
            "Balance"
          ],
          "level": 4,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 4,
              "spellId": 8921
            },
            {
              "label": "Rank 2",
              "level": 10,
              "spellId": 8924
            },
            {
              "label": "Rank 3",
              "level": 16,
              "spellId": 8925
            },
            {
              "label": "Rank 4",
              "level": 22,
              "spellId": 8926
            },
            {
              "label": "Rank 5",
              "level": 28,
              "spellId": 8927
            },
            {
              "label": "Rank 6",
              "level": 34,
              "spellId": 8928
            },
            {
              "label": "Rank 7",
              "level": 40,
              "spellId": 8929
            },
            {
              "label": "Rank 8",
              "level": 46,
              "spellId": 9833
            },
            {
              "label": "Rank 9",
              "level": 52,
              "spellId": 9834
            },
            {
              "label": "Rank 10",
              "level": 58,
              "spellId": 9835
            }
          ]
        },
        {
          "name": "Moonkin Form",
          "icon": "spell_nature_forceofnature",
          "category": "talent_ability",
          "tabs": [
            "Balance"
          ],
          "level": 40,
          "talent": "Moonkin Form",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Shapeshift",
              "level": 40,
              "spellId": 24858
            }
          ]
        },
        {
          "name": "Nature's Grasp",
          "icon": "spell_nature_natureswrath",
          "category": "class_ability",
          "tabs": [
            "Balance"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 16689
            },
            {
              "label": "Rank 2",
              "level": 18,
              "spellId": 16810
            },
            {
              "label": "Rank 3",
              "level": 28,
              "spellId": 16811
            },
            {
              "label": "Rank 4",
              "level": 38,
              "spellId": 16812
            },
            {
              "label": "Rank 5",
              "level": 48,
              "spellId": 16813
            },
            {
              "label": "Rank 6",
              "level": 58,
              "spellId": 17329
            }
          ]
        },
        {
          "name": "Nature's Swiftness",
          "icon": "spell_nature_ravenform",
          "category": "talent_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 30,
          "talent": "Nature's Swiftness",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 17116
            }
          ]
        },
        {
          "name": "Omen of Clarity",
          "icon": "spell_nature_crystalball",
          "category": "class_ability",
          "tabs": [
            "Balance"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 16864
            }
          ]
        },
        {
          "name": "Pounce",
          "icon": "ability_druid_supriseattack",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 36,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Cat Form"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 36,
              "spellId": 9005
            },
            {
              "label": "Rank 2",
              "level": 46,
              "spellId": 9823
            },
            {
              "label": "Rank 3",
              "level": 56,
              "spellId": 9827
            }
          ]
        },
        {
          "name": "Primal Bite",
          "icon": "ability_racial_cannibalize",
          "category": "talent_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 25,
          "talent": "Primal Bite",
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Requires Bear Form, Dire Bear Form"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 25,
              "spellId": 407995
            },
            {
              "label": "Rank 2",
              "level": 36,
              "spellId": 1238069
            },
            {
              "label": "Rank 3",
              "level": 48,
              "spellId": 1238070
            },
            {
              "label": "Rank 4",
              "level": 60,
              "spellId": 1238073
            }
          ]
        },
        {
          "name": "Prowl",
          "icon": "ability_ambush",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Cat Form"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 5215
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 6783
            },
            {
              "label": "Rank 3",
              "level": 60,
              "spellId": 9913
            }
          ]
        },
        {
          "name": "Rake",
          "icon": "ability_druid_disembowel",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 24,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Cat Form"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 24,
              "spellId": 1822
            },
            {
              "label": "Rank 2",
              "level": 34,
              "spellId": 1823
            },
            {
              "label": "Rank 3",
              "level": 44,
              "spellId": 1824
            },
            {
              "label": "Rank 4",
              "level": 54,
              "spellId": 9904
            }
          ]
        },
        {
          "name": "Ravage",
          "icon": "ability_druid_ravage",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 32,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Cat Form"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 32,
              "spellId": 6785
            },
            {
              "label": "Rank 2",
              "level": 42,
              "spellId": 6787
            },
            {
              "label": "Rank 3",
              "level": 50,
              "spellId": 9866
            },
            {
              "label": "Rank 4",
              "level": 58,
              "spellId": 9867
            }
          ]
        },
        {
          "name": "Rebirth",
          "icon": "spell_nature_reincarnation",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Rank 1 (level 20): Reagents: Maple Seed",
            "Rank 2 (level 30): Reagents: Stranglethorn Seed",
            "Rank 3 (level 40): Reagents: Ashwood Seed",
            "Rank 4 (level 50): Reagents: Hornbeam Seed",
            "Rank 5 (level 60): Reagents: Ironwood Seed"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 20484
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 20739
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 20742
            },
            {
              "label": "Rank 4",
              "level": 50,
              "spellId": 20747
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 20748
            }
          ]
        },
        {
          "name": "Regrowth",
          "icon": "spell_nature_resistnature",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 12,
              "spellId": 8936
            },
            {
              "label": "Rank 2",
              "level": 18,
              "spellId": 8938
            },
            {
              "label": "Rank 3",
              "level": 24,
              "spellId": 8939
            },
            {
              "label": "Rank 4",
              "level": 30,
              "spellId": 8940
            },
            {
              "label": "Rank 5",
              "level": 36,
              "spellId": 8941
            },
            {
              "label": "Rank 6",
              "level": 42,
              "spellId": 9750
            },
            {
              "label": "Rank 7",
              "level": 48,
              "spellId": 9856
            },
            {
              "label": "Rank 8",
              "level": 54,
              "spellId": 9857
            },
            {
              "label": "Rank 9",
              "level": 60,
              "spellId": 9858
            }
          ]
        },
        {
          "name": "Rejuvenation",
          "icon": "spell_nature_rejuvenation",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 4,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 4,
              "spellId": 774
            },
            {
              "label": "Rank 2",
              "level": 10,
              "spellId": 1058
            },
            {
              "label": "Rank 3",
              "level": 16,
              "spellId": 1430
            },
            {
              "label": "Rank 4",
              "level": 22,
              "spellId": 2090
            },
            {
              "label": "Rank 5",
              "level": 28,
              "spellId": 2091
            },
            {
              "label": "Rank 6",
              "level": 34,
              "spellId": 3627
            },
            {
              "label": "Rank 7",
              "level": 40,
              "spellId": 8910
            },
            {
              "label": "Rank 8",
              "level": 46,
              "spellId": 9839
            },
            {
              "label": "Rank 9",
              "level": 52,
              "spellId": 9840
            },
            {
              "label": "Rank 10",
              "level": 58,
              "spellId": 9841
            },
            {
              "label": "Rank 11",
              "level": 60,
              "spellId": 25299
            }
          ]
        },
        {
          "name": "Remove Curse",
          "icon": "spell_holy_removecurse",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 24,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 24,
              "spellId": 2782
            }
          ]
        },
        {
          "name": "Revive",
          "icon": "ability_druid_lunarguidance",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 12,
              "spellId": 437138
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 1237948
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 1237949
            },
            {
              "label": "Rank 4",
              "level": 48,
              "spellId": 1237950
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 1237951
            }
          ]
        },
        {
          "name": "Rip",
          "icon": "ability_ghoulfrenzy",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Cat Form"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 1079
            },
            {
              "label": "Rank 2",
              "level": 28,
              "spellId": 9492
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 9493
            },
            {
              "label": "Rank 4",
              "level": 44,
              "spellId": 9752
            },
            {
              "label": "Rank 5",
              "level": 52,
              "spellId": 9894
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 9896
            }
          ]
        },
        {
          "name": "Shred",
          "icon": "spell_shadow_vampiricaura",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 22,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Cat Form"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 22,
              "spellId": 5221
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 6800
            },
            {
              "label": "Rank 3",
              "level": 38,
              "spellId": 8992
            },
            {
              "label": "Rank 4",
              "level": 46,
              "spellId": 9829
            },
            {
              "label": "Rank 5",
              "level": 54,
              "spellId": 9830
            }
          ]
        },
        {
          "name": "Soothe Animal",
          "icon": "ability_hunter_beastsoothe",
          "category": "class_ability",
          "tabs": [
            "Balance"
          ],
          "level": 22,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 22,
              "spellId": 2908
            },
            {
              "label": "Rank 2",
              "level": 38,
              "spellId": 8955
            },
            {
              "label": "Rank 3",
              "level": 54,
              "spellId": 9901
            }
          ]
        },
        {
          "name": "Starfire",
          "icon": "spell_arcane_starfire",
          "category": "class_ability",
          "tabs": [
            "Balance"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 2912
            },
            {
              "label": "Rank 2",
              "level": 26,
              "spellId": 8949
            },
            {
              "label": "Rank 3",
              "level": 34,
              "spellId": 8950
            },
            {
              "label": "Rank 4",
              "level": 42,
              "spellId": 8951
            },
            {
              "label": "Rank 5",
              "level": 50,
              "spellId": 9875
            },
            {
              "label": "Rank 6",
              "level": 58,
              "spellId": 9876
            },
            {
              "label": "Rank 7",
              "level": 60,
              "spellId": 25298
            }
          ]
        },
        {
          "name": "Swiftmend",
          "icon": "inv_relics_idolofrejuvenation",
          "category": "talent_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 25,
          "talent": "Swiftmend",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 25,
              "spellId": 18562
            }
          ]
        },
        {
          "name": "Swipe",
          "icon": "inv_misc_monsterclaw_03",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 16,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Bear Form, Dire Bear Form"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 16,
              "spellId": 779
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 780
            },
            {
              "label": "Rank 3",
              "level": 34,
              "spellId": 769
            },
            {
              "label": "Rank 4",
              "level": 44,
              "spellId": 9754
            },
            {
              "label": "Rank 5",
              "level": 54,
              "spellId": 9908
            }
          ]
        },
        {
          "name": "Teleport: Moonglade",
          "icon": "spell_arcane_teleportmoonglade",
          "category": "class_ability",
          "tabs": [
            "Balance"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 10,
              "spellId": 18960
            }
          ]
        },
        {
          "name": "Thorns",
          "icon": "spell_nature_thorns",
          "category": "class_ability",
          "tabs": [
            "Balance"
          ],
          "level": 6,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 6,
              "spellId": 467
            },
            {
              "label": "Rank 2",
              "level": 14,
              "spellId": 782
            },
            {
              "label": "Rank 3",
              "level": 24,
              "spellId": 1075
            },
            {
              "label": "Rank 4",
              "level": 34,
              "spellId": 8914
            },
            {
              "label": "Rank 5",
              "level": 44,
              "spellId": 9756
            },
            {
              "label": "Rank 6",
              "level": 54,
              "spellId": 9910
            }
          ]
        },
        {
          "name": "Tiger's Fury",
          "icon": "ability_mount_jungletiger",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 24,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Cat Form"
          ],
          "ranks": [
            {
              "label": null,
              "level": 24,
              "spellId": 5217
            }
          ]
        },
        {
          "name": "Track Humanoids",
          "icon": "ability_tracking",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 32,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Cat Form"
          ],
          "ranks": [
            {
              "label": null,
              "level": 32,
              "spellId": 5225
            }
          ]
        },
        {
          "name": "Tranquility",
          "icon": "spell_nature_tranquility",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 740
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 8918
            },
            {
              "label": "Rank 3",
              "level": 50,
              "spellId": 9862
            },
            {
              "label": "Rank 4",
              "level": 60,
              "spellId": 9863
            }
          ]
        },
        {
          "name": "Travel Form",
          "icon": "ability_druid_travelform",
          "category": "class_ability",
          "tabs": [
            "Feral Combat"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Shapeshift",
              "level": 30,
              "spellId": 783
            }
          ]
        },
        {
          "name": "Wild Growth",
          "icon": "ability_druid_flourish",
          "category": "talent_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 40,
          "talent": "Wild Growth",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 40,
              "spellId": 408120
            },
            {
              "label": "Rank 2",
              "level": 50,
              "spellId": 1238214
            },
            {
              "label": "Rank 3",
              "level": 60,
              "spellId": 1238215
            }
          ]
        },
        {
          "name": "Wrath",
          "icon": "spell_nature_abolishmagic",
          "category": "class_ability",
          "tabs": [
            "Balance"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 5176
            },
            {
              "label": "Rank 2",
              "level": 6,
              "spellId": 5177
            },
            {
              "label": "Rank 3",
              "level": 14,
              "spellId": 5178
            },
            {
              "label": "Rank 4",
              "level": 22,
              "spellId": 5179
            },
            {
              "label": "Rank 5",
              "level": 30,
              "spellId": 5180
            },
            {
              "label": "Rank 6",
              "level": 38,
              "spellId": 6780
            },
            {
              "label": "Rank 7",
              "level": 46,
              "spellId": 8905
            },
            {
              "label": "Rank 8",
              "level": 54,
              "spellId": 9912
            }
          ]
        }
      ]
    },
    {
      "slug": "hunter",
      "name": "Hunter",
      "icon": "class_hunter",
      "treeIcons": {
        "Beast Mastery": "ability_hunter_beasttaming",
        "Marksmanship": "ability_marksmanship",
        "Survival": "ability_hunter_swiftstrike"
      },
      "trees": [
        "Beast Mastery",
        "Marksmanship",
        "Survival"
      ],
      "talents": [
        {
          "name": "Deadly Aspects",
          "icon": "spell_nature_ravenform",
          "tree": "Beast Mastery",
          "row": 1,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Endurance Training",
          "icon": "spell_nature_reincarnation",
          "tree": "Beast Mastery",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Focused Fire",
          "icon": "inv_weapon_crossbow_10",
          "tree": "Beast Mastery",
          "row": 2,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Aspect of the Monkey",
          "icon": "ability_hunter_aspectofthemonkey",
          "tree": "Beast Mastery",
          "row": 2,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Pathfinding",
          "icon": "ability_mount_jungletiger",
          "tree": "Beast Mastery",
          "row": 2,
          "column": 3,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Revive Pet",
          "icon": "ability_hunter_beastsoothe",
          "tree": "Beast Mastery",
          "row": 2,
          "column": 4,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Bestial Swiftness",
          "icon": "ability_druid_dash",
          "tree": "Beast Mastery",
          "row": 3,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Unleashed Fury",
          "icon": "ability_bullrush",
          "tree": "Beast Mastery",
          "row": 3,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Improved Mend Pet",
          "icon": "ability_hunter_mendpet",
          "tree": "Beast Mastery",
          "row": 4,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Ferocity",
          "icon": "inv_misc_monsterclaw_04",
          "tree": "Beast Mastery",
          "row": 4,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Summon Hawk",
          "icon": "ability_hunter_animalhandler",
          "tree": "Beast Mastery",
          "row": 4,
          "column": 4,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Spirit Bond",
          "icon": "ability_druid_demoralizingroar",
          "tree": "Beast Mastery",
          "row": 5,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Intimidation",
          "icon": "ability_devour",
          "tree": "Beast Mastery",
          "row": 5,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Bestial Swiftness",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Bestial Discipline",
          "icon": "spell_nature_abolishmagic",
          "tree": "Beast Mastery",
          "row": 5,
          "column": 4,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Frenzy",
          "icon": "inv_misc_monsterclaw_03",
          "tree": "Beast Mastery",
          "row": 6,
          "column": 3,
          "maxRank": 5,
          "prerequisite": {
            "name": "Ferocity",
            "rank": 5
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Bestial Wrath",
          "icon": "ability_druid_ferociousbite",
          "tree": "Beast Mastery",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Intimidation",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        },
        {
          "name": "Hawk Eye",
          "icon": "ability_townwatch",
          "tree": "Marksmanship",
          "row": 1,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Improved Concussive Shot",
          "icon": "spell_frost_stun",
          "tree": "Marksmanship",
          "row": 1,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Lethal Attacks",
          "icon": "ability_searingarrow",
          "tree": "Marksmanship",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Improved Stings",
          "icon": "hunter_pvp_spidersting",
          "tree": "Marksmanship",
          "row": 2,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Efficiency",
          "icon": "spell_frost_wizardmark",
          "tree": "Marksmanship",
          "row": 2,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Careful Aim",
          "icon": "ability_hunter_zenarchery",
          "tree": "Marksmanship",
          "row": 2,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Rapid Killing",
          "icon": "ability_hunter_rapidkilling",
          "tree": "Marksmanship",
          "row": 3,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Improved Arcane Shot",
          "icon": "ability_impalingbolt",
          "tree": "Marksmanship",
          "row": 3,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Lone Wolf",
          "icon": "ability_mount_whitedirewolf",
          "tree": "Marksmanship",
          "row": 3,
          "column": 4,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Trueshot Aura",
          "icon": "ability_trueshot",
          "tree": "Marksmanship",
          "row": 4,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Mortal Shots",
          "icon": "ability_piercedamage",
          "tree": "Marksmanship",
          "row": 4,
          "column": 3,
          "maxRank": 5,
          "prerequisite": {
            "name": "Careful Aim",
            "rank": 5
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Rapid Recuperation",
          "icon": "ability_hunter_rapidregeneration",
          "tree": "Marksmanship",
          "row": 5,
          "column": 1,
          "maxRank": 2,
          "prerequisite": {
            "name": "Rapid Killing",
            "rank": 2
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Barrage",
          "icon": "ability_upgrademoonglaive",
          "tree": "Marksmanship",
          "row": 5,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Scatter Shot",
          "icon": "ability_golemstormbolt",
          "tree": "Marksmanship",
          "row": 5,
          "column": 4,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Ranged Weapon Specialization",
          "icon": "inv_weapon_rifle_06",
          "tree": "Marksmanship",
          "row": 6,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Sniper Shot",
          "icon": "hunter_pvp_snipershot",
          "tree": "Marksmanship",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Trueshot Aura",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        },
        {
          "name": "Improved Tracking",
          "icon": "inv_misc_head_dragon_black",
          "tree": "Survival",
          "row": 1,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Deflection",
          "icon": "ability_parry",
          "tree": "Survival",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Entrapment",
          "icon": "spell_nature_stranglevines",
          "tree": "Survival",
          "row": 2,
          "column": 1,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Savage Strikes",
          "icon": "ability_racial_bloodrage",
          "tree": "Survival",
          "row": 2,
          "column": 2,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Survivalist",
          "icon": "spell_shadow_twilight",
          "tree": "Survival",
          "row": 2,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Wing Clip",
          "icon": "ability_rogue_trip",
          "tree": "Survival",
          "row": 2,
          "column": 4,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Clever Traps",
          "icon": "spell_nature_timestop",
          "tree": "Survival",
          "row": 3,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Surefooted",
          "icon": "ability_kick",
          "tree": "Survival",
          "row": 3,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Deterrence",
          "icon": "ability_whirlwind",
          "tree": "Survival",
          "row": 3,
          "column": 3,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Survival Tactics",
          "icon": "ability_ensnare",
          "tree": "Survival",
          "row": 4,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Predator's Edge",
          "icon": "ability_hunter_hatchettoss",
          "tree": "Survival",
          "row": 4,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Counterattack",
          "icon": "ability_warrior_challange",
          "tree": "Survival",
          "row": 4,
          "column": 3,
          "maxRank": 1,
          "prerequisite": {
            "name": "Deterrence",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Resourcefulness",
          "icon": "ability_hunter_resourcefulness",
          "tree": "Survival",
          "row": 5,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Expose Prey",
          "icon": "ability_hunter_swiftstrike",
          "tree": "Survival",
          "row": 5,
          "column": 2,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Survivalist's Discipline",
          "icon": "ability_hunter_mastertactitian",
          "tree": "Survival",
          "row": 5,
          "column": 3,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Strider Kick",
          "icon": "ability_hunter_pet_tallstrider",
          "tree": "Survival",
          "row": 5,
          "column": 4,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Lightning Reflexes",
          "icon": "spell_nature_invisibilty",
          "tree": "Survival",
          "row": 6,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Lacerating Strikes",
          "icon": "ability_gouge",
          "tree": "Survival",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Expose Prey",
            "rank": 2
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        }
      ],
      "abilities": [
        {
          "name": "Aimed Shot",
          "icon": "inv_spear_07",
          "category": "class_ability",
          "tabs": [
            "Marksmanship"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 19434
            },
            {
              "label": "Rank 2",
              "level": 28,
              "spellId": 20900
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 20901
            },
            {
              "label": "Rank 4",
              "level": 44,
              "spellId": 20902
            },
            {
              "label": "Rank 5",
              "level": 52,
              "spellId": 20903
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 20904
            }
          ]
        },
        {
          "name": "Arcane Resistance",
          "icon": "spell_nature_starfall",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 24493
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 24497
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 24500
            },
            {
              "label": "Rank 4",
              "level": 50,
              "spellId": 24501
            }
          ]
        },
        {
          "name": "Arcane Shot",
          "icon": "ability_impalingbolt",
          "category": "class_ability",
          "tabs": [
            "Marksmanship"
          ],
          "level": 6,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 6,
              "spellId": 3044
            },
            {
              "label": "Rank 2",
              "level": 12,
              "spellId": 14281
            },
            {
              "label": "Rank 3",
              "level": 20,
              "spellId": 14282
            },
            {
              "label": "Rank 4",
              "level": 28,
              "spellId": 14283
            },
            {
              "label": "Rank 5",
              "level": 36,
              "spellId": 14284
            },
            {
              "label": "Rank 6",
              "level": 44,
              "spellId": 14285
            },
            {
              "label": "Rank 7",
              "level": 52,
              "spellId": 14286
            },
            {
              "label": "Rank 8",
              "level": 60,
              "spellId": 14287
            }
          ]
        },
        {
          "name": "Aspect of the Beast",
          "icon": "ability_mount_pinktiger",
          "category": "class_ability",
          "tabs": [
            "Beast Mastery"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 13161
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 1299445
            },
            {
              "label": "Rank 3",
              "level": 50,
              "spellId": 1299446
            },
            {
              "label": "Rank 4",
              "level": 60,
              "spellId": 1299447
            }
          ]
        },
        {
          "name": "Aspect of the Cheetah",
          "icon": "ability_mount_jungletiger",
          "category": "class_ability",
          "tabs": [
            "Beast Mastery"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 5118
            }
          ]
        },
        {
          "name": "Aspect of the Hawk",
          "icon": "spell_nature_ravenform",
          "category": "class_ability",
          "tabs": [
            "Beast Mastery"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 13165
            },
            {
              "label": "Rank 2",
              "level": 18,
              "spellId": 14318
            },
            {
              "label": "Rank 3",
              "level": 28,
              "spellId": 14319
            },
            {
              "label": "Rank 4",
              "level": 38,
              "spellId": 14320
            },
            {
              "label": "Rank 5",
              "level": 48,
              "spellId": 14321
            },
            {
              "label": "Rank 6",
              "level": 58,
              "spellId": 14322
            },
            {
              "label": "Rank 7",
              "level": 60,
              "spellId": 25296
            }
          ]
        },
        {
          "name": "Aspect of the Monkey",
          "icon": "ability_hunter_aspectofthemonkey",
          "category": "class_ability",
          "tabs": [
            "Beast Mastery"
          ],
          "level": 4,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 4,
              "spellId": 13163
            }
          ]
        },
        {
          "name": "Aspect of the Pack",
          "icon": "ability_mount_whitetiger",
          "category": "class_ability",
          "tabs": [
            "Beast Mastery"
          ],
          "level": 40,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 40,
              "spellId": 13159
            }
          ]
        },
        {
          "name": "Aspect of the Wild",
          "icon": "spell_nature_protectionformnature",
          "category": "class_ability",
          "tabs": [
            "Beast Mastery"
          ],
          "level": 46,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 46,
              "spellId": 20043
            },
            {
              "label": "Rank 2",
              "level": 56,
              "spellId": 20190
            }
          ]
        },
        {
          "name": "Auto Shot",
          "icon": "ability_whirlwind",
          "category": "class_ability",
          "tabs": [
            "Marksmanship"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 1,
              "spellId": 75
            }
          ]
        },
        {
          "name": "Beast Lore",
          "icon": "ability_physical_taunt",
          "category": "class_ability",
          "tabs": [
            "Beast Mastery"
          ],
          "level": 24,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 24,
              "spellId": 1462
            }
          ]
        },
        {
          "name": "Bestial Wrath",
          "icon": "ability_druid_ferociousbite",
          "category": "talent_ability",
          "tabs": [
            "Beast Mastery"
          ],
          "level": 40,
          "talent": "Bestial Wrath",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 40,
              "spellId": 19574
            }
          ]
        },
        {
          "name": "Bite",
          "icon": "ability_racial_cannibalize",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Pet: every family",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 17253
            },
            {
              "label": "Rank 2",
              "level": 8,
              "spellId": 17255
            },
            {
              "label": "Rank 3",
              "level": 16,
              "spellId": 17256
            },
            {
              "label": "Rank 4",
              "level": 24,
              "spellId": 17257
            },
            {
              "label": "Rank 5",
              "level": 32,
              "spellId": 17258
            },
            {
              "label": "Rank 6",
              "level": 40,
              "spellId": 17259
            },
            {
              "label": "Rank 7",
              "level": 48,
              "spellId": 17260
            },
            {
              "label": "Rank 8",
              "level": 56,
              "spellId": 17261
            }
          ]
        },
        {
          "name": "Call Pet",
          "icon": "ability_hunter_beastcall",
          "category": "class_ability",
          "tabs": [
            "Beast Mastery"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 10,
              "spellId": 883
            }
          ]
        },
        {
          "name": "Charge",
          "icon": "ability_hunter_pet_boar",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Pet: Boar",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 7371
            },
            {
              "label": "Rank 2",
              "level": 12,
              "spellId": 26177
            },
            {
              "label": "Rank 3",
              "level": 24,
              "spellId": 26178
            },
            {
              "label": "Rank 4",
              "level": 36,
              "spellId": 26179
            },
            {
              "label": "Rank 5",
              "level": 48,
              "spellId": 26201
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 27685
            }
          ]
        },
        {
          "name": "Claw",
          "icon": "ability_druid_rake",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Pet: Bear, Bird of Prey, Carrion Bird, Cat, Crab, Raptor, Scorpid",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 16827
            },
            {
              "label": "Rank 2",
              "level": 8,
              "spellId": 16828
            },
            {
              "label": "Rank 3",
              "level": 16,
              "spellId": 16829
            },
            {
              "label": "Rank 4",
              "level": 24,
              "spellId": 16830
            },
            {
              "label": "Rank 5",
              "level": 32,
              "spellId": 16831
            },
            {
              "label": "Rank 6",
              "level": 40,
              "spellId": 16832
            },
            {
              "label": "Rank 7",
              "level": 48,
              "spellId": 3010
            },
            {
              "label": "Rank 8",
              "level": 56,
              "spellId": 3009
            }
          ]
        },
        {
          "name": "Concussive Shot",
          "icon": "spell_frost_stun",
          "category": "class_ability",
          "tabs": [
            "Marksmanship"
          ],
          "level": 8,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 8,
              "spellId": 5116
            }
          ]
        },
        {
          "name": "Counterattack",
          "icon": "ability_warrior_challange",
          "category": "talent_ability",
          "tabs": [
            "Survival"
          ],
          "level": 30,
          "talent": "Counterattack",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 19306
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 1242634
            },
            {
              "label": "Rank 3",
              "level": 42,
              "spellId": 20909
            },
            {
              "label": "Rank 4",
              "level": 54,
              "spellId": 20910
            }
          ]
        },
        {
          "name": "Cower",
          "icon": "ability_druid_cower",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 5,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 5,
              "spellId": 1742
            },
            {
              "label": "Rank 2",
              "level": 15,
              "spellId": 1753
            },
            {
              "label": "Rank 3",
              "level": 25,
              "spellId": 1754
            },
            {
              "label": "Rank 4",
              "level": 35,
              "spellId": 1755
            },
            {
              "label": "Rank 5",
              "level": 45,
              "spellId": 1756
            },
            {
              "label": "Rank 6",
              "level": 55,
              "spellId": 16697
            }
          ]
        },
        {
          "name": "Dash",
          "icon": "ability_druid_dash",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Pet: every family",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 23099
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 23109
            },
            {
              "label": "Rank 3",
              "level": 50,
              "spellId": 23110
            }
          ]
        },
        {
          "name": "Demoralizing Screech",
          "icon": "ability_hunter_pet_vulture",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 8,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Pet: Carrion Bird",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 8,
              "spellId": 24423
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 24577
            },
            {
              "label": "Rank 3",
              "level": 48,
              "spellId": 24578
            },
            {
              "label": "Rank 4",
              "level": 56,
              "spellId": 24579
            }
          ]
        },
        {
          "name": "Deterrence",
          "icon": "ability_whirlwind",
          "category": "talent_ability",
          "tabs": [
            "Survival"
          ],
          "level": 20,
          "talent": "Deterrence",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 19263
            }
          ]
        },
        {
          "name": "Disengage",
          "icon": "ability_rogue_feint",
          "category": "class_ability",
          "tabs": [
            "Survival"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 781
            },
            {
              "label": "Rank 2",
              "level": 34,
              "spellId": 14272
            },
            {
              "label": "Rank 3",
              "level": 48,
              "spellId": 14273
            }
          ]
        },
        {
          "name": "Dismember",
          "icon": "ability_hunter_pet_crocolisk",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Pet: Crocilisk",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 12,
              "spellId": 1264758
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 1264927
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 1264929
            },
            {
              "label": "Rank 4",
              "level": 48,
              "spellId": 1264930
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 1264933
            }
          ]
        },
        {
          "name": "Dismiss Pet",
          "icon": "spell_nature_spiritwolf",
          "category": "class_ability",
          "tabs": [
            "Beast Mastery"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 10,
              "spellId": 2641
            }
          ]
        },
        {
          "name": "Distracting Shot",
          "icon": "spell_arcane_blink",
          "category": "class_ability",
          "tabs": [
            "Marksmanship"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 12,
              "spellId": 20736
            },
            {
              "label": "Rank 2",
              "level": 20,
              "spellId": 14274
            },
            {
              "label": "Rank 3",
              "level": 30,
              "spellId": 15629
            },
            {
              "label": "Rank 4",
              "level": 40,
              "spellId": 15630
            },
            {
              "label": "Rank 5",
              "level": 50,
              "spellId": 15631
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 15632
            }
          ]
        },
        {
          "name": "Dive",
          "icon": "spell_shadow_burningspirit",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Rank 1 (level 30): Pet: Bird of Prey, Carrion Bird, Wind Serpent",
            "Rank 2 (level 40), Rank 3 (level 50): Pet: Bat, Bird of Prey, Carrion Bird, Wind Serpent",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 23145
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 23147
            },
            {
              "label": "Rank 3",
              "level": 50,
              "spellId": 23148
            }
          ]
        },
        {
          "name": "Dust Cloud",
          "icon": "spell_nature_sleep",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Pet: Tallstrider",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 12,
              "spellId": 1265899
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 1265901
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 1265902
            },
            {
              "label": "Rank 4",
              "level": 48,
              "spellId": 1265903
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 1265904
            }
          ]
        },
        {
          "name": "Eagle Eye",
          "icon": "ability_hunter_eagleeye",
          "category": "class_ability",
          "tabs": [
            "Beast Mastery"
          ],
          "level": 14,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 14,
              "spellId": 6197
            }
          ]
        },
        {
          "name": "Enchanted Flare",
          "icon": "ability_mage_arcanebarrage",
          "category": "class_ability",
          "tabs": [
            "Marksmanship"
          ],
          "level": 32,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 32,
              "spellId": 1221404
            }
          ]
        },
        {
          "name": "Explosive Trap",
          "icon": "spell_fire_selfdestruct",
          "category": "class_ability",
          "tabs": [
            "Survival"
          ],
          "level": 34,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 34,
              "spellId": 13813
            },
            {
              "label": "Rank 2",
              "level": 44,
              "spellId": 14316
            },
            {
              "label": "Rank 3",
              "level": 54,
              "spellId": 14317
            }
          ]
        },
        {
          "name": "Eyes of the Beast",
          "icon": "ability_eyeoftheowl",
          "category": "class_ability",
          "tabs": [
            "Beast Mastery"
          ],
          "level": 14,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 14,
              "spellId": 1002
            }
          ]
        },
        {
          "name": "Feed Pet",
          "icon": "ability_hunter_beasttraining",
          "category": "class_ability",
          "tabs": [
            "Beast Mastery"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 10,
              "spellId": 6991
            }
          ]
        },
        {
          "name": "Feign Death",
          "icon": "ability_rogue_feigndeath",
          "category": "class_ability",
          "tabs": [
            "Survival"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 5384
            }
          ]
        },
        {
          "name": "Fire Resistance",
          "icon": "spell_fire_firearmor",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 23992
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 24439
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 24444
            },
            {
              "label": "Rank 4",
              "level": 50,
              "spellId": 24445
            }
          ]
        },
        {
          "name": "Flare",
          "icon": "spell_fire_flare",
          "category": "class_ability",
          "tabs": [
            "Marksmanship"
          ],
          "level": 32,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 32,
              "spellId": 1543
            }
          ]
        },
        {
          "name": "Freezing Trap",
          "icon": "spell_frost_chainsofice",
          "category": "class_ability",
          "tabs": [
            "Survival"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 1499
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 14310
            },
            {
              "label": "Rank 3",
              "level": 60,
              "spellId": 14311
            }
          ]
        },
        {
          "name": "Frost Resistance",
          "icon": "spell_frost_frostward",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 24446
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 24447
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 24448
            },
            {
              "label": "Rank 4",
              "level": 50,
              "spellId": 24449
            }
          ]
        },
        {
          "name": "Frost Trap",
          "icon": "spell_frost_freezingbreath",
          "category": "class_ability",
          "tabs": [
            "Survival"
          ],
          "level": 28,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 28,
              "spellId": 13809
            }
          ]
        },
        {
          "name": "Furious Howl",
          "icon": "ability_hunter_pet_wolf",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Pet: Wolf",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 24604
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 24605
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 24603
            },
            {
              "label": "Rank 4",
              "level": 56,
              "spellId": 24597
            }
          ]
        },
        {
          "name": "Great Stamina",
          "icon": "spell_nature_unyeildingstamina",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 4187
            },
            {
              "label": "Rank 2",
              "level": 12,
              "spellId": 4188
            },
            {
              "label": "Rank 3",
              "level": 18,
              "spellId": 4189
            },
            {
              "label": "Rank 4",
              "level": 24,
              "spellId": 4190
            },
            {
              "label": "Rank 5",
              "level": 30,
              "spellId": 4191
            },
            {
              "label": "Rank 6",
              "level": 36,
              "spellId": 4192
            },
            {
              "label": "Rank 7",
              "level": 42,
              "spellId": 4193
            },
            {
              "label": "Rank 8",
              "level": 48,
              "spellId": 4194
            },
            {
              "label": "Rank 9",
              "level": 54,
              "spellId": 5041
            },
            {
              "label": "Rank 10",
              "level": 60,
              "spellId": 5042
            }
          ]
        },
        {
          "name": "Growl",
          "icon": "ability_physical_taunt",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 2649
            },
            {
              "label": "Rank 2",
              "level": 10,
              "spellId": 14916
            },
            {
              "label": "Rank 3",
              "level": 20,
              "spellId": 14917
            },
            {
              "label": "Rank 4",
              "level": 30,
              "spellId": 14918
            },
            {
              "label": "Rank 5",
              "level": 40,
              "spellId": 14919
            },
            {
              "label": "Rank 6",
              "level": 50,
              "spellId": 14920
            },
            {
              "label": "Rank 7",
              "level": 60,
              "spellId": 14921
            }
          ]
        },
        {
          "name": "Hunter's Mark",
          "icon": "ability_hunter_snipershot",
          "category": "class_ability",
          "tabs": [
            "Marksmanship"
          ],
          "level": 6,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 6,
              "spellId": 1130
            },
            {
              "label": "Rank 2",
              "level": 22,
              "spellId": 14323
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 14324
            },
            {
              "label": "Rank 4",
              "level": 58,
              "spellId": 14325
            }
          ]
        },
        {
          "name": "Immolation Trap",
          "icon": "spell_fire_flameshock",
          "category": "class_ability",
          "tabs": [
            "Survival"
          ],
          "level": 16,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 16,
              "spellId": 13795
            },
            {
              "label": "Rank 2",
              "level": 26,
              "spellId": 14302
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 14303
            },
            {
              "label": "Rank 4",
              "level": 46,
              "spellId": 14304
            },
            {
              "label": "Rank 5",
              "level": 56,
              "spellId": 14305
            }
          ]
        },
        {
          "name": "Intimidation",
          "icon": "ability_devour",
          "category": "talent_ability",
          "tabs": [
            "Beast Mastery"
          ],
          "level": 30,
          "talent": "Intimidation",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 19577
            }
          ]
        },
        {
          "name": "Lacerate",
          "icon": "ability_gouge",
          "category": "class_ability",
          "tabs": [
            "Survival"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 24118
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 24119
            },
            {
              "label": "Rank 3",
              "level": 50,
              "spellId": 24120
            },
            {
              "label": "Rank 4",
              "level": 60,
              "spellId": 1299332
            }
          ]
        },
        {
          "name": "Lightning Breath",
          "icon": "spell_nature_lightning",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Pet: Wind Serpent",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 24844
            },
            {
              "label": "Rank 2",
              "level": 12,
              "spellId": 25008
            },
            {
              "label": "Rank 3",
              "level": 24,
              "spellId": 25009
            },
            {
              "label": "Rank 4",
              "level": 36,
              "spellId": 25010
            },
            {
              "label": "Rank 5",
              "level": 48,
              "spellId": 25011
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 25012
            }
          ]
        },
        {
          "name": "Mend Pet",
          "icon": "ability_hunter_mendpet",
          "category": "class_ability",
          "tabs": [
            "Beast Mastery"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 12,
              "spellId": 136
            },
            {
              "label": "Rank 2",
              "level": 20,
              "spellId": 3111
            },
            {
              "label": "Rank 3",
              "level": 28,
              "spellId": 3661
            },
            {
              "label": "Rank 4",
              "level": 36,
              "spellId": 3662
            },
            {
              "label": "Rank 5",
              "level": 44,
              "spellId": 13542
            },
            {
              "label": "Rank 6",
              "level": 52,
              "spellId": 13543
            },
            {
              "label": "Rank 7",
              "level": 60,
              "spellId": 13544
            }
          ]
        },
        {
          "name": "Mine!",
          "icon": "spell_nature_natureswrath",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Pet: Bird of Prey",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 1265054
            },
            {
              "label": "Rank 2",
              "level": 20,
              "spellId": 1265055
            },
            {
              "label": "Rank 3",
              "level": 30,
              "spellId": 1265056
            },
            {
              "label": "Rank 4",
              "level": 40,
              "spellId": 1265057
            },
            {
              "label": "Rank 5",
              "level": 50,
              "spellId": 1265058
            }
          ]
        },
        {
          "name": "Mongoose Bite",
          "icon": "ability_hunter_swiftstrike",
          "category": "class_ability",
          "tabs": [
            "Survival"
          ],
          "level": 16,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 16,
              "spellId": 1495
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 14269
            },
            {
              "label": "Rank 3",
              "level": 44,
              "spellId": 14270
            },
            {
              "label": "Rank 4",
              "level": 58,
              "spellId": 14271
            }
          ]
        },
        {
          "name": "Multi-Shot",
          "icon": "ability_upgrademoonglaive",
          "category": "class_ability",
          "tabs": [
            "Marksmanship"
          ],
          "level": 18,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 18,
              "spellId": 2643
            }
          ]
        },
        {
          "name": "Natural Armor",
          "icon": "spell_nature_spiritarmor",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 24545
            },
            {
              "label": "Rank 2",
              "level": 12,
              "spellId": 24549
            },
            {
              "label": "Rank 3",
              "level": 18,
              "spellId": 24550
            },
            {
              "label": "Rank 4",
              "level": 24,
              "spellId": 24551
            },
            {
              "label": "Rank 5",
              "level": 30,
              "spellId": 24552
            },
            {
              "label": "Rank 6",
              "level": 36,
              "spellId": 24553
            },
            {
              "label": "Rank 7",
              "level": 42,
              "spellId": 24554
            },
            {
              "label": "Rank 8",
              "level": 48,
              "spellId": 24555
            },
            {
              "label": "Rank 9",
              "level": 54,
              "spellId": 24629
            },
            {
              "label": "Rank 10",
              "level": 60,
              "spellId": 24630
            }
          ]
        },
        {
          "name": "Nature Resistance",
          "icon": "spell_nature_resistnature",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 24492
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 24502
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 24503
            },
            {
              "label": "Rank 4",
              "level": 50,
              "spellId": 24504
            }
          ]
        },
        {
          "name": "Pinch",
          "icon": "ability_hunter_pet_crab",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Pet: Crab",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 12,
              "spellId": 1264735
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 1264736
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 1264739
            },
            {
              "label": "Rank 4",
              "level": 48,
              "spellId": 1264741
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 1264742
            }
          ]
        },
        {
          "name": "Prowl",
          "icon": "ability_druid_supriseattack",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Pet: Cat",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 24450
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 24452
            },
            {
              "label": "Rank 3",
              "level": 50,
              "spellId": 24453
            }
          ]
        },
        {
          "name": "Rapid Fire",
          "icon": "ability_hunter_runningshot",
          "category": "class_ability",
          "tabs": [
            "Marksmanship"
          ],
          "level": 26,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 26,
              "spellId": 3045
            }
          ]
        },
        {
          "name": "Raptor Strike",
          "icon": "ability_meleedamage",
          "category": "class_ability",
          "tabs": [
            "Survival"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 2973
            },
            {
              "label": "Rank 2",
              "level": 8,
              "spellId": 14260
            },
            {
              "label": "Rank 3",
              "level": 16,
              "spellId": 14261
            },
            {
              "label": "Rank 4",
              "level": 24,
              "spellId": 14262
            },
            {
              "label": "Rank 5",
              "level": 32,
              "spellId": 14263
            },
            {
              "label": "Rank 6",
              "level": 40,
              "spellId": 14264
            },
            {
              "label": "Rank 7",
              "level": 48,
              "spellId": 14265
            },
            {
              "label": "Rank 8",
              "level": 56,
              "spellId": 14266
            }
          ]
        },
        {
          "name": "Revive Pet",
          "icon": "ability_hunter_beastsoothe",
          "category": "class_ability",
          "tabs": [
            "Beast Mastery"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 10,
              "spellId": 982
            }
          ]
        },
        {
          "name": "Savage Rend",
          "icon": "ability_hunter_pet_raptor",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Pet: Raptor",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 12,
              "spellId": 1265065
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 1265066
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 1265067
            },
            {
              "label": "Rank 4",
              "level": 48,
              "spellId": 1265068
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 1265069
            }
          ]
        },
        {
          "name": "Scare Beast",
          "icon": "ability_druid_cower",
          "category": "class_ability",
          "tabs": [
            "Beast Mastery"
          ],
          "level": 14,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 14,
              "spellId": 1513
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 14326
            },
            {
              "label": "Rank 3",
              "level": 46,
              "spellId": 14327
            }
          ]
        },
        {
          "name": "Scatter Shot",
          "icon": "ability_golemstormbolt",
          "category": "talent_ability",
          "tabs": [
            "Marksmanship"
          ],
          "level": 30,
          "talent": "Scatter Shot",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 19503
            }
          ]
        },
        {
          "name": "Scorpid Poison",
          "icon": "ability_poisonsting",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 8,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Pet: Scorpid",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 8,
              "spellId": 24640
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 24583
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 24586
            },
            {
              "label": "Rank 4",
              "level": 56,
              "spellId": 24587
            }
          ]
        },
        {
          "name": "Scorpid Sting",
          "icon": "ability_hunter_criticalshot",
          "category": "class_ability",
          "tabs": [
            "Marksmanship"
          ],
          "level": 22,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 22,
              "spellId": 3043
            }
          ]
        },
        {
          "name": "Serpent Sting",
          "icon": "ability_hunter_quickshot",
          "category": "class_ability",
          "tabs": [
            "Marksmanship"
          ],
          "level": 4,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 4,
              "spellId": 1978
            },
            {
              "label": "Rank 2",
              "level": 10,
              "spellId": 13549
            },
            {
              "label": "Rank 3",
              "level": 18,
              "spellId": 13550
            },
            {
              "label": "Rank 4",
              "level": 26,
              "spellId": 13551
            },
            {
              "label": "Rank 5",
              "level": 34,
              "spellId": 13552
            },
            {
              "label": "Rank 6",
              "level": 42,
              "spellId": 13553
            },
            {
              "label": "Rank 7",
              "level": 50,
              "spellId": 13554
            },
            {
              "label": "Rank 8",
              "level": 58,
              "spellId": 13555
            },
            {
              "label": "Rank 9",
              "level": 60,
              "spellId": 25295
            }
          ]
        },
        {
          "name": "Shadow Resistance",
          "icon": "spell_shadow_antishadow",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 24488
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 24505
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 24506
            },
            {
              "label": "Rank 4",
              "level": 40,
              "spellId": 24507
            }
          ]
        },
        {
          "name": "Shell Shield",
          "icon": "ability_hunter_pet_turtle",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Pet: Turtle",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 26064
            }
          ]
        },
        {
          "name": "Sniper Shot",
          "icon": "hunter_pvp_snipershot",
          "category": "talent_ability",
          "tabs": [
            "Marksmanship"
          ],
          "level": 40,
          "talent": "Sniper Shot",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 40,
              "spellId": 1310687
            },
            {
              "label": "Rank 2",
              "level": 48,
              "spellId": 1310785
            },
            {
              "label": "Rank 3",
              "level": 58,
              "spellId": 1310786
            }
          ]
        },
        {
          "name": "Strider Kick",
          "icon": "ability_hunter_pet_tallstrider",
          "category": "talent_ability",
          "tabs": [
            "Survival"
          ],
          "level": 30,
          "talent": "Strider Kick",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 1317257
            }
          ]
        },
        {
          "name": "Summon Hawk",
          "icon": "ability_hunter_animalhandler",
          "category": "talent_ability",
          "tabs": [
            "Beast Mastery"
          ],
          "level": 25,
          "talent": "Summon Hawk",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 25,
              "spellId": 1293241
            },
            {
              "label": "Rank 2",
              "level": 36,
              "spellId": 1293525
            },
            {
              "label": "Rank 3",
              "level": 48,
              "spellId": 1293526
            },
            {
              "label": "Rank 4",
              "level": 60,
              "spellId": 1293527
            }
          ]
        },
        {
          "name": "Swipe",
          "icon": "inv_misc_monsterclaw_03",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Pet: Bear",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 12,
              "spellId": 1264494
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 1264497
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 1264498
            },
            {
              "label": "Rank 4",
              "level": 48,
              "spellId": 1264501
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 1264502
            }
          ]
        },
        {
          "name": "Tame Beast",
          "icon": "ability_hunter_beasttaming",
          "category": "class_ability",
          "tabs": [
            "Beast Mastery"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 10,
              "spellId": 1515
            }
          ]
        },
        {
          "name": "Tendon Rip",
          "icon": "ability_hunter_pet_hyena",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Pet: Hyena",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 12,
              "spellId": 1265038
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 1265039
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 1265040
            },
            {
              "label": "Rank 4",
              "level": 48,
              "spellId": 1265041
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 1265042
            }
          ]
        },
        {
          "name": "Thunderstomp",
          "icon": "ability_hunter_pet_gorilla",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Pet: Gorilla",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 26090
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 26187
            },
            {
              "label": "Rank 3",
              "level": 50,
              "spellId": 26188
            },
            {
              "label": "Rank 4",
              "level": 60,
              "spellId": 1264455
            }
          ]
        },
        {
          "name": "Track Beasts",
          "icon": "ability_tracking",
          "category": "class_ability",
          "tabs": [
            "Survival"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 1,
              "spellId": 1494
            }
          ]
        },
        {
          "name": "Track Demons",
          "icon": "spell_shadow_summonfelhunter",
          "category": "class_ability",
          "tabs": [
            "Survival"
          ],
          "level": 32,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 32,
              "spellId": 19878
            }
          ]
        },
        {
          "name": "Track Dragonkin",
          "icon": "inv_misc_head_dragon_01",
          "category": "class_ability",
          "tabs": [
            "Survival"
          ],
          "level": 50,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 50,
              "spellId": 19879
            }
          ]
        },
        {
          "name": "Track Elementals",
          "icon": "spell_frost_summonwaterelemental",
          "category": "class_ability",
          "tabs": [
            "Survival"
          ],
          "level": 26,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 26,
              "spellId": 19880
            }
          ]
        },
        {
          "name": "Track Giants",
          "icon": "ability_racial_avatar",
          "category": "class_ability",
          "tabs": [
            "Survival"
          ],
          "level": 40,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 40,
              "spellId": 19882
            }
          ]
        },
        {
          "name": "Track Hidden",
          "icon": "ability_stealth",
          "category": "class_ability",
          "tabs": [
            "Survival"
          ],
          "level": 24,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 24,
              "spellId": 19885
            }
          ]
        },
        {
          "name": "Track Humanoids",
          "icon": "spell_holy_prayerofhealing",
          "category": "class_ability",
          "tabs": [
            "Survival"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 10,
              "spellId": 19883
            }
          ]
        },
        {
          "name": "Track Undead",
          "icon": "spell_shadow_darksummoning",
          "category": "class_ability",
          "tabs": [
            "Survival"
          ],
          "level": 18,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 18,
              "spellId": 19884
            }
          ]
        },
        {
          "name": "Tranquilizing Shot",
          "icon": "spell_nature_drowsy",
          "category": "class_ability",
          "tabs": [
            "Beast Mastery"
          ],
          "level": 60,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 60,
              "spellId": 19801
            }
          ]
        },
        {
          "name": "Trickster's Dance",
          "icon": "ability_hunter_aspectofthefox",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Pet: Fox",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 1310612
            }
          ]
        },
        {
          "name": "Trueshot Aura",
          "icon": "ability_trueshot",
          "category": "talent_ability",
          "tabs": [
            "Marksmanship"
          ],
          "level": 25,
          "talent": "Trueshot Aura",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 25,
              "spellId": 1299346
            },
            {
              "label": "Rank 2",
              "level": 32,
              "spellId": 1299348
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 19506
            },
            {
              "label": "Rank 4",
              "level": 50,
              "spellId": 20905
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 20906
            }
          ]
        },
        {
          "name": "Viper Sting",
          "icon": "ability_hunter_aimedshot",
          "category": "class_ability",
          "tabs": [
            "Marksmanship"
          ],
          "level": 36,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 36,
              "spellId": 3034
            },
            {
              "label": "Rank 2",
              "level": 46,
              "spellId": 14279
            },
            {
              "label": "Rank 3",
              "level": 56,
              "spellId": 14280
            }
          ]
        },
        {
          "name": "Volley",
          "icon": "ability_marksmanship",
          "category": "class_ability",
          "tabs": [
            "Marksmanship"
          ],
          "level": 40,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 40,
              "spellId": 1510
            },
            {
              "label": "Rank 2",
              "level": 50,
              "spellId": 14294
            },
            {
              "label": "Rank 3",
              "level": 58,
              "spellId": 14295
            }
          ]
        },
        {
          "name": "Web",
          "icon": "spell_nature_web",
          "category": "companion_ability",
          "tabs": [
            "Pets"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Pet: Spider",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 12,
              "spellId": 1265843
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 1265878
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 1265880
            },
            {
              "label": "Rank 4",
              "level": 48,
              "spellId": 1265881
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 1265883
            }
          ]
        },
        {
          "name": "Wing Clip",
          "icon": "ability_rogue_trip",
          "category": "class_ability",
          "tabs": [
            "Survival"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 12,
              "spellId": 2974
            },
            {
              "label": "Rank 2",
              "level": 38,
              "spellId": 14267
            },
            {
              "label": "Rank 3",
              "level": 60,
              "spellId": 14268
            }
          ]
        }
      ]
    },
    {
      "slug": "mage",
      "name": "Mage",
      "icon": "class_mage",
      "treeIcons": {
        "Arcane": "spell_holy_magicalsentry",
        "Fire": "spell_fire_firebolt02",
        "Frost": "spell_frost_frostbolt02"
      },
      "trees": [
        "Arcane",
        "Fire",
        "Frost"
      ],
      "talents": [
        {
          "name": "Wand Specialization",
          "icon": "inv_wand_01",
          "tree": "Arcane",
          "row": 1,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Arcane Focus",
          "icon": "spell_holy_devotion",
          "tree": "Arcane",
          "row": 1,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Improved Channeling",
          "icon": "spell_nature_starfall",
          "tree": "Arcane",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Arcane Subtlety",
          "icon": "spell_holy_dispelmagic",
          "tree": "Arcane",
          "row": 2,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Magic Absorption",
          "icon": "spell_nature_astralrecalgroup",
          "tree": "Arcane",
          "row": 2,
          "column": 2,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Arcane Concentration",
          "icon": "spell_shadow_manaburn",
          "tree": "Arcane",
          "row": 2,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Arcane Resilience",
          "icon": "spell_arcane_arcaneresilience",
          "tree": "Arcane",
          "row": 2,
          "column": 4,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Arcane Geometry",
          "icon": "inv_ability_mage_radiantspark",
          "tree": "Arcane",
          "row": 3,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Arcane Impact",
          "icon": "spell_nature_wispsplode",
          "tree": "Arcane",
          "row": 3,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Arcane Blast",
          "icon": "spell_arcane_blast",
          "tree": "Arcane",
          "row": 3,
          "column": 4,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Arcane Shielding",
          "icon": "spell_shadow_detectlesserinvisibility",
          "tree": "Arcane",
          "row": 4,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Improved Counterspell",
          "icon": "spell_frost_iceshock",
          "tree": "Arcane",
          "row": 4,
          "column": 2,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Arcane Meditation",
          "icon": "spell_shadow_siphonmana",
          "tree": "Arcane",
          "row": 4,
          "column": 3,
          "maxRank": 3,
          "prerequisite": {
            "name": "Arcane Concentration",
            "rank": 5
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Missile Barrage",
          "icon": "ability_mage_missilebarrage",
          "tree": "Arcane",
          "row": 4,
          "column": 4,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Presence of Mind",
          "icon": "spell_nature_enchantarmor",
          "tree": "Arcane",
          "row": 5,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Arcane Mind",
          "icon": "spell_shadow_charm",
          "tree": "Arcane",
          "row": 5,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Arcane Instability",
          "icon": "spell_shadow_teleport",
          "tree": "Arcane",
          "row": 6,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Arcane Power",
          "icon": "spell_nature_lightning",
          "tree": "Arcane",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Presence of Mind",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        },
        {
          "name": "Wake of Fire",
          "icon": "spell_fire_lavaspawn",
          "tree": "Fire",
          "row": 1,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Incineration",
          "icon": "spell_fire_flameshock",
          "tree": "Fire",
          "row": 1,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Improved Fireball",
          "icon": "spell_fire_flamebolt",
          "tree": "Fire",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Ignite",
          "icon": "spell_fire_incinerate",
          "tree": "Fire",
          "row": 2,
          "column": 1,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Flame Throwing",
          "icon": "spell_fire_flare",
          "tree": "Fire",
          "row": 2,
          "column": 2,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Impact",
          "icon": "spell_fire_meteorstorm",
          "tree": "Fire",
          "row": 2,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Burning Soul",
          "icon": "spell_fire_fire",
          "tree": "Fire",
          "row": 3,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Improved Flamestrike",
          "icon": "spell_fire_selfdestruct",
          "tree": "Fire",
          "row": 3,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Pyroblast",
          "icon": "spell_fire_fireball02",
          "tree": "Fire",
          "row": 3,
          "column": 3,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Improved Scorch",
          "icon": "spell_fire_windsofwoe",
          "tree": "Fire",
          "row": 4,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Improved Fire Ward",
          "icon": "spell_fire_firearmor",
          "tree": "Fire",
          "row": 4,
          "column": 2,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Hot Streak",
          "icon": "ability_mage_hotstreak",
          "tree": "Fire",
          "row": 4,
          "column": 3,
          "maxRank": 1,
          "prerequisite": {
            "name": "Pyroblast",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Master of Elements",
          "icon": "spell_fire_masterofelements",
          "tree": "Fire",
          "row": 4,
          "column": 4,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Critical Mass",
          "icon": "spell_nature_wispheal",
          "tree": "Fire",
          "row": 5,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Blast Wave",
          "icon": "spell_holy_excorcism_02",
          "tree": "Fire",
          "row": 5,
          "column": 3,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Fire Power",
          "icon": "spell_fire_immolation",
          "tree": "Fire",
          "row": 6,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Combustion",
          "icon": "spell_fire_sealoffire",
          "tree": "Fire",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Critical Mass",
            "rank": 3
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        },
        {
          "name": "Frost Warding",
          "icon": "spell_frost_frostward",
          "tree": "Frost",
          "row": 1,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Improved Frostbolt",
          "icon": "spell_frost_frostbolt02",
          "tree": "Frost",
          "row": 1,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Elemental Precision",
          "icon": "spell_ice_magicdamage",
          "tree": "Frost",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Ice Shards",
          "icon": "spell_frost_iceshard",
          "tree": "Frost",
          "row": 2,
          "column": 1,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Permafrost",
          "icon": "spell_frost_wisp",
          "tree": "Frost",
          "row": 2,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Frost Nova",
          "icon": "spell_frost_freezingbreath",
          "tree": "Frost",
          "row": 2,
          "column": 3,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Frostbite",
          "icon": "spell_frost_frostarmor",
          "tree": "Frost",
          "row": 2,
          "column": 4,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Piercing Ice",
          "icon": "spell_frost_frostbolt",
          "tree": "Frost",
          "row": 3,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Frost Channeling",
          "icon": "spell_frost_stun",
          "tree": "Frost",
          "row": 3,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Ice Lance",
          "icon": "spell_frost_frostblast",
          "tree": "Frost",
          "row": 3,
          "column": 3,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Improved Blizzard",
          "icon": "spell_frost_icestorm",
          "tree": "Frost",
          "row": 3,
          "column": 4,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Arctic Reach",
          "icon": "spell_shadow_darkritual",
          "tree": "Frost",
          "row": 4,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Ice Block",
          "icon": "spell_frost_frost",
          "tree": "Frost",
          "row": 4,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Shatter",
          "icon": "spell_frost_frostshock",
          "tree": "Frost",
          "row": 4,
          "column": 4,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Improved Cone of Cold",
          "icon": "spell_frost_glacier",
          "tree": "Frost",
          "row": 5,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Cold Snap",
          "icon": "spell_frost_wizardmark",
          "tree": "Frost",
          "row": 5,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Fingers of Frost",
          "icon": "ability_mage_wintersgrasp",
          "tree": "Frost",
          "row": 5,
          "column": 3,
          "maxRank": 2,
          "prerequisite": {
            "name": "Ice Lance",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Winter's Chill",
          "icon": "spell_frost_chillingblast",
          "tree": "Frost",
          "row": 6,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Ice Barrier",
          "icon": "spell_ice_lament",
          "tree": "Frost",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Cold Snap",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        }
      ],
      "abilities": [
        {
          "name": "Amplify Magic",
          "icon": "spell_holy_flashheal",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 18,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 18,
              "spellId": 1008
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 8455
            },
            {
              "label": "Rank 3",
              "level": 42,
              "spellId": 10169
            },
            {
              "label": "Rank 4",
              "level": 54,
              "spellId": 10170
            }
          ]
        },
        {
          "name": "Arcane Blast",
          "icon": "spell_arcane_blast",
          "category": "talent_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 20,
          "talent": "Arcane Blast",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 400574
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 1239696
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 1239697
            },
            {
              "label": "Rank 4",
              "level": 50,
              "spellId": 1239699
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 1239700
            }
          ]
        },
        {
          "name": "Arcane Brilliance",
          "icon": "spell_holy_arcaneintellect",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 56,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Arcane Powder",
            "Requires a tome, quest or drop; confirm acquisition."
          ],
          "ranks": [
            {
              "label": null,
              "level": 56,
              "spellId": 23028
            }
          ]
        },
        {
          "name": "Arcane Explosion",
          "icon": "spell_nature_wispsplode",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 14,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 14,
              "spellId": 1449
            },
            {
              "label": "Rank 2",
              "level": 22,
              "spellId": 8437
            },
            {
              "label": "Rank 3",
              "level": 30,
              "spellId": 8438
            },
            {
              "label": "Rank 4",
              "level": 38,
              "spellId": 8439
            },
            {
              "label": "Rank 5",
              "level": 46,
              "spellId": 10201
            },
            {
              "label": "Rank 6",
              "level": 54,
              "spellId": 10202
            }
          ]
        },
        {
          "name": "Arcane Intellect",
          "icon": "spell_holy_magicalsentry",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 1459
            },
            {
              "label": "Rank 2",
              "level": 14,
              "spellId": 1460
            },
            {
              "label": "Rank 3",
              "level": 28,
              "spellId": 1461
            },
            {
              "label": "Rank 4",
              "level": 42,
              "spellId": 10156
            },
            {
              "label": "Rank 5",
              "level": 56,
              "spellId": 10157
            }
          ]
        },
        {
          "name": "Arcane Missiles",
          "icon": "spell_nature_starfall",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 8,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Rank 8 (level 56): Requires a tome, quest or drop; confirm acquisition."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 8,
              "spellId": 5143
            },
            {
              "label": "Rank 2",
              "level": 16,
              "spellId": 5144
            },
            {
              "label": "Rank 3",
              "level": 24,
              "spellId": 5145
            },
            {
              "label": "Rank 4",
              "level": 32,
              "spellId": 8416
            },
            {
              "label": "Rank 5",
              "level": 40,
              "spellId": 8417
            },
            {
              "label": "Rank 6",
              "level": 48,
              "spellId": 10211
            },
            {
              "label": "Rank 7",
              "level": 56,
              "spellId": 10212
            },
            {
              "label": "Rank 8",
              "level": 56,
              "spellId": 25345
            }
          ]
        },
        {
          "name": "Arcane Power",
          "icon": "spell_nature_lightning",
          "category": "talent_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 40,
          "talent": "Arcane Power",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 40,
              "spellId": 12042
            }
          ]
        },
        {
          "name": "Blast Wave",
          "icon": "spell_holy_excorcism_02",
          "category": "talent_ability",
          "tabs": [
            "Fire"
          ],
          "level": 30,
          "talent": "Blast Wave",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 11113
            },
            {
              "label": "Rank 2",
              "level": 36,
              "spellId": 13018
            },
            {
              "label": "Rank 3",
              "level": 44,
              "spellId": 13019
            },
            {
              "label": "Rank 4",
              "level": 52,
              "spellId": 13020
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 13021
            }
          ]
        },
        {
          "name": "Blink",
          "icon": "spell_arcane_blink",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 1953
            }
          ]
        },
        {
          "name": "Blizzard",
          "icon": "spell_frost_icestorm",
          "category": "class_ability",
          "tabs": [
            "Frost"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 10
            },
            {
              "label": "Rank 2",
              "level": 28,
              "spellId": 6141
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 8427
            },
            {
              "label": "Rank 4",
              "level": 44,
              "spellId": 10185
            },
            {
              "label": "Rank 5",
              "level": 52,
              "spellId": 10186
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 10187
            }
          ]
        },
        {
          "name": "Cold Snap",
          "icon": "spell_frost_wizardmark",
          "category": "talent_ability",
          "tabs": [
            "Frost"
          ],
          "level": 30,
          "talent": "Cold Snap",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 12472
            }
          ]
        },
        {
          "name": "Combustion",
          "icon": "spell_fire_sealoffire",
          "category": "talent_ability",
          "tabs": [
            "Fire"
          ],
          "level": 40,
          "talent": "Combustion",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 40,
              "spellId": 11129
            }
          ]
        },
        {
          "name": "Cone of Cold",
          "icon": "spell_frost_glacier",
          "category": "class_ability",
          "tabs": [
            "Frost"
          ],
          "level": 26,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 26,
              "spellId": 120
            },
            {
              "label": "Rank 2",
              "level": 34,
              "spellId": 8492
            },
            {
              "label": "Rank 3",
              "level": 42,
              "spellId": 10159
            },
            {
              "label": "Rank 4",
              "level": 50,
              "spellId": 10160
            },
            {
              "label": "Rank 5",
              "level": 58,
              "spellId": 10161
            }
          ]
        },
        {
          "name": "Conjure Food",
          "icon": "inv_misc_food_10",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 6,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Rank 7 (level 60): Requires a tome, quest or drop; confirm acquisition."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 6,
              "spellId": 587
            },
            {
              "label": "Rank 2",
              "level": 12,
              "spellId": 597
            },
            {
              "label": "Rank 3",
              "level": 22,
              "spellId": 990
            },
            {
              "label": "Rank 4",
              "level": 32,
              "spellId": 6129
            },
            {
              "label": "Rank 5",
              "level": 42,
              "spellId": 10144
            },
            {
              "label": "Rank 6",
              "level": 52,
              "spellId": 10145
            },
            {
              "label": "Rank 7",
              "level": 60,
              "spellId": 28612
            }
          ]
        },
        {
          "name": "Conjure Mana Agate",
          "icon": "inv_misc_gem_emerald_01",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 28,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 28,
              "spellId": 759
            }
          ]
        },
        {
          "name": "Conjure Mana Citrine",
          "icon": "inv_misc_gem_opal_01",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 48,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 48,
              "spellId": 10053
            }
          ]
        },
        {
          "name": "Conjure Mana Jade",
          "icon": "inv_misc_gem_emerald_02",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 38,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 38,
              "spellId": 3552
            }
          ]
        },
        {
          "name": "Conjure Mana Ruby",
          "icon": "inv_misc_gem_ruby_01",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 58,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 58,
              "spellId": 10054
            }
          ]
        },
        {
          "name": "Conjure Water",
          "icon": "inv_drink_06",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 4,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Rank 7 (level 60): Requires a tome, quest or drop; confirm acquisition."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 4,
              "spellId": 5504
            },
            {
              "label": "Rank 2",
              "level": 10,
              "spellId": 5505
            },
            {
              "label": "Rank 3",
              "level": 20,
              "spellId": 5506
            },
            {
              "label": "Rank 4",
              "level": 30,
              "spellId": 6127
            },
            {
              "label": "Rank 5",
              "level": 40,
              "spellId": 10138
            },
            {
              "label": "Rank 6",
              "level": 50,
              "spellId": 10139
            },
            {
              "label": "Rank 7",
              "level": 60,
              "spellId": 10140
            }
          ]
        },
        {
          "name": "Counterspell",
          "icon": "spell_frost_iceshock",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 24,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 24,
              "spellId": 2139
            }
          ]
        },
        {
          "name": "Dampen Magic",
          "icon": "spell_nature_abolishmagic",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 12,
              "spellId": 604
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 8450
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 8451
            },
            {
              "label": "Rank 4",
              "level": 48,
              "spellId": 10173
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 10174
            }
          ]
        },
        {
          "name": "Evocation",
          "icon": "spell_nature_purge",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 12051
            }
          ]
        },
        {
          "name": "Fire Blast",
          "icon": "spell_fire_fireball",
          "category": "class_ability",
          "tabs": [
            "Fire"
          ],
          "level": 6,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 6,
              "spellId": 2136
            },
            {
              "label": "Rank 2",
              "level": 14,
              "spellId": 2137
            },
            {
              "label": "Rank 3",
              "level": 22,
              "spellId": 2138
            },
            {
              "label": "Rank 4",
              "level": 30,
              "spellId": 8412
            },
            {
              "label": "Rank 5",
              "level": 38,
              "spellId": 8413
            },
            {
              "label": "Rank 6",
              "level": 46,
              "spellId": 10197
            },
            {
              "label": "Rank 7",
              "level": 54,
              "spellId": 10199
            }
          ]
        },
        {
          "name": "Fire Ward",
          "icon": "spell_fire_firearmor",
          "category": "class_ability",
          "tabs": [
            "Fire"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 543
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 8457
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 8458
            },
            {
              "label": "Rank 4",
              "level": 50,
              "spellId": 10223
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 10225
            }
          ]
        },
        {
          "name": "Fireball",
          "icon": "spell_fire_flamebolt",
          "category": "class_ability",
          "tabs": [
            "Fire"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Rank 12 (level 60): Requires a tome, quest or drop; confirm acquisition."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 133
            },
            {
              "label": "Rank 2",
              "level": 6,
              "spellId": 143
            },
            {
              "label": "Rank 3",
              "level": 12,
              "spellId": 145
            },
            {
              "label": "Rank 4",
              "level": 18,
              "spellId": 3140
            },
            {
              "label": "Rank 5",
              "level": 24,
              "spellId": 8400
            },
            {
              "label": "Rank 6",
              "level": 30,
              "spellId": 8401
            },
            {
              "label": "Rank 7",
              "level": 36,
              "spellId": 8402
            },
            {
              "label": "Rank 8",
              "level": 42,
              "spellId": 10148
            },
            {
              "label": "Rank 9",
              "level": 48,
              "spellId": 10149
            },
            {
              "label": "Rank 10",
              "level": 54,
              "spellId": 10150
            },
            {
              "label": "Rank 11",
              "level": 60,
              "spellId": 10151
            },
            {
              "label": "Rank 12",
              "level": 60,
              "spellId": 25306
            }
          ]
        },
        {
          "name": "Flamestrike",
          "icon": "spell_fire_selfdestruct",
          "category": "class_ability",
          "tabs": [
            "Fire"
          ],
          "level": 16,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 16,
              "spellId": 2120
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 2121
            },
            {
              "label": "Rank 3",
              "level": 32,
              "spellId": 8422
            },
            {
              "label": "Rank 4",
              "level": 40,
              "spellId": 8423
            },
            {
              "label": "Rank 5",
              "level": 48,
              "spellId": 10215
            },
            {
              "label": "Rank 6",
              "level": 56,
              "spellId": 10216
            }
          ]
        },
        {
          "name": "Frost Armor",
          "icon": "spell_frost_frostarmor02",
          "category": "class_ability",
          "tabs": [
            "Frost"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 168
            },
            {
              "label": "Rank 2",
              "level": 10,
              "spellId": 7300
            },
            {
              "label": "Rank 3",
              "level": 20,
              "spellId": 7301
            }
          ]
        },
        {
          "name": "Frost Nova",
          "icon": "spell_frost_frostnova",
          "category": "class_ability",
          "tabs": [
            "Frost"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 122
            },
            {
              "label": "Rank 2",
              "level": 26,
              "spellId": 865
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 6131
            },
            {
              "label": "Rank 4",
              "level": 54,
              "spellId": 10230
            }
          ]
        },
        {
          "name": "Frost Ward",
          "icon": "spell_frost_frostward",
          "category": "class_ability",
          "tabs": [
            "Frost"
          ],
          "level": 22,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Rank 5 (level 60): Requires a tome, quest or drop; confirm acquisition."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 22,
              "spellId": 6143
            },
            {
              "label": "Rank 2",
              "level": 32,
              "spellId": 8461
            },
            {
              "label": "Rank 3",
              "level": 42,
              "spellId": 8462
            },
            {
              "label": "Rank 4",
              "level": 52,
              "spellId": 10177
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 28609
            }
          ]
        },
        {
          "name": "Frostbolt",
          "icon": "spell_frost_frostbolt02",
          "category": "class_ability",
          "tabs": [
            "Frost"
          ],
          "level": 4,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Rank 11 (level 60): Requires a tome, quest or drop; confirm acquisition."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 4,
              "spellId": 116
            },
            {
              "label": "Rank 2",
              "level": 8,
              "spellId": 205
            },
            {
              "label": "Rank 3",
              "level": 14,
              "spellId": 837
            },
            {
              "label": "Rank 4",
              "level": 20,
              "spellId": 7322
            },
            {
              "label": "Rank 5",
              "level": 26,
              "spellId": 8406
            },
            {
              "label": "Rank 6",
              "level": 32,
              "spellId": 8407
            },
            {
              "label": "Rank 7",
              "level": 38,
              "spellId": 8408
            },
            {
              "label": "Rank 8",
              "level": 44,
              "spellId": 10179
            },
            {
              "label": "Rank 9",
              "level": 50,
              "spellId": 10180
            },
            {
              "label": "Rank 10",
              "level": 56,
              "spellId": 10181
            },
            {
              "label": "Rank 11",
              "level": 60,
              "spellId": 25304
            }
          ]
        },
        {
          "name": "Frostfire Bolt",
          "icon": "ability_mage_frostfirebolt",
          "category": "class_ability",
          "tabs": [
            "Fire"
          ],
          "level": 40,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 40,
              "spellId": 401502
            },
            {
              "label": "Rank 2",
              "level": 50,
              "spellId": 1237312
            },
            {
              "label": "Rank 3",
              "level": 60,
              "spellId": 1237313
            }
          ]
        },
        {
          "name": "Ice Armor",
          "icon": "spell_frost_frostarmor02",
          "category": "class_ability",
          "tabs": [
            "Frost"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 7302
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 7320
            },
            {
              "label": "Rank 3",
              "level": 50,
              "spellId": 10219
            },
            {
              "label": "Rank 4",
              "level": 60,
              "spellId": 10220
            }
          ]
        },
        {
          "name": "Ice Barrier",
          "icon": "spell_ice_lament",
          "category": "talent_ability",
          "tabs": [
            "Frost"
          ],
          "level": 40,
          "talent": "Ice Barrier",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 40,
              "spellId": 11426
            },
            {
              "label": "Rank 2",
              "level": 46,
              "spellId": 13031
            },
            {
              "label": "Rank 3",
              "level": 52,
              "spellId": 13032
            },
            {
              "label": "Rank 4",
              "level": 58,
              "spellId": 13033
            }
          ]
        },
        {
          "name": "Ice Block",
          "icon": "spell_frost_frost",
          "category": "talent_ability",
          "tabs": [
            "Frost"
          ],
          "level": 25,
          "talent": "Ice Block",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 25,
              "spellId": 11958
            }
          ]
        },
        {
          "name": "Ice Lance",
          "icon": "spell_frost_frostblast",
          "category": "talent_ability",
          "tabs": [
            "Frost"
          ],
          "level": 20,
          "talent": "Ice Lance",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 1312002
            },
            {
              "label": "Rank 2",
              "level": 28,
              "spellId": 400640
            },
            {
              "label": "Rank 3",
              "level": 34,
              "spellId": 1240044
            },
            {
              "label": "Rank 4",
              "level": 42,
              "spellId": 1240045
            },
            {
              "label": "Rank 5",
              "level": 48,
              "spellId": 1240046
            },
            {
              "label": "Rank 6",
              "level": 56,
              "spellId": 1240047
            }
          ]
        },
        {
          "name": "Mage Armor",
          "icon": "spell_magearmor",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 34,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 34,
              "spellId": 6117
            },
            {
              "label": "Rank 2",
              "level": 46,
              "spellId": 22782
            },
            {
              "label": "Rank 3",
              "level": 58,
              "spellId": 22783
            }
          ]
        },
        {
          "name": "Mana Shield",
          "icon": "spell_shadow_detectlesserinvisibility",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 1463
            },
            {
              "label": "Rank 2",
              "level": 28,
              "spellId": 8494
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 8495
            },
            {
              "label": "Rank 4",
              "level": 44,
              "spellId": 10191
            },
            {
              "label": "Rank 5",
              "level": 52,
              "spellId": 10192
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 10193
            }
          ]
        },
        {
          "name": "Polymorph",
          "icon": "spell_nature_polymorph",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 8,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Turtle (level 60), Pig (level 60): Requires a tome, quest or drop; confirm acquisition."
          ],
          "ranks": [
            {
              "label": "Turtle",
              "level": 60,
              "spellId": 28271
            },
            {
              "label": "Pig",
              "level": 60,
              "spellId": 28272
            },
            {
              "label": "Rank 1",
              "level": 8,
              "spellId": 118
            },
            {
              "label": "Rank 2",
              "level": 20,
              "spellId": 12824
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 12825
            },
            {
              "label": "Rank 4",
              "level": 60,
              "spellId": 12826
            }
          ]
        },
        {
          "name": "Portal: Darnassus",
          "icon": "spell_arcane_portaldarnassus",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 50,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Rune of Portals",
            "Requires a portal trainer."
          ],
          "ranks": [
            {
              "label": null,
              "level": 50,
              "spellId": 11419
            }
          ]
        },
        {
          "name": "Portal: Ironforge",
          "icon": "spell_arcane_portalironforge",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 40,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Rune of Portals",
            "Requires a portal trainer."
          ],
          "ranks": [
            {
              "label": null,
              "level": 40,
              "spellId": 11416
            }
          ]
        },
        {
          "name": "Portal: Orgrimmar",
          "icon": "spell_arcane_portalorgrimmar",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 40,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Rune of Portals",
            "Requires a portal trainer."
          ],
          "ranks": [
            {
              "label": null,
              "level": 40,
              "spellId": 11417
            }
          ]
        },
        {
          "name": "Portal: Stormwind",
          "icon": "spell_arcane_portalstormwind",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 40,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Rune of Portals",
            "Requires a portal trainer."
          ],
          "ranks": [
            {
              "label": null,
              "level": 40,
              "spellId": 10059
            }
          ]
        },
        {
          "name": "Portal: Thunder Bluff",
          "icon": "spell_arcane_portalthunderbluff",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 50,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Rune of Portals",
            "Requires a portal trainer."
          ],
          "ranks": [
            {
              "label": null,
              "level": 50,
              "spellId": 11420
            }
          ]
        },
        {
          "name": "Portal: Undercity",
          "icon": "spell_arcane_portalundercity",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 40,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Rune of Portals",
            "Requires a portal trainer."
          ],
          "ranks": [
            {
              "label": null,
              "level": 40,
              "spellId": 11418
            }
          ]
        },
        {
          "name": "Presence of Mind",
          "icon": "spell_nature_enchantarmor",
          "category": "talent_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 30,
          "talent": "Presence of Mind",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 12043
            }
          ]
        },
        {
          "name": "Pyroblast",
          "icon": "spell_fire_fireball02",
          "category": "talent_ability",
          "tabs": [
            "Fire"
          ],
          "level": 20,
          "talent": "Pyroblast",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 11366
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 12505
            },
            {
              "label": "Rank 3",
              "level": 30,
              "spellId": 12522
            },
            {
              "label": "Rank 4",
              "level": 36,
              "spellId": 12523
            },
            {
              "label": "Rank 5",
              "level": 42,
              "spellId": 12524
            },
            {
              "label": "Rank 6",
              "level": 48,
              "spellId": 12525
            },
            {
              "label": "Rank 7",
              "level": 54,
              "spellId": 12526
            },
            {
              "label": "Rank 8",
              "level": 60,
              "spellId": 18809
            }
          ]
        },
        {
          "name": "Remove Lesser Curse",
          "icon": "spell_nature_removecurse",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 18,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 18,
              "spellId": 475
            }
          ]
        },
        {
          "name": "Scorch",
          "icon": "spell_fire_soulburn",
          "category": "class_ability",
          "tabs": [
            "Fire"
          ],
          "level": 22,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 22,
              "spellId": 2948
            },
            {
              "label": "Rank 2",
              "level": 28,
              "spellId": 8444
            },
            {
              "label": "Rank 3",
              "level": 34,
              "spellId": 8445
            },
            {
              "label": "Rank 4",
              "level": 40,
              "spellId": 8446
            },
            {
              "label": "Rank 5",
              "level": 46,
              "spellId": 10205
            },
            {
              "label": "Rank 6",
              "level": 52,
              "spellId": 10206
            },
            {
              "label": "Rank 7",
              "level": 58,
              "spellId": 10207
            }
          ]
        },
        {
          "name": "Slow Fall",
          "icon": "spell_magic_featherfall",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Light Feather"
          ],
          "ranks": [
            {
              "label": null,
              "level": 12,
              "spellId": 130
            }
          ]
        },
        {
          "name": "Teleport: Dalaran",
          "icon": "spell_arcane_teleporthalloftheguardian",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 50,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Rune of Teleportation",
            "Requires a portal trainer."
          ],
          "ranks": [
            {
              "label": null,
              "level": 50,
              "spellId": 1297659
            }
          ]
        },
        {
          "name": "Teleport: Darnassus",
          "icon": "spell_arcane_teleportdarnassus",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Rune of Teleportation",
            "Requires a portal trainer."
          ],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 3565
            }
          ]
        },
        {
          "name": "Teleport: Ironforge",
          "icon": "spell_arcane_teleportironforge",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Rune of Teleportation",
            "Requires a portal trainer."
          ],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 3562
            }
          ]
        },
        {
          "name": "Teleport: Orgrimmar",
          "icon": "spell_arcane_teleportorgrimmar",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Rune of Teleportation",
            "Requires a portal trainer."
          ],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 3567
            }
          ]
        },
        {
          "name": "Teleport: Stormwind",
          "icon": "spell_arcane_teleportstormwind",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Rune of Teleportation",
            "Requires a portal trainer."
          ],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 3561
            }
          ]
        },
        {
          "name": "Teleport: Thunder Bluff",
          "icon": "spell_arcane_teleportthunderbluff",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Rune of Teleportation",
            "Requires a portal trainer."
          ],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 3566
            }
          ]
        },
        {
          "name": "Teleport: Undercity",
          "icon": "spell_arcane_teleportundercity",
          "category": "class_ability",
          "tabs": [
            "Arcane"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Rune of Teleportation",
            "Requires a portal trainer."
          ],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 3563
            }
          ]
        }
      ]
    },
    {
      "slug": "paladin",
      "name": "Paladin",
      "icon": "class_paladin",
      "treeIcons": {
        "Holy": "spell_holy_holybolt",
        "Protection": "spell_holy_devotionaura",
        "Retribution": "spell_holy_auraoflight"
      },
      "trees": [
        "Holy",
        "Protection",
        "Retribution"
      ],
      "talents": [
        {
          "name": "Divine Strength",
          "icon": "ability_golemthunderclap",
          "tree": "Holy",
          "row": 1,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Divine Intellect",
          "icon": "spell_nature_sleep",
          "tree": "Holy",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Healing Light",
          "icon": "spell_holy_holybolt",
          "tree": "Holy",
          "row": 2,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Spiritual Focus",
          "icon": "spell_arcane_blink",
          "tree": "Holy",
          "row": 2,
          "column": 2,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Seals",
          "icon": "ability_thunderbolt",
          "tree": "Holy",
          "row": 2,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Unyielding Faith",
          "icon": "spell_holy_unyieldingfaith",
          "tree": "Holy",
          "row": 2,
          "column": 4,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Voice of Truth",
          "icon": "inv_misc_horn_03",
          "tree": "Holy",
          "row": 3,
          "column": 1,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Reverence",
          "icon": "spell_holy_divineillumination",
          "tree": "Holy",
          "row": 3,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Purifying Power",
          "icon": "spell_holy_purifyingpower",
          "tree": "Holy",
          "row": 3,
          "column": 3,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Infusion of Light",
          "icon": "ability_paladin_infusionoflight",
          "tree": "Holy",
          "row": 4,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Illumination",
          "icon": "spell_holy_greaterheal",
          "tree": "Holy",
          "row": 4,
          "column": 2,
          "maxRank": 5,
          "prerequisite": {
            "name": "Reverence",
            "rank": 3
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Divine Favor",
          "icon": "spell_holy_heal",
          "tree": "Holy",
          "row": 4,
          "column": 3,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Divine Precision",
          "icon": "spell_holy_healingfocus",
          "tree": "Holy",
          "row": 5,
          "column": 1,
          "maxRank": 3,
          "prerequisite": {
            "name": "Holy Shock",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 31
        },
        {
          "name": "Holy Shock",
          "icon": "spell_holy_searinglight",
          "tree": "Holy",
          "row": 5,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Consecrated Ground",
          "icon": "spell_holy_innerfire",
          "tree": "Holy",
          "row": 5,
          "column": 3,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Holy Power",
          "icon": "spell_holy_power",
          "tree": "Holy",
          "row": 6,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Light's Vigil",
          "icon": "ability_paladin_judgementofthepure",
          "tree": "Holy",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Holy Shock",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        },
        {
          "name": "Toughness",
          "icon": "spell_holy_devotion",
          "tree": "Protection",
          "row": 1,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Redoubt",
          "icon": "ability_defend",
          "tree": "Protection",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Precision",
          "icon": "ability_rogue_ambush",
          "tree": "Protection",
          "row": 2,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Guardian's Favor",
          "icon": "spell_holy_sealofprotection",
          "tree": "Protection",
          "row": 2,
          "column": 2,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Anticipation",
          "icon": "spell_magic_lesserinvisibilty",
          "tree": "Protection",
          "row": 2,
          "column": 4,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Seal of Fury",
          "icon": "spell_holy_righteousnessaura",
          "tree": "Protection",
          "row": 3,
          "column": 1,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Improved Righteous Fury",
          "icon": "spell_holy_sealoffury",
          "tree": "Protection",
          "row": 3,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Shield Specialization",
          "icon": "inv_shield_06",
          "tree": "Protection",
          "row": 3,
          "column": 3,
          "maxRank": 3,
          "prerequisite": {
            "name": "Redoubt",
            "rank": 5
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Sacred Duty",
          "icon": "spell_holy_divineintervention",
          "tree": "Protection",
          "row": 3,
          "column": 4,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Swift Judgement",
          "icon": "ability_paladin_judgementred",
          "tree": "Protection",
          "row": 4,
          "column": 1,
          "maxRank": 1,
          "prerequisite": {
            "name": "Improved Seal of Fury",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "One-Handed Weapon Specialization",
          "icon": "inv_sword_20",
          "tree": "Protection",
          "row": 4,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Improved Hammer of Justice",
          "icon": "spell_holy_sealofmight",
          "tree": "Protection",
          "row": 4,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Templar's Bulwark",
          "icon": "ability_paladin_shieldofthetemplar",
          "tree": "Protection",
          "row": 5,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Reckoning",
          "icon": "spell_holy_blessingofstrength",
          "tree": "Protection",
          "row": 5,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Iron Creed",
          "icon": "spell_holy_improvedresistanceauras",
          "tree": "Protection",
          "row": 6,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Holy Shield",
          "icon": "spell_holy_blessingofprotection",
          "tree": "Protection",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Templar's Bulwark",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        },
        {
          "name": "Deflection",
          "icon": "ability_parry",
          "tree": "Retribution",
          "row": 1,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Benediction",
          "icon": "spell_frost_windwalkon",
          "tree": "Retribution",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Improved Judgement",
          "icon": "spell_holy_righteousfury",
          "tree": "Retribution",
          "row": 2,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Holy Conduit",
          "icon": "spell_holy_devineaegis",
          "tree": "Retribution",
          "row": 2,
          "column": 2,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Conviction",
          "icon": "spell_holy_retributionaura",
          "tree": "Retribution",
          "row": 2,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Vindication",
          "icon": "spell_holy_vindication",
          "tree": "Retribution",
          "row": 3,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Sanctified Judgement",
          "icon": "ability_paladin_judgementblue",
          "tree": "Retribution",
          "row": 3,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Seal of Command",
          "icon": "ability_warrior_innerrage",
          "tree": "Retribution",
          "row": 3,
          "column": 3,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Pursuit of Justice",
          "icon": "spell_holy_persuitofjustice",
          "tree": "Retribution",
          "row": 3,
          "column": 4,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Eye for an Eye",
          "icon": "spell_holy_eyeforaneye",
          "tree": "Retribution",
          "row": 4,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Sacred Arbiter",
          "icon": "inv_sword_08",
          "tree": "Retribution",
          "row": 4,
          "column": 3,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Two-Handed Weapon Specialization",
          "icon": "inv_hammer_04",
          "tree": "Retribution",
          "row": 5,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Vengeance",
          "icon": "ability_racial_avatar",
          "tree": "Retribution",
          "row": 5,
          "column": 2,
          "maxRank": 3,
          "prerequisite": {
            "name": "Sanctified Judgement",
            "rank": 3
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Repentance",
          "icon": "spell_holy_prayerofhealing",
          "tree": "Retribution",
          "row": 5,
          "column": 3,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Champion of the Light",
          "icon": "ability_paladin_enlightenedjudgements",
          "tree": "Retribution",
          "row": 6,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Instrument of Law",
          "icon": "spell_holy_divinepurpose",
          "tree": "Retribution",
          "row": 6,
          "column": 3,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Twist of Light",
          "icon": "spell_holy_blessedresillience",
          "tree": "Retribution",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        }
      ],
      "abilities": [
        {
          "name": "Blessing of Freedom",
          "icon": "spell_holy_sealofvalor",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 18,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 18,
              "spellId": 1044
            }
          ]
        },
        {
          "name": "Blessing of Kings",
          "icon": "spell_magic_magearmor",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 20217
            }
          ]
        },
        {
          "name": "Blessing of Light",
          "icon": "spell_holy_prayerofhealing02",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 40,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 40,
              "spellId": 19977
            },
            {
              "label": "Rank 2",
              "level": 50,
              "spellId": 19978
            },
            {
              "label": "Rank 3",
              "level": 60,
              "spellId": 19979
            }
          ]
        },
        {
          "name": "Blessing of Might",
          "icon": "spell_holy_fistofjustice",
          "category": "class_ability",
          "tabs": [
            "Retribution"
          ],
          "level": 4,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 4,
              "spellId": 19740
            },
            {
              "label": "Rank 2",
              "level": 12,
              "spellId": 19834
            },
            {
              "label": "Rank 3",
              "level": 22,
              "spellId": 19835
            },
            {
              "label": "Rank 4",
              "level": 32,
              "spellId": 19836
            },
            {
              "label": "Rank 5",
              "level": 42,
              "spellId": 19837
            },
            {
              "label": "Rank 6",
              "level": 52,
              "spellId": 19838
            },
            {
              "label": "Rank 7",
              "level": 60,
              "spellId": 25291
            }
          ]
        },
        {
          "name": "Blessing of Protection",
          "icon": "spell_holy_sealofprotection",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 1022
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 5599
            },
            {
              "label": "Rank 3",
              "level": 38,
              "spellId": 10278
            }
          ]
        },
        {
          "name": "Blessing of Sacrifice",
          "icon": "spell_holy_sealofsacrifice",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 46,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 46,
              "spellId": 6940
            },
            {
              "label": "Rank 2",
              "level": 54,
              "spellId": 20729
            }
          ]
        },
        {
          "name": "Blessing of Salvation",
          "icon": "spell_holy_sealofsalvation",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 26,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 26,
              "spellId": 1038
            }
          ]
        },
        {
          "name": "Blessing of Wisdom",
          "icon": "spell_holy_sealofwisdom",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 14,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 14,
              "spellId": 19742
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 19850
            },
            {
              "label": "Rank 3",
              "level": 34,
              "spellId": 19852
            },
            {
              "label": "Rank 4",
              "level": 44,
              "spellId": 19853
            },
            {
              "label": "Rank 5",
              "level": 54,
              "spellId": 19854
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 25290
            }
          ]
        },
        {
          "name": "Cleanse",
          "icon": "spell_holy_renew",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 42,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 42,
              "spellId": 4987
            }
          ]
        },
        {
          "name": "Concentration Aura",
          "icon": "spell_holy_mindsooth",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 22,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 22,
              "spellId": 19746
            }
          ]
        },
        {
          "name": "Consecration",
          "icon": "spell_holy_innerfire",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 26573
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 20116
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 20922
            },
            {
              "label": "Rank 4",
              "level": 50,
              "spellId": 20923
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 20924
            }
          ]
        },
        {
          "name": "Devotion Aura",
          "icon": "spell_holy_devotionaura",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 465
            },
            {
              "label": "Rank 2",
              "level": 10,
              "spellId": 10290
            },
            {
              "label": "Rank 3",
              "level": 20,
              "spellId": 643
            },
            {
              "label": "Rank 4",
              "level": 30,
              "spellId": 10291
            },
            {
              "label": "Rank 5",
              "level": 40,
              "spellId": 1032
            },
            {
              "label": "Rank 6",
              "level": 50,
              "spellId": 10292
            },
            {
              "label": "Rank 7",
              "level": 60,
              "spellId": 10293
            }
          ]
        },
        {
          "name": "Divine Favor",
          "icon": "spell_holy_heal",
          "category": "talent_ability",
          "tabs": [
            "Holy"
          ],
          "level": 25,
          "talent": "Divine Favor",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 25,
              "spellId": 20216
            }
          ]
        },
        {
          "name": "Divine Intervention",
          "icon": "spell_nature_timestop",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Symbol of Divinity"
          ],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 19752
            }
          ]
        },
        {
          "name": "Divine Protection",
          "icon": "spell_holy_restoration",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 6,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 6,
              "spellId": 498
            },
            {
              "label": "Rank 2",
              "level": 18,
              "spellId": 5573
            }
          ]
        },
        {
          "name": "Divine Shield",
          "icon": "spell_holy_divineintervention",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 34,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 34,
              "spellId": 642
            },
            {
              "label": "Rank 2",
              "level": 50,
              "spellId": 1020
            }
          ]
        },
        {
          "name": "Exorcism",
          "icon": "spell_holy_excorcism_02",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 879
            },
            {
              "label": "Rank 2",
              "level": 28,
              "spellId": 5614
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 5615
            },
            {
              "label": "Rank 4",
              "level": 44,
              "spellId": 10312
            },
            {
              "label": "Rank 5",
              "level": 52,
              "spellId": 10313
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 10314
            }
          ]
        },
        {
          "name": "Fire Resistance Aura",
          "icon": "spell_fire_sealoffire",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 36,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 36,
              "spellId": 19891
            },
            {
              "label": "Rank 2",
              "level": 48,
              "spellId": 19899
            },
            {
              "label": "Rank 3",
              "level": 60,
              "spellId": 19900
            }
          ]
        },
        {
          "name": "Flash of Light",
          "icon": "spell_holy_flashheal",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 19750
            },
            {
              "label": "Rank 2",
              "level": 26,
              "spellId": 19939
            },
            {
              "label": "Rank 3",
              "level": 34,
              "spellId": 19940
            },
            {
              "label": "Rank 4",
              "level": 42,
              "spellId": 19941
            },
            {
              "label": "Rank 5",
              "level": 50,
              "spellId": 19942
            },
            {
              "label": "Rank 6",
              "level": 58,
              "spellId": 19943
            }
          ]
        },
        {
          "name": "Frost Resistance Aura",
          "icon": "spell_frost_wizardmark",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 32,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 32,
              "spellId": 19888
            },
            {
              "label": "Rank 2",
              "level": 44,
              "spellId": 19897
            },
            {
              "label": "Rank 3",
              "level": 56,
              "spellId": 19898
            }
          ]
        },
        {
          "name": "Greater Blessing of Kings",
          "icon": "spell_magic_greaterblessingofkings",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 60,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Symbol of Kings"
          ],
          "ranks": [
            {
              "label": null,
              "level": 60,
              "spellId": 25898
            }
          ]
        },
        {
          "name": "Greater Blessing of Light",
          "icon": "spell_holy_greaterblessingoflight",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 60,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Symbol of Kings"
          ],
          "ranks": [
            {
              "label": null,
              "level": 60,
              "spellId": 25890
            }
          ]
        },
        {
          "name": "Greater Blessing of Might",
          "icon": "spell_holy_greaterblessingofkings",
          "category": "class_ability",
          "tabs": [
            "Retribution"
          ],
          "level": 52,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Symbol of Kings"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 52,
              "spellId": 25782
            },
            {
              "label": "Rank 2",
              "level": 60,
              "spellId": 25916
            }
          ]
        },
        {
          "name": "Greater Blessing of Salvation",
          "icon": "spell_holy_greaterblessingofsalvation",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 60,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Symbol of Kings"
          ],
          "ranks": [
            {
              "label": null,
              "level": 60,
              "spellId": 25895
            }
          ]
        },
        {
          "name": "Greater Blessing of Wisdom",
          "icon": "spell_holy_greaterblessingofwisdom",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 54,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Symbol of Kings"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 54,
              "spellId": 25894
            },
            {
              "label": "Rank 2",
              "level": 60,
              "spellId": 25918
            }
          ]
        },
        {
          "name": "Hammer of Justice",
          "icon": "spell_holy_sealofmight",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 8,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 8,
              "spellId": 853
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 5588
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 5589
            },
            {
              "label": "Rank 4",
              "level": 54,
              "spellId": 10308
            }
          ]
        },
        {
          "name": "Hammer of Wrath",
          "icon": "ability_thunderclap",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 44,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 44,
              "spellId": 24275
            },
            {
              "label": "Rank 2",
              "level": 52,
              "spellId": 24274
            },
            {
              "label": "Rank 3",
              "level": 60,
              "spellId": 24239
            }
          ]
        },
        {
          "name": "Holy Light",
          "icon": "spell_holy_holybolt",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 635
            },
            {
              "label": "Rank 2",
              "level": 6,
              "spellId": 639
            },
            {
              "label": "Rank 3",
              "level": 14,
              "spellId": 647
            },
            {
              "label": "Rank 4",
              "level": 22,
              "spellId": 1026
            },
            {
              "label": "Rank 5",
              "level": 30,
              "spellId": 1042
            },
            {
              "label": "Rank 6",
              "level": 38,
              "spellId": 3472
            },
            {
              "label": "Rank 7",
              "level": 46,
              "spellId": 10328
            },
            {
              "label": "Rank 8",
              "level": 54,
              "spellId": 10329
            },
            {
              "label": "Rank 9",
              "level": 60,
              "spellId": 25292
            }
          ]
        },
        {
          "name": "Holy Shield",
          "icon": "spell_holy_blessingofprotection",
          "category": "talent_ability",
          "tabs": [
            "Protection"
          ],
          "level": 40,
          "talent": "Holy Shield",
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Requires Shields"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 40,
              "spellId": 20925
            },
            {
              "label": "Rank 2",
              "level": 50,
              "spellId": 20927
            },
            {
              "label": "Rank 3",
              "level": 60,
              "spellId": 20928
            }
          ]
        },
        {
          "name": "Holy Shock",
          "icon": "spell_holy_searinglight",
          "category": "talent_ability",
          "tabs": [
            "Holy"
          ],
          "level": 30,
          "talent": "Holy Shock",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 1311606
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 20473
            },
            {
              "label": "Rank 3",
              "level": 48,
              "spellId": 20929
            },
            {
              "label": "Rank 4",
              "level": 56,
              "spellId": 20930
            }
          ]
        },
        {
          "name": "Holy Strike",
          "icon": "classicon_paladin",
          "category": "class_ability",
          "tabs": [
            "Retribution"
          ],
          "level": 6,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 6,
              "spellId": 679
            },
            {
              "label": "Rank 2",
              "level": 12,
              "spellId": 678
            },
            {
              "label": "Rank 3",
              "level": 20,
              "spellId": 1866
            },
            {
              "label": "Rank 4",
              "level": 28,
              "spellId": 680
            },
            {
              "label": "Rank 5",
              "level": 36,
              "spellId": 2495
            },
            {
              "label": "Rank 6",
              "level": 44,
              "spellId": 5569
            },
            {
              "label": "Rank 7",
              "level": 52,
              "spellId": 10332
            },
            {
              "label": "Rank 8",
              "level": 60,
              "spellId": 10333
            }
          ]
        },
        {
          "name": "Holy Wrath",
          "icon": "spell_holy_excorcism",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 50,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 50,
              "spellId": 2812
            },
            {
              "label": "Rank 2",
              "level": 60,
              "spellId": 10318
            }
          ]
        },
        {
          "name": "Judgement",
          "icon": "spell_holy_righteousfury",
          "category": "class_ability",
          "tabs": [
            "Retribution"
          ],
          "level": 4,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 4,
              "spellId": 20271
            }
          ]
        },
        {
          "name": "Lay on Hands",
          "icon": "spell_holy_layonhands",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 633
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 2800
            },
            {
              "label": "Rank 3",
              "level": 50,
              "spellId": 10310
            }
          ]
        },
        {
          "name": "Light's Vigil",
          "icon": "ability_paladin_judgementofthepure",
          "category": "talent_ability",
          "tabs": [
            "Holy"
          ],
          "level": 40,
          "talent": "Light's Vigil",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 40,
              "spellId": 1310911
            },
            {
              "label": "Rank 2",
              "level": 50,
              "spellId": 1311590
            },
            {
              "label": "Rank 3",
              "level": 60,
              "spellId": 1311595
            }
          ]
        },
        {
          "name": "Purify",
          "icon": "spell_holy_purify",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 8,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 8,
              "spellId": 1152
            }
          ]
        },
        {
          "name": "Redemption",
          "icon": "spell_holy_resurrection",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 12,
              "spellId": 7328
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 10322
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 10324
            },
            {
              "label": "Rank 4",
              "level": 48,
              "spellId": 20772
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 20773
            }
          ]
        },
        {
          "name": "Repentance",
          "icon": "spell_holy_prayerofhealing",
          "category": "talent_ability",
          "tabs": [
            "Retribution"
          ],
          "level": 30,
          "talent": "Repentance",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 20066
            }
          ]
        },
        {
          "name": "Retribution Aura",
          "icon": "spell_holy_auraoflight",
          "category": "class_ability",
          "tabs": [
            "Retribution"
          ],
          "level": 16,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 16,
              "spellId": 7294
            },
            {
              "label": "Rank 2",
              "level": 26,
              "spellId": 10298
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 10299
            },
            {
              "label": "Rank 4",
              "level": 46,
              "spellId": 10300
            },
            {
              "label": "Rank 5",
              "level": 56,
              "spellId": 10301
            }
          ]
        },
        {
          "name": "Righteous Fury",
          "icon": "spell_holy_sealoffury",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 16,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 16,
              "spellId": 25780
            }
          ]
        },
        {
          "name": "Seal of Command",
          "icon": "ability_warrior_innerrage",
          "category": "talent_ability",
          "tabs": [
            "Retribution"
          ],
          "level": 20,
          "talent": "Seal of Command",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 20375
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 20915
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 20918
            },
            {
              "label": "Rank 4",
              "level": 50,
              "spellId": 20919
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 20920
            }
          ]
        },
        {
          "name": "Seal of Fury",
          "icon": "spell_holy_retributionaura",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 1311649
            },
            {
              "label": "Rank 2",
              "level": 18,
              "spellId": 1311656
            },
            {
              "label": "Rank 3",
              "level": 25,
              "spellId": 20163
            },
            {
              "label": "Rank 4",
              "level": 34,
              "spellId": 20419
            },
            {
              "label": "Rank 5",
              "level": 42,
              "spellId": 20421
            },
            {
              "label": "Rank 6",
              "level": 50,
              "spellId": 20422
            },
            {
              "label": "Rank 7",
              "level": 58,
              "spellId": 20423
            }
          ]
        },
        {
          "name": "Seal of Justice",
          "icon": "spell_holy_sealofwrath",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 22,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 22,
              "spellId": 20164
            }
          ]
        },
        {
          "name": "Seal of Light",
          "icon": "spell_holy_healingaura",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 20165
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 20347
            },
            {
              "label": "Rank 3",
              "level": 50,
              "spellId": 20348
            },
            {
              "label": "Rank 4",
              "level": 60,
              "spellId": 20349
            }
          ]
        },
        {
          "name": "Seal of Righteousness",
          "icon": "ability_thunderbolt",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 20154
            },
            {
              "label": "Rank 2",
              "level": 10,
              "spellId": 20287
            },
            {
              "label": "Rank 3",
              "level": 18,
              "spellId": 20288
            },
            {
              "label": "Rank 4",
              "level": 26,
              "spellId": 20289
            },
            {
              "label": "Rank 5",
              "level": 34,
              "spellId": 20290
            },
            {
              "label": "Rank 6",
              "level": 42,
              "spellId": 20291
            },
            {
              "label": "Rank 7",
              "level": 50,
              "spellId": 20292
            },
            {
              "label": "Rank 8",
              "level": 58,
              "spellId": 20293
            }
          ]
        },
        {
          "name": "Seal of Wisdom",
          "icon": "spell_holy_righteousnessaura",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 38,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 38,
              "spellId": 20166
            },
            {
              "label": "Rank 2",
              "level": 48,
              "spellId": 20356
            },
            {
              "label": "Rank 3",
              "level": 58,
              "spellId": 20357
            }
          ]
        },
        {
          "name": "Seal of the Crusader",
          "icon": "spell_holy_holysmite",
          "category": "class_ability",
          "tabs": [
            "Retribution"
          ],
          "level": 6,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 6,
              "spellId": 21082
            },
            {
              "label": "Rank 2",
              "level": 12,
              "spellId": 20162
            },
            {
              "label": "Rank 3",
              "level": 22,
              "spellId": 20305
            },
            {
              "label": "Rank 4",
              "level": 32,
              "spellId": 20306
            },
            {
              "label": "Rank 5",
              "level": 42,
              "spellId": 20307
            },
            {
              "label": "Rank 6",
              "level": 52,
              "spellId": 20308
            }
          ]
        },
        {
          "name": "Sense Undead",
          "icon": "spell_holy_senseundead",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 5502
            }
          ]
        },
        {
          "name": "Shadow Resistance Aura",
          "icon": "spell_shadow_sealofkings",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 28,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 28,
              "spellId": 19876
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 19895
            },
            {
              "label": "Rank 3",
              "level": 52,
              "spellId": 19896
            }
          ]
        },
        {
          "name": "Swift Judgement",
          "icon": "ability_paladin_judgementred",
          "category": "talent_ability",
          "tabs": [
            "Protection"
          ],
          "level": 25,
          "talent": "Swift Judgement",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 25,
              "spellId": 1310994
            }
          ]
        },
        {
          "name": "Templar's Bulwark",
          "icon": "ability_paladin_shieldofthetemplar",
          "category": "talent_ability",
          "tabs": [
            "Protection"
          ],
          "level": 30,
          "talent": "Templar's Bulwark",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 1311015
            }
          ]
        },
        {
          "name": "Turn Undead",
          "icon": "spell_holy_turnundead",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 24,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 24,
              "spellId": 2878
            },
            {
              "label": "Rank 2",
              "level": 38,
              "spellId": 5627
            },
            {
              "label": "Rank 3",
              "level": 52,
              "spellId": 10326
            }
          ]
        },
        {
          "name": "Voice of Truth",
          "icon": "inv_misc_horn_03",
          "category": "talent_ability",
          "tabs": [
            "Holy"
          ],
          "level": 20,
          "talent": "Voice of Truth",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 1310897
            }
          ]
        }
      ]
    },
    {
      "slug": "priest",
      "name": "Priest",
      "icon": "class_priest",
      "treeIcons": {
        "Discipline": "spell_holy_wordfortitude",
        "Holy": "spell_holy_holybolt",
        "Shadow": "spell_shadow_shadowwordpain"
      },
      "trees": [
        "Discipline",
        "Holy",
        "Shadow"
      ],
      "talents": [
        {
          "name": "Power in Light",
          "icon": "spell_holy_searinglight",
          "tree": "Discipline",
          "row": 1,
          "column": 1,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Wand Specialization",
          "icon": "inv_wand_01",
          "tree": "Discipline",
          "row": 1,
          "column": 2,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Twin Disciplines",
          "icon": "spell_holy_sealofvengeance",
          "tree": "Discipline",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Silent Resolve",
          "icon": "spell_nature_manaregentotem",
          "tree": "Discipline",
          "row": 2,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Holy Precision",
          "icon": "spell_holy_divineillumination",
          "tree": "Discipline",
          "row": 2,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Power Word: Shield",
          "icon": "spell_holy_powerwordshield",
          "tree": "Discipline",
          "row": 2,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Martyrdom",
          "icon": "spell_nature_tranquility",
          "tree": "Discipline",
          "row": 2,
          "column": 4,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Mental Agility",
          "icon": "ability_hibernation",
          "tree": "Discipline",
          "row": 3,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Inner Focus",
          "icon": "spell_frost_windwalkon",
          "tree": "Discipline",
          "row": 3,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Meditation",
          "icon": "spell_nature_sleep",
          "tree": "Discipline",
          "row": 3,
          "column": 4,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Improved Inner Fire",
          "icon": "spell_holy_innerfire",
          "tree": "Discipline",
          "row": 4,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Mental Strength",
          "icon": "spell_nature_enchantarmor",
          "tree": "Discipline",
          "row": 4,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Soul Warding",
          "icon": "spell_holy_pureofheart",
          "tree": "Discipline",
          "row": 4,
          "column": 3,
          "maxRank": 1,
          "prerequisite": {
            "name": "Improved Power Word: Shield",
            "rank": 3
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Improved Mana Burn",
          "icon": "spell_shadow_manaburn",
          "tree": "Discipline",
          "row": 4,
          "column": 4,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Penance",
          "icon": "spell_holy_penance",
          "tree": "Discipline",
          "row": 5,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Renewed Hope",
          "icon": "spell_holy_holyprotection",
          "tree": "Discipline",
          "row": 5,
          "column": 3,
          "maxRank": 5,
          "prerequisite": {
            "name": "Soul Warding",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Divine Aegis",
          "icon": "spell_holy_devineaegis",
          "tree": "Discipline",
          "row": 6,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Power Infusion",
          "icon": "spell_holy_powerinfusion",
          "tree": "Discipline",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Penance",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        },
        {
          "name": "Twilight Focus",
          "icon": "spell_holy_healingfocus",
          "tree": "Holy",
          "row": 1,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Improved Renew",
          "icon": "spell_holy_renew",
          "tree": "Holy",
          "row": 1,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Holy Specialization",
          "icon": "spell_holy_sealofsalvation",
          "tree": "Holy",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Spell Warding",
          "icon": "spell_holy_spellwarding",
          "tree": "Holy",
          "row": 2,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Divine Fury",
          "icon": "spell_holy_sealofwrath",
          "tree": "Holy",
          "row": 2,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Holy Nova",
          "icon": "spell_holy_holynova",
          "tree": "Holy",
          "row": 3,
          "column": 1,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Blessed Recovery",
          "icon": "spell_holy_blessedrecovery",
          "tree": "Holy",
          "row": 3,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Inspiration",
          "icon": "spell_holy_layonhands",
          "tree": "Holy",
          "row": 3,
          "column": 4,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Holy Reach",
          "icon": "spell_holy_purify",
          "tree": "Holy",
          "row": 4,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Improved Healing",
          "icon": "spell_holy_heal02",
          "tree": "Holy",
          "row": 4,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Searing Light",
          "icon": "spell_holy_searinglightpriest",
          "tree": "Holy",
          "row": 4,
          "column": 3,
          "maxRank": 2,
          "prerequisite": {
            "name": "Divine Fury",
            "rank": 5
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Binding Heal",
          "icon": "spell_holy_blindingheal",
          "tree": "Holy",
          "row": 4,
          "column": 4,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Litany of Light",
          "icon": "inv_scroll_07",
          "tree": "Holy",
          "row": 5,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Spirit of Redemption",
          "icon": "inv_enchant_essenceeternallarge",
          "tree": "Holy",
          "row": 5,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Spiritual Guidance",
          "icon": "spell_holy_spiritualguidence",
          "tree": "Holy",
          "row": 5,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Spiritual Healing",
          "icon": "spell_nature_moonglow",
          "tree": "Holy",
          "row": 6,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Prayer of Mending",
          "icon": "spell_holy_prayerofmendingtga",
          "tree": "Holy",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Spirit of Redemption",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        },
        {
          "name": "Shadow Focus",
          "icon": "spell_shadow_burningspirit",
          "tree": "Shadow",
          "row": 1,
          "column": 1,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Blackout",
          "icon": "spell_shadow_gathershadows",
          "tree": "Shadow",
          "row": 1,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Spirit Tap",
          "icon": "spell_shadow_requiem",
          "tree": "Shadow",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Shadow Affinity",
          "icon": "spell_shadow_shadowward",
          "tree": "Shadow",
          "row": 2,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Shadow Word: Pain",
          "icon": "spell_shadow_shadowwordpain",
          "tree": "Shadow",
          "row": 2,
          "column": 3,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Shadow Reach",
          "icon": "spell_shadow_chilltouch",
          "tree": "Shadow",
          "row": 2,
          "column": 4,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Mind Blast",
          "icon": "spell_shadow_unholyfrenzy",
          "tree": "Shadow",
          "row": 3,
          "column": 1,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Improved Psychic Scream",
          "icon": "spell_shadow_psychicscream",
          "tree": "Shadow",
          "row": 3,
          "column": 2,
          "maxRank": 2,
          "prerequisite": {
            "name": "Blackout",
            "rank": 5
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Mind Flay",
          "icon": "spell_shadow_siphonmana",
          "tree": "Shadow",
          "row": 3,
          "column": 3,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Improved Mind Flay",
          "icon": "spell_shadow_soulleech_2",
          "tree": "Shadow",
          "row": 3,
          "column": 4,
          "maxRank": 2,
          "prerequisite": {
            "name": "Mind Flay",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 21
        },
        {
          "name": "Improved Fade",
          "icon": "spell_magic_lesserinvisibilty",
          "tree": "Shadow",
          "row": 4,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Vampiric Embrace",
          "icon": "spell_shadow_unsummonbuilding",
          "tree": "Shadow",
          "row": 4,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Shadow Weaving",
          "icon": "spell_shadow_blackplague",
          "tree": "Shadow",
          "row": 4,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Silence",
          "icon": "spell_shadow_impphaseshift",
          "tree": "Shadow",
          "row": 5,
          "column": 1,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Devouring Contagion",
          "icon": "spell_shadow_devouringplague",
          "tree": "Shadow",
          "row": 5,
          "column": 3,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Early Demise",
          "icon": "spell_shadow_demonicfortitude",
          "tree": "Shadow",
          "row": 6,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Darkness",
          "icon": "spell_shadow_twilight",
          "tree": "Shadow",
          "row": 6,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Shadowform",
          "icon": "spell_shadow_shadowform",
          "tree": "Shadow",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Vampiric Embrace",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        }
      ],
      "abilities": [
        {
          "name": "Abolish Disease",
          "icon": "spell_nature_nullifydisease",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 32,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 32,
              "spellId": 552
            }
          ]
        },
        {
          "name": "Binding Heal",
          "icon": "spell_holy_blindingheal",
          "category": "talent_ability",
          "tabs": [
            "Holy"
          ],
          "level": 25,
          "talent": "Binding Heal",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 25,
              "spellId": 401937
            },
            {
              "label": "Rank 2",
              "level": 32,
              "spellId": 1240770
            },
            {
              "label": "Rank 3",
              "level": 38,
              "spellId": 1240771
            },
            {
              "label": "Rank 4",
              "level": 44,
              "spellId": 1240772
            },
            {
              "label": "Rank 5",
              "level": 50,
              "spellId": 1240773
            },
            {
              "label": "Rank 6",
              "level": 56,
              "spellId": 1240774
            }
          ]
        },
        {
          "name": "Chastise",
          "icon": "spell_holy_chastise",
          "category": "racial_class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 20,
          "talent": null,
          "races": [
            "Dwarf"
          ],
          "evidence": "conditional",
          "requirements": [
            "Race assignment originates in demo evidence; confirm it in the current client."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 1277331
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 1277332
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 1277333
            },
            {
              "label": "Rank 4",
              "level": 50,
              "spellId": 1277334
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 1277335
            }
          ]
        },
        {
          "name": "Confounding Flash",
          "icon": "ability_paladin_blindinglight2",
          "category": "racial_class_ability",
          "tabs": [
            "Discipline"
          ],
          "level": 10,
          "talent": null,
          "races": [
            "Gnome"
          ],
          "evidence": "conditional",
          "requirements": [
            "Race assignment originates in demo evidence; confirm it in the current client."
          ],
          "ranks": [
            {
              "label": null,
              "level": 10,
              "spellId": 1277455
            }
          ]
        },
        {
          "name": "Contingency Plan",
          "icon": "ability_priest_soulwarding",
          "category": "racial_class_ability",
          "tabs": [
            "Discipline"
          ],
          "level": 20,
          "talent": null,
          "races": [
            "Gnome"
          ],
          "evidence": "conditional",
          "requirements": [
            "Race assignment originates in demo evidence; confirm it in the current client."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 1277462
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 1277634
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 1277638
            },
            {
              "label": "Rank 4",
              "level": 50,
              "spellId": 1277639
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 1277640
            }
          ]
        },
        {
          "name": "Cure Disease",
          "icon": "spell_holy_nullifydisease",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 14,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 14,
              "spellId": 528
            }
          ]
        },
        {
          "name": "Dark Sacrifice",
          "icon": "spell_holy_powerinfusion_shadow",
          "category": "racial_class_ability",
          "tabs": [
            "Shadow"
          ],
          "level": 20,
          "talent": null,
          "races": [
            "Undead"
          ],
          "evidence": "conditional",
          "requirements": [
            "Race assignment originates in demo evidence; confirm it in the current client."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 1277324
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 1277325
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 1277326
            },
            {
              "label": "Rank 4",
              "level": 50,
              "spellId": 1277327
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 1277328
            }
          ]
        },
        {
          "name": "Desperate Prayer",
          "icon": "spell_holy_restoration",
          "category": "racial_class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 10,
          "talent": null,
          "races": [
            "Dwarf"
          ],
          "evidence": "conditional",
          "requirements": [
            "Race assignment originates in demo evidence; confirm it in the current client."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 13908
            },
            {
              "label": "Rank 2",
              "level": 18,
              "spellId": 19236
            },
            {
              "label": "Rank 3",
              "level": 26,
              "spellId": 19238
            },
            {
              "label": "Rank 4",
              "level": 34,
              "spellId": 19240
            },
            {
              "label": "Rank 5",
              "level": 42,
              "spellId": 19241
            },
            {
              "label": "Rank 6",
              "level": 50,
              "spellId": 19242
            },
            {
              "label": "Rank 7",
              "level": 58,
              "spellId": 19243
            }
          ]
        },
        {
          "name": "Devouring Plague",
          "icon": "spell_shadow_devouringplague",
          "category": "class_ability",
          "tabs": [
            "Shadow"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 2944
            },
            {
              "label": "Rank 2",
              "level": 28,
              "spellId": 19276
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 19277
            },
            {
              "label": "Rank 4",
              "level": 44,
              "spellId": 19278
            },
            {
              "label": "Rank 5",
              "level": 52,
              "spellId": 19279
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 19280
            }
          ]
        },
        {
          "name": "Dispel Magic",
          "icon": "spell_holy_dispelmagic",
          "category": "class_ability",
          "tabs": [
            "Discipline"
          ],
          "level": 18,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 18,
              "spellId": 527
            },
            {
              "label": "Rank 2",
              "level": 36,
              "spellId": 988
            }
          ]
        },
        {
          "name": "Divine Grace",
          "icon": "ability_priest_savinggrace",
          "category": "racial_class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 10,
          "talent": null,
          "races": [
            "Human"
          ],
          "evidence": "conditional",
          "requirements": [
            "Race assignment originates in demo evidence; confirm it in the current client."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 1277370
            },
            {
              "label": "Rank 2",
              "level": 18,
              "spellId": 1277371
            },
            {
              "label": "Rank 3",
              "level": 26,
              "spellId": 1277372
            },
            {
              "label": "Rank 4",
              "level": 34,
              "spellId": 1277374
            },
            {
              "label": "Rank 5",
              "level": 42,
              "spellId": 1277376
            },
            {
              "label": "Rank 6",
              "level": 50,
              "spellId": 1277377
            },
            {
              "label": "Rank 7",
              "level": 58,
              "spellId": 1277378
            }
          ]
        },
        {
          "name": "Divine Spirit",
          "icon": "spell_holy_divinespirit",
          "category": "class_ability",
          "tabs": [
            "Discipline"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 14752
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 14818
            },
            {
              "label": "Rank 3",
              "level": 50,
              "spellId": 14819
            },
            {
              "label": "Rank 4",
              "level": 60,
              "spellId": 27841
            }
          ]
        },
        {
          "name": "Elune's Grace",
          "icon": "spell_holy_elunesgrace",
          "category": "racial_class_ability",
          "tabs": [
            "Discipline"
          ],
          "level": 20,
          "talent": null,
          "races": [
            "Night Elf"
          ],
          "evidence": "conditional",
          "requirements": [
            "Race assignment originates in demo evidence; confirm it in the current client."
          ],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 2651
            }
          ]
        },
        {
          "name": "Fade",
          "icon": "spell_magic_lesserinvisibilty",
          "category": "class_ability",
          "tabs": [
            "Shadow"
          ],
          "level": 8,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 8,
              "spellId": 586
            },
            {
              "label": "Rank 2",
              "level": 20,
              "spellId": 9578
            },
            {
              "label": "Rank 3",
              "level": 30,
              "spellId": 9579
            },
            {
              "label": "Rank 4",
              "level": 40,
              "spellId": 9592
            },
            {
              "label": "Rank 5",
              "level": 50,
              "spellId": 10941
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 10942
            }
          ]
        },
        {
          "name": "Fear Ward",
          "icon": "spell_holy_excorcism",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 6346
            }
          ]
        },
        {
          "name": "Feedback",
          "icon": "spell_shadow_ritualofsacrifice",
          "category": "racial_class_ability",
          "tabs": [
            "Discipline"
          ],
          "level": 20,
          "talent": null,
          "races": [
            "Human"
          ],
          "evidence": "conditional",
          "requirements": [
            "Race assignment originates in demo evidence; confirm it in the current client."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 13896
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 19271
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 19273
            },
            {
              "label": "Rank 4",
              "level": 50,
              "spellId": 19274
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 19275
            }
          ]
        },
        {
          "name": "Flash Heal",
          "icon": "spell_holy_flashheal",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 2061
            },
            {
              "label": "Rank 2",
              "level": 26,
              "spellId": 9472
            },
            {
              "label": "Rank 3",
              "level": 32,
              "spellId": 9473
            },
            {
              "label": "Rank 4",
              "level": 38,
              "spellId": 9474
            },
            {
              "label": "Rank 5",
              "level": 44,
              "spellId": 10915
            },
            {
              "label": "Rank 6",
              "level": 50,
              "spellId": 10916
            },
            {
              "label": "Rank 7",
              "level": 56,
              "spellId": 10917
            }
          ]
        },
        {
          "name": "Greater Heal",
          "icon": "spell_holy_greaterheal",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 40,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 40,
              "spellId": 2060
            },
            {
              "label": "Rank 2",
              "level": 46,
              "spellId": 10963
            },
            {
              "label": "Rank 3",
              "level": 52,
              "spellId": 10964
            },
            {
              "label": "Rank 4",
              "level": 58,
              "spellId": 10965
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 25314
            }
          ]
        },
        {
          "name": "Heal",
          "icon": "spell_holy_heal",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 16,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 16,
              "spellId": 2054
            },
            {
              "label": "Rank 2",
              "level": 22,
              "spellId": 2055
            },
            {
              "label": "Rank 3",
              "level": 28,
              "spellId": 6063
            },
            {
              "label": "Rank 4",
              "level": 34,
              "spellId": 6064
            }
          ]
        },
        {
          "name": "Hex of Weakness",
          "icon": "spell_shadow_fingerofdeath",
          "category": "racial_class_ability",
          "tabs": [
            "Shadow"
          ],
          "level": 10,
          "talent": null,
          "races": [
            "Troll"
          ],
          "evidence": "conditional",
          "requirements": [
            "Race assignment originates in demo evidence; confirm it in the current client."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 9035
            },
            {
              "label": "Rank 2",
              "level": 20,
              "spellId": 19281
            },
            {
              "label": "Rank 3",
              "level": 30,
              "spellId": 19282
            },
            {
              "label": "Rank 4",
              "level": 40,
              "spellId": 19283
            },
            {
              "label": "Rank 5",
              "level": 50,
              "spellId": 19284
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 19285
            }
          ]
        },
        {
          "name": "Holy Fire",
          "icon": "spell_holy_searinglight",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 14914
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 15262
            },
            {
              "label": "Rank 3",
              "level": 30,
              "spellId": 15263
            },
            {
              "label": "Rank 4",
              "level": 36,
              "spellId": 15264
            },
            {
              "label": "Rank 5",
              "level": 42,
              "spellId": 15265
            },
            {
              "label": "Rank 6",
              "level": 48,
              "spellId": 15266
            },
            {
              "label": "Rank 7",
              "level": 54,
              "spellId": 15267
            },
            {
              "label": "Rank 8",
              "level": 60,
              "spellId": 15261
            }
          ]
        },
        {
          "name": "Holy Nova",
          "icon": "spell_holy_holynova",
          "category": "talent_ability",
          "tabs": [
            "Holy"
          ],
          "level": 20,
          "talent": "Holy Nova",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 15237
            },
            {
              "label": "Rank 2",
              "level": 28,
              "spellId": 15430
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 15431
            },
            {
              "label": "Rank 4",
              "level": 44,
              "spellId": 27799
            },
            {
              "label": "Rank 5",
              "level": 52,
              "spellId": 27800
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 27801
            }
          ]
        },
        {
          "name": "Inner Fire",
          "icon": "spell_holy_innerfire",
          "category": "class_ability",
          "tabs": [
            "Discipline"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 12,
              "spellId": 588
            },
            {
              "label": "Rank 2",
              "level": 20,
              "spellId": 7128
            },
            {
              "label": "Rank 3",
              "level": 30,
              "spellId": 602
            },
            {
              "label": "Rank 4",
              "level": 40,
              "spellId": 1006
            },
            {
              "label": "Rank 5",
              "level": 50,
              "spellId": 10951
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 10952
            }
          ]
        },
        {
          "name": "Inner Focus",
          "icon": "spell_frost_windwalkon",
          "category": "talent_ability",
          "tabs": [
            "Discipline"
          ],
          "level": 20,
          "talent": "Inner Focus",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 14751
            }
          ]
        },
        {
          "name": "Lesser Heal",
          "icon": "spell_holy_lesserheal",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 2050
            },
            {
              "label": "Rank 2",
              "level": 4,
              "spellId": 2052
            },
            {
              "label": "Rank 3",
              "level": 10,
              "spellId": 2053
            }
          ]
        },
        {
          "name": "Levitate",
          "icon": "spell_holy_layonhands",
          "category": "class_ability",
          "tabs": [
            "Discipline"
          ],
          "level": 34,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Light Feather"
          ],
          "ranks": [
            {
              "label": null,
              "level": 34,
              "spellId": 1706
            }
          ]
        },
        {
          "name": "Lightwell",
          "icon": "spell_holy_summonlightwell",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 40,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 40,
              "spellId": 724
            },
            {
              "label": "Rank 2",
              "level": 50,
              "spellId": 27870
            },
            {
              "label": "Rank 3",
              "level": 60,
              "spellId": 27871
            }
          ]
        },
        {
          "name": "Mana Burn",
          "icon": "spell_shadow_manaburn",
          "category": "class_ability",
          "tabs": [
            "Discipline"
          ],
          "level": 24,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 24,
              "spellId": 8129
            },
            {
              "label": "Rank 2",
              "level": 32,
              "spellId": 8131
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 10874
            },
            {
              "label": "Rank 4",
              "level": 48,
              "spellId": 10875
            },
            {
              "label": "Rank 5",
              "level": 56,
              "spellId": 10876
            }
          ]
        },
        {
          "name": "Mind Blast",
          "icon": "spell_shadow_unholyfrenzy",
          "category": "class_ability",
          "tabs": [
            "Shadow"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 8092
            },
            {
              "label": "Rank 2",
              "level": 16,
              "spellId": 8102
            },
            {
              "label": "Rank 3",
              "level": 22,
              "spellId": 8103
            },
            {
              "label": "Rank 4",
              "level": 28,
              "spellId": 8104
            },
            {
              "label": "Rank 5",
              "level": 34,
              "spellId": 8105
            },
            {
              "label": "Rank 6",
              "level": 40,
              "spellId": 8106
            },
            {
              "label": "Rank 7",
              "level": 46,
              "spellId": 10945
            },
            {
              "label": "Rank 8",
              "level": 52,
              "spellId": 10946
            },
            {
              "label": "Rank 9",
              "level": 58,
              "spellId": 10947
            }
          ]
        },
        {
          "name": "Mind Control",
          "icon": "spell_shadow_shadowworddominate",
          "category": "class_ability",
          "tabs": [
            "Shadow"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 605
            },
            {
              "label": "Rank 2",
              "level": 44,
              "spellId": 10911
            },
            {
              "label": "Rank 3",
              "level": 58,
              "spellId": 10912
            }
          ]
        },
        {
          "name": "Mind Flay",
          "icon": "spell_shadow_siphonmana",
          "category": "talent_ability",
          "tabs": [
            "Shadow"
          ],
          "level": 20,
          "talent": "Mind Flay",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 15407
            },
            {
              "label": "Rank 2",
              "level": 28,
              "spellId": 17311
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 17312
            },
            {
              "label": "Rank 4",
              "level": 44,
              "spellId": 17313
            },
            {
              "label": "Rank 5",
              "level": 52,
              "spellId": 17314
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 18807
            }
          ]
        },
        {
          "name": "Mind Soothe",
          "icon": "spell_holy_mindsooth",
          "category": "class_ability",
          "tabs": [
            "Shadow"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 453
            },
            {
              "label": "Rank 2",
              "level": 36,
              "spellId": 8192
            },
            {
              "label": "Rank 3",
              "level": 52,
              "spellId": 10953
            }
          ]
        },
        {
          "name": "Mind Vision",
          "icon": "spell_holy_mindvision",
          "category": "class_ability",
          "tabs": [
            "Shadow"
          ],
          "level": 22,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 22,
              "spellId": 2096
            },
            {
              "label": "Rank 2",
              "level": 44,
              "spellId": 10909
            }
          ]
        },
        {
          "name": "Penance",
          "icon": "spell_holy_penance",
          "category": "talent_ability",
          "tabs": [
            "Discipline"
          ],
          "level": 30,
          "talent": "Penance",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 402174
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 1240720
            },
            {
              "label": "Rank 3",
              "level": 50,
              "spellId": 1240721
            },
            {
              "label": "Rank 4",
              "level": 60,
              "spellId": 1316995
            }
          ]
        },
        {
          "name": "Power Infusion",
          "icon": "spell_holy_powerinfusion",
          "category": "talent_ability",
          "tabs": [
            "Discipline"
          ],
          "level": 40,
          "talent": "Power Infusion",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 40,
              "spellId": 10060
            }
          ]
        },
        {
          "name": "Power Word: Fortitude",
          "icon": "spell_holy_wordfortitude",
          "category": "class_ability",
          "tabs": [
            "Discipline"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 1243
            },
            {
              "label": "Rank 2",
              "level": 12,
              "spellId": 1244
            },
            {
              "label": "Rank 3",
              "level": 24,
              "spellId": 1245
            },
            {
              "label": "Rank 4",
              "level": 36,
              "spellId": 2791
            },
            {
              "label": "Rank 5",
              "level": 48,
              "spellId": 10937
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 10938
            }
          ]
        },
        {
          "name": "Power Word: Shield",
          "icon": "spell_holy_powerwordshield",
          "category": "class_ability",
          "tabs": [
            "Discipline"
          ],
          "level": 6,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 6,
              "spellId": 17
            },
            {
              "label": "Rank 2",
              "level": 12,
              "spellId": 592
            },
            {
              "label": "Rank 3",
              "level": 18,
              "spellId": 600
            },
            {
              "label": "Rank 4",
              "level": 24,
              "spellId": 3747
            },
            {
              "label": "Rank 5",
              "level": 30,
              "spellId": 6065
            },
            {
              "label": "Rank 6",
              "level": 36,
              "spellId": 6066
            },
            {
              "label": "Rank 7",
              "level": 42,
              "spellId": 10898
            },
            {
              "label": "Rank 8",
              "level": 48,
              "spellId": 10899
            },
            {
              "label": "Rank 9",
              "level": 54,
              "spellId": 10900
            },
            {
              "label": "Rank 10",
              "level": 60,
              "spellId": 10901
            }
          ]
        },
        {
          "name": "Prayer of Fortitude",
          "icon": "spell_holy_prayeroffortitude",
          "category": "class_ability",
          "tabs": [
            "Discipline"
          ],
          "level": 48,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Rank 1 (level 48): Reagents: Holy Candle",
            "Rank 2 (level 60): Reagents: Sacred Candle"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 48,
              "spellId": 21562
            },
            {
              "label": "Rank 2",
              "level": 60,
              "spellId": 21564
            }
          ]
        },
        {
          "name": "Prayer of Healing",
          "icon": "spell_holy_prayerofhealing02",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 596
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 996
            },
            {
              "label": "Rank 3",
              "level": 50,
              "spellId": 10960
            },
            {
              "label": "Rank 4",
              "level": 60,
              "spellId": 10961
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 25316
            }
          ]
        },
        {
          "name": "Prayer of Mending",
          "icon": "spell_holy_prayerofmendingtga",
          "category": "talent_ability",
          "tabs": [
            "Holy"
          ],
          "level": 40,
          "talent": "Prayer of Mending",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 40,
              "spellId": 401859
            },
            {
              "label": "Rank 2",
              "level": 50,
              "spellId": 1240826
            },
            {
              "label": "Rank 3",
              "level": 60,
              "spellId": 1240827
            }
          ]
        },
        {
          "name": "Prayer of Shadow Protection",
          "icon": "spell_holy_prayerofshadowprotection",
          "category": "class_ability",
          "tabs": [
            "Shadow"
          ],
          "level": 56,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Sacred Candle"
          ],
          "ranks": [
            {
              "label": null,
              "level": 56,
              "spellId": 27683
            }
          ]
        },
        {
          "name": "Prayer of Spirit",
          "icon": "spell_holy_prayerofspirit",
          "category": "class_ability",
          "tabs": [
            "Discipline"
          ],
          "level": 60,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Sacred Candle"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 60,
              "spellId": 27681
            }
          ]
        },
        {
          "name": "Psychic Scream",
          "icon": "spell_shadow_psychicscream",
          "category": "class_ability",
          "tabs": [
            "Shadow"
          ],
          "level": 14,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 14,
              "spellId": 8122
            },
            {
              "label": "Rank 2",
              "level": 28,
              "spellId": 8124
            },
            {
              "label": "Rank 3",
              "level": 42,
              "spellId": 10888
            },
            {
              "label": "Rank 4",
              "level": 56,
              "spellId": 10890
            }
          ]
        },
        {
          "name": "Renew",
          "icon": "spell_holy_renew",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 8,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 8,
              "spellId": 139
            },
            {
              "label": "Rank 2",
              "level": 14,
              "spellId": 6074
            },
            {
              "label": "Rank 3",
              "level": 20,
              "spellId": 6075
            },
            {
              "label": "Rank 4",
              "level": 26,
              "spellId": 6076
            },
            {
              "label": "Rank 5",
              "level": 32,
              "spellId": 6077
            },
            {
              "label": "Rank 6",
              "level": 38,
              "spellId": 6078
            },
            {
              "label": "Rank 7",
              "level": 44,
              "spellId": 10927
            },
            {
              "label": "Rank 8",
              "level": 50,
              "spellId": 10928
            },
            {
              "label": "Rank 9",
              "level": 56,
              "spellId": 10929
            },
            {
              "label": "Rank 10",
              "level": 60,
              "spellId": 25315
            }
          ]
        },
        {
          "name": "Resurrection",
          "icon": "spell_holy_resurrection",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 2006
            },
            {
              "label": "Rank 2",
              "level": 22,
              "spellId": 2010
            },
            {
              "label": "Rank 3",
              "level": 34,
              "spellId": 10880
            },
            {
              "label": "Rank 4",
              "level": 46,
              "spellId": 10881
            },
            {
              "label": "Rank 5",
              "level": 58,
              "spellId": 20770
            }
          ]
        },
        {
          "name": "Shackle Undead",
          "icon": "spell_nature_slow",
          "category": "class_ability",
          "tabs": [
            "Discipline"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 9484
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 9485
            },
            {
              "label": "Rank 3",
              "level": 60,
              "spellId": 10955
            }
          ]
        },
        {
          "name": "Shadow Protection",
          "icon": "spell_shadow_antishadow",
          "category": "class_ability",
          "tabs": [
            "Shadow"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 976
            },
            {
              "label": "Rank 2",
              "level": 42,
              "spellId": 10957
            },
            {
              "label": "Rank 3",
              "level": 56,
              "spellId": 10958
            }
          ]
        },
        {
          "name": "Shadow Word: Death",
          "icon": "spell_shadow_demonicfortitude",
          "category": "class_ability",
          "tabs": [
            "Shadow"
          ],
          "level": 32,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 32,
              "spellId": 1309595
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 1309633
            },
            {
              "label": "Rank 3",
              "level": 48,
              "spellId": 1309635
            },
            {
              "label": "Rank 4",
              "level": 56,
              "spellId": 1309636
            }
          ]
        },
        {
          "name": "Shadow Word: Pain",
          "icon": "spell_shadow_shadowwordpain",
          "category": "class_ability",
          "tabs": [
            "Shadow"
          ],
          "level": 4,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 4,
              "spellId": 589
            },
            {
              "label": "Rank 2",
              "level": 10,
              "spellId": 594
            },
            {
              "label": "Rank 3",
              "level": 18,
              "spellId": 970
            },
            {
              "label": "Rank 4",
              "level": 26,
              "spellId": 992
            },
            {
              "label": "Rank 5",
              "level": 34,
              "spellId": 2767
            },
            {
              "label": "Rank 6",
              "level": 42,
              "spellId": 10892
            },
            {
              "label": "Rank 7",
              "level": 50,
              "spellId": 10893
            },
            {
              "label": "Rank 8",
              "level": 58,
              "spellId": 10894
            }
          ]
        },
        {
          "name": "Shadowform",
          "icon": "spell_shadow_shadowform",
          "category": "talent_ability",
          "tabs": [
            "Shadow"
          ],
          "level": 40,
          "talent": "Shadowform",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 40,
              "spellId": 15473
            }
          ]
        },
        {
          "name": "Shadowguard",
          "icon": "spell_nature_lightningshield",
          "category": "racial_class_ability",
          "tabs": [
            "Shadow"
          ],
          "level": 20,
          "talent": null,
          "races": [
            "Troll"
          ],
          "evidence": "conditional",
          "requirements": [
            "Race assignment originates in demo evidence; confirm it in the current client."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 18137
            },
            {
              "label": "Rank 2",
              "level": 28,
              "spellId": 19308
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 19309
            },
            {
              "label": "Rank 4",
              "level": 44,
              "spellId": 19310
            },
            {
              "label": "Rank 5",
              "level": 52,
              "spellId": 19311
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 19312
            }
          ]
        },
        {
          "name": "Silence",
          "icon": "spell_shadow_impphaseshift",
          "category": "talent_ability",
          "tabs": [
            "Shadow"
          ],
          "level": 30,
          "talent": "Silence",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 15487
            }
          ]
        },
        {
          "name": "Smite",
          "icon": "spell_holy_holysmite",
          "category": "class_ability",
          "tabs": [
            "Holy"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 585
            },
            {
              "label": "Rank 2",
              "level": 6,
              "spellId": 591
            },
            {
              "label": "Rank 3",
              "level": 14,
              "spellId": 598
            },
            {
              "label": "Rank 4",
              "level": 22,
              "spellId": 984
            },
            {
              "label": "Rank 5",
              "level": 30,
              "spellId": 1004
            },
            {
              "label": "Rank 6",
              "level": 38,
              "spellId": 6060
            },
            {
              "label": "Rank 7",
              "level": 46,
              "spellId": 10933
            },
            {
              "label": "Rank 8",
              "level": 54,
              "spellId": 10934
            }
          ]
        },
        {
          "name": "Starshards",
          "icon": "spell_arcane_starfire",
          "category": "racial_class_ability",
          "tabs": [
            "Discipline"
          ],
          "level": 10,
          "talent": null,
          "races": [
            "Night Elf"
          ],
          "evidence": "conditional",
          "requirements": [
            "Race assignment originates in demo evidence; confirm it in the current client."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 10797
            },
            {
              "label": "Rank 2",
              "level": 18,
              "spellId": 19296
            },
            {
              "label": "Rank 3",
              "level": 26,
              "spellId": 19299
            },
            {
              "label": "Rank 4",
              "level": 34,
              "spellId": 19302
            },
            {
              "label": "Rank 5",
              "level": 42,
              "spellId": 19303
            },
            {
              "label": "Rank 6",
              "level": 50,
              "spellId": 19304
            },
            {
              "label": "Rank 7",
              "level": 58,
              "spellId": 19305
            }
          ]
        },
        {
          "name": "Touch of Weakness",
          "icon": "spell_shadow_deadofnight",
          "category": "racial_class_ability",
          "tabs": [
            "Shadow"
          ],
          "level": 10,
          "talent": null,
          "races": [
            "Undead"
          ],
          "evidence": "conditional",
          "requirements": [
            "Race assignment originates in demo evidence; confirm it in the current client."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 2652
            },
            {
              "label": "Rank 2",
              "level": 20,
              "spellId": 19261
            },
            {
              "label": "Rank 3",
              "level": 30,
              "spellId": 19262
            },
            {
              "label": "Rank 4",
              "level": 40,
              "spellId": 19264
            },
            {
              "label": "Rank 5",
              "level": 50,
              "spellId": 19265
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 19266
            }
          ]
        },
        {
          "name": "Vampiric Embrace",
          "icon": "spell_shadow_unsummonbuilding",
          "category": "talent_ability",
          "tabs": [
            "Shadow"
          ],
          "level": 30,
          "talent": "Vampiric Embrace",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 15286
            }
          ]
        }
      ]
    },
    {
      "slug": "rogue",
      "name": "Rogue",
      "icon": "class_rogue",
      "treeIcons": {
        "Assassination": "ability_rogue_eviscerate",
        "Combat": "ability_backstab",
        "Subtlety": "ability_stealth"
      },
      "trees": [
        "Assassination",
        "Combat",
        "Subtlety"
      ],
      "talents": [
        {
          "name": "Improved Gouge",
          "icon": "ability_gouge",
          "tree": "Assassination",
          "row": 1,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Remorseless Attacks",
          "icon": "ability_fiegndead",
          "tree": "Assassination",
          "row": 1,
          "column": 2,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Malice",
          "icon": "ability_racial_bloodrage",
          "tree": "Assassination",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Ruthlessness",
          "icon": "ability_druid_disembowel",
          "tree": "Assassination",
          "row": 2,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Murder",
          "icon": "spell_shadow_deathscream",
          "tree": "Assassination",
          "row": 2,
          "column": 2,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Slice and Dice",
          "icon": "ability_rogue_slicedice",
          "tree": "Assassination",
          "row": 2,
          "column": 4,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Relentless Strikes",
          "icon": "ability_warrior_decisivestrike",
          "tree": "Assassination",
          "row": 3,
          "column": 1,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Improved Expose Armor",
          "icon": "ability_warrior_riposte",
          "tree": "Assassination",
          "row": 3,
          "column": 2,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Lethality",
          "icon": "ability_criticalstrike",
          "tree": "Assassination",
          "row": 3,
          "column": 3,
          "maxRank": 5,
          "prerequisite": {
            "name": "Malice",
            "rank": 5
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Vile Poisons",
          "icon": "ability_rogue_feigndeath",
          "tree": "Assassination",
          "row": 4,
          "column": 1,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Cold Blood",
          "icon": "spell_ice_lament",
          "tree": "Assassination",
          "row": 4,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Improved Poisons",
          "icon": "ability_poisons",
          "tree": "Assassination",
          "row": 4,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Vigor",
          "icon": "spell_nature_earthbindtotem",
          "tree": "Assassination",
          "row": 5,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Mutilate",
          "icon": "ability_rogue_deadlybrew",
          "tree": "Assassination",
          "row": 5,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Improved Kidney Shot",
          "icon": "ability_rogue_kidneyshot",
          "tree": "Assassination",
          "row": 5,
          "column": 3,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Seal Fate",
          "icon": "spell_shadow_chilltouch",
          "tree": "Assassination",
          "row": 6,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Venom",
          "icon": "inv_sword_31",
          "tree": "Assassination",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Mutilate",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        },
        {
          "name": "Improved Eviscerate",
          "icon": "ability_rogue_eviscerate",
          "tree": "Combat",
          "row": 1,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Improved Sinister Strike",
          "icon": "spell_shadow_ritualofsacrifice",
          "tree": "Combat",
          "row": 1,
          "column": 2,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Lightning Reflexes",
          "icon": "spell_nature_invisibilty",
          "tree": "Combat",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Puncturing Wounds",
          "icon": "ability_backstab",
          "tree": "Combat",
          "row": 2,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Deflection",
          "icon": "ability_parry",
          "tree": "Combat",
          "row": 2,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Precision",
          "icon": "ability_marksmanship",
          "tree": "Combat",
          "row": 2,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Endurance",
          "icon": "spell_shadow_shadowward",
          "tree": "Combat",
          "row": 3,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Riposte",
          "icon": "ability_warrior_challange",
          "tree": "Combat",
          "row": 3,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Deflection",
            "rank": 3
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Improved Sprint",
          "icon": "ability_rogue_sprint",
          "tree": "Combat",
          "row": 3,
          "column": 4,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Improved Kick",
          "icon": "ability_kick",
          "tree": "Combat",
          "row": 4,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Flawless Execution",
          "icon": "inv_sword_35",
          "tree": "Combat",
          "row": 4,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Dual Wield Specialization",
          "icon": "ability_dualwield",
          "tree": "Combat",
          "row": 4,
          "column": 3,
          "maxRank": 5,
          "prerequisite": {
            "name": "Precision",
            "rank": 3
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Blade Flurry",
          "icon": "ability_warrior_punishingblow",
          "tree": "Combat",
          "row": 5,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Hack and Slash",
          "icon": "inv_sword_27",
          "tree": "Combat",
          "row": 5,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Weapon Expertise",
          "icon": "spell_holy_blessingofstrength",
          "tree": "Combat",
          "row": 6,
          "column": 2,
          "maxRank": 2,
          "prerequisite": {
            "name": "Blade Flurry",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Aggression",
          "icon": "ability_racial_avatar",
          "tree": "Combat",
          "row": 6,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Adrenaline Rush",
          "icon": "spell_shadow_shadowworddominate",
          "tree": "Combat",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        },
        {
          "name": "Camouflage",
          "icon": "ability_stealth",
          "tree": "Subtlety",
          "row": 1,
          "column": 1,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Master of Deception",
          "icon": "spell_shadow_charm",
          "tree": "Subtlety",
          "row": 1,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Opportunity",
          "icon": "ability_warrior_warcry",
          "tree": "Subtlety",
          "row": 1,
          "column": 3,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Setup",
          "icon": "spell_nature_mirrorimage",
          "tree": "Subtlety",
          "row": 2,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Elusiveness",
          "icon": "spell_magic_lesserinvisibilty",
          "tree": "Subtlety",
          "row": 2,
          "column": 2,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Dirty Tricks",
          "icon": "ability_sap",
          "tree": "Subtlety",
          "row": 2,
          "column": 3,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Ambush",
          "icon": "ability_rogue_ambush",
          "tree": "Subtlety",
          "row": 2,
          "column": 4,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Initiative",
          "icon": "spell_shadow_fumble",
          "tree": "Subtlety",
          "row": 3,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Ghostly Strike",
          "icon": "spell_shadow_curse",
          "tree": "Subtlety",
          "row": 3,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Improved Distract",
          "icon": "ability_rogue_distract",
          "tree": "Subtlety",
          "row": 3,
          "column": 3,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Heightened Senses",
          "icon": "ability_ambush",
          "tree": "Subtlety",
          "row": 4,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Premeditation",
          "icon": "spell_shadow_possession",
          "tree": "Subtlety",
          "row": 4,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Serrated Blades",
          "icon": "inv_sword_17",
          "tree": "Subtlety",
          "row": 4,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Dirty Deeds",
          "icon": "spell_shadow_summonsuccubus",
          "tree": "Subtlety",
          "row": 5,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Preparation",
          "icon": "spell_shadow_antishadow",
          "tree": "Subtlety",
          "row": 5,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Hemorrhage",
          "icon": "spell_shadow_lifedrain",
          "tree": "Subtlety",
          "row": 5,
          "column": 3,
          "maxRank": 1,
          "prerequisite": {
            "name": "Serrated Blades",
            "rank": 3
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Quietus",
          "icon": "ability_rogue_garrote",
          "tree": "Subtlety",
          "row": 6,
          "column": 1,
          "maxRank": 5,
          "prerequisite": {
            "name": "Dirty Deeds",
            "rank": 2
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Cutthroat",
          "icon": "classicon_rogue",
          "tree": "Subtlety",
          "row": 6,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Thousand Cuts",
          "icon": "ability_rogue_rupture",
          "tree": "Subtlety",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Preparation",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        }
      ],
      "abilities": [
        {
          "name": "Adrenaline Rush",
          "icon": "spell_shadow_shadowworddominate",
          "category": "talent_ability",
          "tabs": [
            "Combat"
          ],
          "level": 40,
          "talent": "Adrenaline Rush",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 40,
              "spellId": 13750
            }
          ]
        },
        {
          "name": "Ambush",
          "icon": "ability_rogue_ambush",
          "category": "class_ability",
          "tabs": [
            "Assassination"
          ],
          "level": 18,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Stealth"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 18,
              "spellId": 8676
            },
            {
              "label": "Rank 2",
              "level": 26,
              "spellId": 8724
            },
            {
              "label": "Rank 3",
              "level": 34,
              "spellId": 8725
            },
            {
              "label": "Rank 4",
              "level": 42,
              "spellId": 11267
            },
            {
              "label": "Rank 5",
              "level": 50,
              "spellId": 11268
            },
            {
              "label": "Rank 6",
              "level": 58,
              "spellId": 11269
            }
          ]
        },
        {
          "name": "Backstab",
          "icon": "ability_backstab",
          "category": "class_ability",
          "tabs": [
            "Combat"
          ],
          "level": 4,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 4,
              "spellId": 53
            },
            {
              "label": "Rank 2",
              "level": 12,
              "spellId": 2589
            },
            {
              "label": "Rank 3",
              "level": 20,
              "spellId": 2590
            },
            {
              "label": "Rank 4",
              "level": 28,
              "spellId": 2591
            },
            {
              "label": "Rank 5",
              "level": 36,
              "spellId": 8721
            },
            {
              "label": "Rank 6",
              "level": 44,
              "spellId": 11279
            },
            {
              "label": "Rank 7",
              "level": 52,
              "spellId": 11280
            },
            {
              "label": "Rank 8",
              "level": 60,
              "spellId": 11281
            },
            {
              "label": "Rank 9",
              "level": 60,
              "spellId": 25300
            }
          ]
        },
        {
          "name": "Blade Flurry",
          "icon": "ability_warrior_punishingblow",
          "category": "talent_ability",
          "tabs": [
            "Combat"
          ],
          "level": 30,
          "talent": "Blade Flurry",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 13877
            }
          ]
        },
        {
          "name": "Blind",
          "icon": "spell_shadow_mindsteal",
          "category": "class_ability",
          "tabs": [
            "Subtlety"
          ],
          "level": 34,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Blinding Powder"
          ],
          "ranks": [
            {
              "label": null,
              "level": 34,
              "spellId": 2094
            }
          ]
        },
        {
          "name": "Blinding Powder",
          "icon": "inv_misc_ammo_gunpowder_02",
          "category": "poison_skill",
          "tabs": [
            "Poisons"
          ],
          "level": 34,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Reagents: Fadeleaf",
            "Requires poison skill acquisition and any applicable weapon or item conditions."
          ],
          "ranks": [
            {
              "label": null,
              "level": 34,
              "spellId": 6510
            }
          ]
        },
        {
          "name": "Cheap Shot",
          "icon": "ability_cheapshot",
          "category": "class_ability",
          "tabs": [
            "Assassination"
          ],
          "level": 26,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Stealth"
          ],
          "ranks": [
            {
              "label": null,
              "level": 26,
              "spellId": 1833
            }
          ]
        },
        {
          "name": "Cold Blood",
          "icon": "spell_ice_lament",
          "category": "talent_ability",
          "tabs": [
            "Assassination"
          ],
          "level": 25,
          "talent": "Cold Blood",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 25,
              "spellId": 14177
            }
          ]
        },
        {
          "name": "Crippling Poison",
          "icon": "ability_poisonsting",
          "category": "poison_skill",
          "tabs": [
            "Poisons"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Rank 1 (level 20): Reagents: Essence of Pain, Empty Vial",
            "Rank 2 (level 50): Reagents: Essence of Agony x3, Crystal Vial",
            "Requires poison skill acquisition and any applicable weapon or item conditions."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 3420
            },
            {
              "label": "Rank 2",
              "level": 50,
              "spellId": 3421
            }
          ]
        },
        {
          "name": "Deadly Poison",
          "icon": "ability_rogue_dualweild",
          "category": "poison_skill",
          "tabs": [
            "Poisons"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Rank 1 (level 30): Reagents: Deathweed, Leaded Vial",
            "Rank 2 (level 38): Reagents: Deathweed x2, Leaded Vial",
            "Rank 3 (level 46): Reagents: Deathweed x3, Crystal Vial",
            "Rank 4 (level 54): Reagents: Deathweed x5, Crystal Vial",
            "Rank 5 (level 60): Reagents: Deathweed x7, Crystal Vial",
            "Requires poison skill acquisition and any applicable weapon or item conditions."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 2835
            },
            {
              "label": "Rank 2",
              "level": 38,
              "spellId": 2837
            },
            {
              "label": "Rank 3",
              "level": 46,
              "spellId": 11357
            },
            {
              "label": "Rank 4",
              "level": 54,
              "spellId": 11358
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 25347
            }
          ]
        },
        {
          "name": "Detect Traps",
          "icon": "ability_spy",
          "category": "passive_class_skill",
          "tabs": [
            "Subtlety"
          ],
          "level": 24,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Passive class skill; not a castable action."
          ],
          "ranks": [
            {
              "label": "Passive",
              "level": 24,
              "spellId": 2836
            }
          ]
        },
        {
          "name": "Disarm Trap",
          "icon": "spell_shadow_grimward",
          "category": "class_ability",
          "tabs": [
            "Subtlety"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 1842
            }
          ]
        },
        {
          "name": "Distract",
          "icon": "ability_rogue_distract",
          "category": "class_ability",
          "tabs": [
            "Subtlety"
          ],
          "level": 22,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 22,
              "spellId": 1725
            }
          ]
        },
        {
          "name": "Evasion",
          "icon": "spell_shadow_shadowward",
          "category": "class_ability",
          "tabs": [
            "Combat"
          ],
          "level": 8,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 8,
              "spellId": 5277
            }
          ]
        },
        {
          "name": "Eviscerate",
          "icon": "ability_rogue_eviscerate",
          "category": "class_ability",
          "tabs": [
            "Assassination"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 2098
            },
            {
              "label": "Rank 2",
              "level": 8,
              "spellId": 6760
            },
            {
              "label": "Rank 3",
              "level": 16,
              "spellId": 6761
            },
            {
              "label": "Rank 4",
              "level": 24,
              "spellId": 6762
            },
            {
              "label": "Rank 5",
              "level": 32,
              "spellId": 8623
            },
            {
              "label": "Rank 6",
              "level": 40,
              "spellId": 8624
            },
            {
              "label": "Rank 7",
              "level": 48,
              "spellId": 11299
            },
            {
              "label": "Rank 8",
              "level": 56,
              "spellId": 11300
            },
            {
              "label": "Rank 9",
              "level": 60,
              "spellId": 31016
            }
          ]
        },
        {
          "name": "Expose Armor",
          "icon": "ability_warrior_riposte",
          "category": "class_ability",
          "tabs": [
            "Assassination"
          ],
          "level": 14,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 14,
              "spellId": 8647
            },
            {
              "label": "Rank 2",
              "level": 26,
              "spellId": 8649
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 8650
            },
            {
              "label": "Rank 4",
              "level": 46,
              "spellId": 11197
            },
            {
              "label": "Rank 5",
              "level": 56,
              "spellId": 11198
            }
          ]
        },
        {
          "name": "Feint",
          "icon": "ability_rogue_feint",
          "category": "class_ability",
          "tabs": [
            "Combat"
          ],
          "level": 16,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 16,
              "spellId": 1966
            },
            {
              "label": "Rank 2",
              "level": 28,
              "spellId": 6768
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 8637
            },
            {
              "label": "Rank 4",
              "level": 52,
              "spellId": 11303
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 25302
            }
          ]
        },
        {
          "name": "Garrote",
          "icon": "ability_rogue_garrote",
          "category": "class_ability",
          "tabs": [
            "Assassination"
          ],
          "level": 14,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Stealth"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 14,
              "spellId": 703
            },
            {
              "label": "Rank 2",
              "level": 22,
              "spellId": 8631
            },
            {
              "label": "Rank 3",
              "level": 30,
              "spellId": 8632
            },
            {
              "label": "Rank 4",
              "level": 38,
              "spellId": 8633
            },
            {
              "label": "Rank 5",
              "level": 46,
              "spellId": 11289
            },
            {
              "label": "Rank 6",
              "level": 54,
              "spellId": 11290
            }
          ]
        },
        {
          "name": "Ghostly Strike",
          "icon": "spell_shadow_curse",
          "category": "talent_ability",
          "tabs": [
            "Subtlety"
          ],
          "level": 20,
          "talent": "Ghostly Strike",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 14278
            }
          ]
        },
        {
          "name": "Gouge",
          "icon": "ability_gouge",
          "category": "class_ability",
          "tabs": [
            "Combat"
          ],
          "level": 6,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 6,
              "spellId": 1776
            },
            {
              "label": "Rank 2",
              "level": 18,
              "spellId": 1777
            },
            {
              "label": "Rank 3",
              "level": 32,
              "spellId": 8629
            },
            {
              "label": "Rank 4",
              "level": 46,
              "spellId": 11285
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 11286
            }
          ]
        },
        {
          "name": "Hemorrhage",
          "icon": "spell_shadow_lifedrain",
          "category": "talent_ability",
          "tabs": [
            "Subtlety"
          ],
          "level": 30,
          "talent": "Hemorrhage",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 16511
            }
          ]
        },
        {
          "name": "Instant Poison",
          "icon": "ability_poisons",
          "category": "poison_skill",
          "tabs": [
            "Poisons"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Rank 1 (level 20): Reagents: Dust of Decay, Empty Vial",
            "Rank 2 (level 28): Reagents: Dust of Decay x3, Leaded Vial",
            "Rank 3 (level 36): Reagents: Dust of Deterioration, Leaded Vial",
            "Rank 4 (level 44): Reagents: Dust of Deterioration x2, Crystal Vial",
            "Rank 5 (level 52): Reagents: Dust of Deterioration x3, Crystal Vial",
            "Rank 6 (level 60): Reagents: Dust of Deterioration x4, Crystal Vial",
            "Requires poison skill acquisition and any applicable weapon or item conditions."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 8681
            },
            {
              "label": "Rank 2",
              "level": 28,
              "spellId": 8687
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 8691
            },
            {
              "label": "Rank 4",
              "level": 44,
              "spellId": 11341
            },
            {
              "label": "Rank 5",
              "level": 52,
              "spellId": 11342
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 11343
            }
          ]
        },
        {
          "name": "Kick",
          "icon": "ability_kick",
          "category": "class_ability",
          "tabs": [
            "Combat"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 12,
              "spellId": 1766
            },
            {
              "label": "Rank 2",
              "level": 26,
              "spellId": 1767
            },
            {
              "label": "Rank 3",
              "level": 42,
              "spellId": 1768
            },
            {
              "label": "Rank 4",
              "level": 58,
              "spellId": 1769
            }
          ]
        },
        {
          "name": "Kidney Shot",
          "icon": "ability_rogue_kidneyshot",
          "category": "class_ability",
          "tabs": [
            "Assassination"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 408
            },
            {
              "label": "Rank 2",
              "level": 50,
              "spellId": 8643
            }
          ]
        },
        {
          "name": "Mind-numbing Poison",
          "icon": "spell_nature_nullifydisease",
          "category": "poison_skill",
          "tabs": [
            "Poisons"
          ],
          "level": 24,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Rank 1 (level 24): Reagents: Dust of Decay, Essence of Pain, Empty Vial",
            "Rank 2 (level 38): Reagents: Dust of Decay x4, Essence of Pain x4, Leaded Vial",
            "Rank 3 (level 52): Reagents: Dust of Deterioration x2, Essence of Agony x2, Crystal Vial",
            "Requires poison skill acquisition and any applicable weapon or item conditions."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 24,
              "spellId": 5763
            },
            {
              "label": "Rank 2",
              "level": 38,
              "spellId": 8694
            },
            {
              "label": "Rank 3",
              "level": 52,
              "spellId": 11400
            }
          ]
        },
        {
          "name": "Mutilate",
          "icon": "ability_rogue_deadlybrew",
          "category": "talent_ability",
          "tabs": [
            "Assassination"
          ],
          "level": 30,
          "talent": "Mutilate",
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Requires Daggers"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 1310707
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 399956
            },
            {
              "label": "Rank 3",
              "level": 50,
              "spellId": 1241582
            },
            {
              "label": "Rank 4",
              "level": 60,
              "spellId": 1241584
            }
          ]
        },
        {
          "name": "Pick Pocket",
          "icon": "inv_misc_bag_11",
          "category": "class_ability",
          "tabs": [
            "Subtlety"
          ],
          "level": 4,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Stealth"
          ],
          "ranks": [
            {
              "label": null,
              "level": 4,
              "spellId": 921
            }
          ]
        },
        {
          "name": "Premeditation",
          "icon": "spell_shadow_possession",
          "category": "talent_ability",
          "tabs": [
            "Subtlety"
          ],
          "level": 25,
          "talent": "Premeditation",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 25,
              "spellId": 14183
            }
          ]
        },
        {
          "name": "Preparation",
          "icon": "spell_shadow_antishadow",
          "category": "talent_ability",
          "tabs": [
            "Subtlety"
          ],
          "level": 30,
          "talent": "Preparation",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 14185
            }
          ]
        },
        {
          "name": "Riposte",
          "icon": "ability_warrior_challange",
          "category": "talent_ability",
          "tabs": [
            "Combat"
          ],
          "level": 20,
          "talent": "Riposte",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 14251
            }
          ]
        },
        {
          "name": "Rupture",
          "icon": "ability_rogue_rupture",
          "category": "class_ability",
          "tabs": [
            "Assassination"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 1943
            },
            {
              "label": "Rank 2",
              "level": 28,
              "spellId": 8639
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 8640
            },
            {
              "label": "Rank 4",
              "level": 44,
              "spellId": 11273
            },
            {
              "label": "Rank 5",
              "level": 52,
              "spellId": 11274
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 11275
            }
          ]
        },
        {
          "name": "Safe Fall",
          "icon": "inv_feather_01",
          "category": "passive_class_skill",
          "tabs": [
            "Subtlety"
          ],
          "level": 40,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Passive class skill; not a castable action."
          ],
          "ranks": [
            {
              "label": "Passive",
              "level": 40,
              "spellId": 1860
            }
          ]
        },
        {
          "name": "Sap",
          "icon": "ability_sap",
          "category": "class_ability",
          "tabs": [
            "Subtlety"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Stealth"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 6770
            },
            {
              "label": "Rank 2",
              "level": 28,
              "spellId": 2070
            },
            {
              "label": "Rank 3",
              "level": 48,
              "spellId": 11297
            }
          ]
        },
        {
          "name": "Sinister Strike",
          "icon": "spell_shadow_ritualofsacrifice",
          "category": "class_ability",
          "tabs": [
            "Combat"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 1752
            },
            {
              "label": "Rank 2",
              "level": 6,
              "spellId": 1757
            },
            {
              "label": "Rank 3",
              "level": 14,
              "spellId": 1758
            },
            {
              "label": "Rank 4",
              "level": 22,
              "spellId": 1759
            },
            {
              "label": "Rank 5",
              "level": 30,
              "spellId": 1760
            },
            {
              "label": "Rank 6",
              "level": 38,
              "spellId": 8621
            },
            {
              "label": "Rank 7",
              "level": 46,
              "spellId": 11293
            },
            {
              "label": "Rank 8",
              "level": 54,
              "spellId": 11294
            }
          ]
        },
        {
          "name": "Slice and Dice",
          "icon": "ability_rogue_slicedice",
          "category": "class_ability",
          "tabs": [
            "Assassination"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 5171
            },
            {
              "label": "Rank 2",
              "level": 42,
              "spellId": 6774
            }
          ]
        },
        {
          "name": "Sprint",
          "icon": "ability_rogue_sprint",
          "category": "class_ability",
          "tabs": [
            "Combat"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 2983
            },
            {
              "label": "Rank 2",
              "level": 34,
              "spellId": 8696
            },
            {
              "label": "Rank 3",
              "level": 58,
              "spellId": 11305
            }
          ]
        },
        {
          "name": "Stealth",
          "icon": "ability_stealth",
          "category": "class_ability",
          "tabs": [
            "Subtlety"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 1784
            },
            {
              "label": "Rank 2",
              "level": 20,
              "spellId": 1785
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 1786
            },
            {
              "label": "Rank 4",
              "level": 60,
              "spellId": 1787
            }
          ]
        },
        {
          "name": "Vanish",
          "icon": "ability_vanish",
          "category": "class_ability",
          "tabs": [
            "Subtlety"
          ],
          "level": 22,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Flash Powder"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 22,
              "spellId": 1856
            },
            {
              "label": "Rank 2",
              "level": 42,
              "spellId": 1857
            }
          ]
        },
        {
          "name": "Venom",
          "icon": "inv_sword_31",
          "category": "talent_ability",
          "tabs": [
            "Assassination"
          ],
          "level": 40,
          "talent": "Venom",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 40,
              "spellId": 1310703
            }
          ]
        },
        {
          "name": "Wound Poison",
          "icon": "inv_misc_herb_16",
          "category": "poison_skill",
          "tabs": [
            "Poisons"
          ],
          "level": 32,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Rank 1 (level 32): Reagents: Essence of Pain, Deathweed, Leaded Vial",
            "Rank 2 (level 40): Reagents: Essence of Pain, Deathweed x2, Leaded Vial",
            "Rank 3 (level 48): Reagents: Essence of Agony, Deathweed x2, Crystal Vial",
            "Rank 4 (level 56): Reagents: Essence of Agony x2, Deathweed x2, Crystal Vial",
            "Requires poison skill acquisition and any applicable weapon or item conditions."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 32,
              "spellId": 13220
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 13228
            },
            {
              "label": "Rank 3",
              "level": 48,
              "spellId": 13229
            },
            {
              "label": "Rank 4",
              "level": 56,
              "spellId": 13230
            }
          ]
        }
      ]
    },
    {
      "slug": "shaman",
      "name": "Shaman",
      "icon": "class_shaman",
      "treeIcons": {
        "Elemental": "spell_nature_lightning",
        "Enhancement": "spell_nature_lightningshield",
        "Restoration": "spell_nature_magicimmunity"
      },
      "trees": [
        "Elemental",
        "Enhancement",
        "Restoration"
      ],
      "talents": [
        {
          "name": "Convection",
          "icon": "spell_nature_wispsplode",
          "tree": "Elemental",
          "row": 1,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Concussion",
          "icon": "spell_nature_earthshock",
          "tree": "Elemental",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Elemental Warding",
          "icon": "spell_nature_spiritarmor",
          "tree": "Elemental",
          "row": 2,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Reverberation",
          "icon": "spell_frost_frostward",
          "tree": "Elemental",
          "row": 2,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Call of Flame",
          "icon": "spell_fire_immolation",
          "tree": "Elemental",
          "row": 2,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Elemental Devastation",
          "icon": "spell_fire_elementaldevastation",
          "tree": "Elemental",
          "row": 2,
          "column": 4,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Elemental Focus",
          "icon": "spell_shadow_manaburn",
          "tree": "Elemental",
          "row": 3,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Elemental Alacrity",
          "icon": "spell_lightning_lightningbolt01",
          "tree": "Elemental",
          "row": 3,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Improved Fire Nova",
          "icon": "spell_fire_sealoffire",
          "tree": "Elemental",
          "row": 4,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Eye of the Storm",
          "icon": "spell_nature_eyeofthestorm",
          "tree": "Elemental",
          "row": 4,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Call of Thunder",
          "icon": "spell_nature_callstorm",
          "tree": "Elemental",
          "row": 4,
          "column": 3,
          "maxRank": 1,
          "prerequisite": {
            "name": "Elemental Alacrity",
            "rank": 3
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Elemental Reach",
          "icon": "spell_nature_stormreach",
          "tree": "Elemental",
          "row": 5,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Lightning Overload",
          "icon": "spell_nature_lightningoverload",
          "tree": "Elemental",
          "row": 5,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Earthbound",
          "icon": "spell_nature_stranglevines",
          "tree": "Elemental",
          "row": 5,
          "column": 4,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Elemental Fury",
          "icon": "spell_fire_volcano",
          "tree": "Elemental",
          "row": 6,
          "column": 3,
          "maxRank": 5,
          "prerequisite": {
            "name": "Call of Thunder",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Lava Burst",
          "icon": "spell_shaman_lavaburst",
          "tree": "Elemental",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Lightning Overload",
            "rank": 3
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        },
        {
          "name": "Earth's Grasp",
          "icon": "spell_nature_stoneclawtotem",
          "tree": "Enhancement",
          "row": 1,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Thundering Strikes",
          "icon": "ability_thunderbolt",
          "tree": "Enhancement",
          "row": 1,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Ancestral Knowledge",
          "icon": "spell_shadow_grimward",
          "tree": "Enhancement",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Guardian Totems",
          "icon": "spell_nature_stoneskintotem",
          "tree": "Enhancement",
          "row": 2,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Mental Dexterity",
          "icon": "spell_nature_mentalquickness",
          "tree": "Enhancement",
          "row": 2,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Ghost Wolf",
          "icon": "spell_nature_spiritwolf",
          "tree": "Enhancement",
          "row": 2,
          "column": 3,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Lightning Shield",
          "icon": "spell_nature_lightningshield",
          "tree": "Enhancement",
          "row": 2,
          "column": 4,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Elemental Weapons",
          "icon": "spell_fire_flametounge",
          "tree": "Enhancement",
          "row": 3,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Shamanistic Focus",
          "icon": "spell_nature_elementalabsorption",
          "tree": "Enhancement",
          "row": 3,
          "column": 3,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Anticipation",
          "icon": "spell_nature_mirrorimage",
          "tree": "Enhancement",
          "row": 3,
          "column": 4,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Toughness",
          "icon": "spell_holy_devotion",
          "tree": "Enhancement",
          "row": 4,
          "column": 1,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Flurry",
          "icon": "ability_ghoulfrenzy",
          "tree": "Enhancement",
          "row": 4,
          "column": 2,
          "maxRank": 5,
          "prerequisite": {
            "name": "Mental Dexterity",
            "rank": 3
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Stormstrike",
          "icon": "ability_shaman_stormstrike",
          "tree": "Enhancement",
          "row": 4,
          "column": 3,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Spirit Weapons",
          "icon": "ability_parry",
          "tree": "Enhancement",
          "row": 5,
          "column": 1,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Mental Quickness",
          "icon": "spell_nature_sleep",
          "tree": "Enhancement",
          "row": 5,
          "column": 2,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Improved Stormstrike",
          "icon": "spell_shaman_improvedstormstrike",
          "tree": "Enhancement",
          "row": 5,
          "column": 3,
          "maxRank": 2,
          "prerequisite": {
            "name": "Stormstrike",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Maelstrom Weapon",
          "icon": "spell_shaman_maelstromweapon",
          "tree": "Enhancement",
          "row": 6,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Rage of the Farseer",
          "icon": "spell_nature_bloodlust",
          "tree": "Enhancement",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Mental Quickness",
            "rank": 2
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        },
        {
          "name": "Improved Healing Wave",
          "icon": "spell_nature_magicimmunity",
          "tree": "Restoration",
          "row": 1,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Totemic Focus",
          "icon": "spell_nature_moonglow",
          "tree": "Restoration",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Mindfulness",
          "icon": "spell_nature_sleep",
          "tree": "Restoration",
          "row": 2,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Natural Grace",
          "icon": "spell_nature_healingtouch",
          "tree": "Restoration",
          "row": 2,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Tidal Focus",
          "icon": "spell_frost_manarecharge",
          "tree": "Restoration",
          "row": 2,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Reincarnation",
          "icon": "spell_nature_reincarnation",
          "tree": "Restoration",
          "row": 2,
          "column": 4,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Ancestral Healing",
          "icon": "spell_nature_undyingstrength",
          "tree": "Restoration",
          "row": 3,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Healing Focus",
          "icon": "spell_nature_healingwavelesser",
          "tree": "Restoration",
          "row": 3,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Water Shield",
          "icon": "ability_shaman_watershield",
          "tree": "Restoration",
          "row": 3,
          "column": 3,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Tidal Mastery",
          "icon": "spell_nature_tranquility",
          "tree": "Restoration",
          "row": 4,
          "column": 1,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Restorative Totems",
          "icon": "spell_nature_manaregentotem",
          "tree": "Restoration",
          "row": 4,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Mana Tide Totem",
          "icon": "spell_frost_summonwaterelemental",
          "tree": "Restoration",
          "row": 4,
          "column": 3,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Healing Way",
          "icon": "spell_nature_healingway",
          "tree": "Restoration",
          "row": 5,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Nature's Swiftness",
          "icon": "spell_nature_ravenform",
          "tree": "Restoration",
          "row": 5,
          "column": 3,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Purification",
          "icon": "spell_frost_wizardmark",
          "tree": "Restoration",
          "row": 6,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Riptide",
          "icon": "spell_nature_riptide",
          "tree": "Restoration",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Healing Way",
            "rank": 3
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        }
      ],
      "abilities": [
        {
          "name": "Ancestral Spirit",
          "icon": "spell_nature_regenerate",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 12,
              "spellId": 2008
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 20609
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 20610
            },
            {
              "label": "Rank 4",
              "level": 48,
              "spellId": 20776
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 20777
            }
          ]
        },
        {
          "name": "Astral Recall",
          "icon": "spell_nature_astralrecal",
          "category": "class_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 556
            }
          ]
        },
        {
          "name": "Call of the Ancestors",
          "icon": "spell_shaman_dropall_02",
          "category": "class_ability",
          "tabs": [
            "Elemental"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 66843
            }
          ]
        },
        {
          "name": "Call of the Elements",
          "icon": "spell_shaman_dropall_01",
          "category": "class_ability",
          "tabs": [
            "Elemental"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 66842
            }
          ]
        },
        {
          "name": "Call of the Spirits",
          "icon": "spell_shaman_dropall_03",
          "category": "class_ability",
          "tabs": [
            "Elemental"
          ],
          "level": 40,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 40,
              "spellId": 66844
            }
          ]
        },
        {
          "name": "Chain Heal",
          "icon": "spell_nature_healingwavegreater",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 40,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 40,
              "spellId": 1064
            },
            {
              "label": "Rank 2",
              "level": 46,
              "spellId": 10622
            },
            {
              "label": "Rank 3",
              "level": 54,
              "spellId": 10623
            }
          ]
        },
        {
          "name": "Chain Lightning",
          "icon": "spell_nature_chainlightning",
          "category": "class_ability",
          "tabs": [
            "Elemental"
          ],
          "level": 32,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 32,
              "spellId": 421
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 930
            },
            {
              "label": "Rank 3",
              "level": 48,
              "spellId": 2860
            },
            {
              "label": "Rank 4",
              "level": 56,
              "spellId": 10605
            }
          ]
        },
        {
          "name": "Cure Disease",
          "icon": "spell_nature_removedisease",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 22,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 22,
              "spellId": 2870
            }
          ]
        },
        {
          "name": "Cure Poison",
          "icon": "spell_nature_nullifypoison",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 16,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 16,
              "spellId": 526
            }
          ]
        },
        {
          "name": "Disease Cleansing Totem",
          "icon": "spell_nature_diseasecleansingtotem",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 38,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 38,
              "spellId": 8170
            }
          ]
        },
        {
          "name": "Earth Shock",
          "icon": "spell_nature_earthshock",
          "category": "class_ability",
          "tabs": [
            "Elemental"
          ],
          "level": 4,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 4,
              "spellId": 8042
            },
            {
              "label": "Rank 2",
              "level": 8,
              "spellId": 8044
            },
            {
              "label": "Rank 3",
              "level": 14,
              "spellId": 8045
            },
            {
              "label": "Rank 4",
              "level": 24,
              "spellId": 8046
            },
            {
              "label": "Rank 5",
              "level": 36,
              "spellId": 10412
            },
            {
              "label": "Rank 6",
              "level": 48,
              "spellId": 10413
            },
            {
              "label": "Rank 7",
              "level": 60,
              "spellId": 10414
            }
          ]
        },
        {
          "name": "Earthbind Totem",
          "icon": "spell_nature_strengthofearthtotem02",
          "category": "class_ability",
          "tabs": [
            "Elemental"
          ],
          "level": 6,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 6,
              "spellId": 2484
            }
          ]
        },
        {
          "name": "Far Sight",
          "icon": "spell_nature_farsight",
          "category": "class_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 26,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 26,
              "spellId": 6196
            }
          ]
        },
        {
          "name": "Fire Nova",
          "icon": "spell_fire_sealoffire",
          "category": "class_ability",
          "tabs": [
            "Elemental"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 12,
              "spellId": 408341
            },
            {
              "label": "Rank 2",
              "level": 22,
              "spellId": 408342
            },
            {
              "label": "Rank 3",
              "level": 32,
              "spellId": 408343
            },
            {
              "label": "Rank 4",
              "level": 42,
              "spellId": 408344
            },
            {
              "label": "Rank 5",
              "level": 52,
              "spellId": 408345
            }
          ]
        },
        {
          "name": "Fire Resistance Totem",
          "icon": "spell_fireresistancetotem_01",
          "category": "class_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 28,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 28,
              "spellId": 8184
            },
            {
              "label": "Rank 2",
              "level": 42,
              "spellId": 10537
            },
            {
              "label": "Rank 3",
              "level": 58,
              "spellId": 10538
            }
          ]
        },
        {
          "name": "Flame Shock",
          "icon": "spell_fire_flameshock",
          "category": "class_ability",
          "tabs": [
            "Elemental"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 8050
            },
            {
              "label": "Rank 2",
              "level": 18,
              "spellId": 8052
            },
            {
              "label": "Rank 3",
              "level": 28,
              "spellId": 8053
            },
            {
              "label": "Rank 4",
              "level": 40,
              "spellId": 10447
            },
            {
              "label": "Rank 5",
              "level": 52,
              "spellId": 10448
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 29228
            }
          ]
        },
        {
          "name": "Flametongue Totem",
          "icon": "spell_nature_guardianward",
          "category": "class_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 28,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 28,
              "spellId": 8227
            },
            {
              "label": "Rank 2",
              "level": 38,
              "spellId": 8249
            },
            {
              "label": "Rank 3",
              "level": 48,
              "spellId": 10526
            },
            {
              "label": "Rank 4",
              "level": 58,
              "spellId": 16387
            }
          ]
        },
        {
          "name": "Flametongue Weapon",
          "icon": "spell_fire_flametounge",
          "category": "class_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 8024
            },
            {
              "label": "Rank 2",
              "level": 18,
              "spellId": 8027
            },
            {
              "label": "Rank 3",
              "level": 26,
              "spellId": 8030
            },
            {
              "label": "Rank 4",
              "level": 36,
              "spellId": 16339
            },
            {
              "label": "Rank 5",
              "level": 46,
              "spellId": 16341
            },
            {
              "label": "Rank 6",
              "level": 56,
              "spellId": 16342
            }
          ]
        },
        {
          "name": "Frost Resistance Totem",
          "icon": "spell_frostresistancetotem_01",
          "category": "class_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 24,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 24,
              "spellId": 8181
            },
            {
              "label": "Rank 2",
              "level": 38,
              "spellId": 10478
            },
            {
              "label": "Rank 3",
              "level": 54,
              "spellId": 10479
            }
          ]
        },
        {
          "name": "Frost Shock",
          "icon": "spell_frost_frostshock",
          "category": "class_ability",
          "tabs": [
            "Elemental"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 8056
            },
            {
              "label": "Rank 2",
              "level": 34,
              "spellId": 8058
            },
            {
              "label": "Rank 3",
              "level": 46,
              "spellId": 10472
            },
            {
              "label": "Rank 4",
              "level": 58,
              "spellId": 10473
            }
          ]
        },
        {
          "name": "Frostbrand Weapon",
          "icon": "spell_frost_frostbrand",
          "category": "class_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 8033
            },
            {
              "label": "Rank 2",
              "level": 28,
              "spellId": 8038
            },
            {
              "label": "Rank 3",
              "level": 38,
              "spellId": 10456
            },
            {
              "label": "Rank 4",
              "level": 48,
              "spellId": 16355
            },
            {
              "label": "Rank 5",
              "level": 58,
              "spellId": 16356
            }
          ]
        },
        {
          "name": "Ghost Wolf",
          "icon": "spell_nature_spiritwolf",
          "category": "class_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 2645
            }
          ]
        },
        {
          "name": "Grace of Air Totem",
          "icon": "spell_nature_invisibilitytotem",
          "category": "class_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 42,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 42,
              "spellId": 8835
            },
            {
              "label": "Rank 2",
              "level": 56,
              "spellId": 10627
            },
            {
              "label": "Rank 3",
              "level": 60,
              "spellId": 25359
            }
          ]
        },
        {
          "name": "Grounding Totem",
          "icon": "spell_nature_groundingtotem",
          "category": "class_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 8177
            }
          ]
        },
        {
          "name": "Healing Stream Totem",
          "icon": "inv_spear_04",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 5394
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 6375
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 6377
            },
            {
              "label": "Rank 4",
              "level": 50,
              "spellId": 10462
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 10463
            }
          ]
        },
        {
          "name": "Healing Wave",
          "icon": "spell_nature_magicimmunity",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 331
            },
            {
              "label": "Rank 2",
              "level": 6,
              "spellId": 332
            },
            {
              "label": "Rank 3",
              "level": 12,
              "spellId": 547
            },
            {
              "label": "Rank 4",
              "level": 18,
              "spellId": 913
            },
            {
              "label": "Rank 5",
              "level": 24,
              "spellId": 939
            },
            {
              "label": "Rank 6",
              "level": 32,
              "spellId": 959
            },
            {
              "label": "Rank 7",
              "level": 40,
              "spellId": 8005
            },
            {
              "label": "Rank 8",
              "level": 48,
              "spellId": 10395
            },
            {
              "label": "Rank 9",
              "level": 56,
              "spellId": 10396
            },
            {
              "label": "Rank 10",
              "level": 60,
              "spellId": 25357
            }
          ]
        },
        {
          "name": "Lava Burst",
          "icon": "spell_shaman_lavaburst",
          "category": "talent_ability",
          "tabs": [
            "Elemental"
          ],
          "level": 40,
          "talent": "Lava Burst",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 40,
              "spellId": 408490
            },
            {
              "label": "Rank 2",
              "level": 50,
              "spellId": 1238299
            },
            {
              "label": "Rank 3",
              "level": 60,
              "spellId": 1238300
            }
          ]
        },
        {
          "name": "Lesser Healing Wave",
          "icon": "spell_nature_healingwavelesser",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 8004
            },
            {
              "label": "Rank 2",
              "level": 28,
              "spellId": 8008
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 8010
            },
            {
              "label": "Rank 4",
              "level": 44,
              "spellId": 10466
            },
            {
              "label": "Rank 5",
              "level": 52,
              "spellId": 10467
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 10468
            }
          ]
        },
        {
          "name": "Lightning Bolt",
          "icon": "spell_nature_lightning",
          "category": "class_ability",
          "tabs": [
            "Elemental"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 403
            },
            {
              "label": "Rank 2",
              "level": 8,
              "spellId": 529
            },
            {
              "label": "Rank 3",
              "level": 14,
              "spellId": 548
            },
            {
              "label": "Rank 4",
              "level": 20,
              "spellId": 915
            },
            {
              "label": "Rank 5",
              "level": 26,
              "spellId": 943
            },
            {
              "label": "Rank 6",
              "level": 32,
              "spellId": 6041
            },
            {
              "label": "Rank 7",
              "level": 38,
              "spellId": 10391
            },
            {
              "label": "Rank 8",
              "level": 44,
              "spellId": 10392
            },
            {
              "label": "Rank 9",
              "level": 50,
              "spellId": 15207
            },
            {
              "label": "Rank 10",
              "level": 56,
              "spellId": 15208
            }
          ]
        },
        {
          "name": "Lightning Shield",
          "icon": "spell_nature_lightningshield",
          "category": "class_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 8,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 8,
              "spellId": 324
            },
            {
              "label": "Rank 2",
              "level": 16,
              "spellId": 325
            },
            {
              "label": "Rank 3",
              "level": 24,
              "spellId": 905
            },
            {
              "label": "Rank 4",
              "level": 32,
              "spellId": 945
            },
            {
              "label": "Rank 5",
              "level": 40,
              "spellId": 8134
            },
            {
              "label": "Rank 6",
              "level": 48,
              "spellId": 10431
            },
            {
              "label": "Rank 7",
              "level": 56,
              "spellId": 10432
            }
          ]
        },
        {
          "name": "Magma Totem",
          "icon": "spell_fire_selfdestruct",
          "category": "class_ability",
          "tabs": [
            "Elemental"
          ],
          "level": 26,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 26,
              "spellId": 8190
            },
            {
              "label": "Rank 2",
              "level": 36,
              "spellId": 10585
            },
            {
              "label": "Rank 3",
              "level": 46,
              "spellId": 10586
            },
            {
              "label": "Rank 4",
              "level": 56,
              "spellId": 10587
            }
          ]
        },
        {
          "name": "Mana Spring Totem",
          "icon": "spell_nature_manaregentotem",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 26,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 26,
              "spellId": 5675
            },
            {
              "label": "Rank 2",
              "level": 36,
              "spellId": 10495
            },
            {
              "label": "Rank 3",
              "level": 46,
              "spellId": 10496
            },
            {
              "label": "Rank 4",
              "level": 56,
              "spellId": 10497
            }
          ]
        },
        {
          "name": "Mana Tide Totem",
          "icon": "spell_frost_summonwaterelemental",
          "category": "talent_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 40,
          "talent": "Mana Tide Totem",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 40,
              "spellId": 16190
            },
            {
              "label": "Rank 2",
              "level": 48,
              "spellId": 17354
            },
            {
              "label": "Rank 3",
              "level": 58,
              "spellId": 17359
            }
          ]
        },
        {
          "name": "Nature Resistance Totem",
          "icon": "spell_nature_natureresistancetotem",
          "category": "class_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 10595
            },
            {
              "label": "Rank 2",
              "level": 44,
              "spellId": 10600
            },
            {
              "label": "Rank 3",
              "level": 60,
              "spellId": 10601
            }
          ]
        },
        {
          "name": "Nature's Swiftness",
          "icon": "spell_nature_ravenform",
          "category": "talent_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 30,
          "talent": "Nature's Swiftness",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 16188
            }
          ]
        },
        {
          "name": "Poison Cleansing Totem",
          "icon": "spell_nature_poisoncleansingtotem",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 22,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 22,
              "spellId": 8166
            }
          ]
        },
        {
          "name": "Purge",
          "icon": "spell_nature_purge",
          "category": "class_ability",
          "tabs": [
            "Elemental"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 12,
              "spellId": 370
            },
            {
              "label": "Rank 2",
              "level": 32,
              "spellId": 8012
            }
          ]
        },
        {
          "name": "Rage of the Farseer",
          "icon": "spell_nature_bloodlust",
          "category": "talent_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 40,
          "talent": "Rage of the Farseer",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 40,
              "spellId": 425336
            }
          ]
        },
        {
          "name": "Reincarnation",
          "icon": "spell_nature_reincarnation",
          "category": "passive_class_skill",
          "tabs": [
            "Restoration"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Reagents: Ankh",
            "Passive class skill; not a castable action."
          ],
          "ranks": [
            {
              "label": "Passive",
              "level": 30,
              "spellId": 20608
            }
          ]
        },
        {
          "name": "Riptide",
          "icon": "spell_nature_riptide",
          "category": "talent_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 40,
          "talent": "Riptide",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 40,
              "spellId": 408521
            },
            {
              "label": "Rank 2",
              "level": 50,
              "spellId": 1239242
            },
            {
              "label": "Rank 3",
              "level": 60,
              "spellId": 1239243
            }
          ]
        },
        {
          "name": "Rockbiter Weapon",
          "icon": "spell_nature_rockbiter",
          "category": "class_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 8017
            },
            {
              "label": "Rank 2",
              "level": 8,
              "spellId": 8018
            },
            {
              "label": "Rank 3",
              "level": 16,
              "spellId": 8019
            },
            {
              "label": "Rank 4",
              "level": 24,
              "spellId": 10399
            },
            {
              "label": "Rank 5",
              "level": 34,
              "spellId": 16314
            },
            {
              "label": "Rank 6",
              "level": 44,
              "spellId": 16315
            },
            {
              "label": "Rank 7",
              "level": 54,
              "spellId": 16316
            }
          ]
        },
        {
          "name": "Searing Totem",
          "icon": "spell_fire_searingtotem",
          "category": "class_ability",
          "tabs": [
            "Elemental"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 3599
            },
            {
              "label": "Rank 2",
              "level": 20,
              "spellId": 6363
            },
            {
              "label": "Rank 3",
              "level": 30,
              "spellId": 6364
            },
            {
              "label": "Rank 4",
              "level": 40,
              "spellId": 6365
            },
            {
              "label": "Rank 5",
              "level": 50,
              "spellId": 10437
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 10438
            }
          ]
        },
        {
          "name": "Sentry Totem",
          "icon": "spell_nature_removecurse",
          "category": "class_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 34,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 34,
              "spellId": 6495
            }
          ]
        },
        {
          "name": "Stoneclaw Totem",
          "icon": "spell_nature_stoneclawtotem",
          "category": "class_ability",
          "tabs": [
            "Elemental"
          ],
          "level": 8,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 8,
              "spellId": 5730
            },
            {
              "label": "Rank 2",
              "level": 18,
              "spellId": 6390
            },
            {
              "label": "Rank 3",
              "level": 28,
              "spellId": 6391
            },
            {
              "label": "Rank 4",
              "level": 38,
              "spellId": 6392
            },
            {
              "label": "Rank 5",
              "level": 48,
              "spellId": 10427
            },
            {
              "label": "Rank 6",
              "level": 58,
              "spellId": 10428
            }
          ]
        },
        {
          "name": "Stoneskin Totem",
          "icon": "spell_nature_stoneskintotem",
          "category": "class_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 4,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 4,
              "spellId": 8071
            },
            {
              "label": "Rank 2",
              "level": 14,
              "spellId": 8154
            },
            {
              "label": "Rank 3",
              "level": 24,
              "spellId": 8155
            },
            {
              "label": "Rank 4",
              "level": 34,
              "spellId": 10406
            },
            {
              "label": "Rank 5",
              "level": 44,
              "spellId": 10407
            },
            {
              "label": "Rank 6",
              "level": 54,
              "spellId": 10408
            }
          ]
        },
        {
          "name": "Stormstrike",
          "icon": "ability_shaman_stormstrike",
          "category": "talent_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 40,
          "talent": "Stormstrike",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 40,
              "spellId": 17364
            }
          ]
        },
        {
          "name": "Strength of Earth Totem",
          "icon": "spell_nature_earthbindtotem",
          "category": "class_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 8075
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 8160
            },
            {
              "label": "Rank 3",
              "level": 38,
              "spellId": 8161
            },
            {
              "label": "Rank 4",
              "level": 52,
              "spellId": 10442
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 25361
            }
          ]
        },
        {
          "name": "Totemic Projection",
          "icon": "ability_shaman_totemrelocation",
          "category": "class_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 22,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 22,
              "spellId": 437009
            }
          ]
        },
        {
          "name": "Totemic Recall",
          "icon": "spell_shaman_totemrecall",
          "category": "class_ability",
          "tabs": [
            "Elemental"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 36936
            }
          ]
        },
        {
          "name": "Tremor Totem",
          "icon": "spell_nature_tremortotem",
          "category": "class_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 18,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 18,
              "spellId": 8143
            }
          ]
        },
        {
          "name": "Water Breathing",
          "icon": "spell_shadow_demonbreath",
          "category": "class_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 22,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Shiny Fish Scales"
          ],
          "ranks": [
            {
              "label": null,
              "level": 22,
              "spellId": 131
            }
          ]
        },
        {
          "name": "Water Shield",
          "icon": "ability_shaman_watershield",
          "category": "talent_ability",
          "tabs": [
            "Restoration"
          ],
          "level": 20,
          "talent": "Water Shield",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 408510
            }
          ]
        },
        {
          "name": "Water Walking",
          "icon": "spell_frost_windwalkon",
          "category": "class_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 28,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Fish Oil"
          ],
          "ranks": [
            {
              "label": null,
              "level": 28,
              "spellId": 546
            }
          ]
        },
        {
          "name": "Windfury Totem",
          "icon": "spell_nature_windfury",
          "category": "class_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 32,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 32,
              "spellId": 8512
            },
            {
              "label": "Rank 2",
              "level": 42,
              "spellId": 10613
            },
            {
              "label": "Rank 3",
              "level": 52,
              "spellId": 10614
            }
          ]
        },
        {
          "name": "Windfury Weapon",
          "icon": "spell_nature_cyclone",
          "category": "class_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 8232
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 8235
            },
            {
              "label": "Rank 3",
              "level": 50,
              "spellId": 10486
            },
            {
              "label": "Rank 4",
              "level": 60,
              "spellId": 16362
            }
          ]
        },
        {
          "name": "Windwall Totem",
          "icon": "spell_nature_earthbind",
          "category": "class_ability",
          "tabs": [
            "Enhancement"
          ],
          "level": 36,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 36,
              "spellId": 15107
            },
            {
              "label": "Rank 2",
              "level": 46,
              "spellId": 15111
            },
            {
              "label": "Rank 3",
              "level": 56,
              "spellId": 15112
            }
          ]
        }
      ]
    },
    {
      "slug": "warlock",
      "name": "Warlock",
      "icon": "class_warlock",
      "treeIcons": {
        "Affliction": "spell_shadow_deathcoil",
        "Demonology": "spell_shadow_metamorphosis",
        "Destruction": "spell_shadow_rainoffire"
      },
      "trees": [
        "Affliction",
        "Demonology",
        "Destruction"
      ],
      "talents": [
        {
          "name": "Improved Life Tap",
          "icon": "spell_shadow_burningspirit",
          "tree": "Affliction",
          "row": 1,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Suppression",
          "icon": "spell_shadow_unsummonbuilding",
          "tree": "Affliction",
          "row": 1,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Improved Corruption",
          "icon": "spell_shadow_abominationexplosion",
          "tree": "Affliction",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Malediction",
          "icon": "spell_shadow_curseofachimonde",
          "tree": "Affliction",
          "row": 2,
          "column": 1,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Soul Harvesting",
          "icon": "inv_elemental_primal_shadow",
          "tree": "Affliction",
          "row": 2,
          "column": 2,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Drains",
          "icon": "spell_shadow_haunting",
          "tree": "Affliction",
          "row": 2,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Bane of Agony",
          "icon": "spell_shadow_curseofsargeras",
          "tree": "Affliction",
          "row": 3,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Fel Concentration",
          "icon": "spell_shadow_fingerofdeath",
          "tree": "Affliction",
          "row": 3,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Amplify Curse",
          "icon": "spell_shadow_contagion",
          "tree": "Affliction",
          "row": 3,
          "column": 3,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Pandemic",
          "icon": "spell_shadow_unstableaffliction_2",
          "tree": "Affliction",
          "row": 3,
          "column": 4,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Malevolence",
          "icon": "spell_shadow_focusedpower",
          "tree": "Affliction",
          "row": 4,
          "column": 1,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Nightfall",
          "icon": "spell_shadow_twilight",
          "tree": "Affliction",
          "row": 4,
          "column": 2,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Curse of Exhaustion",
          "icon": "spell_shadow_grimward",
          "tree": "Affliction",
          "row": 4,
          "column": 3,
          "maxRank": 1,
          "prerequisite": {
            "name": "Amplify Curse",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Siphon Life",
          "icon": "spell_shadow_requiem",
          "tree": "Affliction",
          "row": 5,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Soul Siphon",
          "icon": "spell_shadow_lifedrain02",
          "tree": "Affliction",
          "row": 5,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Shadow Mastery",
          "icon": "spell_shadow_shadetruesight",
          "tree": "Affliction",
          "row": 6,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Wrack",
          "icon": "ability_deathknight_hemorrhagicfever",
          "tree": "Affliction",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Siphon Life",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        },
        {
          "name": "Improved Health Funnel",
          "icon": "spell_shadow_lifedrain",
          "tree": "Demonology",
          "row": 1,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Improved Imp",
          "icon": "spell_shadow_summonimp",
          "tree": "Demonology",
          "row": 1,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Demonic Embrace",
          "icon": "spell_shadow_metamorphosis",
          "tree": "Demonology",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Unholy Power",
          "icon": "spell_shadow_shadowworddominate",
          "tree": "Demonology",
          "row": 1,
          "column": 4,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Demonic Aegis",
          "icon": "spell_shadow_ragingscream",
          "tree": "Demonology",
          "row": 2,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Voidwalker",
          "icon": "spell_shadow_summonvoidwalker",
          "tree": "Demonology",
          "row": 2,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Fel Vitality",
          "icon": "spell_shadow_demonictactics",
          "tree": "Demonology",
          "row": 2,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Demonic Energies",
          "icon": "spell_shadow_felmending",
          "tree": "Demonology",
          "row": 2,
          "column": 4,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Sayaad",
          "icon": "ability_warlock_randomizesuccubusincubus",
          "tree": "Demonology",
          "row": 3,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Demonic Sacrifice",
          "icon": "spell_shadow_psychicscream",
          "tree": "Demonology",
          "row": 3,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Master Summoner",
          "icon": "spell_shadow_impphaseshift",
          "tree": "Demonology",
          "row": 3,
          "column": 3,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Decimation",
          "icon": "spell_fire_fireball02",
          "tree": "Demonology",
          "row": 4,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Fel Domination",
          "icon": "spell_nature_removecurse",
          "tree": "Demonology",
          "row": 4,
          "column": 3,
          "maxRank": 1,
          "prerequisite": {
            "name": "Master Summoner",
            "rank": 2
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Demonic Brand",
          "icon": "ability_demonhunter_chaoticimprint_fire",
          "tree": "Demonology",
          "row": 4,
          "column": 4,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Improved Felhunter",
          "icon": "spell_shadow_summonfelhunter",
          "tree": "Demonology",
          "row": 5,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Soul Link",
          "icon": "spell_shadow_gathershadows",
          "tree": "Demonology",
          "row": 5,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Demonic Sacrifice",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Demonic Knowledge",
          "icon": "spell_shadow_improvedvampiricembrace",
          "tree": "Demonology",
          "row": 5,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Master Demonologist",
          "icon": "spell_shadow_shadowpact",
          "tree": "Demonology",
          "row": 6,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Demonic Pact",
          "icon": "inv_ability_soulharvesterwarlock_demonicsoul",
          "tree": "Demonology",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Soul Link",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        },
        {
          "name": "Destructive Reach",
          "icon": "spell_shadow_corpseexplode",
          "tree": "Destruction",
          "row": 1,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Improved Shadow Bolt",
          "icon": "spell_shadow_shadowbolt",
          "tree": "Destruction",
          "row": 1,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Bane",
          "icon": "spell_shadow_deathpact",
          "tree": "Destruction",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Molten Skin",
          "icon": "ability_mage_moltenarmor",
          "tree": "Destruction",
          "row": 2,
          "column": 1,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Cataclysm",
          "icon": "spell_fire_windsofwoe",
          "tree": "Destruction",
          "row": 2,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Aftermath",
          "icon": "spell_fire_fire",
          "tree": "Destruction",
          "row": 2,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Ruin",
          "icon": "spell_shadow_shadowwordpain",
          "tree": "Destruction",
          "row": 3,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Shadowburn",
          "icon": "spell_shadow_scourgebuild",
          "tree": "Destruction",
          "row": 3,
          "column": 3,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Intensity",
          "icon": "spell_fire_lavaspawn",
          "tree": "Destruction",
          "row": 4,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Agonizing Flames",
          "icon": "spell_fire_soulburn",
          "tree": "Destruction",
          "row": 4,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Conflagrate",
          "icon": "spell_fire_fireball",
          "tree": "Destruction",
          "row": 4,
          "column": 3,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Pyroclasm",
          "icon": "spell_fire_volcano",
          "tree": "Destruction",
          "row": 5,
          "column": 1,
          "maxRank": 2,
          "prerequisite": {
            "name": "Intensity",
            "rank": 3
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Bane of Havoc",
          "icon": "ability_warlock_baneofhavoc",
          "tree": "Destruction",
          "row": 5,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Fire and Brimstone",
          "icon": "spell_fire_meteorstorm",
          "tree": "Destruction",
          "row": 5,
          "column": 3,
          "maxRank": 3,
          "prerequisite": {
            "name": "Conflagrate",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Shadow and Flame",
          "icon": "spell_fire_playingwithfire",
          "tree": "Destruction",
          "row": 6,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Incinerate",
          "icon": "spell_fire_burnout",
          "tree": "Destruction",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Bane of Havoc",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        }
      ],
      "abilities": [
        {
          "name": "Amplify Curse",
          "icon": "spell_shadow_contagion",
          "category": "talent_ability",
          "tabs": [
            "Affliction"
          ],
          "level": 20,
          "talent": "Amplify Curse",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 18288
            }
          ]
        },
        {
          "name": "Bane of Agony",
          "icon": "spell_shadow_curseofsargeras",
          "category": "class_ability",
          "tabs": [
            "Affliction"
          ],
          "level": 8,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 8,
              "spellId": 980
            },
            {
              "label": "Rank 2",
              "level": 18,
              "spellId": 1014
            },
            {
              "label": "Rank 3",
              "level": 28,
              "spellId": 6217
            },
            {
              "label": "Rank 4",
              "level": 38,
              "spellId": 11711
            },
            {
              "label": "Rank 5",
              "level": 48,
              "spellId": 11712
            },
            {
              "label": "Rank 6",
              "level": 58,
              "spellId": 11713
            }
          ]
        },
        {
          "name": "Bane of Doom",
          "icon": "spell_shadow_auraofdarkness",
          "category": "class_ability",
          "tabs": [
            "Affliction"
          ],
          "level": 60,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 60,
              "spellId": 603
            }
          ]
        },
        {
          "name": "Bane of Havoc",
          "icon": "ability_warlock_baneofhavoc",
          "category": "talent_ability",
          "tabs": [
            "Destruction"
          ],
          "level": 30,
          "talent": "Bane of Havoc",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 1225228
            }
          ]
        },
        {
          "name": "Banish",
          "icon": "spell_shadow_cripple",
          "category": "class_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 28,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 28,
              "spellId": 710
            },
            {
              "label": "Rank 2",
              "level": 48,
              "spellId": 18647
            }
          ]
        },
        {
          "name": "Blood Pact",
          "icon": "spell_shadow_bloodboil",
          "category": "companion_ability",
          "tabs": [
            "Demons"
          ],
          "level": 4,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Demon: Imp",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 4,
              "spellId": 6307
            },
            {
              "label": "Rank 2",
              "level": 14,
              "spellId": 7804
            },
            {
              "label": "Rank 3",
              "level": 26,
              "spellId": 7805
            },
            {
              "label": "Rank 4",
              "level": 38,
              "spellId": 11766
            },
            {
              "label": "Rank 5",
              "level": 50,
              "spellId": 11767
            }
          ]
        },
        {
          "name": "Conflagrate",
          "icon": "spell_fire_fireball",
          "category": "talent_ability",
          "tabs": [
            "Destruction"
          ],
          "level": 25,
          "talent": "Conflagrate",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 25,
              "spellId": 1293817
            },
            {
              "label": "Rank 2",
              "level": 32,
              "spellId": 1293818
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 17962
            },
            {
              "label": "Rank 4",
              "level": 48,
              "spellId": 18930
            },
            {
              "label": "Rank 5",
              "level": 54,
              "spellId": 18931
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 18932
            }
          ]
        },
        {
          "name": "Consume Shadows",
          "icon": "spell_shadow_antishadow",
          "category": "companion_ability",
          "tabs": [
            "Demons"
          ],
          "level": 18,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Demon: Voidwalker",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 18,
              "spellId": 17767
            },
            {
              "label": "Rank 2",
              "level": 26,
              "spellId": 17850
            },
            {
              "label": "Rank 3",
              "level": 34,
              "spellId": 17851
            },
            {
              "label": "Rank 4",
              "level": 42,
              "spellId": 17852
            },
            {
              "label": "Rank 5",
              "level": 50,
              "spellId": 17853
            },
            {
              "label": "Rank 6",
              "level": 58,
              "spellId": 17854
            }
          ]
        },
        {
          "name": "Corruption",
          "icon": "spell_shadow_abominationexplosion",
          "category": "class_ability",
          "tabs": [
            "Affliction"
          ],
          "level": 4,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 4,
              "spellId": 172
            },
            {
              "label": "Rank 2",
              "level": 14,
              "spellId": 6222
            },
            {
              "label": "Rank 3",
              "level": 24,
              "spellId": 6223
            },
            {
              "label": "Rank 4",
              "level": 34,
              "spellId": 7648
            },
            {
              "label": "Rank 5",
              "level": 44,
              "spellId": 11671
            },
            {
              "label": "Rank 6",
              "level": 54,
              "spellId": 11672
            },
            {
              "label": "Rank 7",
              "level": 60,
              "spellId": 25311
            }
          ]
        },
        {
          "name": "Create Firestone",
          "icon": "inv_misc_gem_bloodstone_02",
          "category": "class_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 28,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Soul Shard"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 28,
              "spellId": 6366
            },
            {
              "label": "Rank 2",
              "level": 36,
              "spellId": 17951
            },
            {
              "label": "Rank 3",
              "level": 46,
              "spellId": 17952
            },
            {
              "label": "Rank 4",
              "level": 56,
              "spellId": 17953
            }
          ]
        },
        {
          "name": "Create Healthstone",
          "icon": "inv_stone_04",
          "category": "class_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Soul Shard"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 6201
            },
            {
              "label": "Rank 2",
              "level": 22,
              "spellId": 6202
            },
            {
              "label": "Rank 3",
              "level": 34,
              "spellId": 5699
            },
            {
              "label": "Rank 4",
              "level": 46,
              "spellId": 11729
            },
            {
              "label": "Rank 5",
              "level": 58,
              "spellId": 11730
            }
          ]
        },
        {
          "name": "Create Soulstone",
          "icon": "spell_shadow_soulgem",
          "category": "class_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 18,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Soul Shard"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 18,
              "spellId": 693
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 20752
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 20755
            },
            {
              "label": "Rank 4",
              "level": 50,
              "spellId": 20756
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 20757
            }
          ]
        },
        {
          "name": "Create Spellstone",
          "icon": "inv_misc_gem_sapphire_01",
          "category": "class_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 36,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Soul Shard"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 36,
              "spellId": 2362
            },
            {
              "label": "Rank 2",
              "level": 48,
              "spellId": 17727
            },
            {
              "label": "Rank 3",
              "level": 60,
              "spellId": 17728
            }
          ]
        },
        {
          "name": "Curse of Exhaustion",
          "icon": "spell_shadow_grimward",
          "category": "talent_ability",
          "tabs": [
            "Affliction"
          ],
          "level": 25,
          "talent": "Curse of Exhaustion",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 25,
              "spellId": 18223
            }
          ]
        },
        {
          "name": "Curse of Recklessness",
          "icon": "spell_shadow_unholystrength",
          "category": "class_ability",
          "tabs": [
            "Affliction"
          ],
          "level": 14,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 14,
              "spellId": 704
            },
            {
              "label": "Rank 2",
              "level": 28,
              "spellId": 7658
            },
            {
              "label": "Rank 3",
              "level": 42,
              "spellId": 7659
            },
            {
              "label": "Rank 4",
              "level": 56,
              "spellId": 11717
            }
          ]
        },
        {
          "name": "Curse of Tongues",
          "icon": "spell_shadow_curseoftounges",
          "category": "class_ability",
          "tabs": [
            "Affliction"
          ],
          "level": 26,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 26,
              "spellId": 1714
            },
            {
              "label": "Rank 2",
              "level": 50,
              "spellId": 11719
            }
          ]
        },
        {
          "name": "Curse of Weakness",
          "icon": "spell_shadow_curseofmannoroth",
          "category": "class_ability",
          "tabs": [
            "Affliction"
          ],
          "level": 4,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 4,
              "spellId": 702
            },
            {
              "label": "Rank 2",
              "level": 12,
              "spellId": 1108
            },
            {
              "label": "Rank 3",
              "level": 22,
              "spellId": 6205
            },
            {
              "label": "Rank 4",
              "level": 32,
              "spellId": 7646
            },
            {
              "label": "Rank 5",
              "level": 42,
              "spellId": 11707
            },
            {
              "label": "Rank 6",
              "level": 52,
              "spellId": 11708
            }
          ]
        },
        {
          "name": "Curse of the Elements",
          "icon": "warlock_curse_shadow",
          "category": "class_ability",
          "tabs": [
            "Affliction"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 440892
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 1311676
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 1311677
            },
            {
              "label": "Rank 4",
              "level": 50,
              "spellId": 1311680
            }
          ]
        },
        {
          "name": "Death Coil",
          "icon": "spell_shadow_deathcoil",
          "category": "class_ability",
          "tabs": [
            "Affliction"
          ],
          "level": 42,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 42,
              "spellId": 6789
            },
            {
              "label": "Rank 2",
              "level": 50,
              "spellId": 17925
            },
            {
              "label": "Rank 3",
              "level": 58,
              "spellId": 17926
            }
          ]
        },
        {
          "name": "Demon Armor",
          "icon": "spell_shadow_ragingscream",
          "category": "class_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 706
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 1086
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 11733
            },
            {
              "label": "Rank 4",
              "level": 50,
              "spellId": 11734
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 11735
            }
          ]
        },
        {
          "name": "Demon Skin",
          "icon": "spell_shadow_ragingscream",
          "category": "class_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 687
            },
            {
              "label": "Rank 2",
              "level": 10,
              "spellId": 696
            }
          ]
        },
        {
          "name": "Demonic Sacrifice",
          "icon": "spell_shadow_psychicscream",
          "category": "talent_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 20,
          "talent": "Demonic Sacrifice",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 18788
            }
          ]
        },
        {
          "name": "Detect Invisibility",
          "icon": "spell_shadow_detectinvisibility",
          "category": "class_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 26,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 26,
              "spellId": 132
            },
            {
              "label": "Rank 2",
              "level": 38,
              "spellId": 2970
            },
            {
              "label": "Rank 3",
              "level": 50,
              "spellId": 11743
            }
          ]
        },
        {
          "name": "Devour Magic",
          "icon": "spell_nature_purge",
          "category": "companion_ability",
          "tabs": [
            "Demons"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Demon: Felhunter",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 19505
            },
            {
              "label": "Rank 2",
              "level": 38,
              "spellId": 19731
            },
            {
              "label": "Rank 3",
              "level": 46,
              "spellId": 19734
            },
            {
              "label": "Rank 4",
              "level": 54,
              "spellId": 19736
            }
          ]
        },
        {
          "name": "Drain Life",
          "icon": "spell_shadow_lifedrain02",
          "category": "class_ability",
          "tabs": [
            "Affliction"
          ],
          "level": 14,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 14,
              "spellId": 689
            },
            {
              "label": "Rank 2",
              "level": 22,
              "spellId": 699
            },
            {
              "label": "Rank 3",
              "level": 30,
              "spellId": 709
            },
            {
              "label": "Rank 4",
              "level": 38,
              "spellId": 7651
            },
            {
              "label": "Rank 5",
              "level": 46,
              "spellId": 11699
            },
            {
              "label": "Rank 6",
              "level": 54,
              "spellId": 11700
            }
          ]
        },
        {
          "name": "Drain Mana",
          "icon": "spell_shadow_siphonmana",
          "category": "class_ability",
          "tabs": [
            "Affliction"
          ],
          "level": 24,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 24,
              "spellId": 5138
            },
            {
              "label": "Rank 2",
              "level": 34,
              "spellId": 6226
            },
            {
              "label": "Rank 3",
              "level": 44,
              "spellId": 11703
            },
            {
              "label": "Rank 4",
              "level": 54,
              "spellId": 11704
            }
          ]
        },
        {
          "name": "Drain Soul",
          "icon": "spell_shadow_haunting",
          "category": "class_ability",
          "tabs": [
            "Affliction"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 1120
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 8288
            },
            {
              "label": "Rank 3",
              "level": 38,
              "spellId": 8289
            },
            {
              "label": "Rank 4",
              "level": 52,
              "spellId": 11675
            }
          ]
        },
        {
          "name": "Eye of Kilrogg",
          "icon": "spell_shadow_evileye",
          "category": "class_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 22,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Summon",
              "level": 22,
              "spellId": 126
            }
          ]
        },
        {
          "name": "Fear",
          "icon": "spell_shadow_possession",
          "category": "class_ability",
          "tabs": [
            "Affliction"
          ],
          "level": 8,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 8,
              "spellId": 5782
            },
            {
              "label": "Rank 2",
              "level": 32,
              "spellId": 6213
            },
            {
              "label": "Rank 3",
              "level": 56,
              "spellId": 6215
            }
          ]
        },
        {
          "name": "Fel Domination",
          "icon": "spell_nature_removecurse",
          "category": "talent_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 25,
          "talent": "Fel Domination",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 25,
              "spellId": 18708
            }
          ]
        },
        {
          "name": "Fire Shield",
          "icon": "spell_fire_firearmor",
          "category": "companion_ability",
          "tabs": [
            "Demons"
          ],
          "level": 14,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Demon: Imp",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 14,
              "spellId": 2947
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 8316
            },
            {
              "label": "Rank 3",
              "level": 34,
              "spellId": 8317
            },
            {
              "label": "Rank 4",
              "level": 44,
              "spellId": 11770
            },
            {
              "label": "Rank 5",
              "level": 54,
              "spellId": 11771
            }
          ]
        },
        {
          "name": "Firebolt",
          "icon": "spell_fire_firebolt",
          "category": "companion_ability",
          "tabs": [
            "Demons"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Demon: Imp",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 3110
            },
            {
              "label": "Rank 2",
              "level": 8,
              "spellId": 7799
            },
            {
              "label": "Rank 3",
              "level": 18,
              "spellId": 7800
            },
            {
              "label": "Rank 4",
              "level": 28,
              "spellId": 7801
            },
            {
              "label": "Rank 5",
              "level": 38,
              "spellId": 7802
            },
            {
              "label": "Rank 6",
              "level": 48,
              "spellId": 11762
            },
            {
              "label": "Rank 7",
              "level": 58,
              "spellId": 11763
            }
          ]
        },
        {
          "name": "Health Funnel",
          "icon": "spell_shadow_lifedrain",
          "category": "class_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 12,
              "spellId": 755
            },
            {
              "label": "Rank 2",
              "level": 20,
              "spellId": 3698
            },
            {
              "label": "Rank 3",
              "level": 28,
              "spellId": 3699
            },
            {
              "label": "Rank 4",
              "level": 36,
              "spellId": 3700
            },
            {
              "label": "Rank 5",
              "level": 44,
              "spellId": 11693
            },
            {
              "label": "Rank 6",
              "level": 52,
              "spellId": 11694
            },
            {
              "label": "Rank 7",
              "level": 60,
              "spellId": 11695
            }
          ]
        },
        {
          "name": "Hellfire",
          "icon": "spell_fire_incinerate",
          "category": "class_ability",
          "tabs": [
            "Destruction"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 1949
            },
            {
              "label": "Rank 2",
              "level": 42,
              "spellId": 11683
            },
            {
              "label": "Rank 3",
              "level": 54,
              "spellId": 11684
            }
          ]
        },
        {
          "name": "Howl of Terror",
          "icon": "spell_shadow_deathscream",
          "category": "class_ability",
          "tabs": [
            "Affliction"
          ],
          "level": 40,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 40,
              "spellId": 5484
            },
            {
              "label": "Rank 2",
              "level": 54,
              "spellId": 17928
            }
          ]
        },
        {
          "name": "Immolate",
          "icon": "spell_fire_immolation",
          "category": "class_ability",
          "tabs": [
            "Destruction"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 348
            },
            {
              "label": "Rank 2",
              "level": 10,
              "spellId": 707
            },
            {
              "label": "Rank 3",
              "level": 20,
              "spellId": 1094
            },
            {
              "label": "Rank 4",
              "level": 30,
              "spellId": 2941
            },
            {
              "label": "Rank 5",
              "level": 40,
              "spellId": 11665
            },
            {
              "label": "Rank 6",
              "level": 50,
              "spellId": 11667
            },
            {
              "label": "Rank 7",
              "level": 60,
              "spellId": 11668
            },
            {
              "label": "Rank 8",
              "level": 60,
              "spellId": 25309
            }
          ]
        },
        {
          "name": "Incinerate",
          "icon": "spell_fire_burnout",
          "category": "talent_ability",
          "tabs": [
            "Destruction"
          ],
          "level": 40,
          "talent": "Incinerate",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 40,
              "spellId": 412758
            },
            {
              "label": "Rank 2",
              "level": 50,
              "spellId": 1293812
            },
            {
              "label": "Rank 3",
              "level": 60,
              "spellId": 1293813
            }
          ]
        },
        {
          "name": "Inferno",
          "icon": "spell_shadow_summoninfernal",
          "category": "class_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 50,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Infernal Stone"
          ],
          "ranks": [
            {
              "label": "Summon",
              "level": 50,
              "spellId": 1122
            }
          ]
        },
        {
          "name": "Lash of Pain",
          "icon": "spell_shadow_curse",
          "category": "companion_ability",
          "tabs": [
            "Demons"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Demon: Succubus",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 7814
            },
            {
              "label": "Rank 2",
              "level": 28,
              "spellId": 7815
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 7816
            },
            {
              "label": "Rank 4",
              "level": 44,
              "spellId": 11778
            },
            {
              "label": "Rank 5",
              "level": 52,
              "spellId": 11779
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 11780
            }
          ]
        },
        {
          "name": "Lesser Invisibility",
          "icon": "spell_magic_lesserinvisibilty",
          "category": "companion_ability",
          "tabs": [
            "Demons"
          ],
          "level": 32,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Demon: Succubus",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": null,
              "level": 32,
              "spellId": 7870
            }
          ]
        },
        {
          "name": "Life Tap",
          "icon": "spell_shadow_burningspirit",
          "category": "class_ability",
          "tabs": [
            "Affliction"
          ],
          "level": 6,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 6,
              "spellId": 1454
            },
            {
              "label": "Rank 2",
              "level": 16,
              "spellId": 1455
            },
            {
              "label": "Rank 3",
              "level": 26,
              "spellId": 1456
            },
            {
              "label": "Rank 4",
              "level": 36,
              "spellId": 11687
            },
            {
              "label": "Rank 5",
              "level": 46,
              "spellId": 11688
            },
            {
              "label": "Rank 6",
              "level": 56,
              "spellId": 11689
            }
          ]
        },
        {
          "name": "Paranoia",
          "icon": "spell_shadow_auraofdarkness",
          "category": "companion_ability",
          "tabs": [
            "Demons"
          ],
          "level": 42,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Demon: Felhunter",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": null,
              "level": 42,
              "spellId": 19480
            }
          ]
        },
        {
          "name": "Phase Shift",
          "icon": "spell_shadow_impphaseshift",
          "category": "companion_ability",
          "tabs": [
            "Demons"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Demon: Imp",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": null,
              "level": 12,
              "spellId": 4511
            }
          ]
        },
        {
          "name": "Rain of Fire",
          "icon": "spell_shadow_rainoffire",
          "category": "class_ability",
          "tabs": [
            "Destruction"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 5740
            },
            {
              "label": "Rank 2",
              "level": 34,
              "spellId": 6219
            },
            {
              "label": "Rank 3",
              "level": 46,
              "spellId": 11677
            },
            {
              "label": "Rank 4",
              "level": 58,
              "spellId": 11678
            }
          ]
        },
        {
          "name": "Ritual of Doom",
          "icon": "spell_shadow_antimagicshell",
          "category": "class_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 60,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Demonic Figurine"
          ],
          "ranks": [
            {
              "label": null,
              "level": 60,
              "spellId": 18540
            }
          ]
        },
        {
          "name": "Ritual of Summoning",
          "icon": "spell_shadow_twilight",
          "category": "class_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Soul Shard"
          ],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 698
            }
          ]
        },
        {
          "name": "Sacrifice",
          "icon": "spell_shadow_sacrificialshield",
          "category": "companion_ability",
          "tabs": [
            "Demons"
          ],
          "level": 16,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Demon: Voidwalker",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 16,
              "spellId": 7812
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 19438
            },
            {
              "label": "Rank 3",
              "level": 32,
              "spellId": 19440
            },
            {
              "label": "Rank 4",
              "level": 40,
              "spellId": 19441
            },
            {
              "label": "Rank 5",
              "level": 48,
              "spellId": 19442
            },
            {
              "label": "Rank 6",
              "level": 56,
              "spellId": 19443
            }
          ]
        },
        {
          "name": "Searing Pain",
          "icon": "spell_fire_soulburn",
          "category": "class_ability",
          "tabs": [
            "Destruction"
          ],
          "level": 18,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 18,
              "spellId": 5676
            },
            {
              "label": "Rank 2",
              "level": 26,
              "spellId": 17919
            },
            {
              "label": "Rank 3",
              "level": 34,
              "spellId": 17920
            },
            {
              "label": "Rank 4",
              "level": 42,
              "spellId": 17921
            },
            {
              "label": "Rank 5",
              "level": 50,
              "spellId": 17922
            },
            {
              "label": "Rank 6",
              "level": 58,
              "spellId": 17923
            }
          ]
        },
        {
          "name": "Seduction",
          "icon": "spell_shadow_mindsteal",
          "category": "companion_ability",
          "tabs": [
            "Demons"
          ],
          "level": 26,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Demon: Succubus",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": null,
              "level": 26,
              "spellId": 6358
            }
          ]
        },
        {
          "name": "Sense Demons",
          "icon": "spell_shadow_metamorphosis",
          "category": "class_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 24,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 24,
              "spellId": 5500
            }
          ]
        },
        {
          "name": "Shadow Bolt",
          "icon": "spell_shadow_shadowbolt",
          "category": "class_ability",
          "tabs": [
            "Destruction"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 686
            },
            {
              "label": "Rank 2",
              "level": 6,
              "spellId": 695
            },
            {
              "label": "Rank 3",
              "level": 12,
              "spellId": 705
            },
            {
              "label": "Rank 4",
              "level": 20,
              "spellId": 1088
            },
            {
              "label": "Rank 5",
              "level": 28,
              "spellId": 1106
            },
            {
              "label": "Rank 6",
              "level": 36,
              "spellId": 7641
            },
            {
              "label": "Rank 7",
              "level": 44,
              "spellId": 11659
            },
            {
              "label": "Rank 8",
              "level": 52,
              "spellId": 11660
            },
            {
              "label": "Rank 9",
              "level": 60,
              "spellId": 11661
            },
            {
              "label": "Rank 10",
              "level": 60,
              "spellId": 25307
            }
          ]
        },
        {
          "name": "Shadow Ward",
          "icon": "spell_shadow_antishadow",
          "category": "class_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 32,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 32,
              "spellId": 6229
            },
            {
              "label": "Rank 2",
              "level": 42,
              "spellId": 11739
            },
            {
              "label": "Rank 3",
              "level": 52,
              "spellId": 11740
            },
            {
              "label": "Rank 4",
              "level": 60,
              "spellId": 28610
            }
          ]
        },
        {
          "name": "Shadowburn",
          "icon": "spell_shadow_scourgebuild",
          "category": "talent_ability",
          "tabs": [
            "Destruction"
          ],
          "level": 20,
          "talent": "Shadowburn",
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Reagents: Soul Shard"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 17877
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 18867
            },
            {
              "label": "Rank 3",
              "level": 32,
              "spellId": 18868
            },
            {
              "label": "Rank 4",
              "level": 40,
              "spellId": 18869
            },
            {
              "label": "Rank 5",
              "level": 48,
              "spellId": 18870
            },
            {
              "label": "Rank 6",
              "level": 56,
              "spellId": 18871
            }
          ]
        },
        {
          "name": "Siphon Life",
          "icon": "spell_shadow_requiem",
          "category": "talent_ability",
          "tabs": [
            "Affliction"
          ],
          "level": 30,
          "talent": "Siphon Life",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 18265
            },
            {
              "label": "Rank 2",
              "level": 38,
              "spellId": 18879
            },
            {
              "label": "Rank 3",
              "level": 48,
              "spellId": 18880
            },
            {
              "label": "Rank 4",
              "level": 58,
              "spellId": 18881
            }
          ]
        },
        {
          "name": "Soothing Kiss",
          "icon": "spell_shadow_soothingkiss",
          "category": "companion_ability",
          "tabs": [
            "Demons"
          ],
          "level": 22,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Demon: Succubus",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 22,
              "spellId": 6360
            },
            {
              "label": "Rank 2",
              "level": 34,
              "spellId": 7813
            },
            {
              "label": "Rank 3",
              "level": 46,
              "spellId": 11784
            },
            {
              "label": "Rank 4",
              "level": 58,
              "spellId": 11785
            }
          ]
        },
        {
          "name": "Soul Fire",
          "icon": "spell_fire_fireball02",
          "category": "class_ability",
          "tabs": [
            "Destruction"
          ],
          "level": 48,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Soul Shard"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 48,
              "spellId": 6353
            },
            {
              "label": "Rank 2",
              "level": 56,
              "spellId": 17924
            }
          ]
        },
        {
          "name": "Soul Link",
          "icon": "spell_shadow_gathershadows",
          "category": "talent_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 40,
          "talent": "Soul Link",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 40,
              "spellId": 19028
            }
          ]
        },
        {
          "name": "Spell Lock",
          "icon": "spell_shadow_mindrot",
          "category": "companion_ability",
          "tabs": [
            "Demons"
          ],
          "level": 36,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Demon: Felhunter",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 36,
              "spellId": 19244
            },
            {
              "label": "Rank 2",
              "level": 52,
              "spellId": 19647
            }
          ]
        },
        {
          "name": "Subjugate Demon",
          "icon": "spell_shadow_enslavedemon",
          "category": "class_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Soul Shard"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 1098
            },
            {
              "label": "Rank 2",
              "level": 44,
              "spellId": 11725
            },
            {
              "label": "Rank 3",
              "level": 58,
              "spellId": 11726
            }
          ]
        },
        {
          "name": "Suffering",
          "icon": "spell_shadow_blackplague",
          "category": "companion_ability",
          "tabs": [
            "Demons"
          ],
          "level": 24,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Demon: Voidwalker",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 24,
              "spellId": 17735
            },
            {
              "label": "Rank 2",
              "level": 36,
              "spellId": 17750
            },
            {
              "label": "Rank 3",
              "level": 48,
              "spellId": 17751
            },
            {
              "label": "Rank 4",
              "level": 60,
              "spellId": 17752
            }
          ]
        },
        {
          "name": "Summon Felhunter",
          "icon": "spell_shadow_summonfelhunter",
          "category": "class_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Soul Shard"
          ],
          "ranks": [
            {
              "label": "Summon",
              "level": 30,
              "spellId": 691
            }
          ]
        },
        {
          "name": "Summon Imp",
          "icon": "spell_shadow_summonimp",
          "category": "class_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Summon",
              "level": 1,
              "spellId": 688
            }
          ]
        },
        {
          "name": "Summon Incubus",
          "icon": "ability_warlock_incubus",
          "category": "class_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Soul Shard"
          ],
          "ranks": [
            {
              "label": "Summon",
              "level": 20,
              "spellId": 713
            }
          ]
        },
        {
          "name": "Summon Succubus",
          "icon": "spell_shadow_summonsuccubus",
          "category": "class_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Soul Shard"
          ],
          "ranks": [
            {
              "label": "Summon",
              "level": 20,
              "spellId": 712
            }
          ]
        },
        {
          "name": "Summon Voidwalker",
          "icon": "spell_shadow_summonvoidwalker",
          "category": "class_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Reagents: Soul Shard"
          ],
          "ranks": [
            {
              "label": "Summon",
              "level": 10,
              "spellId": 697
            }
          ]
        },
        {
          "name": "Tainted Blood",
          "icon": "spell_shadow_lifedrain",
          "category": "companion_ability",
          "tabs": [
            "Demons"
          ],
          "level": 32,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Demon: Felhunter",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 32,
              "spellId": 19478
            },
            {
              "label": "Rank 2",
              "level": 40,
              "spellId": 19655
            },
            {
              "label": "Rank 3",
              "level": 48,
              "spellId": 19656
            },
            {
              "label": "Rank 4",
              "level": 56,
              "spellId": 19660
            }
          ]
        },
        {
          "name": "Torment",
          "icon": "spell_shadow_gathershadows",
          "category": "companion_ability",
          "tabs": [
            "Demons"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Demon: Voidwalker",
            "Requires the appropriate pet or demon and its learned ability; player level alone is insufficient."
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 3716
            },
            {
              "label": "Rank 2",
              "level": 20,
              "spellId": 7809
            },
            {
              "label": "Rank 3",
              "level": 30,
              "spellId": 7810
            },
            {
              "label": "Rank 4",
              "level": 40,
              "spellId": 7811
            },
            {
              "label": "Rank 5",
              "level": 50,
              "spellId": 11774
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 11775
            }
          ]
        },
        {
          "name": "Unending Breath",
          "icon": "spell_shadow_demonbreath",
          "category": "class_ability",
          "tabs": [
            "Demonology"
          ],
          "level": 16,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 16,
              "spellId": 5697
            }
          ]
        },
        {
          "name": "Wrack",
          "icon": "ability_deathknight_hemorrhagicfever",
          "category": "talent_ability",
          "tabs": [
            "Affliction"
          ],
          "level": 40,
          "talent": "Wrack",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 40,
              "spellId": 1316697
            }
          ]
        }
      ]
    },
    {
      "slug": "warrior",
      "name": "Warrior",
      "icon": "class_warrior",
      "treeIcons": {
        "Arms": "ability_rogue_eviscerate",
        "Fury": "ability_warrior_innerrage",
        "Protection": "ability_warrior_defensivestance"
      },
      "trees": [
        "Arms",
        "Fury",
        "Protection"
      ],
      "talents": [
        {
          "name": "Improved Heroic Strike",
          "icon": "ability_rogue_ambush",
          "tree": "Arms",
          "row": 1,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Deflection",
          "icon": "ability_parry",
          "tree": "Arms",
          "row": 1,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Improved Rend",
          "icon": "ability_gouge",
          "tree": "Arms",
          "row": 1,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Improved Charge",
          "icon": "ability_warrior_charge",
          "tree": "Arms",
          "row": 2,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Tactical Mastery",
          "icon": "spell_nature_enchantarmor",
          "tree": "Arms",
          "row": 2,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Overpower",
          "icon": "inv_sword_05",
          "tree": "Arms",
          "row": 2,
          "column": 4,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Anger Management",
          "icon": "spell_holy_blessingofstamina",
          "tree": "Arms",
          "row": 3,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Improved Tactical Mastery",
            "rank": 5
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Deep Wounds",
          "icon": "ability_backstab",
          "tree": "Arms",
          "row": 3,
          "column": 3,
          "maxRank": 3,
          "prerequisite": {
            "name": "Improved Rend",
            "rank": 3
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Spearing Strike",
          "icon": "inv_spear_01",
          "tree": "Arms",
          "row": 4,
          "column": 1,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Two-Handed Weapon Specialization",
          "icon": "inv_axe_09",
          "tree": "Arms",
          "row": 4,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Impale",
          "icon": "ability_searingarrow",
          "tree": "Arms",
          "row": 4,
          "column": 3,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Bloodthrill",
          "icon": "inv_sword_01",
          "tree": "Arms",
          "row": 5,
          "column": 1,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Sweeping Strikes",
          "icon": "ability_rogue_slicedice",
          "tree": "Arms",
          "row": 5,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Weaponmaster",
          "icon": "garrison_weaponupgrade",
          "tree": "Arms",
          "row": 5,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Improved Slam",
          "icon": "ability_warrior_decisivestrike",
          "tree": "Arms",
          "row": 6,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Improved Hamstring",
          "icon": "ability_shockwave",
          "tree": "Arms",
          "row": 6,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Mortal Strike",
          "icon": "ability_warrior_savageblow",
          "tree": "Arms",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Sweeping Strikes",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        },
        {
          "name": "Booming Voice",
          "icon": "spell_nature_purge",
          "tree": "Fury",
          "row": 1,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Cruelty",
          "icon": "ability_rogue_eviscerate",
          "tree": "Fury",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Iron Will",
          "icon": "spell_magic_magearmor",
          "tree": "Fury",
          "row": 2,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Unbridled Wrath",
          "icon": "spell_nature_stoneclawtotem",
          "tree": "Fury",
          "row": 2,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Cleave",
          "icon": "ability_warrior_cleave",
          "tree": "Fury",
          "row": 3,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Piercing Howl",
          "icon": "spell_shadow_deathscream",
          "tree": "Fury",
          "row": 3,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Blood Craze",
          "icon": "spell_shadow_summonimp",
          "tree": "Fury",
          "row": 3,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Boundless Rage",
          "icon": "ability_warrior_intensifyrage",
          "tree": "Fury",
          "row": 3,
          "column": 4,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Dual Wield Specialization",
          "icon": "ability_dualwield",
          "tree": "Fury",
          "row": 4,
          "column": 1,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Raging Blows",
          "icon": "ability_whirlwind",
          "tree": "Fury",
          "row": 4,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Enrage",
          "icon": "spell_shadow_unholyfrenzy",
          "tree": "Fury",
          "row": 4,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Improved Execute",
          "icon": "inv_sword_48",
          "tree": "Fury",
          "row": 4,
          "column": 4,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Precision",
          "icon": "ability_marksmanship",
          "tree": "Fury",
          "row": 5,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Death Wish",
          "icon": "spell_shadow_deathpact",
          "tree": "Fury",
          "row": 5,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Improved Intercept",
          "icon": "ability_rogue_sprint",
          "tree": "Fury",
          "row": 5,
          "column": 4,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Improved Berserker Rage",
          "icon": "spell_nature_ancestralguardian",
          "tree": "Fury",
          "row": 6,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Flurry",
          "icon": "ability_ghoulfrenzy",
          "tree": "Fury",
          "row": 6,
          "column": 3,
          "maxRank": 5,
          "prerequisite": {
            "name": "Enrage",
            "rank": 5
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Bloodthirst",
          "icon": "spell_nature_bloodlust",
          "tree": "Fury",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Death Wish",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        },
        {
          "name": "Shield Specialization",
          "icon": "inv_shield_06",
          "tree": "Protection",
          "row": 1,
          "column": 2,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Anticipation",
          "icon": "spell_nature_mirrorimage",
          "tree": "Protection",
          "row": 1,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 10
        },
        {
          "name": "Improved Bloodrage",
          "icon": "ability_racial_bloodrage",
          "tree": "Protection",
          "row": 2,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Toughness",
          "icon": "spell_holy_devotion",
          "tree": "Protection",
          "row": 2,
          "column": 3,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Improved Thunder Clap",
          "icon": "ability_thunderclap",
          "tree": "Protection",
          "row": 2,
          "column": 4,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 15
        },
        {
          "name": "Last Stand",
          "icon": "spell_holy_ashestoashes",
          "tree": "Protection",
          "row": 3,
          "column": 1,
          "maxRank": 1,
          "prerequisite": {
            "name": "Improved Bloodrage",
            "rank": 2
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Master of Defense",
          "icon": "ability_warrior_shieldguard",
          "tree": "Protection",
          "row": 3,
          "column": 2,
          "maxRank": 2,
          "prerequisite": {
            "name": "Shield Specialization",
            "rank": 5
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Improved Revenge",
          "icon": "ability_warrior_revenge",
          "tree": "Protection",
          "row": 3,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Defiance",
          "icon": "ability_warrior_innerrage",
          "tree": "Protection",
          "row": 3,
          "column": 4,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 20
        },
        {
          "name": "Improved Sunder Armor",
          "icon": "ability_warrior_sunder",
          "tree": "Protection",
          "row": 4,
          "column": 1,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Improved Disarm",
          "icon": "ability_warrior_disarm",
          "tree": "Protection",
          "row": 4,
          "column": 2,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Vanguard",
          "icon": "ability_warrior_shieldcharge",
          "tree": "Protection",
          "row": 4,
          "column": 3,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 25
        },
        {
          "name": "Improved Shield Wall",
          "icon": "ability_warrior_shieldwall",
          "tree": "Protection",
          "row": 5,
          "column": 1,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Concussion Blow",
          "icon": "ability_thunderbolt",
          "tree": "Protection",
          "row": 5,
          "column": 2,
          "maxRank": 1,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Improved Shield Bash",
          "icon": "ability_warrior_shieldbash",
          "tree": "Protection",
          "row": 5,
          "column": 3,
          "maxRank": 2,
          "prerequisite": null,
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Bastion",
          "icon": "inv_shield_04",
          "tree": "Protection",
          "row": 5,
          "column": 4,
          "maxRank": 5,
          "prerequisite": null,
          "evidence": "conflicted",
          "ordinaryMinimumLevel": 30
        },
        {
          "name": "Focused Rage",
          "icon": "ability_warrior_focusedrage",
          "tree": "Protection",
          "row": 6,
          "column": 3,
          "maxRank": 3,
          "prerequisite": null,
          "evidence": "conflicted",
          "ordinaryMinimumLevel": 35
        },
        {
          "name": "Shield Slam",
          "icon": "inv_shield_05",
          "tree": "Protection",
          "row": 7,
          "column": 2,
          "maxRank": 1,
          "prerequisite": {
            "name": "Concussion Blow",
            "rank": 1
          },
          "evidence": "calculator-derived",
          "ordinaryMinimumLevel": 40
        }
      ],
      "abilities": [
        {
          "name": "Battle Shout",
          "icon": "ability_warrior_battleshout",
          "category": "class_ability",
          "tabs": [
            "Fury"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 6673
            },
            {
              "label": "Rank 2",
              "level": 12,
              "spellId": 5242
            },
            {
              "label": "Rank 3",
              "level": 22,
              "spellId": 6192
            },
            {
              "label": "Rank 4",
              "level": 32,
              "spellId": 11549
            },
            {
              "label": "Rank 5",
              "level": 42,
              "spellId": 11550
            },
            {
              "label": "Rank 6",
              "level": 52,
              "spellId": 11551
            },
            {
              "label": "Rank 7",
              "level": 60,
              "spellId": 25289
            }
          ]
        },
        {
          "name": "Battle Stance",
          "icon": "ability_warrior_offensivestance",
          "category": "class_ability",
          "tabs": [
            "Arms"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 1,
              "spellId": 2457
            }
          ]
        },
        {
          "name": "Berserker Rage",
          "icon": "spell_nature_ancestralguardian",
          "category": "class_ability",
          "tabs": [
            "Fury"
          ],
          "level": 32,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Berserker Stance"
          ],
          "ranks": [
            {
              "label": null,
              "level": 32,
              "spellId": 18499
            }
          ]
        },
        {
          "name": "Berserker Stance",
          "icon": "ability_racial_avatar",
          "category": "class_ability",
          "tabs": [
            "Fury"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 2458
            }
          ]
        },
        {
          "name": "Bloodrage",
          "icon": "ability_racial_bloodrage",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 10,
              "spellId": 2687
            }
          ]
        },
        {
          "name": "Bloodthirst",
          "icon": "spell_nature_bloodlust",
          "category": "talent_ability",
          "tabs": [
            "Fury"
          ],
          "level": 40,
          "talent": "Bloodthirst",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 40,
              "spellId": 23881
            },
            {
              "label": "Rank 2",
              "level": 48,
              "spellId": 23892
            },
            {
              "label": "Rank 3",
              "level": 54,
              "spellId": 23893
            },
            {
              "label": "Rank 4",
              "level": 60,
              "spellId": 23894
            }
          ]
        },
        {
          "name": "Challenging Shout",
          "icon": "ability_bullrush",
          "category": "class_ability",
          "tabs": [
            "Fury"
          ],
          "level": 26,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 26,
              "spellId": 1161
            }
          ]
        },
        {
          "name": "Charge",
          "icon": "ability_warrior_charge",
          "category": "class_ability",
          "tabs": [
            "Arms"
          ],
          "level": 4,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Battle Stance"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 4,
              "spellId": 100
            },
            {
              "label": "Rank 2",
              "level": 26,
              "spellId": 6178
            },
            {
              "label": "Rank 3",
              "level": 46,
              "spellId": 11578
            }
          ]
        },
        {
          "name": "Cleave",
          "icon": "ability_warrior_cleave",
          "category": "class_ability",
          "tabs": [
            "Fury"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 845
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 7369
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 11608
            },
            {
              "label": "Rank 4",
              "level": 50,
              "spellId": 11609
            },
            {
              "label": "Rank 5",
              "level": 60,
              "spellId": 20569
            }
          ]
        },
        {
          "name": "Concussion Blow",
          "icon": "ability_thunderbolt",
          "category": "talent_ability",
          "tabs": [
            "Protection"
          ],
          "level": 30,
          "talent": "Concussion Blow",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 12809
            }
          ]
        },
        {
          "name": "Death Wish",
          "icon": "spell_shadow_deathpact",
          "category": "talent_ability",
          "tabs": [
            "Fury"
          ],
          "level": 30,
          "talent": "Death Wish",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 12328
            }
          ]
        },
        {
          "name": "Defensive Stance",
          "icon": "ability_warrior_defensivestance",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 10,
              "spellId": 71
            }
          ]
        },
        {
          "name": "Demoralizing Shout",
          "icon": "ability_warrior_warcry",
          "category": "class_ability",
          "tabs": [
            "Fury"
          ],
          "level": 14,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 14,
              "spellId": 1160
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 6190
            },
            {
              "label": "Rank 3",
              "level": 34,
              "spellId": 11554
            },
            {
              "label": "Rank 4",
              "level": 44,
              "spellId": 11555
            },
            {
              "label": "Rank 5",
              "level": 54,
              "spellId": 11556
            }
          ]
        },
        {
          "name": "Disarm",
          "icon": "ability_warrior_disarm",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 18,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Defensive Stance"
          ],
          "ranks": [
            {
              "label": null,
              "level": 18,
              "spellId": 676
            }
          ]
        },
        {
          "name": "Execute",
          "icon": "inv_sword_48",
          "category": "class_ability",
          "tabs": [
            "Fury"
          ],
          "level": 24,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Battle Stance, Berserker Stance"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 24,
              "spellId": 5308
            },
            {
              "label": "Rank 2",
              "level": 32,
              "spellId": 20658
            },
            {
              "label": "Rank 3",
              "level": 40,
              "spellId": 20660
            },
            {
              "label": "Rank 4",
              "level": 48,
              "spellId": 20661
            },
            {
              "label": "Rank 5",
              "level": 56,
              "spellId": 20662
            }
          ]
        },
        {
          "name": "Hamstring",
          "icon": "ability_shockwave",
          "category": "class_ability",
          "tabs": [
            "Arms"
          ],
          "level": 8,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Battle Stance, Berserker Stance"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 8,
              "spellId": 1715
            },
            {
              "label": "Rank 2",
              "level": 32,
              "spellId": 7372
            },
            {
              "label": "Rank 3",
              "level": 54,
              "spellId": 7373
            }
          ]
        },
        {
          "name": "Heroic Strike",
          "icon": "ability_rogue_ambush",
          "category": "class_ability",
          "tabs": [
            "Arms"
          ],
          "level": 1,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 1,
              "spellId": 78
            },
            {
              "label": "Rank 2",
              "level": 8,
              "spellId": 284
            },
            {
              "label": "Rank 3",
              "level": 16,
              "spellId": 285
            },
            {
              "label": "Rank 4",
              "level": 24,
              "spellId": 1608
            },
            {
              "label": "Rank 5",
              "level": 32,
              "spellId": 11564
            },
            {
              "label": "Rank 6",
              "level": 40,
              "spellId": 11565
            },
            {
              "label": "Rank 7",
              "level": 48,
              "spellId": 11566
            },
            {
              "label": "Rank 8",
              "level": 56,
              "spellId": 11567
            },
            {
              "label": "Rank 9",
              "level": 60,
              "spellId": 25286
            }
          ]
        },
        {
          "name": "Intercept",
          "icon": "ability_rogue_sprint",
          "category": "class_ability",
          "tabs": [
            "Fury"
          ],
          "level": 30,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Berserker Stance"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 30,
              "spellId": 20252
            },
            {
              "label": "Rank 2",
              "level": 42,
              "spellId": 20616
            },
            {
              "label": "Rank 3",
              "level": 52,
              "spellId": 20617
            }
          ]
        },
        {
          "name": "Intimidating Shout",
          "icon": "ability_golemthunderclap",
          "category": "class_ability",
          "tabs": [
            "Fury"
          ],
          "level": 22,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 22,
              "spellId": 5246
            }
          ]
        },
        {
          "name": "Last Stand",
          "icon": "spell_holy_ashestoashes",
          "category": "talent_ability",
          "tabs": [
            "Protection"
          ],
          "level": 20,
          "talent": "Last Stand",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 12975
            }
          ]
        },
        {
          "name": "Mocking Blow",
          "icon": "ability_warrior_punishingblow",
          "category": "class_ability",
          "tabs": [
            "Arms"
          ],
          "level": 16,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Battle Stance"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 16,
              "spellId": 694
            },
            {
              "label": "Rank 2",
              "level": 26,
              "spellId": 7400
            },
            {
              "label": "Rank 3",
              "level": 36,
              "spellId": 7402
            },
            {
              "label": "Rank 4",
              "level": 46,
              "spellId": 20559
            },
            {
              "label": "Rank 5",
              "level": 56,
              "spellId": 20560
            }
          ]
        },
        {
          "name": "Mortal Strike",
          "icon": "ability_warrior_savageblow",
          "category": "talent_ability",
          "tabs": [
            "Arms"
          ],
          "level": 40,
          "talent": "Mortal Strike",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 40,
              "spellId": 12294
            },
            {
              "label": "Rank 2",
              "level": 48,
              "spellId": 21551
            },
            {
              "label": "Rank 3",
              "level": 54,
              "spellId": 21552
            },
            {
              "label": "Rank 4",
              "level": 60,
              "spellId": 21553
            }
          ]
        },
        {
          "name": "Overpower",
          "icon": "ability_meleedamage",
          "category": "class_ability",
          "tabs": [
            "Arms"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Battle Stance"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 12,
              "spellId": 7384
            },
            {
              "label": "Rank 2",
              "level": 28,
              "spellId": 7887
            },
            {
              "label": "Rank 3",
              "level": 44,
              "spellId": 11584
            },
            {
              "label": "Rank 4",
              "level": 60,
              "spellId": 11585
            }
          ]
        },
        {
          "name": "Piercing Howl",
          "icon": "spell_shadow_deathscream",
          "category": "talent_ability",
          "tabs": [
            "Fury"
          ],
          "level": 20,
          "talent": "Piercing Howl",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 12323
            }
          ]
        },
        {
          "name": "Pummel",
          "icon": "inv_gauntlets_04",
          "category": "class_ability",
          "tabs": [
            "Fury"
          ],
          "level": 38,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Berserker Stance"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 38,
              "spellId": 6552
            },
            {
              "label": "Rank 2",
              "level": 58,
              "spellId": 6554
            }
          ]
        },
        {
          "name": "Recklessness",
          "icon": "ability_criticalstrike",
          "category": "class_ability",
          "tabs": [
            "Fury"
          ],
          "level": 50,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Berserker Stance"
          ],
          "ranks": [
            {
              "label": null,
              "level": 50,
              "spellId": 1719
            }
          ]
        },
        {
          "name": "Rend",
          "icon": "ability_gouge",
          "category": "class_ability",
          "tabs": [
            "Arms"
          ],
          "level": 4,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Battle Stance, Defensive Stance"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 4,
              "spellId": 772
            },
            {
              "label": "Rank 2",
              "level": 10,
              "spellId": 6546
            },
            {
              "label": "Rank 3",
              "level": 20,
              "spellId": 6547
            },
            {
              "label": "Rank 4",
              "level": 30,
              "spellId": 6548
            },
            {
              "label": "Rank 5",
              "level": 40,
              "spellId": 11572
            },
            {
              "label": "Rank 6",
              "level": 50,
              "spellId": 11573
            },
            {
              "label": "Rank 7",
              "level": 60,
              "spellId": 11574
            }
          ]
        },
        {
          "name": "Retaliation",
          "icon": "ability_warrior_challange",
          "category": "class_ability",
          "tabs": [
            "Arms"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Battle Stance"
          ],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 20230
            }
          ]
        },
        {
          "name": "Revenge",
          "icon": "ability_warrior_revenge",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 14,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Defensive Stance"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 14,
              "spellId": 6572
            },
            {
              "label": "Rank 2",
              "level": 24,
              "spellId": 6574
            },
            {
              "label": "Rank 3",
              "level": 34,
              "spellId": 7379
            },
            {
              "label": "Rank 4",
              "level": 44,
              "spellId": 11600
            },
            {
              "label": "Rank 5",
              "level": 54,
              "spellId": 11601
            },
            {
              "label": "Rank 6",
              "level": 60,
              "spellId": 25288
            }
          ]
        },
        {
          "name": "Shield Bash",
          "icon": "ability_warrior_shieldbash",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 12,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Battle Stance, Defensive Stance"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 12,
              "spellId": 72
            },
            {
              "label": "Rank 2",
              "level": 32,
              "spellId": 1671
            },
            {
              "label": "Rank 3",
              "level": 52,
              "spellId": 1672
            }
          ]
        },
        {
          "name": "Shield Block",
          "icon": "ability_defend",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 16,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Defensive Stance"
          ],
          "ranks": [
            {
              "label": null,
              "level": 16,
              "spellId": 2565
            }
          ]
        },
        {
          "name": "Shield Slam",
          "icon": "inv_shield_05",
          "category": "talent_ability",
          "tabs": [
            "Protection"
          ],
          "level": 40,
          "talent": "Shield Slam",
          "races": [],
          "evidence": "conditional",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 40,
              "spellId": 23922
            },
            {
              "label": "Rank 2",
              "level": 48,
              "spellId": 23923
            },
            {
              "label": "Rank 3",
              "level": 54,
              "spellId": 23924
            },
            {
              "label": "Rank 4",
              "level": 60,
              "spellId": 23925
            }
          ]
        },
        {
          "name": "Shield Wall",
          "icon": "ability_warrior_shieldwall",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 28,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Defensive Stance"
          ],
          "ranks": [
            {
              "label": null,
              "level": 28,
              "spellId": 871
            }
          ]
        },
        {
          "name": "Slam",
          "icon": "ability_warrior_decisivestrike",
          "category": "class_ability",
          "tabs": [
            "Fury"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 20,
              "spellId": 1240193
            },
            {
              "label": "Rank 2",
              "level": 30,
              "spellId": 1464
            },
            {
              "label": "Rank 3",
              "level": 38,
              "spellId": 8820
            },
            {
              "label": "Rank 4",
              "level": 46,
              "spellId": 11604
            },
            {
              "label": "Rank 5",
              "level": 54,
              "spellId": 11605
            }
          ]
        },
        {
          "name": "Spearing Strike",
          "icon": "inv_spear_01",
          "category": "talent_ability",
          "tabs": [
            "Arms"
          ],
          "level": 25,
          "talent": "Spearing Strike",
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Requires Two-Handed Axes, Two-Handed Maces, Polearms, Two-Handed Swords, Staves"
          ],
          "ranks": [
            {
              "label": null,
              "level": 25,
              "spellId": 1310222
            }
          ]
        },
        {
          "name": "Sunder Armor",
          "icon": "ability_warrior_sunder",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 10,
              "spellId": 7386
            },
            {
              "label": "Rank 2",
              "level": 22,
              "spellId": 7405
            },
            {
              "label": "Rank 3",
              "level": 34,
              "spellId": 8380
            },
            {
              "label": "Rank 4",
              "level": 46,
              "spellId": 11596
            },
            {
              "label": "Rank 5",
              "level": 58,
              "spellId": 11597
            }
          ]
        },
        {
          "name": "Sweeping Strikes",
          "icon": "ability_rogue_slicedice",
          "category": "talent_ability",
          "tabs": [
            "Arms"
          ],
          "level": 30,
          "talent": "Sweeping Strikes",
          "races": [],
          "evidence": "conditional",
          "requirements": [
            "Requires Battle Stance"
          ],
          "ranks": [
            {
              "label": null,
              "level": 30,
              "spellId": 12292
            }
          ]
        },
        {
          "name": "Tactical Mastery",
          "icon": "spell_nature_enchantarmor",
          "category": "class_ability",
          "tabs": [
            "Arms"
          ],
          "level": 14,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 14,
              "spellId": 1310185
            }
          ]
        },
        {
          "name": "Taunt",
          "icon": "spell_nature_reincarnation",
          "category": "class_ability",
          "tabs": [
            "Protection"
          ],
          "level": 10,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Defensive Stance"
          ],
          "ranks": [
            {
              "label": null,
              "level": 10,
              "spellId": 355
            }
          ]
        },
        {
          "name": "Thunder Clap",
          "icon": "spell_nature_thunderclap",
          "category": "class_ability",
          "tabs": [
            "Arms"
          ],
          "level": 6,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Battle Stance, Defensive Stance"
          ],
          "ranks": [
            {
              "label": "Rank 1",
              "level": 6,
              "spellId": 6343
            },
            {
              "label": "Rank 2",
              "level": 18,
              "spellId": 8198
            },
            {
              "label": "Rank 3",
              "level": 28,
              "spellId": 8204
            },
            {
              "label": "Rank 4",
              "level": 38,
              "spellId": 8205
            },
            {
              "label": "Rank 5",
              "level": 48,
              "spellId": 11580
            },
            {
              "label": "Rank 6",
              "level": 58,
              "spellId": 11581
            }
          ]
        },
        {
          "name": "Victory Rush",
          "icon": "ability_warrior_devastate",
          "category": "class_ability",
          "tabs": [
            "Arms"
          ],
          "level": 20,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [],
          "ranks": [
            {
              "label": null,
              "level": 20,
              "spellId": 402927
            }
          ]
        },
        {
          "name": "Whirlwind",
          "icon": "ability_whirlwind",
          "category": "class_ability",
          "tabs": [
            "Fury"
          ],
          "level": 36,
          "talent": null,
          "races": [],
          "evidence": "source-supported",
          "requirements": [
            "Requires Berserker Stance"
          ],
          "ranks": [
            {
              "label": null,
              "level": 36,
              "spellId": 1680
            }
          ]
        }
      ]
    }
  ],
  "macros": [
    {
      "macroId": "druid-abolish-poison-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Abolish Poison",
          "action": "cast",
          "level": 26,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Abolish Poison; the source reports its first rank at level 26. Confirm each later rank in your own spellbook."
      ]
    },
    {
      "macroId": "druid-bash-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Bash",
          "action": "cast",
          "level": 14,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Bash; the source reports its first rank at level 14. Confirm each later rank in your own spellbook.",
        "Bear Form or Dire Bear Form and enough Rage."
      ]
    },
    {
      "macroId": "druid-cat-opener-choice",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Ravage",
          "action": "cast",
          "level": 32,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Pounce",
          "action": "cast",
          "level": 36,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Ravage; the source reports its first rank at level 32. Confirm each later rank in your own spellbook.",
        "Learned Pounce; the source reports its first rank at level 36. Confirm each later rank in your own spellbook.",
        "Cat Form, Prowl, enough Energy and positioning behind your living enemy target."
      ]
    },
    {
      "macroId": "druid-claw-attack",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Claw",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Claw; the source reports its first rank at level 20. Confirm each later rank in your own spellbook.",
        "Cat Form and enough Energy."
      ]
    },
    {
      "macroId": "druid-cure-poison-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Cure Poison",
          "action": "cast",
          "level": 14,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Cure Poison; the source reports its first rank at level 14. Confirm each later rank in your own spellbook."
      ]
    },
    {
      "macroId": "druid-entangling-roots-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Entangling Roots",
          "action": "cast",
          "level": 8,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Entangling Roots; the source reports its first rank at level 8. Confirm each later rank in your own spellbook.",
        "Enough Mana for the learned spell rank being cast."
      ]
    },
    {
      "macroId": "druid-feral-charge-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Feral Charge",
          "action": "cast",
          "level": 20,
          "talent": "Feral Charge",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Feral Charge; the source reports its first rank at level 20. Confirm each later rank in your own spellbook.",
        "Feral Charge selected at rank 1 in Feral Combat, row 3; at least 11 points in a valid allocation are needed under the source calculator rules. Choosing a spec label does not grant this talent.",
        "Cat, Bear or Dire Bear Form, with the resources and range required by that form."
      ]
    },
    {
      "macroId": "druid-growl-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Growl",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Growl; the source reports its first rank at level 10. Confirm each later rank in your own spellbook.",
        "Bear Form or Dire Bear Form; a tauntable enemy within melee range."
      ]
    },
    {
      "macroId": "druid-healing-touch-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Healing Touch",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Healing Touch; the source reports its first rank at level 1. Confirm each later rank in your own spellbook.",
        "Enough Mana for the learned spell rank being cast."
      ]
    },
    {
      "macroId": "druid-hibernate-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Hibernate",
          "action": "cast",
          "level": 18,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Hibernate; the source reports its first rank at level 18. Confirm each later rank in your own spellbook.",
        "A Beast or Dragonkin susceptible to sleep.",
        "Enough Mana for the learned spell rank being cast."
      ]
    },
    {
      "macroId": "druid-hybrid-healing-touch-wrath",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Healing Touch",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Wrath",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Healing Touch learned; source first-learning level 1. Wrath learned; source first-learning level 1. Each branch needs its own learned spell; selecting a spec does not grant either spell.",
        "Both spells are cast-time Mana spells. Be in a form that permits the chosen spell; Moonkin Form does not permit Healing Touch."
      ]
    },
    {
      "macroId": "druid-hybrid-regrowth-starfire",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Regrowth",
          "action": "cast",
          "level": 12,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Starfire",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Regrowth learned; source first-learning level 12. Starfire learned; source first-learning level 20. Each branch needs its own learned spell; selecting a spec does not grant either spell.",
        "Both spells are cast-time Mana spells. Be in a form that permits the chosen spell; Moonkin Form does not permit Regrowth."
      ]
    },
    {
      "macroId": "druid-hybrid-rejuvenation-moonfire",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Rejuvenation",
          "action": "cast",
          "level": 4,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Moonfire",
          "action": "cast",
          "level": 4,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Rejuvenation learned; source first-learning level 4. Moonfire learned; source first-learning level 4. Each branch needs its own learned spell; selecting a spec does not grant either spell.",
        "Both spells need Mana and a form that permits casting the selected spell. Moonkin Form does not permit Rejuvenation."
      ]
    },
    {
      "macroId": "druid-innervate-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Innervate",
          "action": "cast",
          "level": 40,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Innervate; the source reports its first rank at level 40. Confirm each later rank in your own spellbook.",
        "A deliberate mana-using recipient."
      ]
    },
    {
      "macroId": "druid-insect-swarm-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Insect Swarm",
          "action": "cast",
          "level": 25,
          "talent": "Insect Swarm",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Insect Swarm; the source reports its first rank at level 25. Confirm each later rank in your own spellbook.",
        "Insect Swarm selected at rank 1 in Balance, row 4; at least 16 points in a valid allocation are needed under the source calculator rules. Choosing a spec label does not grant this talent.",
        "Enough Mana for the learned spell rank being cast."
      ]
    },
    {
      "macroId": "druid-lacerate-attack",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Lacerate",
          "action": "cast",
          "level": 42,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Lacerate; the source reports its first rank at level 42. Confirm each later rank in your own spellbook.",
        "Bear Form or Dire Bear Form and enough Rage."
      ]
    },
    {
      "macroId": "druid-mark-of-the-wild-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Mark of the Wild",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Mark of the Wild; the source reports its first rank at level 1. Confirm each later rank in your own spellbook.",
        "Enough Mana for the learned spell rank being cast."
      ]
    },
    {
      "macroId": "druid-moonfire-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Moonfire",
          "action": "cast",
          "level": 4,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Moonfire; the source reports its first rank at level 4. Confirm each later rank in your own spellbook.",
        "Enough Mana for the learned spell rank being cast."
      ]
    },
    {
      "macroId": "druid-primal-bite-attack",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Primal Bite",
          "action": "cast",
          "level": 25,
          "talent": "Primal Bite",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Primal Bite; the source reports its first rank at level 25. Confirm each later rank in your own spellbook.",
        "Primal Bite selected at rank 1 in Feral Combat, row 4; at least 16 points in a valid allocation are needed under the source calculator rules. Choosing a spec label does not grant this talent.",
        "Fully rank the source prerequisite for Primal Bite: Savage Fury.",
        "Bear Form or Dire Bear Form and enough Rage."
      ]
    },
    {
      "macroId": "druid-rake-attack",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Rake",
          "action": "cast",
          "level": 24,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Rake; the source reports its first rank at level 24. Confirm each later rank in your own spellbook.",
        "Cat Form and enough Energy."
      ]
    },
    {
      "macroId": "druid-rebirth-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Rebirth",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Rebirth; the source reports its first rank at level 20. Confirm each later rank in your own spellbook.",
        "Carry the reagent required by your learned Rebirth rank (the first rank uses Maple Seed); later ranks use their own seeds."
      ]
    },
    {
      "macroId": "druid-regrowth-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Regrowth",
          "action": "cast",
          "level": 12,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Regrowth; the source reports its first rank at level 12. Confirm each later rank in your own spellbook.",
        "Enough Mana for the learned spell rank being cast."
      ]
    },
    {
      "macroId": "druid-rejuvenation-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Rejuvenation",
          "action": "cast",
          "level": 4,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Rejuvenation; the source reports its first rank at level 4. Confirm each later rank in your own spellbook.",
        "Enough Mana for the learned spell rank being cast."
      ]
    },
    {
      "macroId": "druid-remove-curse-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Remove Curse",
          "action": "cast",
          "level": 24,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Remove Curse; the source reports its first rank at level 24. Confirm each later rank in your own spellbook."
      ]
    },
    {
      "macroId": "druid-revive-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Revive",
          "action": "cast",
          "level": 12,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Revive; the source reports its first rank at level 12. Confirm each later rank in your own spellbook.",
        "You must be out of combat."
      ]
    },
    {
      "macroId": "druid-shred-attack",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Shred",
          "action": "cast",
          "level": 22,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Shred; the source reports its first rank at level 22. Confirm each later rank in your own spellbook.",
        "Cat Form, enough Energy and positioning behind the target."
      ]
    },
    {
      "macroId": "druid-soothe-animal-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Soothe Animal",
          "action": "cast",
          "level": 22,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Soothe Animal; the source reports its first rank at level 22. Confirm each later rank in your own spellbook.",
        "A Beast within the level cap of your learned rank.",
        "Enough Mana for the learned spell rank being cast."
      ]
    },
    {
      "macroId": "druid-starfire-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Starfire",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Starfire; the source reports its first rank at level 20. Confirm each later rank in your own spellbook.",
        "Enough Mana for the learned spell rank being cast."
      ]
    },
    {
      "macroId": "druid-swiftmend-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Swiftmend",
          "action": "cast",
          "level": 25,
          "talent": "Swiftmend",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Swiftmend; the source reports its first rank at level 25. Confirm each later rank in your own spellbook.",
        "Swiftmend selected at rank 1 in Restoration, row 4; at least 16 points in a valid allocation are needed under the source calculator rules. Choosing a spec label does not grant this talent.",
        "The chosen recipient already has an active Rejuvenation or Regrowth effect."
      ]
    },
    {
      "macroId": "druid-thorns-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Thorns",
          "action": "cast",
          "level": 6,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Thorns; the source reports its first rank at level 6. Confirm each later rank in your own spellbook.",
        "Enough Mana for the learned spell rank being cast."
      ]
    },
    {
      "macroId": "druid-wild-growth-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Wild Growth",
          "action": "cast",
          "level": 40,
          "talent": "Wild Growth",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Wild Growth; the source reports its first rank at level 40. Confirm each later rank in your own spellbook.",
        "Wild Growth selected at rank 1 in Restoration, row 7; at least 31 points in a valid allocation are needed under the source calculator rules. Choosing a spec label does not grant this talent.",
        "Fully rank the source prerequisite for Wild Growth: Living Spirit.",
        "Enough Mana for the learned spell rank being cast."
      ]
    },
    {
      "macroId": "druid-wrath-mouseover",
      "classSlug": "druid",
      "requirements": [
        {
          "ability": "Wrath",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Wrath; the source reports its first rank at level 1. Confirm each later rank in your own spellbook.",
        "Enough Mana for the learned spell rank being cast."
      ]
    },
    {
      "macroId": "hunter-aimed-multi",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Aimed Shot",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Multi-Shot",
          "action": "cast",
          "level": 18,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Aimed Shot learned; first recorded spellbook level 20.",
        "Multi-Shot learned; first recorded spellbook level 18.",
        "Usable ranged weapon and ammunition; selected enemy 8–35 yards away."
      ]
    },
    {
      "macroId": "hunter-arcane-shot",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Arcane Shot",
          "action": "cast",
          "level": 6,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Arcane Shot learned; first recorded spellbook level 6.",
        "Usable ranged weapon and ammunition; target 8–35 yards away."
      ]
    },
    {
      "macroId": "hunter-auto-shot",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Auto Shot",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Auto Shot learned; first recorded spellbook level 1.",
        "Usable ranged weapon and compatible ammunition; living enemy 8–35 yards away."
      ]
    },
    {
      "macroId": "hunter-bestial-wrath",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Bestial Wrath",
          "action": "cast",
          "level": 40,
          "talent": "Bestial Wrath",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Bestial Wrath learned; first recorded spellbook level 40.",
        "Select Bestial Wrath in Beast Mastery: minimum 31 valid points in that tree including this talent; prerequisite Intimidation 1/1. Legacy point eligibility does not establish early spell acquisition.",
        "Living controllable pet within the recorded 100-yard range."
      ]
    },
    {
      "macroId": "hunter-cheetah",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Aspect of the Cheetah",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [
        "Aspect of the Cheetah"
      ],
      "additionalRequirements": [
        "Aspect of the Cheetah learned; first recorded spellbook level 20.",
        "Aspect of the Cheetah must already be active on you; removing it does not require learning or casting the spell."
      ]
    },
    {
      "macroId": "hunter-combat-aspects",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Aspect of the Hawk",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Aspect of the Monkey",
          "action": "cast",
          "level": 4,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Aspect of the Hawk learned; first recorded spellbook level 10.",
        "Aspect of the Monkey learned; first recorded spellbook level 4."
      ]
    },
    {
      "macroId": "hunter-concussive-shot",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Concussive Shot",
          "action": "cast",
          "level": 8,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Concussive Shot learned; first recorded spellbook level 8.",
        "Usable ranged weapon and ammunition; enemy 8–35 yards away."
      ]
    },
    {
      "macroId": "hunter-counterattack",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Counterattack",
          "action": "cast",
          "level": 30,
          "talent": "Counterattack",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Counterattack learned; first recorded spellbook level 30.",
        "Select Counterattack in Survival: minimum 16 valid points in that tree including this talent; prerequisite Deterrence 1/1. Legacy point eligibility does not establish early spell acquisition.",
        "A recent parry must have enabled Counterattack. Its spellbook level is 30 even though its talent-point bound without Legacy is 25.",
        "A usable melee weapon and a living enemy in melee range."
      ]
    },
    {
      "macroId": "hunter-deterrence",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Deterrence",
          "action": "cast",
          "level": 20,
          "talent": "Deterrence",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Deterrence learned; first recorded spellbook level 20.",
        "Select Deterrence in Survival: minimum 11 valid points in that tree including this talent. Legacy point eligibility does not establish early spell acquisition."
      ]
    },
    {
      "macroId": "hunter-disengage",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Disengage",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Disengage learned; first recorded spellbook level 20.",
        "Enemy in melee range."
      ]
    },
    {
      "macroId": "hunter-distracting-shot",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Distracting Shot",
          "action": "cast",
          "level": 12,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Distracting Shot learned; first recorded spellbook level 12.",
        "Usable ranged weapon and ammunition; enemy 8–35 yards away."
      ]
    },
    {
      "macroId": "hunter-feign-death",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Feign Death",
          "action": "cast",
          "level": 30,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Feign Death learned; first recorded spellbook level 30."
      ]
    },
    {
      "macroId": "hunter-fire-traps",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Immolation Trap",
          "action": "cast",
          "level": 16,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Explosive Trap",
          "action": "cast",
          "level": 34,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Immolation Trap learned; first recorded spellbook level 16.",
        "Explosive Trap learned; first recorded spellbook level 34."
      ]
    },
    {
      "macroId": "hunter-flare",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Flare",
          "action": "cast",
          "level": 32,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Flare learned; first recorded spellbook level 32."
      ]
    },
    {
      "macroId": "hunter-freezing-frost",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Freezing Trap",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Frost Trap",
          "action": "cast",
          "level": 28,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Freezing Trap learned; first recorded spellbook level 20.",
        "Frost Trap learned; first recorded spellbook level 28."
      ]
    },
    {
      "macroId": "hunter-hunters-mark",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Hunter's Mark",
          "action": "cast",
          "level": 6,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Hunter's Mark learned; first recorded spellbook level 6.",
        "Enemy within 100 yards."
      ]
    },
    {
      "macroId": "hunter-intimidation",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Intimidation",
          "action": "cast",
          "level": 30,
          "talent": "Intimidation",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Intimidation learned; first recorded spellbook level 30.",
        "Select Intimidation in Beast Mastery: minimum 21 valid points in that tree including this talent; prerequisite Bestial Swiftness 1/1. Legacy point eligibility does not establish early spell acquisition.",
        "A living controllable pet able to reach your selected enemy; the pet must land its next attack for the stun."
      ]
    },
    {
      "macroId": "hunter-lacerate",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Lacerate",
          "action": "cast",
          "level": 30,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Lacerate learned; first recorded spellbook level 30.",
        "Enemy in melee range. Lacerate is baseline trained at level 30 in this source, not the passive Lacerating Strikes talent."
      ]
    },
    {
      "macroId": "hunter-pet-care",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Call Pet",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Mend Pet",
          "action": "cast",
          "level": 12,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Revive Pet",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Call Pet learned; first recorded spellbook level 10.",
        "Mend Pet learned; first recorded spellbook level 12.",
        "Revive Pet learned; first recorded spellbook level 10.",
        "An acquired tame pet. Revive Pet requires a dead pet; Mend Pet requires a living pet within 20 yards."
      ]
    },
    {
      "macroId": "hunter-raptor-strike",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Raptor Strike",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Raptor Strike learned; first recorded spellbook level 1.",
        "A usable melee weapon and a living enemy in melee range."
      ]
    },
    {
      "macroId": "hunter-scare-beast",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Scare Beast",
          "action": "cast",
          "level": 14,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Scare Beast learned; first recorded spellbook level 14.",
        "A fear-susceptible Beast in the learned rank range; rank 1 records 10 yards."
      ]
    },
    {
      "macroId": "hunter-scatter-shot",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Scatter Shot",
          "action": "cast",
          "level": 30,
          "talent": "Scatter Shot",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Scatter Shot learned; first recorded spellbook level 30.",
        "Select Scatter Shot in Marksmanship: minimum 21 valid points in that tree including this talent. Legacy point eligibility does not establish early spell acquisition.",
        "Usable ranged weapon and ammunition; enemy within 15 yards."
      ]
    },
    {
      "macroId": "hunter-sniper-shot",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Sniper Shot",
          "action": "cast",
          "level": 40,
          "talent": "Sniper Shot",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Sniper Shot learned; first recorded spellbook level 40.",
        "Select Sniper Shot in Marksmanship: minimum 31 valid points in that tree including this talent; prerequisite Trueshot Aura 1/1. Legacy point eligibility does not establish early spell acquisition.",
        "Usable ranged weapon and ammunition; enemy 8–35 yards away."
      ]
    },
    {
      "macroId": "hunter-stings",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Serpent Sting",
          "action": "cast",
          "level": 4,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Scorpid Sting",
          "action": "cast",
          "level": 22,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Viper Sting",
          "action": "cast",
          "level": 36,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Serpent Sting learned; first recorded spellbook level 4.",
        "Scorpid Sting learned; first recorded spellbook level 22.",
        "Viper Sting learned; first recorded spellbook level 36.",
        "Usable ranged weapon and ammunition; selected enemy 8–35 yards away. Viper Sting needs an enemy with Mana to drain."
      ]
    },
    {
      "macroId": "hunter-strider-kick",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Strider Kick",
          "action": "cast",
          "level": 30,
          "talent": "Strider Kick",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Strider Kick learned; first recorded spellbook level 30.",
        "Select Strider Kick in Survival: minimum 21 valid points in that tree including this talent. Legacy point eligibility does not establish early spell acquisition.",
        "A usable melee weapon and a living enemy in melee range."
      ]
    },
    {
      "macroId": "hunter-summon-hawk",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Summon Hawk",
          "action": "cast",
          "level": 25,
          "talent": "Summon Hawk",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Summon Hawk learned; first recorded spellbook level 25.",
        "Select Summon Hawk in Beast Mastery: minimum 16 valid points in that tree including this talent. Legacy point eligibility does not establish early spell acquisition.",
        "Enemy within 35 yards."
      ]
    },
    {
      "macroId": "hunter-tracking",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Track Beasts",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Track Humanoids",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Track Beasts learned; first recorded spellbook level 1.",
        "Track Humanoids learned; first recorded spellbook level 10."
      ]
    },
    {
      "macroId": "hunter-tranquilizing-shot",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Tranquilizing Shot",
          "action": "cast",
          "level": 60,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Tranquilizing Shot learned; first recorded spellbook level 60.",
        "Usable ranged weapon and ammunition; enemy 8–35 yards away with an eligible Frenzy effect."
      ]
    },
    {
      "macroId": "hunter-trueshot-rapid",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Trueshot Aura",
          "action": "cast",
          "level": 25,
          "talent": "Trueshot Aura",
          "aura": null
        },
        {
          "ability": "Rapid Fire",
          "action": "cast",
          "level": 26,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Trueshot Aura learned; first recorded spellbook level 25.",
        "Select Trueshot Aura in Marksmanship: minimum 16 valid points in that tree including this talent. Legacy point eligibility does not establish early spell acquisition.",
        "Rapid Fire learned; first recorded spellbook level 26."
      ]
    },
    {
      "macroId": "hunter-volley",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Volley",
          "action": "cast",
          "level": 40,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Volley learned; first recorded spellbook level 40.",
        "Usable ranged weapon and ammunition; valid area within 35 yards."
      ]
    },
    {
      "macroId": "hunter-wing-clip",
      "classSlug": "hunter",
      "requirements": [
        {
          "ability": "Wing Clip",
          "action": "cast",
          "level": 12,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Wing Clip learned; first recorded spellbook level 12.",
        "Enemy in melee range."
      ]
    },
    {
      "macroId": "mage-arcane-blast-channel",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Arcane Blast",
          "action": "cast",
          "level": 20,
          "talent": "Arcane Blast",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Arcane Blast; the source records its first rank at level 20. Each higher rank must be learned separately.",
        "An actual point in the Arcane Blast talent (Arcane) and its prerequisites; selecting a recommended spec alone does not grant it."
      ]
    },
    {
      "macroId": "mage-arcane-brilliance-mouseover",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Arcane Brilliance",
          "action": "cast",
          "level": 56,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Arcane Brilliance; the source records its first rank at level 56. Each higher rank must be learned separately.",
        "Arcane Brilliance: Reagents: Arcane Powder.",
        "Arcane Brilliance has a source acquisition flag for a tome, quest or drop; level alone does not grant it."
      ]
    },
    {
      "macroId": "mage-arcane-cooldown-choice",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Arcane Power",
          "action": "cast",
          "level": 40,
          "talent": "Arcane Power",
          "aura": null
        },
        {
          "ability": "Presence of Mind",
          "action": "cast",
          "level": 30,
          "talent": "Presence of Mind",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Arcane Power; the source records its first rank at level 40. Each higher rank must be learned separately.",
        "An actual point in the Arcane Power talent (Arcane) and its prerequisites; selecting a recommended spec alone does not grant it.",
        "Learned Presence of Mind; the source records its first rank at level 30. Each higher rank must be learned separately.",
        "An actual point in the Presence of Mind talent (Arcane) and its prerequisites; selecting a recommended spec alone does not grant it."
      ]
    },
    {
      "macroId": "mage-arcane-intellect-mouseover",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Arcane Intellect",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Arcane Intellect; the source records its first rank at level 1. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "mage-arcane-missiles-channel",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Arcane Missiles",
          "action": "cast",
          "level": 8,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Arcane Missiles; the source records its first rank at level 8. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "mage-blink-emergency",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Blink",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Blink; the source records its first rank at level 20. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "mage-blizzard-channel",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Blizzard",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Blizzard; the source records its first rank at level 20. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "mage-conjure-mana-gem-choice",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Conjure Mana Agate",
          "action": "cast",
          "level": 28,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Conjure Mana Jade",
          "action": "cast",
          "level": 38,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Conjure Mana Citrine",
          "action": "cast",
          "level": 48,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Conjure Mana Ruby",
          "action": "cast",
          "level": 58,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Conjure Mana Agate; the source records its first rank at level 28. Each higher rank must be learned separately.",
        "Learned Conjure Mana Jade; the source records its first rank at level 38. Each higher rank must be learned separately.",
        "Learned Conjure Mana Citrine; the source records its first rank at level 48. Each higher rank must be learned separately.",
        "Learned Conjure Mana Ruby; the source records its first rank at level 58. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "mage-conjure-refreshments",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Conjure Water",
          "action": "cast",
          "level": 4,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Conjure Food",
          "action": "cast",
          "level": 6,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Conjure Water; the source records its first rank at level 4. Each higher rank must be learned separately.",
        "Learned Conjure Food; the source records its first rank at level 6. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "mage-counterspell-mouseover",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Counterspell",
          "action": "cast",
          "level": 24,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Counterspell; the source records its first rank at level 24. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "mage-evocation-channel",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Evocation",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Evocation; the source records its first rank at level 20. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "mage-frost-nova-emergency",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Frost Nova",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Frost Nova; the source records its first rank at level 10. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "mage-frostbolt-rank-choice",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Frostbolt",
          "action": "cast",
          "level": 4,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Frostbolt; the source records its first rank at level 4. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "mage-hybrid-curse-counterspell",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Remove Lesser Curse",
          "action": "cast",
          "level": 18,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Counterspell",
          "action": "cast",
          "level": 24,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Remove Lesser Curse learned; source first-learning level 18.",
        "Counterspell learned; source first-learning level 24. No specialization or talent requirement is recorded for either action.",
        "Keep a dedicated Counterspell interrupt key available when an immediate interrupt matters."
      ]
    },
    {
      "macroId": "mage-ice-barrier-emergency",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Ice Barrier",
          "action": "cast",
          "level": 40,
          "talent": "Ice Barrier",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Ice Barrier; the source records its first rank at level 40. Each higher rank must be learned separately.",
        "An actual point in the Ice Barrier talent (Frost) and its prerequisites; selecting a recommended spec alone does not grant it."
      ]
    },
    {
      "macroId": "mage-ice-block-controlled",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Ice Block",
          "action": "cast",
          "level": 25,
          "talent": "Ice Block",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [
        "Ice Block"
      ],
      "additionalRequirements": [
        "Cast branch only: Learned Ice Block; the source records its first rank at level 25. Each higher rank must be learned separately.",
        "Cast branch only: An actual point in the Ice Block talent (Frost) and its prerequisites; selecting a recommended spec alone does not grant it.",
        "Cancellation branch: Ice Block must already be active. Removing an aura does not require learning the spell, allocating its talent or consuming its reagent."
      ]
    },
    {
      "macroId": "mage-ice-lance-mouseover",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Ice Lance",
          "action": "cast",
          "level": 20,
          "talent": "Ice Lance",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Ice Lance; the source records its first rank at level 20. Each higher rank must be learned separately.",
        "An actual point in the Ice Lance talent (Frost) and its prerequisites; selecting a recommended spec alone does not grant it."
      ]
    },
    {
      "macroId": "mage-magic-adjustment-choice",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Amplify Magic",
          "action": "cast",
          "level": 18,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Dampen Magic",
          "action": "cast",
          "level": 12,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Amplify Magic; the source records its first rank at level 18. Each higher rank must be learned separately.",
        "Learned Dampen Magic; the source records its first rank at level 12. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "mage-mana-shield-emergency",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Mana Shield",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Mana Shield; the source records its first rank at level 20. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "mage-polymorph-mouseover",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Polymorph",
          "action": "cast",
          "level": 8,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Polymorph; the source records its first rank at level 8. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "mage-pyroblast-mouseover",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Pyroblast",
          "action": "cast",
          "level": 20,
          "talent": "Pyroblast",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Pyroblast; the source records its first rank at level 20. Each higher rank must be learned separately.",
        "An actual point in the Pyroblast talent (Fire) and its prerequisites; selecting a recommended spec alone does not grant it."
      ]
    },
    {
      "macroId": "mage-remove-curse-mouseover",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Remove Lesser Curse",
          "action": "cast",
          "level": 18,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Remove Lesser Curse; the source records its first rank at level 18. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "mage-slow-fall-controlled",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Slow Fall",
          "action": "cast",
          "level": 12,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [
        "Slow Fall"
      ],
      "additionalRequirements": [
        "Cast branch only: Learned Slow Fall; the source records its first rank at level 12. Each higher rank must be learned separately.",
        "Cast branch only: Slow Fall: Reagents: Light Feather.",
        "Cancellation branch: Slow Fall must already be active. Removing an aura does not require learning the spell, allocating its talent or consuming its reagent."
      ]
    },
    {
      "macroId": "mage-ward-choice",
      "classSlug": "mage",
      "requirements": [
        {
          "ability": "Fire Ward",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Frost Ward",
          "action": "cast",
          "level": 22,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Fire Ward; the source records its first rank at level 20. Each higher rank must be learned separately.",
        "Learned Frost Ward; the source records its first rank at level 22. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "paladin-blessing-kings",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Blessing of Kings",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Blessing of Kings learned; source first-learning level 20."
      ]
    },
    {
      "macroId": "paladin-blessing-light",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Blessing of Light",
          "action": "cast",
          "level": 40,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Blessing of Light learned; source first-learning level 40."
      ]
    },
    {
      "macroId": "paladin-blessing-might",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Blessing of Might",
          "action": "cast",
          "level": 4,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Blessing of Might learned; source first-learning level 4."
      ]
    },
    {
      "macroId": "paladin-blessing-sacrifice",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Blessing of Sacrifice",
          "action": "cast",
          "level": 46,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Blessing of Sacrifice learned; source first-learning level 46.",
        "An eligible party member is required."
      ]
    },
    {
      "macroId": "paladin-blessing-salvation",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Blessing of Salvation",
          "action": "cast",
          "level": 26,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Blessing of Salvation learned; source first-learning level 26.",
        "An eligible party member is required."
      ]
    },
    {
      "macroId": "paladin-blessing-wisdom",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Blessing of Wisdom",
          "action": "cast",
          "level": 14,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Blessing of Wisdom learned; source first-learning level 14."
      ]
    },
    {
      "macroId": "paladin-cleanse",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Cleanse",
          "action": "cast",
          "level": 42,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Cleanse learned; source first-learning level 42."
      ]
    },
    {
      "macroId": "paladin-divine-protection",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Divine Protection",
          "action": "cast",
          "level": 6,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [
        "Divine Protection"
      ],
      "additionalRequirements": [
        "Divine Protection learned; source first-learning level 6."
      ]
    },
    {
      "macroId": "paladin-divine-shield",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Divine Shield",
          "action": "cast",
          "level": 34,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [
        "Divine Shield"
      ],
      "additionalRequirements": [
        "Divine Shield learned; source first-learning level 34."
      ]
    },
    {
      "macroId": "paladin-greater-kings",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Greater Blessing of Kings",
          "action": "cast",
          "level": 60,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Greater Blessing of Kings learned; source first-learning level 60.",
        "Reagents: Symbol of Kings"
      ]
    },
    {
      "macroId": "paladin-greater-might",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Greater Blessing of Might",
          "action": "cast",
          "level": 52,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Greater Blessing of Might learned; source first-learning level 52.",
        "Reagents: Symbol of Kings"
      ]
    },
    {
      "macroId": "paladin-greater-wisdom",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Greater Blessing of Wisdom",
          "action": "cast",
          "level": 54,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Greater Blessing of Wisdom learned; source first-learning level 54.",
        "Reagents: Symbol of Kings"
      ]
    },
    {
      "macroId": "paladin-hammer-of-wrath",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Hammer of Wrath",
          "action": "cast",
          "level": 44,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Hammer of Wrath learned; source first-learning level 44.",
        "Target must be at or below 20% health. The client enforces this; the macro does not inspect health."
      ]
    },
    {
      "macroId": "paladin-holy-light",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Holy Light",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Holy Light learned; source first-learning level 1."
      ]
    },
    {
      "macroId": "paladin-holy-preparation",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Voice of Truth",
          "action": "cast",
          "level": 20,
          "talent": "Voice of Truth",
          "aura": null
        },
        {
          "ability": "Divine Favor",
          "action": "cast",
          "level": 25,
          "talent": "Divine Favor",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Voice of Truth learned; source first-learning level 20.",
        "Select Voice of Truth in Holy with a legal allocation (11 tree points including rank 1).",
        "Divine Favor learned; source first-learning level 25.",
        "Select Divine Favor in Holy with a legal allocation (16 tree points including rank 1)."
      ]
    },
    {
      "macroId": "paladin-holy-shield",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Holy Shield",
          "action": "cast",
          "level": 40,
          "talent": "Holy Shield",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Holy Shield learned; source first-learning level 40.",
        "Select Holy Shield in Protection with a legal allocation (31 tree points including rank 1). Requires Templar's Bulwark at rank 1.",
        "Requires Shields"
      ]
    },
    {
      "macroId": "paladin-holy-shock",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Holy Shock",
          "action": "cast",
          "level": 30,
          "talent": "Holy Shock",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Holy Shock learned; source first-learning level 30.",
        "Select Holy Shock in Holy with a legal allocation (21 tree points including rank 1).",
        "Check the allegiance of your mouseover before pressing; an enemy mouseover takes priority over a friendly current target."
      ]
    },
    {
      "macroId": "paladin-hybrid-flash-holy-strike",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Flash of Light",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Holy Strike",
          "action": "cast",
          "level": 6,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Flash of Light learned; source first-learning level 20. Holy Strike learned; source first-learning level 6. Each branch needs its own learned spell.",
        "Holy Strike needs a usable melee weapon and a living enemy in melee range. Flash of Light is a cast-time heal."
      ]
    },
    {
      "macroId": "paladin-hybrid-holy-light-judgement",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Holy Light",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Judgement",
          "action": "cast",
          "level": 4,
          "talent": null,
          "aura": {
            "condition": "any_active_learned_seal"
          }
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Holy Light learned; source first-learning level 1. Judgement learned; source first-learning level 4. Each branch needs its own learned spell.",
        "Judgement requires an already active learned seal. Choose the seal deliberately; its effect determines what Judgement does.",
        "Holy Light is a cast-time heal. Judgement has a shorter range; a valid hostile target does not prove range or line of sight."
      ]
    },
    {
      "macroId": "paladin-hybrid-holy-shock",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Holy Shock",
          "action": "cast",
          "level": 30,
          "talent": "Holy Shock",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Holy Shock learned; source first-learning level 30.",
        "Select Holy Shock in Holy with a legal allocation (21 tree points including rank 1). A preferred spec label or level alone does not grant it."
      ]
    },
    {
      "macroId": "paladin-judgement",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Judgement",
          "action": "cast",
          "level": 4,
          "talent": null,
          "aura": {
            "condition": "any_active_learned_seal"
          }
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Judgement learned; source first-learning level 4.",
        "Have the intended learned seal active. This key does not apply or select a seal; the active seal determines the effect."
      ]
    },
    {
      "macroId": "paladin-lights-vigil",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Light's Vigil",
          "action": "cast",
          "level": 40,
          "talent": "Light's Vigil",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Light's Vigil learned; source first-learning level 40.",
        "Select Light's Vigil in Holy with a legal allocation (31 tree points including rank 1). Requires Holy Shock at rank 1.",
        "Check the allegiance of your mouseover before pressing; an enemy mouseover takes priority over a friendly current target.",
        "Do not rely on the Alt self branch until Light's Vigil self-target eligibility is confirmed in the client."
      ]
    },
    {
      "macroId": "paladin-prot-blessing-of-protection",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Blessing of Protection",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "additionalRequirements": [
        "Blessing of Protection learned (level 10)."
      ]
    },
    {
      "macroId": "paladin-prot-cancel-protection",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Blessing of Protection",
          "action": "cancel_self_aura",
          "level": null,
          "talent": null,
          "aura": {
            "condition": "named_aura",
            "ability": "Blessing of Protection"
          }
        }
      ],
      "partial": null,
      "additionalRequirements": [
        "Blessing of Protection currently on yourself."
      ]
    },
    {
      "macroId": "paladin-prot-exorcism",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Exorcism",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "additionalRequirements": [
        "Exorcism learned (level 20).",
        "The chosen target must be Undead or Demon."
      ]
    },
    {
      "macroId": "paladin-prot-flash-of-light",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Flash of Light",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "additionalRequirements": [
        "Flash of Light learned (level 20)."
      ]
    },
    {
      "macroId": "paladin-prot-freedom",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Blessing of Freedom",
          "action": "cast",
          "level": 18,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "additionalRequirements": [
        "Blessing of Freedom learned (level 18)."
      ]
    },
    {
      "macroId": "paladin-prot-fury-judgement",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Seal of Fury",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Judgement",
          "action": "cast",
          "level": 4,
          "talent": null,
          "aura": {
            "condition": "any_active_learned_seal",
            "required_for_advertised_taunt": "Seal of Fury"
          }
        }
      ],
      "partial": {
        "level": 4,
        "until": 10,
        "available": "Judgement with another active learned seal",
        "missing": "Seal of Fury; no Fury taunt"
      },
      "additionalRequirements": [
        "Seal of Fury learned (level 10); Judgement learned (level 4).",
        "Seal of Fury must already be active for Judgement to taunt."
      ]
    },
    {
      "macroId": "paladin-prot-hammer-of-justice",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Hammer of Justice",
          "action": "cast",
          "level": 8,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "additionalRequirements": [
        "Hammer of Justice learned (level 8)."
      ]
    },
    {
      "macroId": "paladin-prot-holy-strike",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Holy Strike",
          "action": "cast",
          "level": 6,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "additionalRequirements": [
        "Holy Strike learned (level 6).",
        "A melee weapon and a living hostile target."
      ]
    },
    {
      "macroId": "paladin-prot-lay-on-hands",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Lay on Hands",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "additionalRequirements": [
        "Lay on Hands learned (level 10)."
      ]
    },
    {
      "macroId": "paladin-prot-purify",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Purify",
          "action": "cast",
          "level": 8,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "additionalRequirements": [
        "Purify learned (level 8)."
      ]
    },
    {
      "macroId": "paladin-prot-redemption",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Redemption",
          "action": "cast",
          "level": 12,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "additionalRequirements": [
        "Redemption learned (level 12; complete the required class training or quest).",
        "A valid dead friendly player; you must be out of combat."
      ]
    },
    {
      "macroId": "paladin-prot-templars-bulwark",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Templar's Bulwark",
          "action": "cast",
          "level": 30,
          "talent": "Templar's Bulwark",
          "aura": null
        }
      ],
      "partial": null,
      "additionalRequirements": [
        "Templar's Bulwark talent selected: 21 points in Protection, available from level 30.",
        "No active Forbearance."
      ]
    },
    {
      "macroId": "paladin-repentance",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Repentance",
          "action": "cast",
          "level": 30,
          "talent": "Repentance",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Repentance learned; source first-learning level 30.",
        "Select Repentance in Retribution with a legal allocation (21 tree points including rank 1)."
      ]
    },
    {
      "macroId": "paladin-righteous-fury",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Righteous Fury",
          "action": "cast",
          "level": 16,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [
        "Righteous Fury"
      ],
      "additionalRequirements": [
        "Righteous Fury learned; source first-learning level 16."
      ]
    },
    {
      "macroId": "paladin-seal-command-choice",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Seal of Command",
          "action": "cast",
          "level": 20,
          "talent": "Seal of Command",
          "aura": null
        },
        {
          "ability": "Seal of Righteousness",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Seal of Command learned; source first-learning level 20.",
        "Select Seal of Command in Retribution with a legal allocation (11 tree points including rank 1).",
        "Seal of Righteousness learned; source first-learning level 1."
      ]
    },
    {
      "macroId": "paladin-swift-judgement",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Swift Judgement",
          "action": "cast",
          "level": 25,
          "talent": "Swift Judgement",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Swift Judgement learned; source first-learning level 25.",
        "Select Swift Judgement in Protection with a legal allocation (16 tree points including rank 1). Requires Improved Seal of Fury at rank 1."
      ]
    },
    {
      "macroId": "paladin-turn-undead",
      "classSlug": "paladin",
      "requirements": [
        {
          "ability": "Turn Undead",
          "action": "cast",
          "level": 24,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Turn Undead learned; source first-learning level 24."
      ]
    },
    {
      "macroId": "priest-abolish-disease-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Abolish Disease",
          "action": "cast",
          "level": 32,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Abolish Disease; the source records its first rank at level 32. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "priest-binding-heal-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Binding Heal",
          "action": "cast",
          "level": 25,
          "talent": "Binding Heal",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Binding Heal; the source records its first rank at level 25. Each higher rank must be learned separately.",
        "An actual point in the Binding Heal talent (Holy) and its prerequisites; selecting a recommended spec alone does not grant it."
      ]
    },
    {
      "macroId": "priest-cure-disease-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Cure Disease",
          "action": "cast",
          "level": 14,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Cure Disease; the source records its first rank at level 14. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "priest-devouring-plague-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Devouring Plague",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Devouring Plague; the source records its first rank at level 20. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "priest-dispel-magic-dual",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Dispel Magic",
          "action": "cast",
          "level": 18,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Dispel Magic; the source records its first rank at level 18. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "priest-divine-spirit-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Divine Spirit",
          "action": "cast",
          "level": 30,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Divine Spirit; the source records its first rank at level 30. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "priest-fear-ward-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Fear Ward",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Fear Ward; the source records its first rank at level 20. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "priest-flash-heal-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Flash Heal",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Flash Heal; the source records its first rank at level 20. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "priest-fortitude-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Power Word: Fortitude",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Power Word: Fortitude; the source records its first rank at level 1. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "priest-greater-heal-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Greater Heal",
          "action": "cast",
          "level": 40,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Greater Heal; the source records its first rank at level 40. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "priest-heal-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Heal",
          "action": "cast",
          "level": 16,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Heal; the source records its first rank at level 16. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "priest-hybrid-dispel-magic",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Dispel Magic",
          "action": "cast",
          "level": 18,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Dispel Magic learned; source first-learning level 18. Each action needs its own learned spell."
      ]
    },
    {
      "macroId": "priest-hybrid-flash-heal-smite",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Flash Heal",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Smite",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Flash Heal learned; source first-learning level 20; Smite learned; source first-learning level 1. Each action needs its own learned spell."
      ]
    },
    {
      "macroId": "priest-hybrid-renew-shadow-pain",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Renew",
          "action": "cast",
          "level": 8,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Shadow Word: Pain",
          "action": "cast",
          "level": 4,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Renew learned; source first-learning level 8; Shadow Word: Pain learned; source first-learning level 4. Each action needs its own learned spell."
      ]
    },
    {
      "macroId": "priest-hybrid-shield-mind-blast",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Power Word: Shield",
          "action": "cast",
          "level": 6,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Mind Blast",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Power Word: Shield learned; source first-learning level 6; Mind Blast learned; source first-learning level 10. Each action needs its own learned spell.",
        "Power Word: Shield recipients must satisfy the source party requirement and must not have Weakened Soul. A help condition alone cannot establish eligibility."
      ]
    },
    {
      "macroId": "priest-lesser-heal-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Lesser Heal",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Lesser Heal; the source records its first rank at level 1. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "priest-levitate-controlled",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Levitate",
          "action": "cast",
          "level": 34,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [
        "Levitate"
      ],
      "additionalRequirements": [
        "Cast branch only: Learned Levitate; the source records its first rank at level 34. Each higher rank must be learned separately.",
        "Cast branch only: Levitate: Reagents: Light Feather.",
        "Cancellation branch: Levitate must already be active. Removing an aura does not require learning the spell, allocating its talent or consuming its reagent."
      ]
    },
    {
      "macroId": "priest-mind-control-channel",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Mind Control",
          "action": "cast",
          "level": 30,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Mind Control; the source records its first rank at level 30. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "priest-mind-flay-channel",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Mind Flay",
          "action": "cast",
          "level": 20,
          "talent": "Mind Flay",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Mind Flay; the source records its first rank at level 20. Each higher rank must be learned separately.",
        "An actual point in the Mind Flay talent (Shadow) and its prerequisites; selecting a recommended spec alone does not grant it."
      ]
    },
    {
      "macroId": "priest-penance-dual-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Penance",
          "action": "cast",
          "level": 30,
          "talent": "Penance",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Penance; the source records its first rank at level 30. Each higher rank must be learned separately.",
        "An actual point in the Penance talent (Discipline) and its prerequisites; selecting a recommended spec alone does not grant it."
      ]
    },
    {
      "macroId": "priest-power-infusion-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Power Infusion",
          "action": "cast",
          "level": 40,
          "talent": "Power Infusion",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Power Infusion; the source records its first rank at level 40. Each higher rank must be learned separately.",
        "An actual point in the Power Infusion talent (Discipline) and its prerequisites; selecting a recommended spec alone does not grant it."
      ]
    },
    {
      "macroId": "priest-prayer-healing-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Prayer of Healing",
          "action": "cast",
          "level": 30,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Prayer of Healing; the source records its first rank at level 30. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "priest-prayer-mending-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Prayer of Mending",
          "action": "cast",
          "level": 40,
          "talent": "Prayer of Mending",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Prayer of Mending; the source records its first rank at level 40. Each higher rank must be learned separately.",
        "An actual point in the Prayer of Mending talent (Holy) and its prerequisites; selecting a recommended spec alone does not grant it."
      ]
    },
    {
      "macroId": "priest-renew-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Renew",
          "action": "cast",
          "level": 8,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Renew; the source records its first rank at level 8. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "priest-resurrection-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Resurrection",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Resurrection; the source records its first rank at level 10. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "priest-shackle-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Shackle Undead",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Shackle Undead; the source records its first rank at level 20. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "priest-shadow-death-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Shadow Word: Death",
          "action": "cast",
          "level": 32,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Shadow Word: Death; the source records its first rank at level 32. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "priest-shadow-pain-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Shadow Word: Pain",
          "action": "cast",
          "level": 4,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Shadow Word: Pain; the source records its first rank at level 4. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "priest-shadow-protection-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Shadow Protection",
          "action": "cast",
          "level": 30,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Shadow Protection; the source records its first rank at level 30. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "priest-shield-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Power Word: Shield",
          "action": "cast",
          "level": 6,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Power Word: Shield; the source records its first rank at level 6. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "priest-silence-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Silence",
          "action": "cast",
          "level": 30,
          "talent": "Silence",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Silence; the source records its first rank at level 30. Each higher rank must be learned separately.",
        "An actual point in the Silence talent (Shadow) and its prerequisites; selecting a recommended spec alone does not grant it."
      ]
    },
    {
      "macroId": "priest-vampiric-embrace-mouseover",
      "classSlug": "priest",
      "requirements": [
        {
          "ability": "Vampiric Embrace",
          "action": "cast",
          "level": 30,
          "talent": "Vampiric Embrace",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Vampiric Embrace; the source records its first rank at level 30. Each higher rank must be learned separately.",
        "An actual point in the Vampiric Embrace talent (Shadow) and its prerequisites; selecting a recommended spec alone does not grant it."
      ]
    },
    {
      "macroId": "rogue-ambush-garrote",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Ambush",
          "action": "cast",
          "level": 18,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Garrote",
          "action": "cast",
          "level": 14,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Ambush learned; first recorded spellbook level 18.",
        "Requires Stealth",
        "Garrote learned; first recorded spellbook level 14.",
        "Stealthed and behind a living enemy in melee range. Ambush additionally needs a main-hand dagger."
      ]
    },
    {
      "macroId": "rogue-backstab",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Backstab",
          "action": "cast",
          "level": 4,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Backstab learned; first recorded spellbook level 4.",
        "Main-hand dagger; behind the enemy.",
        "A usable melee weapon and a living enemy in melee range."
      ]
    },
    {
      "macroId": "rogue-blind",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Blind",
          "action": "cast",
          "level": 34,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Blind learned; first recorded spellbook level 34.",
        "Reagents: Blinding Powder",
        "Blinding Powder reagent and enemy within 10 yards."
      ]
    },
    {
      "macroId": "rogue-cancel-blade-flurry",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Blade Flurry",
          "action": "cancel_self_aura",
          "level": null,
          "talent": null,
          "aura": {
            "condition": "named_aura",
            "ability": "Blade Flurry"
          }
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [
        "Blade Flurry"
      ],
      "additionalRequirements": [
        "Blade Flurry must already be active on you; removing it does not require learning or casting the spell."
      ]
    },
    {
      "macroId": "rogue-cheap-shot",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Cheap Shot",
          "action": "cast",
          "level": 26,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Cheap Shot learned; first recorded spellbook level 26.",
        "Requires Stealth",
        "Stealthed and in melee range; enemy susceptible to stun."
      ]
    },
    {
      "macroId": "rogue-cold-blood-mutilate",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Mutilate",
          "action": "cast",
          "level": 30,
          "talent": "Mutilate",
          "aura": null
        },
        {
          "ability": "Cold Blood",
          "action": "cast",
          "level": 25,
          "talent": "Cold Blood",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Mutilate learned; first recorded spellbook level 30.",
        "Select Mutilate in Assassination: minimum 21 valid points in that tree including this talent. Legacy point eligibility does not establish early spell acquisition.",
        "Requires Daggers",
        "Cold Blood learned; first recorded spellbook level 25.",
        "Select Cold Blood in Assassination: minimum 16 valid points in that tree including this talent. Legacy point eligibility does not establish early spell acquisition.",
        "Daggers equipped for Mutilate; living enemy in melee range for its attack."
      ]
    },
    {
      "macroId": "rogue-combat-cooldowns",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Blade Flurry",
          "action": "cast",
          "level": 30,
          "talent": "Blade Flurry",
          "aura": null
        },
        {
          "ability": "Adrenaline Rush",
          "action": "cast",
          "level": 40,
          "talent": "Adrenaline Rush",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Blade Flurry learned; first recorded spellbook level 30.",
        "Select Blade Flurry in Combat: minimum 21 valid points in that tree including this talent. Legacy point eligibility does not establish early spell acquisition.",
        "Adrenaline Rush learned; first recorded spellbook level 40.",
        "Select Adrenaline Rush in Combat: minimum 31 valid points in that tree including this talent. Legacy point eligibility does not establish early spell acquisition."
      ]
    },
    {
      "macroId": "rogue-damage-finishers",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Eviscerate",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Rupture",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Eviscerate learned; first recorded spellbook level 1.",
        "Rupture learned; first recorded spellbook level 20.",
        "Usable combo points on your selected living enemy; melee range."
      ]
    },
    {
      "macroId": "rogue-distract",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Distract",
          "action": "cast",
          "level": 22,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Distract learned; first recorded spellbook level 22."
      ]
    },
    {
      "macroId": "rogue-evasion-sprint",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Evasion",
          "action": "cast",
          "level": 8,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Sprint",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Evasion learned; first recorded spellbook level 8.",
        "Sprint learned; first recorded spellbook level 10."
      ]
    },
    {
      "macroId": "rogue-expose-armor",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Expose Armor",
          "action": "cast",
          "level": 14,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Expose Armor learned; first recorded spellbook level 14.",
        "Usable combo points on your selected enemy; melee range."
      ]
    },
    {
      "macroId": "rogue-feint",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Feint",
          "action": "cast",
          "level": 16,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Feint learned; first recorded spellbook level 16.",
        "Enemy within melee range on whose threat table you want the reduction."
      ]
    },
    {
      "macroId": "rogue-ghostly-strike",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Ghostly Strike",
          "action": "cast",
          "level": 20,
          "talent": "Ghostly Strike",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Ghostly Strike learned; first recorded spellbook level 20.",
        "Select Ghostly Strike in Subtlety: minimum 11 valid points in that tree including this talent. Legacy point eligibility does not establish early spell acquisition.",
        "A usable melee weapon and a living enemy in melee range."
      ]
    },
    {
      "macroId": "rogue-gouge",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Gouge",
          "action": "cast",
          "level": 6,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Gouge learned; first recorded spellbook level 6.",
        "Enemy in melee range and facing you."
      ]
    },
    {
      "macroId": "rogue-hemorrhage",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Hemorrhage",
          "action": "cast",
          "level": 30,
          "talent": "Hemorrhage",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Hemorrhage learned; first recorded spellbook level 30.",
        "Select Hemorrhage in Subtlety: minimum 21 valid points in that tree including this talent; prerequisite Serrated Blades 3/3. Legacy point eligibility does not establish early spell acquisition.",
        "A usable melee weapon and a living enemy in melee range."
      ]
    },
    {
      "macroId": "rogue-kick",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Kick",
          "action": "cast",
          "level": 12,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Kick learned; first recorded spellbook level 12.",
        "Enemy in melee range and sufficient Energy."
      ]
    },
    {
      "macroId": "rogue-kidney-shot",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Kidney Shot",
          "action": "cast",
          "level": 30,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Kidney Shot learned; first recorded spellbook level 30.",
        "Usable combo points and a selected enemy in melee range susceptible to stun."
      ]
    },
    {
      "macroId": "rogue-pick-pocket",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Pick Pocket",
          "action": "cast",
          "level": 4,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Pick Pocket learned; first recorded spellbook level 4.",
        "Requires Stealth",
        "Stealthed; a pickpocketable living enemy within melee range."
      ]
    },
    {
      "macroId": "rogue-premeditation",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Premeditation",
          "action": "cast",
          "level": 25,
          "talent": "Premeditation",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Premeditation learned; first recorded spellbook level 25.",
        "Select Premeditation in Subtlety: minimum 16 valid points in that tree including this talent. Legacy point eligibility does not establish early spell acquisition.",
        "Enemy within 20 yards. Confirm the ability is usable in your current stealth state in the beta client."
      ]
    },
    {
      "macroId": "rogue-preparation",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Preparation",
          "action": "cast",
          "level": 30,
          "talent": "Preparation",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Preparation learned; first recorded spellbook level 30.",
        "Select Preparation in Subtlety: minimum 21 valid points in that tree including this talent. Legacy point eligibility does not establish early spell acquisition."
      ]
    },
    {
      "macroId": "rogue-riposte",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Riposte",
          "action": "cast",
          "level": 20,
          "talent": "Riposte",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Riposte learned; first recorded spellbook level 20.",
        "Select Riposte in Combat: minimum 11 valid points in that tree including this talent; prerequisite Deflection 3/3. Legacy point eligibility does not establish early spell acquisition.",
        "A recent parry must have enabled Riposte; disarm immunity still applies.",
        "A usable melee weapon and a living enemy in melee range."
      ]
    },
    {
      "macroId": "rogue-sap",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Sap",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Sap learned; first recorded spellbook level 10.",
        "Requires Stealth",
        "Stealthed, within melee range of a Humanoid that is not in combat."
      ]
    },
    {
      "macroId": "rogue-sinister-strike",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Sinister Strike",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Sinister Strike learned; first recorded spellbook level 1.",
        "A usable melee weapon and a living enemy in melee range."
      ]
    },
    {
      "macroId": "rogue-stealth",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Stealth",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Stealth learned; first recorded spellbook level 1."
      ]
    },
    {
      "macroId": "rogue-vanish",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Vanish",
          "action": "cast",
          "level": 22,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Vanish learned; first recorded spellbook level 22.",
        "Reagents: Flash Powder",
        "Flash Powder reagent."
      ]
    },
    {
      "macroId": "rogue-venom-slice",
      "classSlug": "rogue",
      "requirements": [
        {
          "ability": "Venom",
          "action": "cast",
          "level": 40,
          "talent": "Venom",
          "aura": null
        },
        {
          "ability": "Slice and Dice",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Venom learned; first recorded spellbook level 40.",
        "Select Venom in Assassination: minimum 31 valid points in that tree including this talent; prerequisite Mutilate 1/1. Legacy point eligibility does not establish early spell acquisition.",
        "Slice and Dice learned; first recorded spellbook level 10.",
        "Usable combo points and a selected living enemy; active weapon poisons for Venom to benefit poison damage."
      ]
    },
    {
      "macroId": "shaman-air-buff-totems",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Grace of Air Totem",
          "action": "cast",
          "level": 42,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Windfury Totem",
          "action": "cast",
          "level": 32,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Grace of Air Totem; the source records its first rank at level 42. Each higher rank must be learned separately.",
        "Learned Windfury Totem; the source records its first rank at level 32. Each higher rank must be learned separately.",
        "Requirements apply to the branch you choose; other unlearned modifier branches do not prevent use of an available action."
      ]
    },
    {
      "macroId": "shaman-air-defense-totems",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Windwall Totem",
          "action": "cast",
          "level": 36,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Grounding Totem",
          "action": "cast",
          "level": 30,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Windwall Totem; the source records its first rank at level 36. Each higher rank must be learned separately.",
        "Learned Grounding Totem; the source records its first rank at level 30. Each higher rank must be learned separately.",
        "Requirements apply to the branch you choose; other unlearned modifier branches do not prevent use of an available action."
      ]
    },
    {
      "macroId": "shaman-ancestral-spirit-resurrection",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Ancestral Spirit",
          "action": "cast",
          "level": 12,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Ancestral Spirit; the source records its first rank at level 12. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "shaman-chain-heal-mouseover",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Chain Heal",
          "action": "cast",
          "level": 40,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Chain Heal; the source records its first rank at level 40. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "shaman-cleansing-totem-choice",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Disease Cleansing Totem",
          "action": "cast",
          "level": 38,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Poison Cleansing Totem",
          "action": "cast",
          "level": 22,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Disease Cleansing Totem; the source records its first rank at level 38. Each higher rank must be learned separately.",
        "Learned Poison Cleansing Totem; the source records its first rank at level 22. Each higher rank must be learned separately.",
        "Requirements apply to the branch you choose; other unlearned modifier branches do not prevent use of an available action."
      ]
    },
    {
      "macroId": "shaman-cure-choice",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Cure Poison",
          "action": "cast",
          "level": 16,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Cure Disease",
          "action": "cast",
          "level": 22,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Cure Poison; the source records its first rank at level 16. Each higher rank must be learned separately.",
        "Learned Cure Disease; the source records its first rank at level 22. Each higher rank must be learned separately.",
        "Requirements apply to the branch you choose; other unlearned modifier branches do not prevent use of an available action."
      ]
    },
    {
      "macroId": "shaman-earth-buff-totems",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Strength of Earth Totem",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Stoneskin Totem",
          "action": "cast",
          "level": 4,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Strength of Earth Totem; the source records its first rank at level 10. Each higher rank must be learned separately.",
        "Learned Stoneskin Totem; the source records its first rank at level 4. Each higher rank must be learned separately.",
        "Requirements apply to the branch you choose; other unlearned modifier branches do not prevent use of an available action."
      ]
    },
    {
      "macroId": "shaman-earth-control-totems",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Stoneclaw Totem",
          "action": "cast",
          "level": 8,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Earthbind Totem",
          "action": "cast",
          "level": 6,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Tremor Totem",
          "action": "cast",
          "level": 18,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Stoneclaw Totem; the source records its first rank at level 8. Each higher rank must be learned separately.",
        "Learned Earthbind Totem; the source records its first rank at level 6. Each higher rank must be learned separately.",
        "Learned Tremor Totem; the source records its first rank at level 18. Each higher rank must be learned separately.",
        "Requirements apply to the branch you choose; other unlearned modifier branches do not prevent use of an available action."
      ]
    },
    {
      "macroId": "shaman-earth-shock-interrupt",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Earth Shock",
          "action": "cast",
          "level": 4,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Earth Shock; the source records its first rank at level 4. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "shaman-earth-shock-rank-one-interrupt",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Earth Shock",
          "action": "cast",
          "level": 4,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Earth Shock Rank 1 must be learned and available; the source records it at character level 4. Rank 1 does not mean character level 1.",
        "A living hostile current target, enough mana, and a ready Shock cooldown."
      ]
    },
    {
      "macroId": "shaman-far-sight-channel",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Far Sight",
          "action": "cast",
          "level": 26,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Far Sight; the source records its first rank at level 26. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "shaman-fire-totem-choice",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Flametongue Totem",
          "action": "cast",
          "level": 28,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Magma Totem",
          "action": "cast",
          "level": 26,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Searing Totem",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Flametongue Totem; the source records its first rank at level 28. Each higher rank must be learned separately.",
        "Learned Magma Totem; the source records its first rank at level 26. Each higher rank must be learned separately.",
        "Learned Searing Totem; the source records its first rank at level 10. Each higher rank must be learned separately.",
        "Requirements apply to the branch you choose; other unlearned modifier branches do not prevent use of an available action."
      ]
    },
    {
      "macroId": "shaman-ghost-wolf-control",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Ghost Wolf",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [
        "Ghost Wolf"
      ],
      "additionalRequirements": [
        "Cast branch only: Learned Ghost Wolf; the source records its first rank at level 20. Each higher rank must be learned separately.",
        "Cancel branch: the named aura must currently be on your character; no learned spell, talent or reagent is required to remove it."
      ]
    },
    {
      "macroId": "shaman-healing-wave-swiftness",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Nature's Swiftness",
          "action": "cast",
          "level": 30,
          "talent": "Nature's Swiftness",
          "aura": null
        },
        {
          "ability": "Healing Wave",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Nature's Swiftness; the source records its first rank at level 30. Each higher rank must be learned separately.",
        "An actual point in the Nature's Swiftness talent (Restoration) and its prerequisites; selecting a recommended spec alone does not grant it.",
        "Learned Healing Wave; the source records its first rank at level 1. Each higher rank must be learned separately.",
        "Requirements apply to the branch you choose; other unlearned modifier branches do not prevent use of an available action."
      ]
    },
    {
      "macroId": "shaman-hybrid-chain-heal-chain-lightning",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Chain Heal",
          "action": "cast",
          "level": 40,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Chain Lightning",
          "action": "cast",
          "level": 32,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Chain Heal learned; source first-learning level 40; Chain Lightning learned; source first-learning level 32. Each action needs its own learned spell."
      ]
    },
    {
      "macroId": "shaman-hybrid-healing-wave-lightning-bolt",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Healing Wave",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Lightning Bolt",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Healing Wave learned; source first-learning level 1; Lightning Bolt learned; source first-learning level 1. Each action needs its own learned spell."
      ]
    },
    {
      "macroId": "shaman-hybrid-lesser-wave-flame-shock",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Lesser Healing Wave",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Flame Shock",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Lesser Healing Wave learned; source first-learning level 20; Flame Shock learned; source first-learning level 10. Each action needs its own learned spell."
      ]
    },
    {
      "macroId": "shaman-hybrid-riptide-frost-shock",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Riptide",
          "action": "cast",
          "level": 40,
          "talent": "Riptide",
          "aura": null
        },
        {
          "ability": "Frost Shock",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Riptide learned; source first-learning level 40; Frost Shock learned; source first-learning level 20. Each action needs its own learned spell.",
        "Riptide requires its actual Restoration talent with a legal allocation and its Healing Way prerequisite; the reviewed tree requires 31 points including Riptide. A spec label alone does not grant it."
      ]
    },
    {
      "macroId": "shaman-lava-burst-mouseover",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Lava Burst",
          "action": "cast",
          "level": 40,
          "talent": "Lava Burst",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Lava Burst; the source records its first rank at level 40. Each higher rank must be learned separately.",
        "An actual point in the Lava Burst talent (Elemental) and its prerequisites; selecting a recommended spec alone does not grant it."
      ]
    },
    {
      "macroId": "shaman-lesser-healing-wave",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Lesser Healing Wave",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Lesser Healing Wave; the source records its first rank at level 20. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "shaman-lightning-choice",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Lightning Bolt",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Chain Lightning",
          "action": "cast",
          "level": 32,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Lightning Bolt; the source records its first rank at level 1. Each higher rank must be learned separately.",
        "Learned Chain Lightning; the source records its first rank at level 32. Each higher rank must be learned separately.",
        "Requirements apply to the branch you choose; other unlearned modifier branches do not prevent use of an available action."
      ]
    },
    {
      "macroId": "shaman-purge-mouseover",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Purge",
          "action": "cast",
          "level": 12,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Purge; the source records its first rank at level 12. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "shaman-resistance-totem-choice",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Nature Resistance Totem",
          "action": "cast",
          "level": 30,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Frost Resistance Totem",
          "action": "cast",
          "level": 24,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Fire Resistance Totem",
          "action": "cast",
          "level": 28,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Nature Resistance Totem; the source records its first rank at level 30. Each higher rank must be learned separately.",
        "Learned Frost Resistance Totem; the source records its first rank at level 24. Each higher rank must be learned separately.",
        "Learned Fire Resistance Totem; the source records its first rank at level 28. Each higher rank must be learned separately.",
        "Requirements apply to the branch you choose; other unlearned modifier branches do not prevent use of an available action."
      ]
    },
    {
      "macroId": "shaman-riptide-mouseover",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Riptide",
          "action": "cast",
          "level": 40,
          "talent": "Riptide",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Riptide; the source records its first rank at level 40. Each higher rank must be learned separately.",
        "An actual point in the Riptide talent (Restoration) and its prerequisites; selecting a recommended spec alone does not grant it."
      ]
    },
    {
      "macroId": "shaman-shield-choice",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Water Shield",
          "action": "cast",
          "level": 20,
          "talent": "Water Shield",
          "aura": null
        },
        {
          "ability": "Lightning Shield",
          "action": "cast",
          "level": 8,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Water Shield; the source records its first rank at level 20. Each higher rank must be learned separately.",
        "An actual point in the Water Shield talent (Restoration) and its prerequisites; selecting a recommended spec alone does not grant it.",
        "Learned Lightning Shield; the source records its first rank at level 8. Each higher rank must be learned separately.",
        "Requirements apply to the branch you choose; other unlearned modifier branches do not prevent use of an available action."
      ]
    },
    {
      "macroId": "shaman-shock-choice",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Flame Shock",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Frost Shock",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Flame Shock; the source records its first rank at level 10. Each higher rank must be learned separately.",
        "Learned Frost Shock; the source records its first rank at level 20. Each higher rank must be learned separately.",
        "Requirements apply to the branch you choose; other unlearned modifier branches do not prevent use of an available action."
      ]
    },
    {
      "macroId": "shaman-stormstrike-attack",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Stormstrike",
          "action": "cast",
          "level": 40,
          "talent": "Stormstrike",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Stormstrike; the source records its first rank at level 40. Each higher rank must be learned separately.",
        "An actual point in the Stormstrike talent (Enhancement) and its prerequisites; selecting a recommended spec alone does not grant it.",
        "An equipped usable melee weapon and a target in melee range."
      ]
    },
    {
      "macroId": "shaman-totem-call-presets",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Call of the Spirits",
          "action": "cast",
          "level": 40,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Call of the Ancestors",
          "action": "cast",
          "level": 30,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Call of the Elements",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Call of the Spirits; the source records its first rank at level 40. Each higher rank must be learned separately.",
        "Learned Call of the Ancestors; the source records its first rank at level 30. Each higher rank must be learned separately.",
        "Learned Call of the Elements; the source records its first rank at level 20. Each higher rank must be learned separately.",
        "Requirements apply to the branch you choose; other unlearned modifier branches do not prevent use of an available action."
      ]
    },
    {
      "macroId": "shaman-totem-move-recall",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Totemic Recall",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Totemic Projection",
          "action": "cast",
          "level": 22,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Totemic Recall; the source records its first rank at level 20. Each higher rank must be learned separately.",
        "Learned Totemic Projection; the source records its first rank at level 22. Each higher rank must be learned separately.",
        "Requirements apply to the branch you choose; other unlearned modifier branches do not prevent use of an available action."
      ]
    },
    {
      "macroId": "shaman-water-breathing-mouseover",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Water Breathing",
          "action": "cast",
          "level": 22,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Water Breathing; the source records its first rank at level 22. Each higher rank must be learned separately.",
        "Water Breathing: Reagents: Shiny Fish Scales."
      ]
    },
    {
      "macroId": "shaman-water-restoration-totems",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Mana Tide Totem",
          "action": "cast",
          "level": 40,
          "talent": "Mana Tide Totem",
          "aura": null
        },
        {
          "ability": "Mana Spring Totem",
          "action": "cast",
          "level": 26,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Healing Stream Totem",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Mana Tide Totem; the source records its first rank at level 40. Each higher rank must be learned separately.",
        "An actual point in the Mana Tide Totem talent (Restoration) and its prerequisites; selecting a recommended spec alone does not grant it.",
        "Learned Mana Spring Totem; the source records its first rank at level 26. Each higher rank must be learned separately.",
        "Learned Healing Stream Totem; the source records its first rank at level 20. Each higher rank must be learned separately.",
        "Requirements apply to the branch you choose; other unlearned modifier branches do not prevent use of an available action."
      ]
    },
    {
      "macroId": "shaman-water-walking-control",
      "classSlug": "shaman",
      "requirements": [
        {
          "ability": "Water Walking",
          "action": "cast",
          "level": 28,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [
        "Water Walking"
      ],
      "additionalRequirements": [
        "Cast branch only: Learned Water Walking; the source records its first rank at level 28. Each higher rank must be learned separately.",
        "Cast branch only: Water Walking: Reagents: Fish Oil.",
        "Cancel branch: the named aura must currently be on your character; no learned spell, talent or reagent is required to remove it."
      ]
    },
    {
      "macroId": "warlock-bane-agony-mouseover",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Bane of Agony",
          "action": "cast",
          "level": 8,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Bane of Agony; the source records its first rank at level 8. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "warlock-bane-havoc-mouseover",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Bane of Havoc",
          "action": "cast",
          "level": 30,
          "talent": "Bane of Havoc",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Bane of Havoc; the source records its first rank at level 30. Each higher rank must be learned separately.",
        "An actual point in the Bane of Havoc talent (Destruction) and its prerequisites; selecting a recommended spec alone does not grant it."
      ]
    },
    {
      "macroId": "warlock-banish-mouseover",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Banish",
          "action": "cast",
          "level": 28,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Banish; the source records its first rank at level 28. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "warlock-conflagrate-mouseover",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Conflagrate",
          "action": "cast",
          "level": 25,
          "talent": "Conflagrate",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Conflagrate; the source records its first rank at level 25. Each higher rank must be learned separately.",
        "An actual point in the Conflagrate talent (Destruction) and its prerequisites; selecting a recommended spec alone does not grant it."
      ]
    },
    {
      "macroId": "warlock-corruption-mouseover",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Corruption",
          "action": "cast",
          "level": 4,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Corruption; the source records its first rank at level 4. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "warlock-create-stone-choice",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Create Healthstone",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Create Soulstone",
          "action": "cast",
          "level": 18,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Create Spellstone",
          "action": "cast",
          "level": 36,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Create Firestone",
          "action": "cast",
          "level": 28,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Create Healthstone; the source records its first rank at level 10. Each higher rank must be learned separately.",
        "Create Healthstone: Reagents: Soul Shard.",
        "Learned Create Soulstone; the source records its first rank at level 18. Each higher rank must be learned separately.",
        "Create Soulstone: Reagents: Soul Shard.",
        "Learned Create Spellstone; the source records its first rank at level 36. Each higher rank must be learned separately.",
        "Create Spellstone: Reagents: Soul Shard.",
        "Learned Create Firestone; the source records its first rank at level 28. Each higher rank must be learned separately.",
        "Create Firestone: Reagents: Soul Shard."
      ]
    },
    {
      "macroId": "warlock-curse-elements-mouseover",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Curse of the Elements",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Curse of the Elements; the source records its first rank at level 20. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "warlock-curse-exhaustion-mouseover",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Curse of Exhaustion",
          "action": "cast",
          "level": 25,
          "talent": "Curse of Exhaustion",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Curse of Exhaustion; the source records its first rank at level 25. Each higher rank must be learned separately.",
        "An actual point in the Curse of Exhaustion talent (Affliction) and its prerequisites; selecting a recommended spec alone does not grant it."
      ]
    },
    {
      "macroId": "warlock-curse-tongues-mouseover",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Curse of Tongues",
          "action": "cast",
          "level": 26,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Curse of Tongues; the source records its first rank at level 26. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "warlock-death-coil-emergency",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Death Coil",
          "action": "cast",
          "level": 42,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Death Coil; the source records its first rank at level 42. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "warlock-demonic-sacrifice-deliberate",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Demonic Sacrifice",
          "action": "cast",
          "level": 20,
          "talent": "Demonic Sacrifice",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Demonic Sacrifice; the source records its first rank at level 20. Each higher rank must be learned separately.",
        "An actual point in the Demonic Sacrifice talent (Demonology) and its prerequisites; selecting a recommended spec alone does not grant it.",
        "Summoned, living demon; inspect the current Forever talent tooltip before choosing which demon to sacrifice."
      ]
    },
    {
      "macroId": "warlock-detect-invisibility-mouseover",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Detect Invisibility",
          "action": "cast",
          "level": 26,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Detect Invisibility; the source records its first rank at level 26. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "warlock-devour-magic-dual",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Devour Magic",
          "action": "cast",
          "level": 30,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Devour Magic; the source records its first rank at level 30. Each higher rank must be learned separately.",
        "Devour Magic: Demon: Felhunter.",
        "Summoned, living Felhunter with Devour Magic trained."
      ]
    },
    {
      "macroId": "warlock-drain-life-channel",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Drain Life",
          "action": "cast",
          "level": 14,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Drain Life; the source records its first rank at level 14. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "warlock-drain-soul-channel",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Drain Soul",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Drain Soul; the source records its first rank at level 10. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "warlock-fear-mouseover",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Fear",
          "action": "cast",
          "level": 8,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Fear; the source records its first rank at level 8. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "warlock-health-funnel-channel",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Health Funnel",
          "action": "cast",
          "level": 12,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Health Funnel; the source records its first rank at level 12. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "warlock-hybrid-devour-magic",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Devour Magic",
          "action": "cast",
          "level": 30,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Devour Magic; the source records its first rank at level 30. Each higher rank must be learned separately.",
        "Devour Magic: Demon: Felhunter.",
        "Summoned, living Felhunter with Devour Magic trained."
      ]
    },
    {
      "macroId": "warlock-incinerate-channel",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Incinerate",
          "action": "cast",
          "level": 40,
          "talent": "Incinerate",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Incinerate; the source records its first rank at level 40. Each higher rank must be learned separately.",
        "An actual point in the Incinerate talent (Destruction) and its prerequisites; selecting a recommended spec alone does not grant it."
      ]
    },
    {
      "macroId": "warlock-life-tap-rank-choice",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Life Tap",
          "action": "cast",
          "level": 6,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Life Tap; the source records its first rank at level 6. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "warlock-rain-fire-channel",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Rain of Fire",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Rain of Fire; the source records its first rank at level 20. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "warlock-seduction-mouseover",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Seduction",
          "action": "cast",
          "level": 26,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Seduction; the source records its first rank at level 26. Each higher rank must be learned separately.",
        "Seduction spell-row requirement: Succubus. Improved Sayaad also explicitly identifies Incubus as having this spell.",
        "Summoned, living Succubus or Incubus with Seduction trained. Incubus association is supported by Improved Sayaad, not merely by its summon existing."
      ]
    },
    {
      "macroId": "warlock-shadowburn-mouseover",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Shadowburn",
          "action": "cast",
          "level": 20,
          "talent": "Shadowburn",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Shadowburn; the source records its first rank at level 20. Each higher rank must be learned separately.",
        "An actual point in the Shadowburn talent (Destruction) and its prerequisites; selecting a recommended spec alone does not grant it.",
        "Shadowburn: Reagents: Soul Shard."
      ]
    },
    {
      "macroId": "warlock-siphon-life-mouseover",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Siphon Life",
          "action": "cast",
          "level": 30,
          "talent": "Siphon Life",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Siphon Life; the source records its first rank at level 30. Each higher rank must be learned separately.",
        "An actual point in the Siphon Life talent (Affliction) and its prerequisites; selecting a recommended spec alone does not grant it."
      ]
    },
    {
      "macroId": "warlock-spell-lock-mouseover",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Spell Lock",
          "action": "cast",
          "level": 36,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Spell Lock; the source records its first rank at level 36. Each higher rank must be learned separately.",
        "Spell Lock: Demon: Felhunter.",
        "Summoned, living Felhunter with Spell Lock trained; source pet training level 36 is not proof your demon knows it."
      ]
    },
    {
      "macroId": "warlock-spell-lock-rank-one-interrupt",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Spell Lock",
          "action": "cast",
          "level": 36,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "A summoned, living Felhunter with Spell Lock Rank 1 trained and available. The source records pet training level 36; Rank 1 does not mean character level 1.",
        "Confirm that Rank 1 remains available to your Felhunter after learning higher ranks; the macro does not replace pet training or fall back to Rank 2.",
        "A living hostile current target, enough Felhunter mana, and a ready pet cooldown."
      ]
    },
    {
      "macroId": "warlock-subjugate-demon-mouseover",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Subjugate Demon",
          "action": "cast",
          "level": 30,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Subjugate Demon; the source records its first rank at level 30. Each higher rank must be learned separately.",
        "Subjugate Demon: Reagents: Soul Shard."
      ]
    },
    {
      "macroId": "warlock-summon-demon-choice",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Summon Imp",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Summon Voidwalker",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Summon Succubus",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Summon Incubus",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Summon Felhunter",
          "action": "cast",
          "level": 30,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Summon Imp; the source records its first rank at level 1. Each higher rank must be learned separately.",
        "Learned Summon Voidwalker; the source records its first rank at level 10. Each higher rank must be learned separately.",
        "Summon Voidwalker: Reagents: Soul Shard.",
        "Learned Summon Succubus; the source records its first rank at level 20. Each higher rank must be learned separately.",
        "Summon Succubus: Reagents: Soul Shard.",
        "Learned Summon Incubus; the source records its first rank at level 20. Each higher rank must be learned separately.",
        "Summon Incubus: Reagents: Soul Shard.",
        "Learned Summon Felhunter; the source records its first rank at level 30. Each higher rank must be learned separately.",
        "Summon Felhunter: Reagents: Soul Shard."
      ]
    },
    {
      "macroId": "warlock-unending-breath-mouseover",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Unending Breath",
          "action": "cast",
          "level": 16,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Unending Breath; the source records its first rank at level 16. Each higher rank must be learned separately."
      ]
    },
    {
      "macroId": "warlock-voidwalker-sacrifice",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Sacrifice",
          "action": "cast",
          "level": 16,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Sacrifice; the source records its first rank at level 16. Each higher rank must be learned separately.",
        "Sacrifice: Demon: Voidwalker.",
        "Summoned, living Voidwalker with Sacrifice trained."
      ]
    },
    {
      "macroId": "warlock-wrack-channel",
      "classSlug": "warlock",
      "requirements": [
        {
          "ability": "Wrack",
          "action": "cast",
          "level": 40,
          "talent": "Wrack",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Learned Wrack; the source records its first rank at level 40. Each higher rank must be learned separately.",
        "An actual point in the Wrack talent (Affliction) and its prerequisites; selecting a recommended spec alone does not grant it."
      ]
    },
    {
      "macroId": "warrior-area-attacks",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Thunder Clap",
          "action": "cast",
          "level": 6,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Whirlwind",
          "action": "cast",
          "level": 36,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Thunder Clap learned; first recorded spellbook level 6.",
        "Requires Battle Stance, Defensive Stance",
        "Whirlwind learned; first recorded spellbook level 36.",
        "Requires Berserker Stance",
        "Thunder Clap: Battle or Defensive Stance. Whirlwind: Berserker Stance and a usable melee weapon."
      ]
    },
    {
      "macroId": "warrior-bloodthirst",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Bloodthirst",
          "action": "cast",
          "level": 40,
          "talent": "Bloodthirst",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Bloodthirst learned; first recorded spellbook level 40.",
        "Select Bloodthirst in Fury: minimum 31 valid points in that tree including this talent; prerequisite Death Wish 1/1. Legacy point eligibility does not establish early spell acquisition.",
        "A usable melee weapon and a living enemy in melee range."
      ]
    },
    {
      "macroId": "warrior-charge",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Charge",
          "action": "cast",
          "level": 4,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Charge learned; first recorded spellbook level 4.",
        "Normally requires Battle Stance; the selected Protection talent Vanguard also permits Charge in Defensive Stance.",
        "Out of combat, in Battle Stance or in Defensive Stance with Vanguard selected, with a path to an enemy 8–25 yards away."
      ]
    },
    {
      "macroId": "warrior-concussion-blow",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Concussion Blow",
          "action": "cast",
          "level": 30,
          "talent": "Concussion Blow",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Concussion Blow learned; first recorded spellbook level 30.",
        "Select Concussion Blow in Protection: minimum 21 valid points in that tree including this talent. Legacy point eligibility does not establish early spell acquisition.",
        "Enemy in melee range; susceptible to stuns."
      ]
    },
    {
      "macroId": "warrior-death-wish",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Death Wish",
          "action": "cast",
          "level": 30,
          "talent": "Death Wish",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [
        "Death Wish"
      ],
      "additionalRequirements": [
        "Death Wish learned; first recorded spellbook level 30.",
        "Select Death Wish in Fury: minimum 21 valid points in that tree including this talent. Legacy point eligibility does not establish early spell acquisition.",
        "Death Wish must already be active on you; removing it does not require learning or casting the spell."
      ]
    },
    {
      "macroId": "warrior-disarm",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Disarm",
          "action": "cast",
          "level": 18,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Disarm learned; first recorded spellbook level 18.",
        "Requires Defensive Stance",
        "Defensive Stance; enemy in melee range with a disarmable weapon."
      ]
    },
    {
      "macroId": "warrior-execute",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Execute",
          "action": "cast",
          "level": 24,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Execute learned; first recorded spellbook level 24.",
        "Requires Battle Stance, Berserker Stance",
        "Battle or Berserker Stance; enemy at 20% health or less.",
        "A usable melee weapon and a living enemy in melee range."
      ]
    },
    {
      "macroId": "warrior-hamstring",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Hamstring",
          "action": "cast",
          "level": 8,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Hamstring learned; first recorded spellbook level 8.",
        "Requires Battle Stance, Berserker Stance",
        "Battle or Berserker Stance; enemy in melee range."
      ]
    },
    {
      "macroId": "warrior-heroic-cleave",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Heroic Strike",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Cleave",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Heroic Strike learned; first recorded spellbook level 1.",
        "Cleave learned; first recorded spellbook level 20.",
        "A melee weapon; Cleave also requires choosing a safe nearby second enemy."
      ]
    },
    {
      "macroId": "warrior-intercept",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Intercept",
          "action": "cast",
          "level": 30,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Intercept learned; first recorded spellbook level 30.",
        "Requires Berserker Stance",
        "Berserker Stance; enemy 8–25 yards away and a usable movement path."
      ]
    },
    {
      "macroId": "warrior-intimidating-shout",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Intimidating Shout",
          "action": "cast",
          "level": 22,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Intimidating Shout learned; first recorded spellbook level 22.",
        "Living enemy within 10 yards."
      ]
    },
    {
      "macroId": "warrior-last-stand",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Last Stand",
          "action": "cast",
          "level": 20,
          "talent": "Last Stand",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Last Stand learned; first recorded spellbook level 20.",
        "Select Last Stand in Protection: minimum 11 valid points in that tree including this talent; prerequisite Improved Bloodrage 2/2. Legacy point eligibility does not establish early spell acquisition."
      ]
    },
    {
      "macroId": "warrior-mocking-blow",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Mocking Blow",
          "action": "cast",
          "level": 16,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Mocking Blow learned; first recorded spellbook level 16.",
        "Requires Battle Stance",
        "Battle Stance and an enemy in melee range."
      ]
    },
    {
      "macroId": "warrior-mortal-strike",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Mortal Strike",
          "action": "cast",
          "level": 40,
          "talent": "Mortal Strike",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Mortal Strike learned; first recorded spellbook level 40.",
        "Select Mortal Strike in Arms: minimum 31 valid points in that tree including this talent; prerequisite Sweeping Strikes 1/1. Legacy point eligibility does not establish early spell acquisition.",
        "A usable melee weapon and a living enemy in melee range."
      ]
    },
    {
      "macroId": "warrior-overpower",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Overpower",
          "action": "cast",
          "level": 12,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Overpower learned; first recorded spellbook level 12.",
        "Requires Battle Stance",
        "Battle Stance; target has recently dodged.",
        "A usable melee weapon and a living enemy in melee range."
      ]
    },
    {
      "macroId": "warrior-piercing-howl",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Piercing Howl",
          "action": "cast",
          "level": 20,
          "talent": "Piercing Howl",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Piercing Howl learned; first recorded spellbook level 20.",
        "Select Piercing Howl in Fury: minimum 11 valid points in that tree including this talent. Legacy point eligibility does not establish early spell acquisition."
      ]
    },
    {
      "macroId": "warrior-pummel",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Pummel",
          "action": "cast",
          "level": 38,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Pummel learned; first recorded spellbook level 38.",
        "Requires Berserker Stance",
        "Berserker Stance and an enemy in melee range."
      ]
    },
    {
      "macroId": "warrior-rend",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Rend",
          "action": "cast",
          "level": 4,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Rend learned; first recorded spellbook level 4.",
        "Requires Battle Stance, Defensive Stance",
        "Battle or Defensive Stance; melee weapon and enemy in melee range."
      ]
    },
    {
      "macroId": "warrior-revenge",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Revenge",
          "action": "cast",
          "level": 14,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Revenge learned; first recorded spellbook level 14.",
        "Requires Defensive Stance",
        "Defensive Stance; a recent block, dodge or parry must have enabled Revenge.",
        "A usable melee weapon and a living enemy in melee range."
      ]
    },
    {
      "macroId": "warrior-shield-bash",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Shield Bash",
          "action": "cast",
          "level": 12,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Shield Bash learned; first recorded spellbook level 12.",
        "Requires Battle Stance, Defensive Stance",
        "Shield equipped; Battle or Defensive Stance; enemy in melee range."
      ]
    },
    {
      "macroId": "warrior-shield-defence",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Shield Block",
          "action": "cast",
          "level": 16,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Shield Wall",
          "action": "cast",
          "level": 28,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Shield Block learned; first recorded spellbook level 16.",
        "Requires Defensive Stance",
        "Shield Wall learned; first recorded spellbook level 28.",
        "Shield equipped and Defensive Stance."
      ]
    },
    {
      "macroId": "warrior-shield-slam",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Shield Slam",
          "action": "cast",
          "level": 40,
          "talent": "Shield Slam",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Shield Slam learned; first recorded spellbook level 40.",
        "Select Shield Slam in Protection: minimum 31 valid points in that tree including this talent; prerequisite Concussion Blow 1/1. Legacy point eligibility does not establish early spell acquisition.",
        "Shield equipped.",
        "A usable melee weapon and a living enemy in melee range."
      ]
    },
    {
      "macroId": "warrior-shouts",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Battle Shout",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Demoralizing Shout",
          "action": "cast",
          "level": 14,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Battle Shout learned; first recorded spellbook level 1.",
        "Demoralizing Shout learned; first recorded spellbook level 14."
      ]
    },
    {
      "macroId": "warrior-slam",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Slam",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Slam learned; first recorded spellbook level 20.",
        "A usable melee weapon and a living enemy in melee range."
      ]
    },
    {
      "macroId": "warrior-spearing-strike",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Spearing Strike",
          "action": "cast",
          "level": 25,
          "talent": "Spearing Strike",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Spearing Strike learned; first recorded spellbook level 25.",
        "Select Spearing Strike in Arms: minimum 16 valid points in that tree including this talent. Legacy point eligibility does not establish early spell acquisition.",
        "Requires Two-Handed Axes, Two-Handed Maces, Polearms, Two-Handed Swords, Staves",
        "One of the source-listed two-handed weapon types equipped; enemy in melee range."
      ]
    },
    {
      "macroId": "warrior-stances",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Battle Stance",
          "action": "cast",
          "level": 1,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Defensive Stance",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        },
        {
          "ability": "Berserker Stance",
          "action": "cast",
          "level": 30,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": true,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Battle Stance learned; first recorded spellbook level 1.",
        "Defensive Stance learned; first recorded spellbook level 10.",
        "Berserker Stance learned; first recorded spellbook level 30."
      ]
    },
    {
      "macroId": "warrior-sunder-armor",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Sunder Armor",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Sunder Armor learned; first recorded spellbook level 10.",
        "A usable melee weapon and a living enemy in melee range."
      ]
    },
    {
      "macroId": "warrior-sweeping-strikes",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Sweeping Strikes",
          "action": "cast",
          "level": 30,
          "talent": "Sweeping Strikes",
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [
        "Sweeping Strikes"
      ],
      "additionalRequirements": [
        "Sweeping Strikes learned; first recorded spellbook level 30.",
        "Select Sweeping Strikes in Arms: minimum 21 valid points in that tree including this talent. Legacy point eligibility does not establish early spell acquisition.",
        "Requires Battle Stance",
        "Sweeping Strikes must already be active on you; removing it does not require learning or casting the spell.",
        "Battle Stance to activate; a second nearby enemy makes cleave relevant."
      ]
    },
    {
      "macroId": "warrior-taunt",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Taunt",
          "action": "cast",
          "level": 10,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Taunt learned; first recorded spellbook level 10.",
        "Requires Defensive Stance",
        "Defensive Stance and a tauntable enemy in melee range."
      ]
    },
    {
      "macroId": "warrior-victory-rush",
      "classSlug": "warrior",
      "requirements": [
        {
          "ability": "Victory Rush",
          "action": "cast",
          "level": 20,
          "talent": null,
          "aura": null
        }
      ],
      "partial": null,
      "alternativeActions": false,
      "cancellationAbilities": [],
      "additionalRequirements": [
        "Victory Rush learned; first recorded spellbook level 20.",
        "Use within the recorded 20-second opportunity after killing a non-trivial enemy.",
        "A usable melee weapon and a living enemy in melee range."
      ]
    }
  ],
  "presets": [
    {
      "id": "druid-feral-combat-mobalytics-10",
      "name": "Feral Combat levelling · 10",
      "classSlug": "druid",
      "spec": "Feral Combat",
      "level": 10,
      "talentedRank": 0,
      "talents": {
        "Ferocity": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/druid-leveling-guide",
      "sourceTitle": "Druid Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Ruse_Cruize recommendation, 2026-09-23; untested by Allegedly Skilled.",
        "Current chart uses Blood Frenzy; prose retains its former name, Primal Fury."
      ]
    },
    {
      "id": "druid-feral-combat-mobalytics-15",
      "name": "Feral Combat levelling · 15",
      "classSlug": "druid",
      "spec": "Feral Combat",
      "level": 15,
      "talentedRank": 0,
      "talents": {
        "Ferocity": 5,
        "Heart of the Wild": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/druid-leveling-guide",
      "sourceTitle": "Druid Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Ruse_Cruize recommendation, 2026-09-23; untested by Allegedly Skilled.",
        "Current chart uses Blood Frenzy; prose retains its former name, Primal Fury."
      ]
    },
    {
      "id": "druid-feral-combat-mobalytics-20",
      "name": "Feral Combat levelling · 20",
      "classSlug": "druid",
      "spec": "Feral Combat",
      "level": 20,
      "talentedRank": 0,
      "talents": {
        "Ferocity": 5,
        "Heart of the Wild": 3,
        "Feral Swiftness": 2,
        "Feral Charge": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/druid-leveling-guide",
      "sourceTitle": "Druid Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Ruse_Cruize recommendation, 2026-09-23; untested by Allegedly Skilled.",
        "Current chart uses Blood Frenzy; prose retains its former name, Primal Fury."
      ]
    },
    {
      "id": "druid-feral-combat-mobalytics-25",
      "name": "Feral Combat levelling · 25",
      "classSlug": "druid",
      "spec": "Feral Combat",
      "level": 25,
      "talentedRank": 0,
      "talents": {
        "Ferocity": 5,
        "Heart of the Wild": 3,
        "Feral Swiftness": 2,
        "Feral Charge": 1,
        "Sharpened Claws": 2,
        "Savage Fury": 2,
        "Predatory Strikes": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/druid-leveling-guide",
      "sourceTitle": "Druid Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Ruse_Cruize recommendation, 2026-09-23; untested by Allegedly Skilled.",
        "Current chart uses Blood Frenzy; prose retains its former name, Primal Fury."
      ]
    },
    {
      "id": "druid-feral-combat-mobalytics-30",
      "name": "Feral Combat levelling · 30",
      "classSlug": "druid",
      "spec": "Feral Combat",
      "level": 30,
      "talentedRank": 0,
      "talents": {
        "Ferocity": 5,
        "Heart of the Wild": 3,
        "Feral Swiftness": 2,
        "Savage Fury": 2,
        "Feral Charge": 1,
        "Sharpened Claws": 2,
        "Predatory Strikes": 3,
        "Blood Frenzy": 2,
        "Leader of the Pack": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/druid-leveling-guide",
      "sourceTitle": "Druid Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Ruse_Cruize recommendation, 2026-09-23; exact level-30 chart.",
        "Current chart uses Blood Frenzy; prose retains its former name, Primal Fury."
      ]
    },
    {
      "id": "hunter-beast-mastery-mobalytics-10",
      "name": "Beast Mastery levelling · 10",
      "classSlug": "hunter",
      "spec": "Beast Mastery",
      "level": 10,
      "talentedRank": 0,
      "talents": {
        "Deadly Aspects": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/hunter-leveling-guide",
      "sourceTitle": "Hunter Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Mobalytics recommendation, 2026-09-22; untested by Allegedly Skilled.",
        "Pet acquisition and training remain separate requirements."
      ]
    },
    {
      "id": "hunter-beast-mastery-mobalytics-15",
      "name": "Beast Mastery levelling · 15",
      "classSlug": "hunter",
      "spec": "Beast Mastery",
      "level": 15,
      "talentedRank": 0,
      "talents": {
        "Deadly Aspects": 5,
        "Focused Fire": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/hunter-leveling-guide",
      "sourceTitle": "Hunter Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Mobalytics recommendation, 2026-09-22; untested by Allegedly Skilled.",
        "Pet acquisition and training remain separate requirements."
      ]
    },
    {
      "id": "hunter-beast-mastery-mobalytics-20",
      "name": "Beast Mastery levelling · 20",
      "classSlug": "hunter",
      "spec": "Beast Mastery",
      "level": 20,
      "talentedRank": 0,
      "talents": {
        "Deadly Aspects": 5,
        "Focused Fire": 2,
        "Pathfinding": 2,
        "Improved Revive Pet": 2
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/hunter-leveling-guide",
      "sourceTitle": "Hunter Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Mobalytics recommendation, 2026-09-22; untested by Allegedly Skilled.",
        "Pet acquisition and training remain separate requirements."
      ]
    },
    {
      "id": "hunter-beast-mastery-mobalytics-25",
      "name": "Beast Mastery levelling · 25",
      "classSlug": "hunter",
      "spec": "Beast Mastery",
      "level": 25,
      "talentedRank": 0,
      "talents": {
        "Deadly Aspects": 5,
        "Focused Fire": 2,
        "Pathfinding": 2,
        "Improved Revive Pet": 2,
        "Unleashed Fury": 5
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/hunter-leveling-guide",
      "sourceTitle": "Hunter Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Mobalytics recommendation, 2026-09-22; untested by Allegedly Skilled.",
        "Pet acquisition and training remain separate requirements."
      ]
    },
    {
      "id": "hunter-beast-mastery-mobalytics-30",
      "name": "Beast Mastery levelling · 30",
      "classSlug": "hunter",
      "spec": "Beast Mastery",
      "level": 30,
      "talentedRank": 0,
      "talents": {
        "Deadly Aspects": 5,
        "Focused Fire": 2,
        "Pathfinding": 2,
        "Improved Revive Pet": 2,
        "Bestial Swiftness": 1,
        "Unleashed Fury": 5,
        "Ferocity": 2,
        "Summon Hawk": 1,
        "Intimidation": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/hunter-leveling-guide",
      "sourceTitle": "Hunter Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Mobalytics recommendation, 2026-09-22; exact level-30 chart.",
        "Pet acquisition and training remain separate requirements."
      ]
    },
    {
      "id": "mage-frost-mobalytics-10",
      "name": "Frost levelling · 10",
      "classSlug": "mage",
      "spec": "Frost",
      "level": 10,
      "talentedRank": 0,
      "talents": {
        "Improved Frostbolt": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/mage-leveling-guide",
      "sourceTitle": "Mage Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-23; untested by Allegedly Skilled."
      ]
    },
    {
      "id": "mage-frost-mobalytics-15",
      "name": "Frost levelling · 15",
      "classSlug": "mage",
      "spec": "Frost",
      "level": 15,
      "talentedRank": 0,
      "talents": {
        "Improved Frostbolt": 5,
        "Permafrost": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/mage-leveling-guide",
      "sourceTitle": "Mage Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-23; untested by Allegedly Skilled."
      ]
    },
    {
      "id": "mage-frost-mobalytics-20",
      "name": "Frost levelling · 20",
      "classSlug": "mage",
      "spec": "Frost",
      "level": 20,
      "talentedRank": 0,
      "talents": {
        "Improved Frostbolt": 5,
        "Permafrost": 3,
        "Frostbite": 3
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/mage-leveling-guide",
      "sourceTitle": "Mage Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-23; untested by Allegedly Skilled."
      ]
    },
    {
      "id": "mage-frost-mobalytics-25",
      "name": "Frost levelling · 25",
      "classSlug": "mage",
      "spec": "Frost",
      "level": 25,
      "talentedRank": 0,
      "talents": {
        "Improved Frostbolt": 5,
        "Permafrost": 3,
        "Frostbite": 3,
        "Piercing Ice": 3,
        "Ice Lance": 1,
        "Improved Blizzard": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/mage-leveling-guide",
      "sourceTitle": "Mage Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-23; untested by Allegedly Skilled."
      ]
    },
    {
      "id": "mage-frost-mobalytics-30",
      "name": "Frost levelling · 30",
      "classSlug": "mage",
      "spec": "Frost",
      "level": 30,
      "talentedRank": 0,
      "talents": {
        "Improved Frostbolt": 5,
        "Permafrost": 3,
        "Frostbite": 3,
        "Piercing Ice": 3,
        "Ice Lance": 1,
        "Improved Blizzard": 2,
        "Arctic Reach": 2,
        "Ice Block": 1,
        "Fingers of Frost": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/mage-leveling-guide",
      "sourceTitle": "Mage Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-23; exact level-30 chart."
      ]
    },
    {
      "id": "paladin-protection-aoe-plan-10",
      "name": "Protection AoE plan · 10",
      "classSlug": "paladin",
      "spec": "Protection",
      "level": 10,
      "talentedRank": 0,
      "talents": {
        "Redoubt": 1
      },
      "sourceUrl": "https://wowforeverbuilds.com/guide/protection-aoe-paladin-leveling",
      "sourceTitle": "Protection Paladin AoE leveling guide — WoWForeverBuilds",
      "notes": [
        "Author theorycraft, updated 2026-09-16; not tested by Allegedly Skilled.",
        "No Legacy acceleration; higher levels are planning presets."
      ]
    },
    {
      "id": "paladin-protection-aoe-plan-15",
      "name": "Protection AoE plan · 15",
      "classSlug": "paladin",
      "spec": "Protection",
      "level": 15,
      "talentedRank": 0,
      "talents": {
        "Redoubt": 5,
        "Precision": 1
      },
      "sourceUrl": "https://wowforeverbuilds.com/guide/protection-aoe-paladin-leveling",
      "sourceTitle": "Protection Paladin AoE leveling guide — WoWForeverBuilds",
      "notes": [
        "Author theorycraft, updated 2026-09-16; not tested by Allegedly Skilled.",
        "No Legacy acceleration; higher levels are planning presets."
      ]
    },
    {
      "id": "paladin-protection-aoe-plan-20",
      "name": "Protection AoE plan · 20",
      "classSlug": "paladin",
      "spec": "Protection",
      "level": 20,
      "talentedRank": 0,
      "talents": {
        "Redoubt": 5,
        "Precision": 3,
        "Toughness": 2,
        "Improved Seal of Fury": 1
      },
      "sourceUrl": "https://wowforeverbuilds.com/guide/protection-aoe-paladin-leveling",
      "sourceTitle": "Protection Paladin AoE leveling guide — WoWForeverBuilds",
      "notes": [
        "Author theorycraft, updated 2026-09-16; not tested by Allegedly Skilled.",
        "No Legacy acceleration; higher levels are planning presets."
      ]
    },
    {
      "id": "paladin-protection-aoe-plan-25",
      "name": "Protection AoE plan · 25",
      "classSlug": "paladin",
      "spec": "Protection",
      "level": 25,
      "talentedRank": 0,
      "talents": {
        "Redoubt": 5,
        "Precision": 3,
        "Toughness": 2,
        "Improved Seal of Fury": 1,
        "Shield Specialization": 3,
        "Improved Righteous Fury": 2
      },
      "sourceUrl": "https://wowforeverbuilds.com/guide/protection-aoe-paladin-leveling",
      "sourceTitle": "Protection Paladin AoE leveling guide — WoWForeverBuilds",
      "notes": [
        "Author theorycraft, updated 2026-09-16; not tested by Allegedly Skilled.",
        "No Legacy acceleration; higher levels are planning presets."
      ]
    },
    {
      "id": "paladin-protection-aoe-plan-30",
      "name": "Protection AoE plan · 30",
      "classSlug": "paladin",
      "spec": "Protection",
      "level": 30,
      "talentedRank": 0,
      "talents": {
        "Redoubt": 5,
        "Precision": 3,
        "Toughness": 2,
        "Improved Seal of Fury": 1,
        "Shield Specialization": 3,
        "Improved Righteous Fury": 3,
        "One-Handed Weapon Specialization": 3,
        "Templar's Bulwark": 1
      },
      "sourceUrl": "https://wowforeverbuilds.com/guide/protection-aoe-paladin-leveling",
      "sourceTitle": "Protection Paladin AoE leveling guide — WoWForeverBuilds",
      "notes": [
        "Author theorycraft, updated 2026-09-16; not tested by Allegedly Skilled.",
        "No Legacy acceleration; higher levels are planning presets."
      ]
    },
    {
      "id": "paladin-protection-aoe-plan-35",
      "name": "Protection AoE plan · 35",
      "classSlug": "paladin",
      "spec": "Protection",
      "level": 35,
      "talentedRank": 0,
      "talents": {
        "Redoubt": 5,
        "Precision": 3,
        "Toughness": 2,
        "Improved Seal of Fury": 1,
        "Shield Specialization": 3,
        "Improved Righteous Fury": 3,
        "One-Handed Weapon Specialization": 3,
        "Templar's Bulwark": 1,
        "Reckoning": 5
      },
      "sourceUrl": "https://wowforeverbuilds.com/guide/protection-aoe-paladin-leveling",
      "sourceTitle": "Protection Paladin AoE leveling guide — WoWForeverBuilds",
      "notes": [
        "Author theorycraft, updated 2026-09-16; not tested by Allegedly Skilled.",
        "No Legacy acceleration; higher levels are planning presets."
      ]
    },
    {
      "id": "paladin-protection-aoe-plan-40",
      "name": "Protection AoE plan · 40",
      "classSlug": "paladin",
      "spec": "Protection",
      "level": 40,
      "talentedRank": 0,
      "talents": {
        "Redoubt": 5,
        "Precision": 3,
        "Toughness": 2,
        "Improved Seal of Fury": 1,
        "Shield Specialization": 3,
        "Improved Righteous Fury": 3,
        "One-Handed Weapon Specialization": 3,
        "Templar's Bulwark": 1,
        "Reckoning": 5,
        "Iron Creed": 4,
        "Holy Shield": 1
      },
      "sourceUrl": "https://wowforeverbuilds.com/guide/protection-aoe-paladin-leveling",
      "sourceTitle": "Protection Paladin AoE leveling guide — WoWForeverBuilds",
      "notes": [
        "Author theorycraft, updated 2026-09-16; not tested by Allegedly Skilled.",
        "No Legacy acceleration; higher levels are planning presets."
      ]
    },
    {
      "id": "paladin-protection-aoe-plan-60",
      "name": "Protection AoE plan · 60",
      "classSlug": "paladin",
      "spec": "Protection",
      "level": 60,
      "talentedRank": 0,
      "talents": {
        "Redoubt": 5,
        "Precision": 3,
        "Toughness": 5,
        "Improved Seal of Fury": 1,
        "Shield Specialization": 3,
        "Improved Righteous Fury": 3,
        "One-Handed Weapon Specialization": 3,
        "Templar's Bulwark": 1,
        "Reckoning": 5,
        "Iron Creed": 5,
        "Holy Shield": 1,
        "Sacred Duty": 2,
        "Swift Judgement": 1,
        "Anticipation": 5,
        "Benediction": 5,
        "Improved Hammer of Justice": 3
      },
      "sourceUrl": "https://wowforeverbuilds.com/guide/protection-aoe-paladin-leveling",
      "sourceTitle": "Protection Paladin AoE leveling guide — WoWForeverBuilds",
      "notes": [
        "Author theorycraft, updated 2026-09-16; not tested by Allegedly Skilled.",
        "No Legacy acceleration; higher levels are planning presets."
      ]
    },
    {
      "id": "paladin-protection-mobalytics-30",
      "name": "Protection dungeon plan · 30",
      "classSlug": "paladin",
      "spec": "Protection",
      "level": 30,
      "talentedRank": 0,
      "talents": {
        "Redoubt": 5,
        "Precision": 3,
        "Anticipation": 5,
        "Improved Seal of Fury": 1,
        "Improved Righteous Fury": 3,
        "Shield Specialization": 3,
        "Swift Judgement": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/protection-paladin-guide",
      "sourceTitle": "Protection Paladin Guide — Mobalytics",
      "notes": [
        "Mobalytics recommendation, updated 2026-09-25; exact level-30 chart.",
        "Uses Swift Judgement without Bulwark; later prose point count disagrees with the chart, so no intermediate order is inferred."
      ]
    },
    {
      "id": "paladin-retribution-mobalytics-10",
      "name": "Retribution levelling · 10",
      "classSlug": "paladin",
      "spec": "Retribution",
      "level": 10,
      "talentedRank": 0,
      "talents": {
        "Benediction": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/paladin-leveling-guide",
      "sourceTitle": "Paladin Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Ruse_Cruize recommendation, 2026-09-23; untested by Allegedly Skilled."
      ]
    },
    {
      "id": "paladin-retribution-mobalytics-15",
      "name": "Retribution levelling · 15",
      "classSlug": "paladin",
      "spec": "Retribution",
      "level": 15,
      "talentedRank": 0,
      "talents": {
        "Benediction": 5,
        "Conviction": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/paladin-leveling-guide",
      "sourceTitle": "Paladin Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Ruse_Cruize recommendation, 2026-09-23; untested by Allegedly Skilled."
      ]
    },
    {
      "id": "paladin-retribution-mobalytics-20",
      "name": "Retribution levelling · 20",
      "classSlug": "paladin",
      "spec": "Retribution",
      "level": 20,
      "talentedRank": 0,
      "talents": {
        "Benediction": 5,
        "Conviction": 5,
        "Pursuit of Justice": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/paladin-leveling-guide",
      "sourceTitle": "Paladin Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Ruse_Cruize recommendation, 2026-09-23; untested by Allegedly Skilled."
      ]
    },
    {
      "id": "paladin-retribution-mobalytics-25",
      "name": "Retribution levelling · 25",
      "classSlug": "paladin",
      "spec": "Retribution",
      "level": 25,
      "talentedRank": 0,
      "talents": {
        "Benediction": 5,
        "Conviction": 5,
        "Pursuit of Justice": 2,
        "Seal of Command": 1,
        "Sanctified Judgement": 2,
        "Sacred Arbiter": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/paladin-leveling-guide",
      "sourceTitle": "Paladin Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Ruse_Cruize recommendation, 2026-09-23; untested by Allegedly Skilled."
      ]
    },
    {
      "id": "priest-shadow-mobalytics-10",
      "name": "Shadow levelling · 10",
      "classSlug": "priest",
      "spec": "Shadow",
      "level": 10,
      "talentedRank": 0,
      "talents": {
        "Wand Specialization": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/priest-leveling-guide",
      "sourceTitle": "Priest Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-23; untested by Allegedly Skilled.",
        "Requires a wand for the opening Discipline investment."
      ]
    },
    {
      "id": "priest-shadow-mobalytics-15",
      "name": "Shadow levelling · 15",
      "classSlug": "priest",
      "spec": "Shadow",
      "level": 15,
      "talentedRank": 0,
      "talents": {
        "Wand Specialization": 2,
        "Spirit Tap": 4
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/priest-leveling-guide",
      "sourceTitle": "Priest Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-23; untested by Allegedly Skilled.",
        "Requires a wand for the opening Discipline investment."
      ]
    },
    {
      "id": "priest-shadow-mobalytics-20",
      "name": "Shadow levelling · 20",
      "classSlug": "priest",
      "spec": "Shadow",
      "level": 20,
      "talentedRank": 0,
      "talents": {
        "Wand Specialization": 2,
        "Spirit Tap": 5,
        "Improved Shadow Word: Pain": 2,
        "Shadow Focus": 2
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/priest-leveling-guide",
      "sourceTitle": "Priest Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-23; untested by Allegedly Skilled.",
        "Requires a wand for the opening Discipline investment."
      ]
    },
    {
      "id": "priest-shadow-mobalytics-25",
      "name": "Shadow levelling · 25",
      "classSlug": "priest",
      "spec": "Shadow",
      "level": 25,
      "talentedRank": 0,
      "talents": {
        "Wand Specialization": 2,
        "Spirit Tap": 5,
        "Improved Shadow Word: Pain": 2,
        "Shadow Focus": 3,
        "Shadow Reach": 2,
        "Mind Flay": 1,
        "Improved Mind Flay": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/priest-leveling-guide",
      "sourceTitle": "Priest Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-23; untested by Allegedly Skilled.",
        "Requires a wand for the opening Discipline investment."
      ]
    },
    {
      "id": "priest-shadow-mobalytics-30",
      "name": "Shadow levelling · 30",
      "classSlug": "priest",
      "spec": "Shadow",
      "level": 30,
      "talentedRank": 0,
      "talents": {
        "Wand Specialization": 2,
        "Shadow Focus": 3,
        "Spirit Tap": 5,
        "Improved Shadow Word: Pain": 2,
        "Shadow Reach": 2,
        "Mind Flay": 1,
        "Improved Mind Flay": 2,
        "Vampiric Embrace": 1,
        "Shadow Weaving": 3
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/priest-leveling-guide",
      "sourceTitle": "Priest Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-23; exact level-30 chart.",
        "Requires a wand for the opening Discipline investment."
      ]
    },
    {
      "id": "rogue-combat-mobalytics-10",
      "name": "Combat levelling · 10",
      "classSlug": "rogue",
      "spec": "Combat",
      "level": 10,
      "talentedRank": 0,
      "talents": {
        "Improved Sinister Strike": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/rogue-leveling-guide",
      "sourceTitle": "Rogue Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-22; untested by Allegedly Skilled."
      ]
    },
    {
      "id": "rogue-combat-mobalytics-15",
      "name": "Combat levelling · 15",
      "classSlug": "rogue",
      "spec": "Combat",
      "level": 15,
      "talentedRank": 0,
      "talents": {
        "Improved Sinister Strike": 2,
        "Improved Eviscerate": 3,
        "Deflection": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/rogue-leveling-guide",
      "sourceTitle": "Rogue Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-22; untested by Allegedly Skilled."
      ]
    },
    {
      "id": "rogue-combat-mobalytics-20",
      "name": "Combat levelling · 20",
      "classSlug": "rogue",
      "spec": "Combat",
      "level": 20,
      "talentedRank": 0,
      "talents": {
        "Improved Sinister Strike": 2,
        "Improved Eviscerate": 3,
        "Deflection": 3,
        "Precision": 3
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/rogue-leveling-guide",
      "sourceTitle": "Rogue Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-22; untested by Allegedly Skilled."
      ]
    },
    {
      "id": "rogue-combat-mobalytics-25",
      "name": "Combat levelling · 25",
      "classSlug": "rogue",
      "spec": "Combat",
      "level": 25,
      "talentedRank": 0,
      "talents": {
        "Improved Sinister Strike": 2,
        "Improved Eviscerate": 3,
        "Deflection": 3,
        "Precision": 3,
        "Riposte": 1,
        "Endurance": 2,
        "Improved Sprint": 1,
        "Dual Wield Specialization": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/rogue-leveling-guide",
      "sourceTitle": "Rogue Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-22; untested by Allegedly Skilled."
      ]
    },
    {
      "id": "rogue-combat-mobalytics-30",
      "name": "Combat levelling · 30",
      "classSlug": "rogue",
      "spec": "Combat",
      "level": 30,
      "talentedRank": 0,
      "talents": {
        "Improved Eviscerate": 3,
        "Improved Sinister Strike": 2,
        "Deflection": 3,
        "Precision": 3,
        "Endurance": 2,
        "Riposte": 1,
        "Improved Sprint": 1,
        "Dual Wield Specialization": 5,
        "Blade Flurry": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/rogue-leveling-guide",
      "sourceTitle": "Rogue Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-22; exact level-30 chart."
      ]
    },
    {
      "id": "shaman-enhancement-mobalytics-10",
      "name": "Enhancement levelling · 10",
      "classSlug": "shaman",
      "spec": "Enhancement",
      "level": 10,
      "talentedRank": 0,
      "talents": {
        "Thundering Strikes": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/shaman-leveling-guide",
      "sourceTitle": "Shaman Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-22; untested by Allegedly Skilled.",
        "Later prose has naming and point-timing inconsistencies; level 30 uses the exact published chart."
      ]
    },
    {
      "id": "shaman-enhancement-mobalytics-15",
      "name": "Enhancement levelling · 15",
      "classSlug": "shaman",
      "spec": "Enhancement",
      "level": 15,
      "talentedRank": 0,
      "talents": {
        "Thundering Strikes": 5,
        "Improved Lightning Shield": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/shaman-leveling-guide",
      "sourceTitle": "Shaman Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-22; untested by Allegedly Skilled.",
        "Later prose has naming and point-timing inconsistencies; level 30 uses the exact published chart."
      ]
    },
    {
      "id": "shaman-enhancement-mobalytics-30",
      "name": "Enhancement levelling · 30",
      "classSlug": "shaman",
      "spec": "Enhancement",
      "level": 30,
      "talentedRank": 0,
      "talents": {
        "Thundering Strikes": 5,
        "Mental Dexterity": 3,
        "Improved Ghost Wolf": 1,
        "Improved Lightning Shield": 3,
        "Elemental Weapons": 3,
        "Flurry": 5,
        "Stormstrike": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/shaman-leveling-guide",
      "sourceTitle": "Shaman Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-22; exact level-30 chart.",
        "Later prose has naming and point-timing inconsistencies; level 30 uses the exact published chart."
      ]
    },
    {
      "id": "warlock-affliction-mobalytics-10",
      "name": "Affliction levelling · 10",
      "classSlug": "warlock",
      "spec": "Affliction",
      "level": 10,
      "talentedRank": 0,
      "talents": {
        "Improved Corruption": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/warlock-leveling-guide",
      "sourceTitle": "Warlock Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Mobalytics-Vale recommendation, 2026-09-23; untested by Allegedly Skilled.",
        "Level 30 uses the published chart; its late prose order places Siphon Life before the recorded row gate."
      ]
    },
    {
      "id": "warlock-affliction-mobalytics-15",
      "name": "Affliction levelling · 15",
      "classSlug": "warlock",
      "spec": "Affliction",
      "level": 15,
      "talentedRank": 0,
      "talents": {
        "Improved Corruption": 5,
        "Improved Drains": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/warlock-leveling-guide",
      "sourceTitle": "Warlock Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Mobalytics-Vale recommendation, 2026-09-23; untested by Allegedly Skilled.",
        "Level 30 uses the published chart; its late prose order places Siphon Life before the recorded row gate."
      ]
    },
    {
      "id": "warlock-affliction-mobalytics-20",
      "name": "Affliction levelling · 20",
      "classSlug": "warlock",
      "spec": "Affliction",
      "level": 20,
      "talentedRank": 0,
      "talents": {
        "Improved Corruption": 5,
        "Improved Drains": 3,
        "Suppression": 2,
        "Fel Concentration": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/warlock-leveling-guide",
      "sourceTitle": "Warlock Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Mobalytics-Vale recommendation, 2026-09-23; untested by Allegedly Skilled.",
        "Level 30 uses the published chart; its late prose order places Siphon Life before the recorded row gate."
      ]
    },
    {
      "id": "warlock-affliction-mobalytics-25",
      "name": "Affliction levelling · 25",
      "classSlug": "warlock",
      "spec": "Affliction",
      "level": 25,
      "talentedRank": 0,
      "talents": {
        "Improved Corruption": 5,
        "Improved Drains": 3,
        "Suppression": 2,
        "Fel Concentration": 3,
        "Improved Bane of Agony": 2,
        "Nightfall": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/warlock-leveling-guide",
      "sourceTitle": "Warlock Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Mobalytics-Vale recommendation, 2026-09-23; untested by Allegedly Skilled.",
        "Level 30 uses the published chart; its late prose order places Siphon Life before the recorded row gate."
      ]
    },
    {
      "id": "warlock-affliction-mobalytics-30",
      "name": "Affliction levelling · 30",
      "classSlug": "warlock",
      "spec": "Affliction",
      "level": 30,
      "talentedRank": 0,
      "talents": {
        "Suppression": 2,
        "Improved Corruption": 5,
        "Improved Drains": 3,
        "Improved Bane of Agony": 2,
        "Fel Concentration": 3,
        "Pandemic": 3,
        "Nightfall": 2,
        "Siphon Life": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/warlock-leveling-guide",
      "sourceTitle": "Warlock Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Mobalytics-Vale recommendation, 2026-09-23; exact level-30 chart.",
        "Level 30 uses the published chart; its late prose order places Siphon Life before the recorded row gate."
      ]
    },
    {
      "id": "warrior-arms-mobalytics-10",
      "name": "Arms levelling · 10",
      "classSlug": "warrior",
      "spec": "Arms",
      "level": 10,
      "talentedRank": 0,
      "talents": {
        "Improved Rend": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/warrior-leveling-guide",
      "sourceTitle": "Warrior Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-23; untested by Allegedly Skilled.",
        "Uses the guide's Improved Charge branch; no disputed Protection nodes are selected."
      ]
    },
    {
      "id": "warrior-arms-mobalytics-15",
      "name": "Arms levelling · 15",
      "classSlug": "warrior",
      "spec": "Arms",
      "level": 15,
      "talentedRank": 0,
      "talents": {
        "Improved Rend": 3,
        "Deflection": 2,
        "Improved Overpower": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/warrior-leveling-guide",
      "sourceTitle": "Warrior Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-23; untested by Allegedly Skilled.",
        "Uses the guide's Improved Charge branch; no disputed Protection nodes are selected."
      ]
    },
    {
      "id": "warrior-arms-mobalytics-20",
      "name": "Arms levelling · 20",
      "classSlug": "warrior",
      "spec": "Arms",
      "level": 20,
      "talentedRank": 0,
      "talents": {
        "Improved Rend": 3,
        "Deflection": 2,
        "Improved Overpower": 2,
        "Improved Charge": 2,
        "Improved Tactical Mastery": 1,
        "Deep Wounds": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/warrior-leveling-guide",
      "sourceTitle": "Warrior Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-23; untested by Allegedly Skilled.",
        "Uses the guide's Improved Charge branch; no disputed Protection nodes are selected."
      ]
    },
    {
      "id": "warrior-arms-mobalytics-25",
      "name": "Arms levelling · 25",
      "classSlug": "warrior",
      "spec": "Arms",
      "level": 25,
      "talentedRank": 0,
      "talents": {
        "Improved Rend": 3,
        "Deflection": 2,
        "Improved Overpower": 2,
        "Improved Charge": 2,
        "Improved Tactical Mastery": 3,
        "Deep Wounds": 3,
        "Spearing Strike": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/warrior-leveling-guide",
      "sourceTitle": "Warrior Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-23; untested by Allegedly Skilled.",
        "Uses the guide's Improved Charge branch; no disputed Protection nodes are selected."
      ]
    },
    {
      "id": "warrior-arms-mobalytics-30",
      "name": "Arms levelling · 30",
      "classSlug": "warrior",
      "spec": "Arms",
      "level": 30,
      "talentedRank": 0,
      "talents": {
        "Deflection": 2,
        "Improved Rend": 3,
        "Improved Charge": 2,
        "Improved Tactical Mastery": 5,
        "Improved Overpower": 2,
        "Anger Management": 1,
        "Deep Wounds": 3,
        "Spearing Strike": 1,
        "Two-Handed Weapon Specialization": 1,
        "Sweeping Strikes": 1
      },
      "sourceUrl": "https://mobalytics.gg/wow-forever/classes/warrior-leveling-guide",
      "sourceTitle": "Warrior Leveling Guide (Level 1-30) — Mobalytics",
      "notes": [
        "Oli recommendation, 2026-09-23; exact level-30 chart.",
        "Uses the guide's Improved Charge branch; no disputed Protection nodes are selected."
      ]
    }
  ]
}
