[
  {
    "id": "wolf",
    "clade_id": "canidae",
    "name": "Wolf-Folk",
    "size": "medium_large",
    "ability_mods": { "STR": 1 },
    "base_speed_ft": 30,
    "traits": [
      { "id": "jaws_of_the_alpha",     "name": "Jaws of the Alpha",     "description": "Unarmed bite deals 1d8 + STR piercing (1d10 at level 5, 1d12 at level 11). On crit, target makes a STR save (DC = 8 + prof + STR) or is grappled." },
      { "id": "tireless_pursuit",      "name": "Tireless Pursuit",      "description": "Forced march for additional CON-mod hours before exhaustion. Advantage on CON checks vs. exhaustion from prolonged activity." },
      { "id": "howl",                  "name": "Howl",                  "description": "Action: territorial howl audible to 1 mile. Allied Canidae who hear gain advantage on next attack roll or save within 1 minute. Once per long rest." }
    ],
    "detriments": [
      { "id": "dominance_reflex",      "name": "Dominance Reflex",      "description": "When publicly challenged, WIS save (DC 12) or compelled to respond with aggression or dominance display." },
      { "id": "heavy_frame",           "name": "Heavy Frame",           "description": "Disadvantage on DEX (Stealth) checks in enclosed or quiet environments." }
    ]
  },
  {
    "id": "fox",
    "clade_id": "canidae",
    "name": "Fox-Folk",
    "size": "medium",
    "ability_mods": { "DEX": 1 },
    "base_speed_ft": 35,
    "traits": [
      { "id": "vulpine_agility",       "name": "Vulpine Agility",       "description": "Base speed 35 ft. Move through the space of any creature one size larger without penalty." },
      { "id": "clever_paws",           "name": "Clever Paws",           "description": "Proficiency with Thieves' Tools and one additional tool of choice." },
      { "id": "tricksters_mask",       "name": "Trickster's Mask",      "description": "Advantage on CHA (Deception) checks. Once per long rest, suppress natural scent for 1 hour, imposing disadvantage on tracking and identification by smell." }
    ],
    "detriments": [
      { "id": "fragile_frame",         "name": "Fragile Frame",         "description": "Hit point maximum reduced by 1 per level (minimum 1 HP per level)." },
      { "id": "canid_prejudice",       "name": "Canid Prejudice",       "description": "Disadvantage on CHA (Persuasion) against wolf-folk until competence has been demonstrated to that individual." }
    ]
  },
  {
    "id": "coyote",
    "clade_id": "canidae",
    "name": "Coyote-Folk",
    "size": "medium",
    "ability_mods": { "CHA": 1 },
    "base_speed_ft": 30,
    "traits": [
      { "id": "urban_adaptation",      "name": "Urban Adaptation",      "description": "Proficiency in Survival in urban environments. Find food, water, and shelter in any settlement within 1 hour. Advantage on checks to navigate sewers, rooftops, and alleys." },
      { "id": "scavengers_stomach",    "name": "Scavenger's Stomach",   "description": "Advantage on CON saves vs. ingested poisons and disease from spoiled food. Subsist on half the normal food and water requirements." },
      { "id": "opportunist",           "name": "Opportunist",           "description": "Reaction: when a creature within 5 ft. is hit by an ally's attack, make a single melee attack against that creature. Uses equal to proficiency bonus per long rest." }
    ],
    "detriments": [
      { "id": "distrusted",            "name": "Distrusted",            "description": "Disadvantage on CHA checks to establish trust with strangers from established institutions (merchants' guilds, noble houses, military)." },
      { "id": "restless_blood",        "name": "Restless Blood",        "description": "Disadvantage on checks or saves involving long-duration waiting, stakeouts, or monotonous tasks." }
    ]
  },
  {
    "id": "lion",
    "clade_id": "felidae",
    "name": "Lion-Folk",
    "size": "medium_large",
    "ability_mods": { "STR": 1 },
    "base_speed_ft": 30,
    "traits": [
      { "id": "commanding_presence",   "name": "Commanding Presence",   "description": "Proficiency in Intimidation (expertise if already proficient). When intimidating, may roar — creatures within 15 ft. who hear it make a WIS save (DC = 8 + prof + CHA) or are frightened until end of next turn. Once per short rest." },
      { "id": "pride_fighter",         "name": "Pride Fighter",         "description": "Lion-folk can both grant and benefit from flanking. When you and an ally are adjacent to the same enemy, both gain +2 to attack rolls against that enemy." },
      { "id": "mane_guard",            "name": "Mane Guard",            "description": "+1 AC against attacks targeting the neck or throat." }
    ],
    "detriments": [
      { "id": "territorial_ego",       "name": "Territorial Ego",       "description": "Disadvantage on CHA (Persuasion) when negotiating shared resources, territory, or leadership positions." },
      { "id": "heat_lethargy",         "name": "Heat Lethargy",         "description": "In temperatures above 90°F, CON save (DC 10) every hour of strenuous activity or gain a level of exhaustion." }
    ]
  },
  {
    "id": "leopard",
    "clade_id": "felidae",
    "name": "Leopard-Folk",
    "size": "medium",
    "ability_mods": { "DEX": 1 },
    "base_speed_ft": 30,
    "traits": [
      { "id": "ambush_predator",       "name": "Ambush Predator",       "description": "Attacking a creature that hasn't acted yet in combat or is unaware deals +1d6 damage on the first hit (+2d6 at level 9)." },
      { "id": "arboreal_hunter",       "name": "Arboreal Hunter",       "description": "Climb speed equal to walking speed. Advantage on Athletics checks to climb. Move at full speed while climbing without penalty." },
      { "id": "shadow_pelt",           "name": "Shadow Pelt",           "description": "Advantage on Stealth checks in dim light or darkness." }
    ],
    "detriments": [
      { "id": "lone_operator",         "name": "Lone Operator",         "description": "Disadvantage on group skill checks (coordinated efforts, team athletics, group stealth)." },
      { "id": "trigger_reflexes",      "name": "Trigger Reflexes",      "description": "When surprised by sudden movement within 5 ft., WIS save (DC 10) or reflexively lash out with a claw attack against the triggering creature." }
    ]
  },
  {
    "id": "housecat",
    "clade_id": "felidae",
    "name": "Housecat-Folk",
    "size": "small",
    "ability_mods": { "INT": 1 },
    "base_speed_ft": 30,
    "traits": [
      { "id": "unassuming",            "name": "Unassuming",            "description": "Advantage on Stealth in social settings (crowds, parties, meetings). Advantage on the first Deception check in any social encounter with a new creature." },
      { "id": "tight_spaces",          "name": "Tight Spaces",          "description": "Squeeze through openings sized for Tiny creatures without penalty. Advantage on checks to escape grapples and restraints." },
      { "id": "nine_lives",            "name": "Nine Lives",            "description": "When reduced to 0 HP, can choose to drop to 1 HP instead. Once per long rest." }
    ],
    "detriments": [
      { "id": "size_matters",          "name": "Size Matters",          "description": "Disadvantage on STR checks and saves against creatures two or more sizes larger. Carrying capacity halved. Heavy weapons cannot be used effectively." },
      { "id": "compulsive_curiosity",  "name": "Compulsive Curiosity",  "description": "When presented with a mystery, hidden space, or unknown object out of combat, WIS save (DC 12) or spend at least one action investigating." }
    ]
  },
  {
    "id": "ferret",
    "clade_id": "mustelidae",
    "name": "Ferret-Folk",
    "size": "small",
    "ability_mods": { "CHA": 1 },
    "base_speed_ft": 30,
    "traits": [
      { "id": "war_dance",             "name": "War Dance",             "description": "Bonus action: weave erratically. Until the start of your next turn, attack rolls against you have disadvantage if you moved at least 15 ft. this turn. Uses equal to proficiency bonus per long rest." },
      { "id": "tunnel_runner",         "name": "Tunnel Runner",         "description": "Burrow speed of 15 ft. in loose soil or sand. Navigate tunnels and underground spaces without penalty. Advantage on checks to find or create underground passages." },
      { "id": "irrepressible",         "name": "Irrepressible",         "description": "Advantage on saves against the frightened condition. Ferret-folk have a pathological inability to take threats as seriously as they should." }
    ],
    "detriments": [
      { "id": "attention_deficit",     "name": "Attention Deficit",     "description": "Disadvantage on checks requiring sustained concentration outside of combat (extended research, long stakeouts, detailed crafting over 4+ hours). Your focus is explosive, not sustained." },
      { "id": "musk_broadcast",        "name": "Musk Broadcast",        "description": "Under stress, fear, or arousal, your scent intensifies involuntarily. Stealth checks in these states are made with disadvantage, and creatures with scent abilities automatically know your emotional state." }
    ]
  },
  {
    "id": "badger",
    "clade_id": "mustelidae",
    "name": "Badger-Folk",
    "size": "medium",
    "ability_mods": { "CON": 1 },
    "base_speed_ft": 30,
    "traits": [
      { "id": "immovable",             "name": "Immovable",             "description": "Advantage on STR and CON saves against being knocked prone, pushed, or forcibly moved. Your low center of gravity and dense build make displacement extremely difficult." },
      { "id": "digging_claws",         "name": "Digging Claws",         "description": "Burrow speed of 20 ft. Claw attacks deal 1d6 + STR slashing. Advantage on checks to break through barriers, dig through obstacles, or demolish structures." },
      { "id": "relentless_endurance",  "name": "Relentless Endurance",  "description": "When you take damage that would reduce you to 0 HP, reaction: CON save (DC = 10 + damage taken). On success, drop to 1 HP instead. Once per long rest." }
    ],
    "detriments": [
      { "id": "tunnel_vision",         "name": "Tunnel Vision",         "description": "When engaged with a single target, disadvantage on Perception checks to notice other threats. Badger-folk lock on and everything else goes dark." },
      { "id": "antisocial_default",    "name": "Antisocial Default",    "description": "Disadvantage on CHA checks in social gatherings of 6+ people. Not shy — actively irritated by crowds." }
    ]
  },
  {
    "id": "wolverine",
    "clade_id": "mustelidae",
    "name": "Wolverine-Folk",
    "size": "medium_large",
    "ability_mods": { "STR": 1 },
    "base_speed_ft": 30,
    "traits": [
      { "id": "wolverine_frenzy",      "name": "Wolverine's Frenzy",    "description": "Once per long rest, bonus action: enter a frenzy for 1 minute. While frenzied, gain resistance to all damage except psychic. (Distinct from the Feral class's Rage; renamed to avoid confusion. Doc: 'Feral Rage'.)" },
      { "id": "jaws_of_iron",          "name": "Jaws of Iron",          "description": "Bite attack deals 1d8 + STR piercing and can target objects. Chew through rope, leather, and soft wood as an action. Hard materials (metal, stone) take 1 minute per inch." },
      { "id": "arctic_survivor",       "name": "Arctic Survivor",       "description": "Immunity to the effects of extreme cold environments. Leave no tracks in snow. Advantage on Survival checks in tundra, mountain, and arctic terrain." }
    ],
    "detriments": [
      { "id": "berserkers_toll",       "name": "Berserker's Toll",      "description": "After Wolverine's Frenzy ends, gain one level of exhaustion. The fire burns hot but the crash is real." },
      { "id": "feared_not_loved",      "name": "Feared, Not Loved",     "description": "Disadvantage on CHA (Persuasion) checks with creatures who know what you are. Wolverine-folk's reputation precedes them, and it is not a friendly reputation." }
    ]
  },
  {
    "id": "brown_bear",
    "clade_id": "ursidae",
    "name": "Brown Bear-Folk",
    "size": "large",
    "ability_mods": { "STR": 1 },
    "base_speed_ft": 30,
    "traits": [
      { "id": "devastating_swipe",     "name": "Devastating Swipe",     "description": "Unarmed claw attack deals 2d6 + STR slashing. On a hit, you may choose to forgo damage and instead shove the target up to 10 ft. in any direction." },
      { "id": "foragers_nose",         "name": "Forager's Nose",        "description": "Advantage on Survival checks to find food in any natural environment. Identify edible vs. toxic plants and fungi by scent." },
      { "id": "stubborn_vitality",     "name": "Stubborn Vitality",     "description": "Advantage on death saving throws." }
    ],
    "detriments": [
      { "id": "slow_burn",             "name": "Slow Burn",             "description": "Act last in the first round of any combat where you were not expecting a fight (initiative count 0, regardless of roll). Ursid threat-processing takes a moment to spool up." },
      { "id": "accidental_destruction","name": "Accidental Destruction","description": "When you fail a DEX check by 5 or more while interacting with objects or structures not built for your size, you break them. Tools, furniture, delicate mechanisms, occasionally other people's belongings." }
    ]
  },
  {
    "id": "polar_bear",
    "clade_id": "ursidae",
    "name": "Polar Bear-Folk",
    "size": "large",
    "ability_mods": { "WIS": 1 },
    "base_speed_ft": 30,
    "traits": [
      { "id": "arctic_apex",           "name": "Arctic Apex",           "description": "Immunity to cold damage and cold environments. Swim speed of 30 ft. Hold your breath for 15 minutes." },
      { "id": "patient_hunter",        "name": "Patient Hunter",        "description": "If you do not move during your turn, your next melee attack before the end of your next turn deals an additional 1d8 damage. Stillness precedes the strike." },
      { "id": "insulating_bulk",       "name": "Insulating Bulk",       "description": "Resistance to non-magical bludgeoning damage. Layers of fat and fur absorb impact." }
    ],
    "detriments": [
      { "id": "heat_vulnerable",       "name": "Heat Vulnerable",       "description": "In temperatures above 75°F / 24°C, CON save (DC 12) every hour or gain exhaustion. Above 90°F, the DC increases to 15. Polar bear-folk suffer in warm climates." },
      { "id": "resource_hungry",       "name": "Resource Hungry",       "description": "Requires triple standard rations (caloric needs are massive). Failure to meet this imposes exhaustion at an accelerated rate." }
    ]
  },
  {
    "id": "elk",
    "clade_id": "cervidae",
    "name": "Elk-Folk",
    "size": "medium_large",
    "ability_mods": { "STR": 1 },
    "base_speed_ft": 30,
    "traits": [
      { "id": "majestic_antlers",      "name": "Majestic Antlers",      "description": "Antler attack deals 1d8 + STR piercing. Charging attack: if you move at least 20 ft. straight before attacking, deal +1d6 damage and target makes a STR save (DC = 8 + prof + STR) or is knocked back 5 ft." }
    ],
    "detriments": [
      { "id": "antler_drag",           "name": "Antler Drag",           "description": "During antler-shed season (1 month per year), antlers fall off — antler attack damage reduced by 1 die step until they regrow." }
    ]
  },
  {
    "id": "deer",
    "clade_id": "cervidae",
    "name": "Deer-Folk",
    "size": "medium",
    "ability_mods": { "DEX": 1 },
    "base_speed_ft": 35,
    "traits": [
      { "id": "swift_strider",         "name": "Swift Strider",         "description": "Base speed 35 ft. Difficult terrain costs no extra movement when moving in a straight line." },
      { "id": "alert_eyes",            "name": "Alert Eyes",            "description": "You cannot be surprised while conscious." }
    ],
    "detriments": [
      { "id": "skittish",              "name": "Skittish",              "description": "When taking damage from a hidden or unseen attacker, WIS save (DC 12) or use your reaction to move 10 ft. away from the attack source." },
      { "id": "slight_frame",          "name": "Slight Frame",          "description": "Hit point maximum reduced by 1 per level (minimum 1 HP per level). You weren't built to take hits — you were built to not be there when the hit lands." }
    ]
  },
  {
    "id": "moose",
    "clade_id": "cervidae",
    "name": "Moose-Folk",
    "size": "large",
    "ability_mods": { "CON": 1 },
    "base_speed_ft": 30,
    "traits": [
      { "id": "dont_tread_on_me",      "name": "Don't Tread on Me",     "description": "Count as one size larger for grappling, shoving, and resisting forced movement. Creatures that hit you with a melee attack within 5 ft. provoke a free kick (1d8 + STR) as a reaction. Uses equal to proficiency bonus per long rest." },
      { "id": "palmate_antlers",       "name": "Palmate Antlers",       "description": "Antler attack deals 2d6 + STR bludgeoning. On a critical hit, the target is stunned until the end of their next turn. These antlers are not decorative." },
      { "id": "wetland_wader",         "name": "Wetland Wader",         "description": "No movement penalty in difficult terrain caused by water, mud, or swamp. Swim speed of 20 ft. Hold your breath for 5 minutes." }
    ],
    "detriments": [
      { "id": "ursid_scale_problems",  "name": "Ursid-Scale Problems",  "description": "As a Large creature, you share many of the infrastructure problems of Ursidae — standard furniture, doorways, and vehicles are too small. Disadvantage on DEX (Stealth) checks — you are not subtle." },
      { "id": "solitary_cervid",       "name": "Solitary Cervid",       "description": "Unlike most Cervidae, moose-folk are not herd-oriented. You do not benefit from Herd Coordination effects and have disadvantage on CHA checks in groups larger than 4. You don't do committees." }
    ]
  },
  {
    "id": "rabbit",
    "clade_id": "leporidae",
    "name": "Rabbit-Folk",
    "size": "small",
    "ability_mods": { "WIS": 1 },
    "base_speed_ft": 40,
    "traits": [
      { "id": "warren_dweller",        "name": "Warren Dweller",        "description": "Burrow speed 10 ft. through loose soil. Advantage on Stealth checks in your home warren. Community Resilience: once per long rest, when within 30 ft. of two or more allies, regain 1d4 + level HP." },
      { "id": "powerful_legs",         "name": "Powerful Legs",         "description": "Standing long jump distance equals your speed; running long jump doubles it." }
    ],
    "detriments": [
      { "id": "small_prey",            "name": "Small Prey",            "description": "Carrying capacity halved. Disadvantage on STR saves against creatures two or more sizes larger." }
    ]
  },
  {
    "id": "hare",
    "clade_id": "leporidae",
    "name": "Hare-Folk",
    "size": "medium",
    "ability_mods": { "CON": 1 },
    "base_speed_ft": 45,
    "traits": [
      { "id": "open_ground_runner",    "name": "Open Ground Runner",    "description": "Base speed 45 ft. (fastest of any species). When you Dash, you can move through enemies' spaces if you end your movement outside their reach." },
      { "id": "wild_born",             "name": "Wild Born",             "description": "Proficiency in Survival. Advantage on CON saves against environmental exposure (cold, heat, wind, rain)." },
      { "id": "jackrabbit_dodge",      "name": "Jackrabbit Dodge",      "description": "Reaction when targeted by a ranged attack you can see, with at least 5 ft. of movement space: impose disadvantage on the attack roll. Uses equal to proficiency bonus per long rest." }
    ],
    "detriments": [
      { "id": "solitary_streak",       "name": "Solitary Streak",       "description": "Cannot benefit from Community Resilience effects. Disadvantage on checks involving group coordination." },
      { "id": "exposed",               "name": "Exposed",               "description": "Cannot benefit from full cover that involves enclosed spaces smaller than your body — claustrophobia is mechanical." }
    ]
  },
  {
    "id": "bull",
    "clade_id": "bovidae",
    "name": "Bull-Folk",
    "size": "large",
    "ability_mods": { "STR": 1 },
    "base_speed_ft": 25,
    "traits": [
      { "id": "charge",                "name": "Charge",                "description": "If you move at least 20 ft. straight toward a target and hit with a horn attack, target takes +2d6 bludgeoning and makes a STR save (DC = 8 + prof + STR) or is knocked prone." },
      { "id": "iron_constitution",     "name": "Iron Constitution",     "description": "Resistance to poison damage. Advantage on saves against poison and disease." },
      { "id": "immovable_anchor",      "name": "Immovable Anchor",      "description": "Bonus action: plant yourself. Until the start of your next turn, cannot be moved against your will and AC +2. Speed becomes 0." }
    ],
    "detriments": [
      { "id": "seeing_red",            "name": "Seeing Red",            "description": "When reduced to half HP by a melee attack, WIS save (DC 13) or compelled to attack the damaging creature on next turn, ignoring tactics." },
      { "id": "hooves_not_paws",       "name": "Hooves, Not Paws",      "description": "Disadvantage on checks requiring fine manual dexterity (lockpicking, surgery, calligraphy)." }
    ]
  },
  {
    "id": "ram",
    "clade_id": "bovidae",
    "name": "Ram-Folk",
    "size": "medium",
    "ability_mods": { "WIS": 1 },
    "base_speed_ft": 30,
    "traits": [
      { "id": "mountain_born",         "name": "Mountain Born",         "description": "Climb speed equal to walking speed. Immune to altitude sickness. Advantage on DEX checks and saves on narrow, unstable, or steep surfaces." },
      { "id": "headbutt",              "name": "Headbutt",              "description": "Horn attack deals 1d10 + STR when using Charge (20-ft. run-up). Target hit must make a CON save (DC = 8 + prof + STR) or be dazed (disadvantage on next attack roll)." },
      { "id": "wool_insulation",       "name": "Wool Insulation",       "description": "Resistance to cold damage. Advantage on saves against cold environments." }
    ],
    "detriments": [
      { "id": "horizontal_pupils",     "name": "Horizontal Pupils",     "description": "Disadvantage on Perception checks requiring depth perception at distances greater than 60 ft." },
      { "id": "herd_mentality",        "name": "Herd Mentality",        "description": "When 3+ visible allies are moving in a direction, WIS save (DC 10) or feel compelled to move with them." }
    ]
  },
  {
    "id": "bison",
    "clade_id": "bovidae",
    "name": "Bison-Folk",
    "size": "large",
    "ability_mods": { "CON": 1 },
    "base_speed_ft": 25,
    "traits": [
      { "id": "stampede_engine",       "name": "Stampede Engine",       "description": "Charge deals an additional 1d6 damage. If three or more bison-folk charge the same target or area, all attacks gain +1d6." },
      { "id": "prairie_endurance",     "name": "Prairie Endurance",     "description": "March for 16 hours before exhaustion checks begin. Advantage on CON saves against effects that would slow your movement." },
      { "id": "wall_of_fur",           "name": "Wall of Fur",           "description": "Resistance to non-magical bludgeoning damage." }
    ],
    "detriments": [
      { "id": "forward_weighted",      "name": "Forward-Weighted",      "description": "Disadvantage on DEX saves and checks that require backward movement, pivoting, or rapid direction changes." },
      { "id": "stoic_to_a_fault",      "name": "Stoic to a Fault",      "description": "Disadvantage on CHA (Performance) and CHA (Persuasion) checks that require emotional expressiveness." }
    ]
  }
]
