[
  {
    "id": "fangsworn",
    "name": "Fangsworn",
    "hit_die": 10,
    "primary_ability": ["STR", "DEX"],
    "saves": ["STR", "CON"],
    "armor_proficiencies": ["light", "medium", "heavy", "shields"],
    "weapon_proficiencies": ["simple", "martial", "natural"],
    "tool_proficiencies": [],
    "skills_choose": 2,
    "skill_options": ["athletics", "intimidation", "perception", "survival", "animal_handling"],
    "subclass_ids": ["pack_forged", "lone_fang"],
    "starting_kit": [
      { "item_id": "rend_sword",       "qty": 1, "auto_equip": true,  "equip_slot": "main_hand" },
      { "item_id": "chain_shirt",      "qty": 1, "auto_equip": true,  "equip_slot": "body" },
      { "item_id": "buckler",          "qty": 1, "auto_equip": true,  "equip_slot": "off_hand" },
      { "item_id": "healers_kit",      "qty": 1, "auto_equip": false },
      { "item_id": "rations_predator", "qty": 5, "auto_equip": false }
    ],
    "level_table": [
      { "level": 1,  "prof": 2, "features": ["fighting_style", "claw_and_steel"] },
      { "level": 2,  "prof": 2, "features": ["action_surge_1"] },
      { "level": 3,  "prof": 2, "features": ["subclass_select"] },
      { "level": 4,  "prof": 2, "features": ["asi"] },
      { "level": 5,  "prof": 3, "features": ["extra_attack_2"] },
      { "level": 6,  "prof": 3, "features": ["asi"] },
      { "level": 7,  "prof": 3, "features": ["subclass_feature"] },
      { "level": 8,  "prof": 3, "features": ["asi"] },
      { "level": 9,  "prof": 4, "features": ["indomitable_1"] },
      { "level": 10, "prof": 4, "features": ["subclass_feature"] },
      { "level": 11, "prof": 4, "features": ["extra_attack_3"] },
      { "level": 12, "prof": 4, "features": ["asi"] },
      { "level": 13, "prof": 5, "features": ["indomitable_2"] },
      { "level": 14, "prof": 5, "features": ["asi"] },
      { "level": 15, "prof": 5, "features": ["subclass_feature"] },
      { "level": 16, "prof": 5, "features": ["asi"] },
      { "level": 17, "prof": 6, "features": ["action_surge_2", "indomitable_3"] },
      { "level": 18, "prof": 6, "features": ["subclass_feature"] },
      { "level": 19, "prof": 6, "features": ["asi"] },
      { "level": 20, "prof": 6, "features": ["extra_attack_4"] }
    ],
    "feature_definitions": {
      "fighting_style":   { "name": "Fighting Style", "kind": "choice", "description": "Pick one combat style. Each gives a passive combat bonus.", "options": ["fang_and_blade", "shieldwall", "duelist", "great_weapon", "natural_predator"] },
      "claw_and_steel":   { "name": "Claw & Steel", "kind": "passive", "description": "Combine natural-weapon and manufactured-weapon attacks freely within a single Attack action — no other class can do this without specific permission." },
      "action_surge_1":   { "name": "Action Surge", "kind": "active", "uses_per_short_rest": 1, "description": "Once per short rest, take one additional action on your turn." },
      "action_surge_2":   { "name": "Action Surge (2/rest)", "kind": "active", "uses_per_short_rest": 2, "description": "Use Action Surge twice per short rest." },
      "subclass_select":  { "name": "Subclass Selection", "kind": "stub", "description": "Choose a Fangsworn subclass: Pack-Forged or Lone Fang. (Phase 5: subclass mechanics deferred.)" },
      "subclass_feature": { "name": "Subclass Feature", "kind": "stub", "description": "Subclass-specific feature granted at this level. (Phase 5: deferred.)" },
      "asi":              { "name": "Ability Score Improvement", "kind": "stub", "description": "Increase one ability score by 2, or two by 1 each. (Phase 5: deferred — character is locked at level 1.)" },
      "extra_attack_2":   { "name": "Extra Attack (2)", "kind": "passive", "description": "Two attacks per Attack action." },
      "extra_attack_3":   { "name": "Extra Attack (3)", "kind": "passive", "description": "Three attacks per Attack action." },
      "extra_attack_4":   { "name": "Extra Attack (4)", "kind": "passive", "description": "Four attacks per Attack action." },
      "indomitable_1":    { "name": "Indomitable",         "kind": "active", "uses_per_long_rest": 1, "description": "Reroll a failed saving throw, once per long rest." },
      "indomitable_2":    { "name": "Indomitable (2/rest)", "kind": "active", "uses_per_long_rest": 2, "description": "Reroll a failed saving throw, twice per long rest." },
      "indomitable_3":    { "name": "Indomitable (3/rest)", "kind": "active", "uses_per_long_rest": 3, "description": "Reroll a failed saving throw, three times per long rest." }
    }
  },
  {
    "id": "bulwark",
    "name": "Bulwark",
    "hit_die": 12,
    "primary_ability": ["CON"],
    "saves": ["CON", "CHA"],
    "armor_proficiencies": ["light", "medium", "heavy", "shields"],
    "weapon_proficiencies": ["simple", "martial", "natural"],
    "tool_proficiencies": [],
    "skills_choose": 2,
    "skill_options": ["athletics", "insight", "intimidation", "medicine", "perception"],
    "subclass_ids": ["herd_wall", "antler_guard"],
    "starting_kit": [
      { "item_id": "hoof_club",        "qty": 1, "auto_equip": true,  "equip_slot": "main_hand" },
      { "item_id": "chain_mail",       "qty": 1, "auto_equip": true,  "equip_slot": "body" },
      { "item_id": "standard_shield",  "qty": 1, "auto_equip": true,  "equip_slot": "off_hand" },
      { "item_id": "healers_kit",      "qty": 1, "auto_equip": false },
      { "item_id": "rations_predator", "qty": 5, "auto_equip": false }
    ],
    "level_table": [
      { "level": 1,  "prof": 2, "features": ["sentinel_stance", "guardians_mark"] },
      { "level": 2,  "prof": 2, "features": ["shield_of_the_herd"] },
      { "level": 3,  "prof": 2, "features": ["subclass_select"] },
      { "level": 4,  "prof": 2, "features": ["asi"] },
      { "level": 5,  "prof": 3, "features": ["extra_attack", "immovable_1"] },
      { "level": 6,  "prof": 3, "features": ["subclass_feature"] },
      { "level": 7,  "prof": 3, "features": ["guardians_aura_10"] },
      { "level": 8,  "prof": 3, "features": ["asi"] },
      { "level": 9,  "prof": 4, "features": ["unbreakable_will"] },
      { "level": 10, "prof": 4, "features": ["subclass_feature"] },
      { "level": 11, "prof": 4, "features": ["improved_guardians_mark"] },
      { "level": 12, "prof": 4, "features": ["asi"] },
      { "level": 13, "prof": 5, "features": ["guardians_aura_15"] },
      { "level": 14, "prof": 5, "features": ["asi"] },
      { "level": 15, "prof": 5, "features": ["subclass_feature"] },
      { "level": 16, "prof": 5, "features": ["asi"] },
      { "level": 17, "prof": 6, "features": ["immovable_2"] },
      { "level": 18, "prof": 6, "features": ["guardians_aura_20"] },
      { "level": 19, "prof": 6, "features": ["asi"] },
      { "level": 20, "prof": 6, "features": ["subclass_feature", "last_one_standing"] }
    ],
    "feature_definitions": {
      "sentinel_stance":        { "name": "Sentinel Stance", "kind": "bonus_action", "description": "Bonus action: enter defensive stance. Speed halved, +2 AC, opportunity attacks at advantage. Ends if you move more than half speed or as a free action." },
      "guardians_mark":         { "name": "Guardian's Mark", "kind": "bonus_action", "description": "Bonus action: mark a creature within 30 ft. While marked, if it attacks anyone other than you, you may make a melee attack against it as a reaction (if in range)." },
      "shield_of_the_herd":     { "name": "Shield of the Herd", "kind": "reaction", "description": "Reaction: when an adjacent ally is targeted by an attack, become the target instead." },
      "extra_attack":           { "name": "Extra Attack",       "kind": "passive", "description": "Two attacks per Attack action." },
      "immovable_1":            { "name": "Immovable",          "kind": "reaction", "uses_per_long_rest": 1, "description": "Reaction: reduce incoming damage by 1d12 + CON. Once per long rest." },
      "immovable_2":            { "name": "Immovable (2/rest)", "kind": "reaction", "uses_per_long_rest": 2, "description": "Reaction: reduce incoming damage by 2d12 + CON. Twice per long rest." },
      "guardians_aura_10":      { "name": "Guardian's Aura (10 ft.)", "kind": "passive", "description": "Allies within 10 ft. gain +1 to all saves while you are conscious." },
      "guardians_aura_15":      { "name": "Guardian's Aura (15 ft.)", "kind": "passive", "description": "Aura range increases to 15 ft." },
      "guardians_aura_20":      { "name": "Guardian's Aura (20 ft.)", "kind": "passive", "description": "Aura range increases to 20 ft." },
      "unbreakable_will":       { "name": "Unbreakable Will", "kind": "passive", "description": "Immune to the frightened condition." },
      "improved_guardians_mark":{ "name": "Improved Guardian's Mark", "kind": "passive", "description": "Marked creatures also have disadvantage on attacks against creatures other than you." },
      "last_one_standing":      { "name": "Last One Standing", "kind": "active", "uses_per_long_rest": 1, "description": "When every other allied creature within 60 ft. is at 0 HP or has fled: resistance to all damage, advantage on all attacks and saves, Mark applies to all hostile creatures simultaneously. 1 minute." },
      "subclass_select":  { "name": "Subclass Selection", "kind": "stub", "description": "Choose a Bulwark subclass: Herd-Wall or Antler-Guard. (Phase 5: deferred.)" },
      "subclass_feature": { "name": "Subclass Feature", "kind": "stub", "description": "Subclass-specific feature granted at this level. (Phase 5: deferred.)" },
      "asi":              { "name": "Ability Score Improvement", "kind": "stub", "description": "Increase ability scores. (Phase 5: deferred.)" }
    }
  },
  {
    "id": "feral",
    "name": "Feral",
    "hit_die": 12,
    "primary_ability": ["STR", "CON"],
    "saves": ["STR", "CON"],
    "armor_proficiencies": ["light", "medium"],
    "weapon_proficiencies": ["simple", "natural"],
    "tool_proficiencies": [],
    "skills_choose": 2,
    "skill_options": ["athletics", "intimidation", "nature", "perception", "survival"],
    "subclass_ids": ["blood_memory", "stampede_heart"],
    "starting_kit": [
      { "item_id": "paw_axe",          "qty": 1, "auto_equip": true,  "equip_slot": "main_hand" },
      { "item_id": "hide_vest",        "qty": 1, "auto_equip": true,  "equip_slot": "body" },
      { "item_id": "healers_kit",      "qty": 1, "auto_equip": false },
      { "item_id": "rations_predator", "qty": 5, "auto_equip": false }
    ],
    "level_table": [
      { "level": 1,  "prof": 2, "features": ["feral_rage_2", "unarmored_defense"] },
      { "level": 2,  "prof": 2, "features": ["ancestral_sense", "reckless_attack"] },
      { "level": 3,  "prof": 2, "features": ["subclass_select"] },
      { "level": 4,  "prof": 2, "features": ["asi"] },
      { "level": 5,  "prof": 3, "features": ["extra_attack", "fast_movement"] },
      { "level": 6,  "prof": 3, "features": ["subclass_feature"] },
      { "level": 7,  "prof": 3, "features": ["instinct_awareness"] },
      { "level": 8,  "prof": 3, "features": ["asi"] },
      { "level": 9,  "prof": 4, "features": ["feral_rage_3", "brutal_critical_1"] },
      { "level": 10, "prof": 4, "features": ["subclass_feature"] },
      { "level": 11, "prof": 4, "features": ["relentless_rage"] },
      { "level": 12, "prof": 4, "features": ["asi"] },
      { "level": 13, "prof": 5, "features": ["brutal_critical_2"] },
      { "level": 14, "prof": 5, "features": ["subclass_feature"] },
      { "level": 15, "prof": 5, "features": ["persistent_rage"] },
      { "level": 16, "prof": 5, "features": ["asi"] },
      { "level": 17, "prof": 6, "features": ["feral_rage_4", "brutal_critical_3"] },
      { "level": 18, "prof": 6, "features": ["indomitable_instinct"] },
      { "level": 19, "prof": 6, "features": ["asi"] },
      { "level": 20, "prof": 6, "features": ["apex"] }
    ],
    "feature_definitions": {
      "feral_rage_2":       { "name": "Feral Rage", "kind": "bonus_action", "uses_per_long_rest": 2, "description": "Bonus action to enter rage. Advantage on STR checks/saves, +2 melee damage (scales), resistance to bludgeoning/piercing/slashing, no concentration. 1 minute or until you choose to end it." },
      "feral_rage_3":       { "name": "Feral Rage (3/rest)", "kind": "bonus_action", "uses_per_long_rest": 3, "description": "Same as Feral Rage; +3 damage. Three uses per long rest." },
      "feral_rage_4":       { "name": "Feral Rage (4/rest)", "kind": "bonus_action", "uses_per_long_rest": 4, "description": "Same as Feral Rage; +4 damage. Four uses per long rest." },
      "unarmored_defense":  { "name": "Unarmored Defense", "kind": "passive", "description": "When wearing no armor, AC = 10 + DEX + CON." },
      "ancestral_sense":    { "name": "Ancestral Sense", "kind": "passive", "description": "While raging: advantage on Perception, cannot be surprised, scent-blindsight 10 ft." },
      "reckless_attack":    { "name": "Reckless Attack", "kind": "active", "description": "On your turn: advantage on melee attacks, but all attacks against you have advantage until your next turn." },
      "extra_attack":       { "name": "Extra Attack", "kind": "passive", "description": "Two attacks per Attack action." },
      "fast_movement":      { "name": "Fast Movement", "kind": "passive", "description": "+10 ft. movement while not wearing heavy armor." },
      "instinct_awareness": { "name": "Instinct Awareness", "kind": "passive", "description": "Add WIS modifier to initiative rolls." },
      "brutal_critical_1":  { "name": "Brutal Critical (1 die)", "kind": "passive", "description": "Roll one additional damage die on critical hits." },
      "brutal_critical_2":  { "name": "Brutal Critical (2 dice)", "kind": "passive", "description": "Roll two additional damage dice on critical hits." },
      "brutal_critical_3":  { "name": "Brutal Critical (3 dice)", "kind": "passive", "description": "Roll three additional damage dice on critical hits." },
      "relentless_rage":    { "name": "Relentless Rage", "kind": "active", "description": "If you drop to 0 HP while raging, CON save (DC 10, increasing by 5 each time per rage). On success, drop to 1 HP." },
      "persistent_rage":    { "name": "Persistent Rage", "kind": "passive", "description": "Rage only ends when you choose or are unconscious. Nothing else stops it." },
      "indomitable_instinct":{ "name": "Indomitable Instinct", "kind": "passive", "description": "If your total for a STR or CON check is less than your ability score, use the ability score instead." },
      "apex":               { "name": "Apex Predator / Apex Prey", "kind": "passive", "description": "Capstone — variant by predator/prey clade." },
      "subclass_select":  { "name": "Subclass Selection", "kind": "stub", "description": "Choose Blood Memory or Stampede Heart. (Phase 5: deferred.)" },
      "subclass_feature": { "name": "Subclass Feature", "kind": "stub", "description": "Subclass-specific feature. (Phase 5: deferred.)" },
      "asi":              { "name": "Ability Score Improvement", "kind": "stub", "description": "Increase ability scores. (Phase 5: deferred.)" }
    }
  },
  {
    "id": "shadow_pelt",
    "name": "Shadow-Pelt",
    "hit_die": 8,
    "primary_ability": ["DEX"],
    "saves": ["DEX", "INT"],
    "armor_proficiencies": ["light"],
    "weapon_proficiencies": ["simple", "hand_crossbow", "short_sword", "rapier", "natural"],
    "tool_proficiencies": ["thieves_tools"],
    "skills_choose": 4,
    "skill_options": ["acrobatics", "athletics", "deception", "insight", "intimidation", "investigation", "perception", "persuasion", "sleight_of_hand", "stealth"],
    "subclass_ids": ["noseblind", "ambush_artist"],
    "starting_kit": [
      { "item_id": "thorn_blade",      "qty": 1, "auto_equip": true,  "equip_slot": "main_hand" },
      { "item_id": "studded_leather",  "qty": 1, "auto_equip": true,  "equip_slot": "body" },
      { "item_id": "claw_bow",         "qty": 1, "auto_equip": false },
      { "item_id": "poultice_universal","qty": 2, "auto_equip": false },
      { "item_id": "scent_mask_basic", "qty": 1, "auto_equip": false },
      { "item_id": "rations_predator", "qty": 5, "auto_equip": false }
    ],
    "level_table": [
      { "level": 1,  "prof": 2, "features": ["expertise_2", "sneak_attack_1d6", "scent_discipline"] },
      { "level": 2,  "prof": 2, "features": ["cunning_action"] },
      { "level": 3,  "prof": 2, "features": ["subclass_select"] },
      { "level": 4,  "prof": 2, "features": ["asi"] },
      { "level": 5,  "prof": 3, "features": ["sneak_attack_3d6", "uncanny_dodge"] },
      { "level": 6,  "prof": 3, "features": ["expertise_2_more"] },
      { "level": 7,  "prof": 3, "features": ["evasion", "subclass_feature"] },
      { "level": 8,  "prof": 3, "features": ["asi"] },
      { "level": 9,  "prof": 4, "features": ["sneak_attack_5d6"] },
      { "level": 10, "prof": 4, "features": ["asi"] },
      { "level": 11, "prof": 4, "features": ["reliable_talent", "subclass_feature"] },
      { "level": 12, "prof": 4, "features": ["asi"] },
      { "level": 13, "prof": 5, "features": ["sneak_attack_7d6"] },
      { "level": 14, "prof": 5, "features": ["scent_ghost"] },
      { "level": 15, "prof": 5, "features": ["subclass_feature"] },
      { "level": 16, "prof": 5, "features": ["asi"] },
      { "level": 17, "prof": 6, "features": ["sneak_attack_9d6"] },
      { "level": 18, "prof": 6, "features": ["elusive"] },
      { "level": 19, "prof": 6, "features": ["asi"] },
      { "level": 20, "prof": 6, "features": ["kill_shot"] }
    ],
    "feature_definitions": {
      "expertise_2":       { "name": "Expertise (2)", "kind": "passive", "description": "Double proficiency bonus for 2 proficient skills." },
      "expertise_2_more":  { "name": "Expertise (2 more)", "kind": "passive", "description": "Choose 2 more proficient skills to gain expertise." },
      "sneak_attack_1d6":  { "name": "Sneak Attack (1d6)", "kind": "passive", "description": "Once per turn, +1d6 damage on an attack with advantage or when an ally is within 5 ft. of the target." },
      "sneak_attack_3d6":  { "name": "Sneak Attack (3d6)", "kind": "passive", "description": "Sneak Attack damage scales to 3d6." },
      "sneak_attack_5d6":  { "name": "Sneak Attack (5d6)", "kind": "passive", "description": "Sneak Attack damage scales to 5d6." },
      "sneak_attack_7d6":  { "name": "Sneak Attack (7d6)", "kind": "passive", "description": "Sneak Attack damage scales to 7d6." },
      "sneak_attack_9d6":  { "name": "Sneak Attack (9d6)", "kind": "passive", "description": "Sneak Attack damage scales to 9d6." },
      "scent_discipline":  { "name": "Scent Discipline", "kind": "passive", "description": "Advantage on checks to suppress emotional scent leakage. Creatures with scent abilities must beat your DEX (Stealth) with their WIS (Perception) to read your emotional state." },
      "cunning_action":    { "name": "Cunning Action", "kind": "bonus_action", "description": "Bonus action: Dash, Disengage, or Hide." },
      "uncanny_dodge":     { "name": "Uncanny Dodge", "kind": "reaction", "description": "Reaction: halve damage from an attack you can see." },
      "evasion":           { "name": "Evasion", "kind": "passive", "description": "DEX saves for half damage become no damage on success, half on failure." },
      "reliable_talent":   { "name": "Reliable Talent", "kind": "passive", "description": "Skill rolls below 10 with proficiency are treated as 10." },
      "scent_ghost":       { "name": "Scent Ghost", "kind": "active", "uses_per_long_rest": 1, "description": "Suppress natural scent for 1 hour or project a false clade scent. Once per long rest." },
      "elusive":           { "name": "Elusive", "kind": "passive", "description": "No attack roll has advantage against you while you're conscious." },
      "kill_shot":         { "name": "Kill Shot", "kind": "active", "uses_per_short_rest": 1, "description": "When Sneak Attack hits, force CON save (DC = 8 + prof + DEX). On failure, double the damage." },
      "subclass_select":  { "name": "Subclass Selection", "kind": "stub", "description": "Choose Noseblind or Ambush Artist. (Phase 5: deferred.)" },
      "subclass_feature": { "name": "Subclass Feature", "kind": "stub", "description": "Subclass-specific feature. (Phase 5: deferred.)" },
      "asi":              { "name": "Ability Score Improvement", "kind": "stub", "description": "Increase ability scores. (Phase 5: deferred.)" }
    }
  },
  {
    "id": "scent_broker",
    "name": "Scent-Broker",
    "hit_die": 8,
    "primary_ability": ["WIS"],
    "saves": ["WIS", "CHA"],
    "armor_proficiencies": ["light"],
    "weapon_proficiencies": ["simple", "natural"],
    "tool_proficiencies": ["alchemists_supplies", "perfumers_kit"],
    "skills_choose": 3,
    "skill_options": ["deception", "insight", "investigation", "medicine", "perception", "persuasion", "stealth"],
    "subclass_ids": ["perfumer", "tracker"],
    "starting_kit": [
      { "item_id": "fang_knife",       "qty": 1, "auto_equip": true,  "equip_slot": "main_hand" },
      { "item_id": "leather_harness",  "qty": 1, "auto_equip": true,  "equip_slot": "body" },
      { "item_id": "pheromone_vial_calm", "qty": 2, "auto_equip": false },
      { "item_id": "pheromone_vial_fear", "qty": 2, "auto_equip": false },
      { "item_id": "scent_mask_basic", "qty": 2, "auto_equip": false },
      { "item_id": "rations_prey",     "qty": 5, "auto_equip": false }
    ],
    "level_table": [
      { "level": 1,  "prof": 2, "features": ["scent_literacy", "nose_for_lies"] },
      { "level": 2,  "prof": 2, "features": ["pheromone_craft_2"] },
      { "level": 3,  "prof": 2, "features": ["subclass_select"] },
      { "level": 4,  "prof": 2, "features": ["asi"] },
      { "level": 5,  "prof": 3, "features": ["deep_reading", "pheromone_craft_3"] },
      { "level": 6,  "prof": 3, "features": ["subclass_feature"] },
      { "level": 7,  "prof": 3, "features": ["scent_ward"] },
      { "level": 8,  "prof": 3, "features": ["asi"] },
      { "level": 9,  "prof": 4, "features": ["pheromone_craft_4"] },
      { "level": 10, "prof": 4, "features": ["subclass_feature"] },
      { "level": 11, "prof": 4, "features": ["master_nose"] },
      { "level": 12, "prof": 4, "features": ["asi"] },
      { "level": 13, "prof": 5, "features": ["pheromone_craft_5"] },
      { "level": 14, "prof": 5, "features": ["subclass_feature"] },
      { "level": 15, "prof": 5, "features": ["scent_immunity"] },
      { "level": 16, "prof": 5, "features": ["asi"] },
      { "level": 17, "prof": 6, "features": ["grand_synthesis"] },
      { "level": 18, "prof": 6, "features": ["subclass_feature"] },
      { "level": 19, "prof": 6, "features": ["asi"] },
      { "level": 20, "prof": 6, "features": ["olfactory_omniscience"] }
    ],
    "feature_definitions": {
      "scent_literacy":      { "name": "Scent Literacy", "kind": "active", "description": "Action: read clade, emotional state, general health, and scent-mask presence on a creature within 30 ft. Detailed reads need a WIS check." },
      "nose_for_lies":       { "name": "Nose for Lies", "kind": "passive", "description": "When a creature within 15 ft. lies, you detect the scent shift automatically (no check). Doesn't work on creatures without mammalian scent biology." },
      "pheromone_craft_2":   { "name": "Pheromone Craft (2/rest)", "kind": "active", "uses_per_short_rest": 2, "description": "During a short rest, craft pheromone compounds (calm, fear, trust, mask, alert, desire). 2 uses per rest." },
      "pheromone_craft_3":   { "name": "Pheromone Craft (3/rest)", "kind": "active", "uses_per_short_rest": 3, "description": "3 compounds per rest." },
      "pheromone_craft_4":   { "name": "Pheromone Craft (4/rest)", "kind": "active", "uses_per_short_rest": 4, "description": "4 compounds per rest." },
      "pheromone_craft_5":   { "name": "Pheromone Craft (5/rest)", "kind": "active", "uses_per_short_rest": 5, "description": "5 compounds per rest." },
      "deep_reading":        { "name": "Deep Reading", "kind": "passive", "description": "Scent Literacy range extends to 60 ft. Detect recent locations, recent contacts, and substances consumed." },
      "scent_ward":          { "name": "Scent Ward", "kind": "active", "description": "Mask scent profiles of self + 5 allies for 8 hours (10 minutes prep)." },
      "master_nose":         { "name": "Master Nose", "kind": "passive", "description": "Scent range 120 ft. Track by scent (advantage on Survival). Detect invisible creatures within 30 ft. by scent." },
      "scent_immunity":      { "name": "Scent Immunity", "kind": "passive", "description": "Immune to scent-based effects (pheromone attacks, fear-scent, arousal-scent)." },
      "grand_synthesis":     { "name": "Grand Synthesis", "kind": "passive", "description": "Combine two Pheromone Craft effects into a single compound. Compound DCs +2." },
      "olfactory_omniscience":{ "name": "Olfactory Omniscience", "kind": "passive", "description": "Cannot be surprised. Know exact location, clade, emotion, and health of every creature within 120 ft. Permanent ID after one encounter." },
      "subclass_select":  { "name": "Subclass Selection", "kind": "stub", "description": "Choose Perfumer or Tracker. (Phase 5: deferred.)" },
      "subclass_feature": { "name": "Subclass Feature", "kind": "stub", "description": "Subclass-specific feature. (Phase 5: deferred.)" },
      "asi":              { "name": "Ability Score Improvement", "kind": "stub", "description": "Increase ability scores. (Phase 5: deferred.)" }
    }
  },
  {
    "id": "covenant_keeper",
    "name": "Covenant-Keeper",
    "hit_die": 10,
    "primary_ability": ["CHA"],
    "saves": ["WIS", "CHA"],
    "armor_proficiencies": ["light", "medium", "heavy", "shields"],
    "weapon_proficiencies": ["simple", "martial", "natural"],
    "tool_proficiencies": [],
    "skills_choose": 2,
    "skill_options": ["athletics", "insight", "intimidation", "medicine", "persuasion", "religion"],
    "subclass_ids": ["the_warden", "the_bridge"],
    "starting_kit": [
      { "item_id": "rend_sword",       "qty": 1, "auto_equip": true,  "equip_slot": "main_hand" },
      { "item_id": "chain_shirt",      "qty": 1, "auto_equip": true,  "equip_slot": "body" },
      { "item_id": "standard_shield",  "qty": 1, "auto_equip": true,  "equip_slot": "off_hand" },
      { "item_id": "healers_kit",      "qty": 1, "auto_equip": false },
      { "item_id": "rations_predator", "qty": 5, "auto_equip": false }
    ],
    "level_table": [
      { "level": 1,  "prof": 2, "features": ["covenant_sense", "lay_on_paws"] },
      { "level": 2,  "prof": 2, "features": ["fighting_style", "covenants_authority_2"] },
      { "level": 3,  "prof": 2, "features": ["subclass_select"] },
      { "level": 4,  "prof": 2, "features": ["asi"] },
      { "level": 5,  "prof": 3, "features": ["extra_attack"] },
      { "level": 6,  "prof": 3, "features": ["aura_of_the_covenant_10"] },
      { "level": 7,  "prof": 3, "features": ["subclass_feature"] },
      { "level": 8,  "prof": 3, "features": ["asi"] },
      { "level": 9,  "prof": 4, "features": ["covenants_authority_3"] },
      { "level": 10, "prof": 4, "features": ["aura_of_courage_10"] },
      { "level": 11, "prof": 4, "features": ["improved_covenant_strike"] },
      { "level": 12, "prof": 4, "features": ["asi"] },
      { "level": 13, "prof": 5, "features": ["covenants_authority_4"] },
      { "level": 14, "prof": 5, "features": ["cleansing_touch"] },
      { "level": 15, "prof": 5, "features": ["subclass_feature"] },
      { "level": 16, "prof": 5, "features": ["asi"] },
      { "level": 17, "prof": 6, "features": ["covenants_authority_5"] },
      { "level": 18, "prof": 6, "features": ["aura_30"] },
      { "level": 19, "prof": 6, "features": ["asi"] },
      { "level": 20, "prof": 6, "features": ["subclass_feature"] }
    ],
    "feature_definitions": {
      "covenant_sense":      { "name": "Covenant Sense", "kind": "passive", "description": "Detect Covenant violations within 60 ft. — active predation, consumption of sentient flesh, rawfang activity." },
      "lay_on_paws":         { "name": "Lay on Paws", "kind": "active", "description": "Pool of healing equal to CHA × 5. Action: touch a creature and restore HP from the pool. 5 points cures one disease or neutralizes one poison. Replenishes on long rest." },
      "fighting_style":      { "name": "Fighting Style", "kind": "choice", "description": "Pick a combat style.", "options": ["defense", "protection", "great_weapon"] },
      "covenants_authority_2":{ "name": "Covenant's Authority (2/rest)", "kind": "active", "uses_per_long_rest": 2, "description": "Action: present authority. Compel Truth, Rebuke Predation, or Shield the Innocent. 2 uses per long rest." },
      "covenants_authority_3":{ "name": "Covenant's Authority (3/rest)", "kind": "active", "uses_per_long_rest": 3, "description": "3 uses per long rest." },
      "covenants_authority_4":{ "name": "Covenant's Authority (4/rest)", "kind": "active", "uses_per_long_rest": 4, "description": "4 uses per long rest." },
      "covenants_authority_5":{ "name": "Covenant's Authority (5/rest)", "kind": "active", "uses_per_long_rest": 5, "description": "5 uses per long rest." },
      "extra_attack":        { "name": "Extra Attack", "kind": "passive", "description": "Two attacks per Attack action." },
      "aura_of_the_covenant_10":{ "name": "Aura of the Covenant (10 ft.)", "kind": "passive", "description": "You and friendly creatures within 10 ft. add CHA mod to saving throws." },
      "aura_of_courage_10":  { "name": "Aura of Courage (10 ft.)", "kind": "passive", "description": "You and friendly creatures within 10 ft. are immune to frightened." },
      "aura_30":             { "name": "Aura Improvements (30 ft.)", "kind": "passive", "description": "All auras extend to 30 ft." },
      "improved_covenant_strike":{ "name": "Improved Covenant Strike", "kind": "passive", "description": "Melee attacks deal +1d8 damage against creatures actively violating the Covenant." },
      "cleansing_touch":     { "name": "Cleansing Touch", "kind": "active", "description": "Action: end one negative condition or effect on a creature you touch. Uses equal to CHA mod per long rest." },
      "subclass_select":  { "name": "Oath Selection", "kind": "stub", "description": "Choose The Warden or The Bridge. (Phase 5: deferred.)" },
      "subclass_feature": { "name": "Oath Feature", "kind": "stub", "description": "Oath-specific feature. (Phase 5: deferred.)" },
      "asi":              { "name": "Ability Score Improvement", "kind": "stub", "description": "Increase ability scores. (Phase 5: deferred.)" }
    }
  },
  {
    "id": "muzzle_speaker",
    "name": "Muzzle-Speaker",
    "hit_die": 8,
    "primary_ability": ["CHA"],
    "saves": ["DEX", "CHA"],
    "armor_proficiencies": ["light"],
    "weapon_proficiencies": ["simple", "natural"],
    "tool_proficiencies": ["musical_instrument", "musical_instrument_2", "musical_instrument_3"],
    "skills_choose": 3,
    "skill_options": ["acrobatics", "animal_handling", "arcana", "athletics", "deception", "history", "insight", "intimidation", "investigation", "medicine", "nature", "perception", "performance", "persuasion", "religion", "sleight_of_hand", "stealth", "survival"],
    "subclass_ids": ["warhorn", "whisperfur"],
    "starting_kit": [
      { "item_id": "fang_knife",       "qty": 1, "auto_equip": true,  "equip_slot": "main_hand" },
      { "item_id": "studded_leather",  "qty": 1, "auto_equip": true,  "equip_slot": "body" },
      { "item_id": "poultice_universal","qty": 2, "auto_equip": false },
      { "item_id": "rations_predator", "qty": 5, "auto_equip": false }
    ],
    "level_table": [
      { "level": 1,  "prof": 2, "features": ["vocalization_dice_d6", "polyglot"] },
      { "level": 2,  "prof": 2, "features": ["jack_of_all_trades", "song_of_rest_d6"] },
      { "level": 3,  "prof": 2, "features": ["subclass_select", "expertise_2"] },
      { "level": 4,  "prof": 2, "features": ["asi"] },
      { "level": 5,  "prof": 3, "features": ["vocalization_dice_d8", "font_of_inspiration"] },
      { "level": 6,  "prof": 3, "features": ["subclass_feature", "counter_vocalization"] },
      { "level": 7,  "prof": 3, "features": ["song_of_rest_d8"] },
      { "level": 8,  "prof": 3, "features": ["asi"] },
      { "level": 9,  "prof": 4, "features": ["vocalization_dice_d10"] },
      { "level": 10, "prof": 4, "features": ["expertise_2_more"] },
      { "level": 11, "prof": 4, "features": ["subclass_feature"] },
      { "level": 12, "prof": 4, "features": ["asi"] },
      { "level": 13, "prof": 5, "features": ["song_of_rest_d10"] },
      { "level": 14, "prof": 5, "features": ["subclass_feature"] },
      { "level": 15, "prof": 5, "features": ["vocalization_dice_d12"] },
      { "level": 16, "prof": 5, "features": ["asi"] },
      { "level": 17, "prof": 6, "features": ["song_of_rest_d12"] },
      { "level": 18, "prof": 6, "features": ["superior_inspiration"] },
      { "level": 19, "prof": 6, "features": ["asi"] },
      { "level": 20, "prof": 6, "features": ["voice_of_the_world"] }
    ],
    "feature_definitions": {
      "vocalization_dice_d6":  { "name": "Vocalization Dice (d6, 4/rest)", "kind": "bonus_action", "uses_per_long_rest": 4, "description": "Bonus action: expend a die to aid an ally within 60 ft.; they add the result to one attack/check/save within 10 minutes. d6 at level 1." },
      "vocalization_dice_d8":  { "name": "Vocalization Dice (d8)", "kind": "bonus_action", "description": "Vocalization Dice scale to d8." },
      "vocalization_dice_d10": { "name": "Vocalization Dice (d10)", "kind": "bonus_action", "description": "Vocalization Dice scale to d10." },
      "vocalization_dice_d12": { "name": "Vocalization Dice (d12)", "kind": "bonus_action", "description": "Vocalization Dice scale to d12." },
      "polyglot":              { "name": "Polyglot", "kind": "passive", "description": "Speak, read, write Common plus all Clade languages. Approximate subsonic and ultrasonic components imperfectly." },
      "jack_of_all_trades":    { "name": "Jack of All Trades", "kind": "passive", "description": "Add half proficiency to checks you're not proficient in." },
      "song_of_rest_d6":       { "name": "Song of Rest (d6)", "kind": "passive", "description": "During short rest, allies who hear you regain additional HP (d6 at level 2)." },
      "song_of_rest_d8":       { "name": "Song of Rest (d8)", "kind": "passive", "description": "Song of Rest scales to d8." },
      "song_of_rest_d10":      { "name": "Song of Rest (d10)", "kind": "passive", "description": "Song of Rest scales to d10." },
      "song_of_rest_d12":      { "name": "Song of Rest (d12)", "kind": "passive", "description": "Song of Rest scales to d12." },
      "expertise_2":           { "name": "Expertise (2)", "kind": "passive", "description": "Double proficiency bonus for 2 chosen proficient skills." },
      "expertise_2_more":      { "name": "Expertise (2 more)", "kind": "passive", "description": "Choose 2 more proficient skills for expertise." },
      "font_of_inspiration":   { "name": "Font of Inspiration", "kind": "passive", "description": "Vocalization Dice recharge on short rest." },
      "counter_vocalization":  { "name": "Counter-Vocalization", "kind": "reaction", "description": "Reaction: when a creature within 60 ft. uses a vocalization-based ability, expend a die to attempt to counter (CHA check vs. theirs)." },
      "superior_inspiration":  { "name": "Superior Inspiration", "kind": "passive", "description": "When you roll initiative with no dice remaining, regain one." },
      "voice_of_the_world":    { "name": "Voice of the World", "kind": "active", "uses_per_long_rest": 1, "description": "Speak one sentence understood perfectly by every sentient creature within 300 ft., regardless of language or deafness. Once per long rest." },
      "subclass_select":  { "name": "Subclass Selection", "kind": "stub", "description": "Choose Warhorn or Whisperfur. (Phase 5: deferred.)" },
      "subclass_feature": { "name": "Subclass Feature", "kind": "stub", "description": "Subclass-specific feature. (Phase 5: deferred.)" },
      "asi":              { "name": "Ability Score Improvement", "kind": "stub", "description": "Increase ability scores. (Phase 5: deferred.)" }
    }
  },
  {
    "id": "claw_wright",
    "name": "Claw-Wright",
    "hit_die": 8,
    "primary_ability": ["INT"],
    "saves": ["INT", "CON"],
    "armor_proficiencies": ["light", "medium", "shields"],
    "weapon_proficiencies": ["simple", "natural", "firearms"],
    "tool_proficiencies": ["tinkers_tools", "artisans_tools", "artisans_tools_2"],
    "skills_choose": 3,
    "skill_options": ["arcana", "investigation", "medicine", "nature", "perception", "sleight_of_hand"],
    "subclass_ids": ["combat_engineer", "body_wright"],
    "starting_kit": [
      { "item_id": "hoof_club",        "qty": 1, "auto_equip": true,  "equip_slot": "main_hand" },
      { "item_id": "studded_leather",  "qty": 1, "auto_equip": true,  "equip_slot": "body" },
      { "item_id": "buckler",          "qty": 1, "auto_equip": true,  "equip_slot": "off_hand" },
      { "item_id": "healers_kit",      "qty": 1, "auto_equip": false },
      { "item_id": "rope_claw_braid",  "qty": 1, "auto_equip": false },
      { "item_id": "rations_prey",     "qty": 5, "auto_equip": false }
    ],
    "level_table": [
      { "level": 1,  "prof": 2, "features": ["adaptive_crafting", "field_repair"] },
      { "level": 2,  "prof": 2, "features": ["gadget_pool_2"] },
      { "level": 3,  "prof": 2, "features": ["subclass_select"] },
      { "level": 4,  "prof": 2, "features": ["asi"] },
      { "level": 5,  "prof": 3, "features": ["extra_attack", "gadget_pool_3"] },
      { "level": 6,  "prof": 3, "features": ["subclass_feature", "tool_expertise"] },
      { "level": 7,  "prof": 3, "features": ["flash_of_genius"] },
      { "level": 8,  "prof": 3, "features": ["asi"] },
      { "level": 9,  "prof": 4, "features": ["gadget_pool_4"] },
      { "level": 10, "prof": 4, "features": ["subclass_feature"] },
      { "level": 11, "prof": 4, "features": ["reliable_engineering"] },
      { "level": 12, "prof": 4, "features": ["asi"] },
      { "level": 13, "prof": 5, "features": ["gadget_pool_5"] },
      { "level": 14, "prof": 5, "features": ["subclass_feature"] },
      { "level": 15, "prof": 5, "features": ["superior_gadgets"] },
      { "level": 16, "prof": 5, "features": ["asi"] },
      { "level": 17, "prof": 6, "features": ["gadget_pool_6"] },
      { "level": 18, "prof": 6, "features": ["subclass_feature"] },
      { "level": 19, "prof": 6, "features": ["asi"] },
      { "level": 20, "prof": 6, "features": ["master_wright"] }
    ],
    "feature_definitions": {
      "adaptive_crafting":   { "name": "Adaptive Crafting", "kind": "passive", "description": "Modify any tool, weapon, or equipment to function for a different Clade's body type during a short rest. Modified items grant +1 to relevant checks for the intended species." },
      "field_repair":        { "name": "Field Repair", "kind": "active", "description": "Action: restore 1d8 + INT HP to a construct or repair a broken object/mechanism. On creatures: emergency medical treatment — stabilize, splint, suture." },
      "gadget_pool_2":       { "name": "Gadget Pool (2)", "kind": "passive", "description": "Long rest: create gadgets. 2 active at a time at level 2." },
      "gadget_pool_3":       { "name": "Gadget Pool (3)", "kind": "passive", "description": "3 active gadgets." },
      "gadget_pool_4":       { "name": "Gadget Pool (4)", "kind": "passive", "description": "4 active gadgets." },
      "gadget_pool_5":       { "name": "Gadget Pool (5)", "kind": "passive", "description": "5 active gadgets." },
      "gadget_pool_6":       { "name": "Gadget Pool (6)", "kind": "passive", "description": "6 active gadgets." },
      "extra_attack":        { "name": "Extra Attack", "kind": "passive", "description": "Two attacks per Attack action." },
      "tool_expertise":      { "name": "Tool Expertise", "kind": "passive", "description": "Double proficiency with all tools you're proficient in." },
      "flash_of_genius":     { "name": "Flash of Genius", "kind": "reaction", "description": "Reaction: when you or a creature within 30 ft. makes a check or save, add INT mod to the roll. Uses equal to INT mod per long rest." },
      "reliable_engineering":{ "name": "Reliable Engineering", "kind": "passive", "description": "Gadget save DCs +2. Damaging gadgets add INT mod." },
      "superior_gadgets":    { "name": "Superior Gadgets", "kind": "passive", "description": "Unlock advanced gadget tier; existing gadgets gain enhanced effects." },
      "master_wright":       { "name": "Master Wright", "kind": "active", "description": "Long rest: create one Masterwork item. Permanent, fits any Clade, +3 to relevant checks. Maintain up to 3." },
      "subclass_select":  { "name": "Subclass Selection", "kind": "stub", "description": "Choose Combat Engineer or Body-Wright. (Phase 5: deferred.)" },
      "subclass_feature": { "name": "Subclass Feature", "kind": "stub", "description": "Subclass-specific feature. (Phase 5: deferred.)" },
      "asi":              { "name": "Ability Score Improvement", "kind": "stub", "description": "Increase ability scores. (Phase 5: deferred.)" }
    }
  }
]
