{
 "alchemy": {
  "source": "https://classicwowforever.com/professions/alchemy/leveling/",
  "trainers": [
   {
    "rank": "Apprentice",
    "skill": "1-75",
    "charLevel": 5,
    "where": "Any trainer"
   },
   {
    "rank": "Journeyman",
    "skill": "75-150",
    "charLevel": 10,
    "where": "requires skill 50"
   },
   {
    "rank": "Expert",
    "skill": "150-225",
    "charLevel": 20,
    "where": "requires skill 125"
   },
   {
    "rank": "Artisan",
    "skill": "225-300",
    "charLevel": 35,
    "where": "Artisan trainer; requires skill 200"
   }
  ],
  "totalMats": [
   {
    "item": "Empty Vial",
    "qty": 203
   },
   {
    "item": "Leaded Vial",
    "qty": 116
   },
   {
    "item": "Peacebloom",
    "qty": 103
   },
   {
    "item": "Fadeleaf",
    "qty": 101
   },
   {
    "item": "Mageroyal",
    "qty": 100
   },
   {
    "item": "Sungrass",
    "qty": 94
   },
   {
    "item": "Blindweed",
    "qty": 94
   },
   {
    "item": "Stranglekelp",
    "qty": 76
   },
   {
    "item": "Silverleaf",
    "qty": 71
   },
   {
    "item": "Goldthorn",
    "qty": 71
   },
   {
    "item": "Earthroot",
    "qty": 64
   },
   {
    "item": "Crystal Vial",
    "qty": 59
   },
   {
    "item": "Briarthorn",
    "qty": 48
   },
   {
    "item": "Wild Steelbloom",
    "qty": 30
   },
   {
    "item": "Gromsblood",
    "qty": 20
   },
   {
    "item": "Stonescale Eel",
    "qty": 15
   },
   {
    "item": "Arthas' Tears",
    "qty": 2
   }
  ],
  "steps": [
   {
    "from": 1,
    "to": 69,
    "craft": "Elixir of Minor Defense",
    "count": 71,
    "mats": [
     {
      "item": "Silverleaf",
      "qty": 1
     },
     {
      "item": "Peacebloom",
      "qty": 1
     },
     {
      "item": "Empty Vial",
      "qty": 1
     }
    ]
   },
   {
    "from": 69,
    "to": 96,
    "craft": "Elixir of Minor Fortitude",
    "count": 32,
    "mats": [
     {
      "item": "Earthroot",
      "qty": 2
     },
     {
      "item": "Peacebloom",
      "qty": 1
     },
     {
      "item": "Empty Vial",
      "qty": 1
     }
    ]
   },
   {
    "from": 96,
    "to": 120,
    "craft": "Elixir of Wisdom",
    "count": 24,
    "mats": [
     {
      "item": "Mageroyal",
      "qty": 1
     },
     {
      "item": "Briarthorn",
      "qty": 2
     },
     {
      "item": "Empty Vial",
      "qty": 1
     }
    ]
   },
   {
    "from": 120,
    "to": 174,
    "craft": "Lesser Mana Potion",
    "count": 76,
    "mats": [
     {
      "item": "Mageroyal",
      "qty": 1
     },
     {
      "item": "Stranglekelp",
      "qty": 1
     },
     {
      "item": "Empty Vial",
      "qty": 1
     }
    ]
   },
   {
    "from": 174,
    "to": 200,
    "craft": "Lesser Invisibility Potion",
    "count": 30,
    "mats": [
     {
      "item": "Fadeleaf",
      "qty": 1
     },
     {
      "item": "Wild Steelbloom",
      "qty": 1
     },
     {
      "item": "Leaded Vial",
      "qty": 1
     }
    ]
   },
   {
    "from": 200,
    "to": 249,
    "craft": "Catseye Draught",
    "count": 71,
    "mats": [
     {
      "item": "Goldthorn",
      "qty": 1
     },
     {
      "item": "Fadeleaf",
      "qty": 1
     },
     {
      "item": "Leaded Vial",
      "qty": 1
     }
    ]
   },
   {
    "from": 249,
    "to": 250,
    "craft": "Draught of Detect Undead",
    "count": 2,
    "mats": [
     {
      "item": "Arthas' Tears",
      "qty": 1
     },
     {
      "item": "Crystal Vial",
      "qty": 1
     }
    ]
   },
   {
    "from": 250,
    "to": 258,
    "craft": "Stonescale Oil",
    "count": 15,
    "mats": [
     {
      "item": "Stonescale Eel",
      "qty": 1
     },
     {
      "item": "Leaded Vial",
      "qty": 1
     }
    ]
   },
   {
    "from": 258,
    "to": 267,
    "craft": "Draught of Detect Demon",
    "count": 10,
    "mats": [
     {
      "item": "Gromsblood",
      "qty": 2
     },
     {
      "item": "Crystal Vial",
      "qty": 1
     }
    ]
   },
   {
    "from": 267,
    "to": 300,
    "craft": "Superior Mana Potion",
    "count": 47,
    "mats": [
     {
      "item": "Sungrass",
      "qty": 2
     },
     {
      "item": "Blindweed",
      "qty": 2
     },
     {
      "item": "Crystal Vial",
      "qty": 1
     }
    ],
    "note": "Recipe from Ulthir, Darnassus (1g 20s)"
   }
  ]
 },
 "blacksmithing": {
  "source": "https://classicwowforever.com/professions/blacksmithing/leveling/",
  "trainers": [
   {
    "rank": "Apprentice",
    "skill": "1-75",
    "charLevel": 5,
    "where": "Any trainer"
   },
   {
    "rank": "Journeyman",
    "skill": "75-150",
    "charLevel": 10,
    "where": "requires skill 50"
   },
   {
    "rank": "Expert",
    "skill": "150-225",
    "charLevel": 20,
    "where": "requires skill 125"
   },
   {
    "rank": "Artisan",
    "skill": "225-300",
    "charLevel": 35,
    "where": "Artisan trainer; requires skill 200"
   }
  ],
  "totalMats": [
   {
    "item": "Thorium Bar",
    "qty": 2320
   },
   {
    "item": "Dense Stone",
    "qty": 1392
   },
   {
    "item": "Mithril Bar",
    "qty": 742
   },
   {
    "item": "Rugged Leather",
    "qty": 348
   },
   {
    "item": "Copper Bar",
    "qty": 300
   },
   {
    "item": "Iron Bar",
    "qty": 228
   },
   {
    "item": "Rough Stone",
    "qty": 168
   },
   {
    "item": "Mageweave Cloth",
    "qty": 162
   },
   {
    "item": "Bronze Bar",
    "qty": 135
   },
   {
    "item": "Thick Leather",
    "qty": 112
   },
   {
    "item": "Coarse Stone",
    "qty": 108
   },
   {
    "item": "Truesilver Bar",
    "qty": 108
   },
   {
    "item": "Heavy Stone",
    "qty": 105
   },
   {
    "item": "Steel Bar",
    "qty": 75
   },
   {
    "item": "Solid Stone",
    "qty": 72
   },
   {
    "item": "Green Dye",
    "qty": 38
   },
   {
    "item": "Star Ruby",
    "qty": 36
   }
  ],
  "steps": [
   {
    "from": 1,
    "to": 25,
    "craft": "Rough Sharpening Stone",
    "count": 26,
    "mats": [
     {
      "item": "Rough Stone",
      "qty": 1
     }
    ]
   },
   {
    "from": 25,
    "to": 74,
    "craft": "Rough Grinding Stone",
    "count": 71,
    "mats": [
     {
      "item": "Rough Stone",
      "qty": 2
     }
    ]
   },
   {
    "from": 74,
    "to": 100,
    "craft": "Runed Copper Belt",
    "count": 30,
    "mats": [
     {
      "item": "Copper Bar",
      "qty": 10
     }
    ]
   },
   {
    "from": 100,
    "to": 119,
    "craft": "Heavy Grinding Stone",
    "count": 35,
    "mats": [
     {
      "item": "Heavy Stone",
      "qty": 3
     }
    ]
   },
   {
    "from": 119,
    "to": 140,
    "craft": "Patterned Bronze Bracers",
    "count": 27,
    "mats": [
     {
      "item": "Bronze Bar",
      "qty": 5
     },
     {
      "item": "Coarse Grinding Stone",
      "qty": 2
     }
    ],
    "note": "Craft 54 Coarse Grinding Stone first"
   },
   {
    "from": 140,
    "to": 175,
    "craft": "Green Iron Bracers",
    "count": 38,
    "mats": [
     {
      "item": "Iron Bar",
      "qty": 6
     },
     {
      "item": "Green Dye",
      "qty": 1
     }
    ]
   },
   {
    "from": 175,
    "to": 183,
    "craft": "Solid Grinding Stone",
    "count": 18,
    "mats": [
     {
      "item": "Solid Stone",
      "qty": 4
     }
    ],
    "note": "Only ~15 give skill; extras used later"
   },
   {
    "from": 183,
    "to": 195,
    "craft": "Golden Scale Bracers",
    "count": 15,
    "mats": [
     {
      "item": "Steel Bar",
      "qty": 5
     },
     {
      "item": "Heavy Grinding Stone",
      "qty": 2
     }
    ]
   },
   {
    "from": 195,
    "to": 208,
    "craft": "Heavy Mithril Gauntlet",
    "count": 15,
    "mats": [
     {
      "item": "Mithril Bar",
      "qty": 6
     },
     {
      "item": "Mageweave Cloth",
      "qty": 4
     }
    ]
   },
   {
    "from": 208,
    "to": 225,
    "craft": "Mithril Coif",
    "count": 17,
    "mats": [
     {
      "item": "Mithril Bar",
      "qty": 10
     },
     {
      "item": "Mageweave Cloth",
      "qty": 6
     }
    ]
   },
   {
    "from": 225,
    "to": 234,
    "craft": "Dense Grinding Stone",
    "count": 348,
    "mats": [
     {
      "item": "Dense Stone",
      "qty": 4
     }
    ],
    "note": "Only ~12 give skill; extras used later"
   },
   {
    "from": 234,
    "to": 244,
    "craft": "Heavy Mithril Boots",
    "count": 19,
    "mats": [
     {
      "item": "Mithril Bar",
      "qty": 14
     },
     {
      "item": "Thick Leather",
      "qty": 4
     }
    ]
   },
   {
    "from": 244,
    "to": 261,
    "craft": "Ebon Shiv",
    "count": 18,
    "mats": [
     {
      "item": "Mithril Bar",
      "qty": 12
     },
     {
      "item": "Truesilver Bar",
      "qty": 6
     },
     {
      "item": "Star Ruby",
      "qty": 2
     },
     {
      "item": "Solid Grinding Stone",
      "qty": 1
     },
     {
      "item": "Thick Leather",
      "qty": 2
     }
    ],
    "note": "Plans from Magnus Frostwake, Western Plaguelands (1g)"
   },
   {
    "from": 261,
    "to": 300,
    "craft": "Huge Thorium Battleaxe",
    "count": 58,
    "mats": [
     {
      "item": "Thorium Bar",
      "qty": 40
     },
     {
      "item": "Dense Grinding Stone",
      "qty": 6
     },
     {
      "item": "Rugged Leather",
      "qty": 6
     }
    ],
    "note": "Plans from Magnus Frostwake, Western Plaguelands (2g)"
   }
  ]
 },
 "enchanting": {
  "source": "https://classicwowforever.com/professions/enchanting/leveling/",
  "trainers": [
   {
    "rank": "Apprentice",
    "skill": "1-75",
    "charLevel": 5,
    "where": "Any trainer"
   },
   {
    "rank": "Journeyman",
    "skill": "75-150",
    "charLevel": 10,
    "where": "requires skill 50"
   },
   {
    "rank": "Expert",
    "skill": "150-225",
    "charLevel": 20,
    "where": "requires skill 125"
   },
   {
    "rank": "Artisan",
    "skill": "225-300",
    "charLevel": 35,
    "where": "Artisan trainer; requires skill 200"
   }
  ],
  "totalMats": [
   {
    "item": "Dream Dust",
    "qty": 208
   },
   {
    "item": "Strange Dust",
    "qty": 182
   },
   {
    "item": "Vision Dust",
    "qty": 104
   },
   {
    "item": "Soul Dust",
    "qty": 65
   },
   {
    "item": "Lesser Nether Essence",
    "qty": 32
   },
   {
    "item": "Mote of Magic",
    "qty": 15
   },
   {
    "item": "Lesser Magic Essence",
    "qty": 4
   },
   {
    "item": "Copper Rod",
    "qty": 1
   },
   {
    "item": "Silver Rod",
    "qty": 1
   },
   {
    "item": "Shadowgem",
    "qty": 1
   },
   {
    "item": "Golden Rod",
    "qty": 1
   },
   {
    "item": "Iridescent Pearl",
    "qty": 1
   },
   {
    "item": "Greater Astral Essence",
    "qty": 1
   },
   {
    "item": "Truesilver Rod",
    "qty": 1
   },
   {
    "item": "Black Pearl",
    "qty": 1
   },
   {
    "item": "Greater Mystic Essence",
    "qty": 1
   }
  ],
  "steps": [
   {
    "from": 1,
    "to": 15,
    "craft": "Enchant Bracer - Inferior Stamina",
    "count": 14,
    "mats": [
     {
      "item": "Mote of Magic",
      "qty": 1
     }
    ],
    "note": "Make Runed Copper Rod first"
   },
   {
    "from": 15,
    "to": 90,
    "craft": "Enchant Chest - Inferior Stamina",
    "count": 83,
    "mats": [
     {
      "item": "Strange Dust",
      "qty": 1
     }
    ]
   },
   {
    "from": 90,
    "to": 130,
    "craft": "Enchant Cloak - Minor Protection",
    "count": 48,
    "mats": [
     {
      "item": "Strange Dust",
      "qty": 2
     }
    ]
   },
   {
    "from": 130,
    "to": 180,
    "craft": "Enchant Bracer - Lesser Stamina",
    "count": 64,
    "mats": [
     {
      "item": "Soul Dust",
      "qty": 1
     }
    ],
    "note": "Make Runed Silver Rod first"
   },
   {
    "from": 180,
    "to": 210,
    "craft": "Enchant Bracer - Strength",
    "count": 32,
    "mats": [
     {
      "item": "Vision Dust",
      "qty": 1
     }
    ],
    "note": "Make Runed Golden Rod first"
   },
   {
    "from": 210,
    "to": 259,
    "craft": "Enchant Gloves - Agility",
    "count": 71,
    "mats": [
     {
      "item": "Vision Dust",
      "qty": 1
     }
    ],
    "note": "Make Runed Truesilver Rod first"
   },
   {
    "from": 259,
    "to": 272,
    "craft": "Enchant Bracer - Greater Strength",
    "count": 16,
    "mats": [
     {
      "item": "Dream Dust",
      "qty": 1
     },
     {
      "item": "Lesser Nether Essence",
      "qty": 2
     }
    ]
   },
   {
    "from": 272,
    "to": 300,
    "craft": "Enchant Shield - Greater Stamina",
    "count": 32,
    "mats": [
     {
      "item": "Dream Dust",
      "qty": 6
     }
    ],
    "note": "Formula from Mythrin'dir, Darnassus (1g 20s)"
   }
  ]
 },
 "engineering": {
  "source": "https://classicwowforever.com/professions/engineering/leveling/",
  "trainers": [
   {
    "rank": "Apprentice",
    "skill": "1-75",
    "charLevel": 5,
    "where": "Any trainer"
   },
   {
    "rank": "Journeyman",
    "skill": "75-150",
    "charLevel": 10,
    "where": "requires skill 50"
   },
   {
    "rank": "Expert",
    "skill": "150-225",
    "charLevel": 20,
    "where": "requires skill 125"
   },
   {
    "rank": "Artisan",
    "skill": "225-300",
    "charLevel": 35,
    "where": "Artisan trainer; requires skill 200"
   }
  ],
  "totalMats": [
   {
    "item": "Copper Bar",
    "qty": 261
   },
   {
    "item": "Mithril Bar",
    "qty": 235
   },
   {
    "item": "Light Leather",
    "qty": 210
   },
   {
    "item": "Solid Stone",
    "qty": 172
   },
   {
    "item": "Thorium Bar",
    "qty": 168
   },
   {
    "item": "Linen Cloth",
    "qty": 159
   },
   {
    "item": "Iron Bar",
    "qty": 117
   },
   {
    "item": "Heavy Stone",
    "qty": 117
   },
   {
    "item": "Bronze Bar",
    "qty": 92
   },
   {
    "item": "Tigerseye",
    "qty": 70
   },
   {
    "item": "Rough Stone",
    "qty": 66
   },
   {
    "item": "Medium Leather",
    "qty": 46
   },
   {
    "item": "Wool Cloth",
    "qty": 46
   },
   {
    "item": "Dense Stone",
    "qty": 30
   },
   {
    "item": "Unstable Trigger",
    "qty": 10
   },
   {
    "item": "Silver Bar",
    "qty": 8
   },
   {
    "item": "Gold Bar",
    "qty": 1
   }
  ],
  "steps": [
   {
    "from": 1,
    "to": 35,
    "craft": "Rough Blasting Powder",
    "count": 66,
    "mats": [
     {
      "item": "Rough Stone",
      "qty": 1
     }
    ],
    "note": "Only ~46 give skill; extras used later"
   },
   {
    "from": 35,
    "to": 67,
    "craft": "Rough Copper Bomb",
    "count": 33,
    "mats": [
     {
      "item": "Copper Bar",
      "qty": 1
     },
     {
      "item": "Handful of Copper Bolts",
      "qty": 1
     },
     {
      "item": "Rough Blasting Powder",
      "qty": 2
     },
     {
      "item": "Linen Cloth",
      "qty": 1
     }
    ],
    "note": "Craft 33 Handful of Copper Bolts first"
   },
   {
    "from": 67,
    "to": 116,
    "craft": "Copper Modulator",
    "count": 63,
    "mats": [
     {
      "item": "Handful of Copper Bolts",
      "qty": 2
     },
     {
      "item": "Copper Bar",
      "qty": 1
     },
     {
      "item": "Linen Cloth",
      "qty": 2
     }
    ],
    "note": "Make Arclight Spanner first; craft 126 Handful of Copper Bolts first"
   },
   {
    "from": 116,
    "to": 145,
    "craft": "Flying Tiger Goggles",
    "count": 35,
    "mats": [
     {
      "item": "Light Leather",
      "qty": 6
     },
     {
      "item": "Tigerseye",
      "qty": 2
     }
    ]
   },
   {
    "from": 145,
    "to": 175,
    "craft": "Bronze Framework",
    "count": 46,
    "mats": [
     {
      "item": "Bronze Bar",
      "qty": 2
     },
     {
      "item": "Medium Leather",
      "qty": 1
     },
     {
      "item": "Wool Cloth",
      "qty": 1
     }
    ]
   },
   {
    "from": 175,
    "to": 190,
    "craft": "Solid Blasting Powder",
    "count": 86,
    "mats": [
     {
      "item": "Solid Stone",
      "qty": 2
     }
    ],
    "note": "Only ~27 give skill; extras used later"
   },
   {
    "from": 190,
    "to": 215,
    "craft": "Big Iron Bomb",
    "count": 39,
    "mats": [
     {
      "item": "Iron Bar",
      "qty": 3
     },
     {
      "item": "Heavy Blasting Powder",
      "qty": 3
     },
     {
      "item": "Silver Contact",
      "qty": 1
     }
    ],
    "note": "Craft 117 Heavy Blasting Powder first; craft 8 Silver Contact first"
   },
   {
    "from": 215,
    "to": 244,
    "craft": "Mithril Casing",
    "count": 51,
    "mats": [
     {
      "item": "Mithril Bar",
      "qty": 3
     }
    ]
   },
   {
    "from": 244,
    "to": 245,
    "craft": "Hi-Explosive Bomb",
    "count": 2,
    "mats": [
     {
      "item": "Mithril Casing",
      "qty": 2
     },
     {
      "item": "Unstable Trigger",
      "qty": 1
     },
     {
      "item": "Solid Blasting Powder",
      "qty": 2
     }
    ]
   },
   {
    "from": 245,
    "to": 250,
    "craft": "Mithril Gyro-Shot",
    "count": 6,
    "mats": [
     {
      "item": "Mithril Bar",
      "qty": 2
     },
     {
      "item": "Solid Blasting Powder",
      "qty": 2
     }
    ]
   },
   {
    "from": 250,
    "to": 258,
    "craft": "Dense Blasting Powder",
    "count": 15,
    "mats": [
     {
      "item": "Dense Stone",
      "qty": 2
     }
    ]
   },
   {
    "from": 258,
    "to": 274,
    "craft": "Mithril Gyro-Shot",
    "count": 35,
    "mats": [
     {
      "item": "Mithril Bar",
      "qty": 2
     },
     {
      "item": "Solid Blasting Powder",
      "qty": 2
     }
    ],
    "note": "Recipe already learned in an earlier step"
   },
   {
    "from": 274,
    "to": 275,
    "craft": "Salt Shaker",
    "count": 2,
    "mats": [
     {
      "item": "Mithril Casing",
      "qty": 1
     },
     {
      "item": "Thorium Bar",
      "qty": 6
     },
     {
      "item": "Gold Power Core",
      "qty": 1
     },
     {
      "item": "Unstable Trigger",
      "qty": 4
     }
    ],
    "note": "Craft 1 Gold Power Core first"
   },
   {
    "from": 275,
    "to": 300,
    "craft": "Thorium Tube",
    "count": 26,
    "mats": [
     {
      "item": "Thorium Bar",
      "qty": 6
     }
    ],
    "note": "Schematic from Xizzer Fizzbolt, Winterspring (1g 60s)"
   }
  ]
 },
 "leatherworking": {
  "source": "https://classicwowforever.com/professions/leatherworking/leveling/",
  "trainers": [
   {
    "rank": "Apprentice",
    "skill": "1-75",
    "charLevel": 5,
    "where": "Any trainer"
   },
   {
    "rank": "Journeyman",
    "skill": "75-150",
    "charLevel": 10,
    "where": "requires skill 50"
   },
   {
    "rank": "Expert",
    "skill": "150-225",
    "charLevel": 20,
    "where": "requires skill 125"
   },
   {
    "rank": "Artisan",
    "skill": "225-300",
    "charLevel": 35,
    "where": "Artisan trainer; requires skill 200"
   }
  ],
  "totalMats": [
   {
    "item": "Rugged Leather",
    "qty": 1025
   },
   {
    "item": "Runecloth",
    "qty": 470
   },
   {
    "item": "Thick Leather",
    "qty": 445
   },
   {
    "item": "Light Leather",
    "qty": 414
   },
   {
    "item": "Heavy Leather",
    "qty": 363
   },
   {
    "item": "Ruined Leather Scraps",
    "qty": 138
   },
   {
    "item": "Coarse Thread",
    "qty": 138
   },
   {
    "item": "Silken Thread",
    "qty": 107
   },
   {
    "item": "Fine Thread",
    "qty": 97
   },
   {
    "item": "Salt",
    "qty": 87
   },
   {
    "item": "Rune Thread",
    "qty": 76
   },
   {
    "item": "Medium Leather",
    "qty": 72
   },
   {
    "item": "Black Dye",
    "qty": 29
   },
   {
    "item": "Light Hide",
    "qty": 21
   },
   {
    "item": "Medium Hide",
    "qty": 18
   },
   {
    "item": "Heavy Hide",
    "qty": 16
   }
  ],
  "steps": [
   {
    "from": 1,
    "to": 35,
    "craft": "Light Leather",
    "count": 46,
    "mats": [
     {
      "item": "Ruined Leather Scraps",
      "qty": 3
     }
    ]
   },
   {
    "from": 35,
    "to": 55,
    "craft": "Cured Light Hide",
    "count": 21,
    "mats": [
     {
      "item": "Light Hide",
      "qty": 1
     },
     {
      "item": "Salt",
      "qty": 1
     }
    ]
   },
   {
    "from": 55,
    "to": 107,
    "craft": "Fine Leather Belt",
    "count": 69,
    "mats": [
     {
      "item": "Light Leather",
      "qty": 6
     },
     {
      "item": "Coarse Thread",
      "qty": 2
     }
    ]
   },
   {
    "from": 107,
    "to": 125,
    "craft": "Hillman's Shoulders",
    "count": 18,
    "mats": [
     {
      "item": "Cured Medium Hide",
      "qty": 1
     },
     {
      "item": "Medium Leather",
      "qty": 4
     },
     {
      "item": "Fine Thread",
      "qty": 1
     }
    ],
    "note": "Craft 18 Cured Medium Hide first"
   },
   {
    "from": 125,
    "to": 160,
    "craft": "Heavy Armor Kit",
    "count": 47,
    "mats": [
     {
      "item": "Heavy Leather",
      "qty": 5
     },
     {
      "item": "Fine Thread",
      "qty": 1
     }
    ]
   },
   {
    "from": 160,
    "to": 175,
    "craft": "Barbaric Shoulders",
    "count": 16,
    "mats": [
     {
      "item": "Heavy Leather",
      "qty": 8
     },
     {
      "item": "Cured Heavy Hide",
      "qty": 1
     },
     {
      "item": "Fine Thread",
      "qty": 2
     }
    ],
    "note": "Craft 16 Cured Heavy Hide first"
   },
   {
    "from": 175,
    "to": 210,
    "craft": "Thick Armor Kit",
    "count": 47,
    "mats": [
     {
      "item": "Thick Leather",
      "qty": 5
     },
     {
      "item": "Silken Thread",
      "qty": 1
     }
    ]
   },
   {
    "from": 210,
    "to": 225,
    "craft": "Nightscape Pants",
    "count": 15,
    "mats": [
     {
      "item": "Thick Leather",
      "qty": 14
     },
     {
      "item": "Silken Thread",
      "qty": 4
     }
    ]
   },
   {
    "from": 225,
    "to": 240,
    "craft": "Rugged Armor Kit",
    "count": 27,
    "mats": [
     {
      "item": "Rugged Leather",
      "qty": 5
     }
    ]
   },
   {
    "from": 240,
    "to": 265,
    "craft": "Wicked Leather Gauntlets",
    "count": 29,
    "mats": [
     {
      "item": "Rugged Leather",
      "qty": 8
     },
     {
      "item": "Black Dye",
      "qty": 1
     },
     {
      "item": "Rune Thread",
      "qty": 1
     }
    ],
    "note": "Pattern from Leonard Porter, Western Plaguelands (1g 20s)"
   },
   {
    "from": 265,
    "to": 300,
    "craft": "Runic Leather Headband",
    "count": 47,
    "mats": [
     {
      "item": "Rugged Leather",
      "qty": 14
     },
     {
      "item": "Runecloth",
      "qty": 10
     },
     {
      "item": "Rune Thread",
      "qty": 1
     }
    ],
    "note": "Pattern from Jase Farlane, Eastern Plaguelands (2g 20s)"
   }
  ]
 },
 "tailoring": {
  "source": "https://classicwowforever.com/professions/tailoring/leveling/",
  "trainers": [
   {
    "rank": "Apprentice",
    "skill": "1-75",
    "charLevel": 5,
    "where": "Any trainer"
   },
   {
    "rank": "Journeyman",
    "skill": "75-150",
    "charLevel": 10,
    "where": "requires skill 50"
   },
   {
    "rank": "Expert",
    "skill": "150-225",
    "charLevel": 20,
    "where": "requires skill 125"
   },
   {
    "rank": "Artisan",
    "skill": "225-300",
    "charLevel": 35,
    "where": "Artisan trainer; requires skill 200"
   }
  ],
  "totalMats": [
   {
    "item": "Runecloth",
    "qty": 1260
   },
   {
    "item": "Mageweave Cloth",
    "qty": 830
   },
   {
    "item": "Silk Cloth",
    "qty": 792
   },
   {
    "item": "Rugged Leather",
    "qty": 216
   },
   {
    "item": "Fine Thread",
    "qty": 131
   },
   {
    "item": "Linen Cloth",
    "qty": 118
   },
   {
    "item": "Wool Cloth",
    "qty": 111
   },
   {
    "item": "Ironweb Spider Silk",
    "qty": 108
   },
   {
    "item": "Silken Thread",
    "qty": 101
   },
   {
    "item": "Red Dye",
    "qty": 70
   },
   {
    "item": "Rune Thread",
    "qty": 66
   },
   {
    "item": "Blue Dye",
    "qty": 34
   },
   {
    "item": "Coarse Thread",
    "qty": 12
   },
   {
    "item": "Bleach",
    "qty": 10
   },
   {
    "item": "Elemental Earth",
    "qty": 7
   }
  ],
  "steps": [
   {
    "from": 1,
    "to": 44,
    "craft": "Bolt of Linen Cloth",
    "count": 59,
    "mats": [
     {
      "item": "Linen Cloth",
      "qty": 2
     }
    ]
   },
   {
    "from": 44,
    "to": 55,
    "craft": "Linen Belt",
    "count": 12,
    "mats": [
     {
      "item": "Bolt of Linen Cloth",
      "qty": 1
     },
     {
      "item": "Coarse Thread",
      "qty": 1
     }
    ]
   },
   {
    "from": 55,
    "to": 81,
    "craft": "Bolt of Woolen Cloth",
    "count": 37,
    "mats": [
     {
      "item": "Wool Cloth",
      "qty": 3
     }
    ],
    "note": "Only ~34 give skill; extras used later"
   },
   {
    "from": 81,
    "to": 100,
    "craft": "Woolen Cape",
    "count": 28,
    "mats": [
     {
      "item": "Bolt of Woolen Cloth",
      "qty": 1
     },
     {
      "item": "Fine Thread",
      "qty": 1
     }
    ]
   },
   {
    "from": 100,
    "to": 118,
    "craft": "Bolt of Silk Cloth",
    "count": 198,
    "mats": [
     {
      "item": "Silk Cloth",
      "qty": 4
     }
    ],
    "note": "Only ~25 give skill; extras used later"
   },
   {
    "from": 118,
    "to": 120,
    "craft": "Stylish Red Shirt",
    "count": 3,
    "mats": [
     {
      "item": "Bolt of Woolen Cloth",
      "qty": 3
     },
     {
      "item": "Red Dye",
      "qty": 2
     },
     {
      "item": "Fine Thread",
      "qty": 1
     }
    ]
   },
   {
    "from": 120,
    "to": 135,
    "craft": "Azure Silk Hood",
    "count": 17,
    "mats": [
     {
      "item": "Bolt of Silk Cloth",
      "qty": 2
     },
     {
      "item": "Blue Dye",
      "qty": 2
     },
     {
      "item": "Fine Thread",
      "qty": 1
     }
    ]
   },
   {
    "from": 135,
    "to": 140,
    "craft": "Formal White Shirt",
    "count": 5,
    "mats": [
     {
      "item": "Bolt of Silk Cloth",
      "qty": 3
     },
     {
      "item": "Bleach",
      "qty": 2
     },
     {
      "item": "Fine Thread",
      "qty": 1
     }
    ]
   },
   {
    "from": 140,
    "to": 149,
    "craft": "Bolt of Mageweave",
    "count": 166,
    "mats": [
     {
      "item": "Mageweave Cloth",
      "qty": 5
     }
    ],
    "note": "Only ~12 give skill; extras used later"
   },
   {
    "from": 149,
    "to": 156,
    "craft": "Earthen Vest",
    "count": 7,
    "mats": [
     {
      "item": "Bolt of Silk Cloth",
      "qty": 3
     },
     {
      "item": "Elemental Earth",
      "qty": 1
     },
     {
      "item": "Fine Thread",
      "qty": 2
     }
    ]
   },
   {
    "from": 156,
    "to": 182,
    "craft": "Crimson Silk Vest",
    "count": 32,
    "mats": [
     {
      "item": "Bolt of Silk Cloth",
      "qty": 4
     },
     {
      "item": "Red Dye",
      "qty": 2
     },
     {
      "item": "Fine Thread",
      "qty": 2
     }
    ]
   },
   {
    "from": 182,
    "to": 190,
    "craft": "Black Mageweave Leggings",
    "count": 9,
    "mats": [
     {
      "item": "Bolt of Mageweave",
      "qty": 2
     },
     {
      "item": "Silken Thread",
      "qty": 3
     }
    ]
   },
   {
    "from": 190,
    "to": 205,
    "craft": "Mageweave Bag",
    "count": 15,
    "mats": [
     {
      "item": "Bolt of Mageweave",
      "qty": 4
     },
     {
      "item": "Silken Thread",
      "qty": 2
     }
    ]
   },
   {
    "from": 205,
    "to": 214,
    "craft": "Bolt of Runecloth",
    "count": 252,
    "mats": [
     {
      "item": "Runecloth",
      "qty": 5
     }
    ],
    "note": "Only ~12 give skill; extras used later"
   },
   {
    "from": 214,
    "to": 225,
    "craft": "Mageweave Bag",
    "count": 22,
    "mats": [
     {
      "item": "Bolt of Mageweave",
      "qty": 4
     },
     {
      "item": "Silken Thread",
      "qty": 2
     }
    ],
    "note": "Recipe already learned in an earlier step"
   },
   {
    "from": 225,
    "to": 235,
    "craft": "Runecloth Belt",
    "count": 12,
    "mats": [
     {
      "item": "Bolt of Runecloth",
      "qty": 3
     },
     {
      "item": "Rune Thread",
      "qty": 1
     }
    ]
   },
   {
    "from": 235,
    "to": 272,
    "craft": "Runecloth Boots",
    "count": 54,
    "mats": [
     {
      "item": "Bolt of Runecloth",
      "qty": 4
     },
     {
      "item": "Ironweb Spider Silk",
      "qty": 2
     },
     {
      "item": "Rugged Leather",
      "qty": 4
     },
     {
      "item": "Rune Thread",
      "qty": 1
     }
    ],
    "note": "Pattern from Darnall, Moonglade (2g)"
   },
   {
    "from": 270,
    "to": 288,
    "craft": "Wizardweave Turban",
    "count": 22,
    "mats": [
     {
      "item": "Bolt of Runecloth",
      "qty": 6
     },
     {
      "item": "Dream Dust",
      "qty": 4
     },
     {
      "item": "Star Ruby",
      "qty": 1
     },
     {
      "item": "Rune Thread",
      "qty": 1
     }
    ],
    "note": "Finish option; pattern drops from Dark Caster in Eastern Plaguelands"
   },
   {
    "from": 288,
    "to": 300,
    "craft": "Runed Stygian Belt",
    "count": 12,
    "mats": [
     {
      "item": "Bolt of Runecloth",
      "qty": 2
     },
     {
      "item": "Dark Rune",
      "qty": 6
     },
     {
      "item": "Felcloth",
      "qty": 2
     },
     {
      "item": "Enchanted Leather",
      "qty": 2
     },
     {
      "item": "Ironweb Spider Silk",
      "qty": 2
     }
    ],
    "note": "Finish option; pattern from Decoded True Believer Clippings"
   }
  ]
 },
 "herbalism": {
  "source": "https://classicwowforever.com/professions/herbalism/leveling/",
  "trainers": [
   {
    "rank": "Apprentice",
    "skill": "1-75",
    "charLevel": null,
    "where": "Any trainer"
   },
   {
    "rank": "Journeyman",
    "skill": "75-150",
    "charLevel": 10,
    "where": "Any trainer; requires skill 50"
   },
   {
    "rank": "Expert",
    "skill": "150-225",
    "charLevel": 20,
    "where": "Any trainer; requires skill 125"
   },
   {
    "rank": "Artisan",
    "skill": "225-300",
    "charLevel": 35,
    "where": "Any trainer; requires skill 200"
   }
  ],
  "totalMats": [],
  "steps": [
   {
    "from": 1,
    "to": 70,
    "zone": "Elwynn Forest",
    "targets": [
     "Peacebloom",
     "Silverleaf",
     "Earthroot"
    ],
    "note": "Guide pick, Alliance"
   },
   {
    "from": 1,
    "to": 70,
    "zone": "Teldrassil",
    "targets": [
     "Peacebloom",
     "Silverleaf",
     "Earthroot"
    ],
    "note": "Alternative zone, Alliance"
   },
   {
    "from": 1,
    "to": 70,
    "zone": "Dun Morogh",
    "targets": [
     "Peacebloom",
     "Silverleaf",
     "Earthroot"
    ],
    "note": "Alternative zone, Alliance"
   },
   {
    "from": 70,
    "to": 115,
    "zone": "Darkshore",
    "targets": [
     "Mageroyal",
     "Briarthorn",
     "Bruiseweed"
    ],
    "note": "Guide pick, Alliance"
   },
   {
    "from": 70,
    "to": 115,
    "zone": "Loch Modan",
    "targets": [
     "Mageroyal",
     "Briarthorn"
    ],
    "note": "Alternative zone, Alliance"
   },
   {
    "from": 115,
    "to": 170,
    "zone": "Wetlands",
    "targets": [
     "Bruiseweed",
     "Wild Steelbloom",
     "Kingsblood",
     "Liferoot"
    ],
    "note": "Guide pick, Alliance"
   },
   {
    "from": 170,
    "to": 205,
    "zone": "Arathi Highlands",
    "targets": [
     "Kingsblood",
     "Liferoot",
     "Goldthorn",
     "Khadgar’s Whisker"
    ],
    "note": "Guide pick, both factions"
   },
   {
    "from": 170,
    "to": 205,
    "zone": "Stranglethorn Vale",
    "targets": [
     "Kingsblood",
     "Liferoot",
     "Goldthorn",
     "Khadgar’s Whisker"
    ],
    "note": "Alternative zone, both factions"
   },
   {
    "from": 205,
    "to": 230,
    "zone": "Tanaris",
    "targets": [
     "Firebloom",
     "Purple Lotus"
    ],
    "note": "Guide pick, both factions"
   },
   {
    "from": 205,
    "to": 230,
    "zone": "Searing Gorge",
    "targets": [
     "Firebloom"
    ],
    "note": "Alternative zone, both factions"
   },
   {
    "from": 230,
    "to": 270,
    "zone": "The Hinterlands",
    "targets": [
     "Purple Lotus",
     "Sungrass",
     "Ghost Mushroom",
     "Golden Sansam"
    ],
    "note": "Guide pick, both factions"
   },
   {
    "from": 270,
    "to": 300,
    "zone": "Felwood",
    "targets": [
     "Sungrass",
     "Gromsblood",
     "Golden Sansam",
     "Dreamfoil",
     "Mountain Silversage",
     "Plaguebloom"
    ],
    "note": "Guide pick, both factions"
   }
  ]
 },
 "mining": {
  "source": "https://classicwowforever.com/professions/mining/leveling/",
  "trainers": [
   {
    "rank": "Apprentice",
    "skill": "1-75",
    "charLevel": 5,
    "where": "Any trainer"
   },
   {
    "rank": "Journeyman",
    "skill": "75-150",
    "charLevel": 10,
    "where": "Any trainer; requires skill 50"
   },
   {
    "rank": "Expert",
    "skill": "150-225",
    "charLevel": 20,
    "where": "Any trainer; requires skill 125"
   },
   {
    "rank": "Artisan",
    "skill": "225-300",
    "charLevel": 35,
    "where": "Any trainer; requires skill 200"
   }
  ],
  "totalMats": [],
  "steps": [
   {
    "from": 1,
    "to": 65,
    "zone": "Elwynn Forest",
    "targets": [
     "Copper Vein"
    ],
    "note": "Guide pick, Alliance"
   },
   {
    "from": 1,
    "to": 65,
    "zone": "Darkshore",
    "targets": [
     "Copper Vein"
    ],
    "note": "Alternative zone, Alliance"
   },
   {
    "from": 1,
    "to": 65,
    "zone": "Dun Morogh",
    "targets": [
     "Copper Vein"
    ],
    "note": "Alternative zone, Alliance"
   },
   {
    "from": 65,
    "to": 125,
    "zone": "Redridge Mountains",
    "targets": [
     "Copper Vein",
     "Tin Vein",
     "Silver Vein"
    ],
    "note": "Guide pick, Alliance"
   },
   {
    "from": 65,
    "to": 125,
    "zone": "Ashenvale",
    "targets": [
     "Copper Vein",
     "Tin Vein",
     "Silver Vein"
    ],
    "note": "Alternative zone, both factions"
   },
   {
    "from": 125,
    "to": 175,
    "zone": "Arathi Highlands",
    "targets": [
     "Tin Vein",
     "Iron Deposit",
     "Gold Vein"
    ],
    "note": "Guide pick, both factions"
   },
   {
    "from": 125,
    "to": 175,
    "zone": "Desolace",
    "targets": [
     "Tin Vein",
     "Iron Deposit",
     "Gold Vein"
    ],
    "note": "Alternative zone, both factions"
   },
   {
    "from": 175,
    "to": 245,
    "zone": "The Hinterlands",
    "targets": [
     "Mithril Deposit",
     "Truesilver Deposit"
    ],
    "note": "Guide pick, both factions"
   },
   {
    "from": 175,
    "to": 245,
    "zone": "Tanaris",
    "targets": [
     "Mithril Deposit",
     "Truesilver Deposit"
    ],
    "note": "Alternative zone, both factions"
   },
   {
    "from": 245,
    "to": 275,
    "zone": "Un’Goro Crater",
    "targets": [
     "Mithril Deposit",
     "Truesilver Deposit",
     "Small Thorium Vein"
    ],
    "note": "Guide pick, both factions"
   },
   {
    "from": 245,
    "to": 275,
    "zone": "Felwood",
    "targets": [
     "Mithril Deposit",
     "Truesilver Deposit",
     "Small Thorium Vein"
    ],
    "note": "Alternative zone, both factions"
   },
   {
    "from": 275,
    "to": 300,
    "zone": "Un’Goro Crater",
    "targets": [
     "Mithril Deposit",
     "Small Thorium Vein",
     "Rich Thorium Vein"
    ],
    "note": "Guide pick, both factions"
   },
   {
    "from": 275,
    "to": 300,
    "zone": "Eastern Plaguelands",
    "targets": [
     "Mithril Deposit",
     "Small Thorium Vein",
     "Rich Thorium Vein"
    ],
    "note": "Alternative zone, both factions"
   },
   {
    "from": 275,
    "to": 300,
    "zone": "Winterspring",
    "targets": [
     "Mithril Deposit",
     "Small Thorium Vein",
     "Rich Thorium Vein"
    ],
    "note": "Alternative zone, both factions"
   },
   {
    "from": 275,
    "to": 300,
    "zone": "Burning Steppes",
    "targets": [
     "Mithril Deposit",
     "Small Thorium Vein",
     "Rich Thorium Vein"
    ],
    "note": "Alternative zone, both factions"
   }
  ]
 },
 "skinning": {
  "source": "https://rankedboost.com/world-of-warcraft/forever/professions/skinning-leveling/ (zones); https://classicwowforever.com/professions/skinning/ (trainers)",
  "trainers": [
   {
    "rank": "Apprentice",
    "skill": "1-75",
    "charLevel": null,
    "where": "Any trainer (10c)"
   },
   {
    "rank": "Journeyman",
    "skill": "75-150",
    "charLevel": null,
    "where": "Any trainer; requires skill 50 (5s)"
   },
   {
    "rank": "Expert",
    "skill": "150-225",
    "charLevel": null,
    "where": "Any trainer; requires skill 125 (50s)"
   },
   {
    "rank": "Artisan",
    "skill": "225-300",
    "charLevel": null,
    "where": "Any trainer; requires skill 200 (5g)"
   }
  ],
  "totalMats": [],
  "steps": [
   {
    "from": 1,
    "to": 50,
    "zone": "Dun Morogh",
    "targets": [
     "Elder Crag Boar",
     "Crag Boar",
     "Snow Leopard",
     "Ice Claw Bear"
    ],
    "note": "Alliance pick; alternatives Elwynn Forest, Darkshore"
   },
   {
    "from": 50,
    "to": 100,
    "zone": "Loch Modan",
    "targets": [
     "Black Bear Patriarch",
     "Young Threshadon",
     "Elder Mountain Boar"
    ],
    "note": "Alliance pick; alternatives Westfall, Darkshore"
   },
   {
    "from": 100,
    "to": 150,
    "zone": "Wetlands",
    "targets": [
     "Young Wetlands Crocolisk",
     "Wetlands Crocolisk",
     "Highland Razormaw",
     "Mottled Raptor"
    ],
    "note": "Alliance pick; alternatives Hillsbrad Foothills, Ashenvale"
   },
   {
    "from": 150,
    "to": 200,
    "zone": "Arathi Highlands",
    "targets": [
     "Highland Strider",
     "Highland Thrasher",
     "Giant Plains Creeper",
     "Highland Fleshstalker"
    ],
    "note": "Alliance pick; alternatives Stranglethorn, Dustwallow, Desolace"
   },
   {
    "from": 200,
    "to": 250,
    "zone": "Feralas",
    "targets": [
     "Longtooth Runner",
     "Ironfur Bear",
     "Longtooth Howler",
     "Groddoc Thunderer"
    ],
    "note": "Both factions; alternatives Hinterlands, Tanaris"
   },
   {
    "from": 250,
    "to": 300,
    "zone": "Un'Goro Crater",
    "targets": [
     "Frenzied Pterrordax",
     "Elder Diemetradon",
     "Diemetradon",
     "Pterrordax"
    ],
    "note": "Both factions; alternatives Winterspring, Azshara, Plaguelands"
   }
  ]
 },
 "first-aid": {
  "source": "https://classicwowforever.com/professions/bandages/",
  "trainers": [
   {
    "rank": "Apprentice",
    "skill": "1-75",
    "charLevel": null,
    "where": "Any First Aid trainer (1s)"
   },
   {
    "rank": "Journeyman",
    "skill": "75-150",
    "charLevel": null,
    "where": "Any First Aid trainer; requires skill 50 (5s)"
   },
   {
    "rank": "Expert",
    "skill": "150-225",
    "charLevel": null,
    "where": "Book from Deneb Walker, Stromgarde Keep (1g); requires skill 125"
   },
   {
    "rank": "Artisan",
    "skill": "225-300",
    "charLevel": 35,
    "where": "Triage quest, Doctor Gustaf VanHowzen, Theramore Isle; requires skill 225"
   }
  ],
  "totalMats": [],
  "steps": [
   {
    "from": 1,
    "to": 40,
    "craft": "Linen Bandage",
    "count": null,
    "mats": [
     {
      "item": "Linen Cloth",
      "qty": 1
     }
    ],
    "note": "Known with Apprentice"
   },
   {
    "from": 40,
    "to": 80,
    "craft": "Heavy Linen Bandage",
    "count": null,
    "mats": [
     {
      "item": "Linen Cloth",
      "qty": 2
     }
    ],
    "note": "Trainer recipe"
   },
   {
    "from": 80,
    "to": 115,
    "craft": "Wool Bandage",
    "count": null,
    "mats": [
     {
      "item": "Wool Cloth",
      "qty": 1
     }
    ],
    "note": "Trainer recipe"
   },
   {
    "from": 115,
    "to": 150,
    "craft": "Heavy Wool Bandage",
    "count": null,
    "mats": [
     {
      "item": "Wool Cloth",
      "qty": 2
     }
    ],
    "note": "Trainer recipe"
   },
   {
    "from": 150,
    "to": 180,
    "craft": "Silk Bandage",
    "count": null,
    "mats": [
     {
      "item": "Silk Cloth",
      "qty": 1
     }
    ],
    "note": "Trainer recipe"
   },
   {
    "from": 180,
    "to": 210,
    "craft": "Heavy Silk Bandage",
    "count": null,
    "mats": [
     {
      "item": "Silk Cloth",
      "qty": 2
     }
    ],
    "note": "Manual from Deneb Walker (22s)"
   },
   {
    "from": 210,
    "to": 240,
    "craft": "Mageweave Bandage",
    "count": null,
    "mats": [
     {
      "item": "Mageweave Cloth",
      "qty": 1
     }
    ],
    "note": "Manual from Deneb Walker (50s)"
   },
   {
    "from": 240,
    "to": 260,
    "craft": "Heavy Mageweave Bandage",
    "count": null,
    "mats": [
     {
      "item": "Mageweave Cloth",
      "qty": 2
     }
    ],
    "note": "Recipe source not confirmed in Forever"
   },
   {
    "from": 260,
    "to": 290,
    "craft": "Runecloth Bandage",
    "count": null,
    "mats": [
     {
      "item": "Runecloth",
      "qty": 1
     }
    ],
    "note": "Recipe source not confirmed in Forever"
   },
   {
    "from": 290,
    "to": 300,
    "craft": "Heavy Runecloth Bandage",
    "count": null,
    "mats": [
     {
      "item": "Runecloth",
      "qty": 2
     }
    ],
    "note": "Recipe source not confirmed in Forever"
   }
  ]
 },
 "cooking": {
  "source": "https://classicwowforever.com/professions/cooking/",
  "trainers": [
   {
    "rank": "Apprentice",
    "skill": "1-75",
    "charLevel": null,
    "where": "Any Cooking trainer (1s)"
   },
   {
    "rank": "Journeyman",
    "skill": "75-150",
    "charLevel": null,
    "where": "Any Cooking trainer; requires skill 50 (5s)"
   },
   {
    "rank": "Expert",
    "skill": "150-225",
    "charLevel": null,
    "where": "Expert Cookbook from Shandrina, Ashenvale (1g); requires skill 125"
   },
   {
    "rank": "Artisan",
    "skill": "225-300",
    "charLevel": 35,
    "where": "Clamlette Surprise quest, Dirge Quikcleave, Gadgetzan"
   }
  ],
  "totalMats": [],
  "steps": [
   {
    "from": 1,
    "to": 45,
    "craft": "Charred Wolf Meat",
    "count": null,
    "mats": [
     {
      "item": "Stringy Wolf Meat",
      "qty": 1
     }
    ],
    "note": "Known at start; Roasted Boar Meat or Herb Baked Egg also fine"
   },
   {
    "from": 45,
    "to": 80,
    "craft": "Smoked Bear Meat",
    "count": null,
    "mats": [
     {
      "item": "Bear Meat",
      "qty": 1
     }
    ],
    "note": "Recipe from vendors"
   },
   {
    "from": 80,
    "to": 125,
    "craft": "Dry Pork Ribs",
    "count": null,
    "mats": [
     {
      "item": "Boar Ribs",
      "qty": 1
     },
     {
      "item": "Mild Spices",
      "qty": 1
     }
    ],
    "note": "Trainer recipe"
   },
   {
    "from": 125,
    "to": 175,
    "craft": "Goblin Deviled Clams",
    "count": null,
    "mats": [
     {
      "item": "Tangy Clam Meat",
      "qty": 1
     },
     {
      "item": "Hot Spices",
      "qty": 1
     }
    ],
    "note": "Trainer recipe"
   },
   {
    "from": 175,
    "to": 200,
    "craft": "Barbecued Buzzard Wing",
    "count": null,
    "mats": [
     {
      "item": "Buzzard Wing",
      "qty": 1
     },
     {
      "item": "Hot Spices",
      "qty": 1
     }
    ],
    "note": "Trainer recipe"
   },
   {
    "from": 200,
    "to": 225,
    "craft": "Spider Sausage",
    "count": null,
    "mats": [
     {
      "item": "White Spider Meat",
      "qty": 2
     }
    ],
    "note": "Trainer recipe"
   },
   {
    "from": 225,
    "to": 265,
    "craft": "Monster Omelet",
    "count": null,
    "mats": [
     {
      "item": "Giant Egg",
      "qty": 1
     },
     {
      "item": "Soothing Spices",
      "qty": 2
     }
    ],
    "note": "Recipe from vendors"
   },
   {
    "from": 265,
    "to": 300,
    "craft": "Nightfin Soup",
    "count": null,
    "mats": [
     {
      "item": "Raw Nightfin Snapper",
      "qty": 1
     },
     {
      "item": "Refreshing Spring Water",
      "qty": 1
     }
    ],
    "note": "Recipe from Gikkix, Tanaris"
   }
  ]
 },
 "fishing": {
  "source": "https://classicwowforever.com/professions/fishing/",
  "trainers": [
   {
    "rank": "Apprentice",
    "skill": "1-75",
    "charLevel": null,
    "where": "Any Fishing trainer (1s)"
   },
   {
    "rank": "Journeyman",
    "skill": "75-150",
    "charLevel": null,
    "where": "Any Fishing trainer; requires skill 50 (5s)"
   },
   {
    "rank": "Expert",
    "skill": "150-225",
    "charLevel": 20,
    "where": "Book from Old Man Heming, Booty Bay (1g); requires skill 125"
   },
   {
    "rank": "Artisan",
    "skill": "225-300",
    "charLevel": 35,
    "where": "Quest from Nat Pagle, Dustwallow Marsh"
   }
  ],
  "totalMats": [],
  "steps": [
   {
    "from": 1,
    "to": 75,
    "zone": "Any starting zone",
    "targets": [
     "Raw Brilliant Smallfish",
     "Raw Slitherskin Mackerel"
    ],
    "note": "Smallfish in lakes/rivers, Mackerel on coasts"
   },
   {
    "from": 75,
    "to": 150,
    "zone": "Capital city",
    "targets": [
     "Raw Brilliant Smallfish",
     "Raw Longjaw Mud Snapper",
     "Raw Bristle Whisker Catfish"
    ],
    "note": "Buy Expert book at 125"
   },
   {
    "from": 150,
    "to": 225,
    "zone": "Dustwallow Marsh",
    "targets": [
     "Raw Bristle Whisker Catfish",
     "Raw Mithril Head Trout",
     "Raw Rockscale Cod",
     "Raw Spotted Yellowtail",
     "Oily Blackmouth",
     "Firefin Snapper"
    ],
    "note": "Alliance-friendly; inland or coast north of Theramore"
   },
   {
    "from": 225,
    "to": 300,
    "zone": "Tanaris (Steamwheedle Port)",
    "targets": [
     "Raw Spotted Yellowtail",
     "Firefin Snapper",
     "Raw Glossy Mightfish",
     "Raw Summer Bass",
     "Raw Winter Squid"
    ],
    "note": "Feralas or Winterspring also work from ~275"
   }
  ]
 }
}