[
  {
    "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": "weaver",                "name": "Weaver",                "description": "Move through any opening at least 6 inches wide. No penalty for combat in cramped spaces (tunnels, crawlspaces)." },
      { "id": "social_charm",          "name": "Social Charm",          "description": "Advantage on Deception and Persuasion checks against creatures who underestimate you for your size." }
    ],
    "detriments": [
      { "id": "small_frame",           "name": "Small Frame",           "description": "Carrying capacity halved. Heavy weapons cannot be used effectively." }
    ]
  },
  {
    "id": "badger",
    "clade_id": "mustelidae",
    "name": "Badger-Folk",
    "size": "medium",
    "ability_mods": { "CON": 1 },
    "base_speed_ft": 25,
    "traits": [
      { "id": "burrower",              "name": "Burrower",              "description": "Burrow speed of 10 ft. through loose soil, sand, or snow. Cannot burrow through stone or hardpacked earth." },
      { "id": "tenacious_grip",        "name": "Tenacious Grip",        "description": "Advantage on grapple attempts. Targets you grapple have disadvantage on checks to escape." }
    ],
    "detriments": [
      { "id": "stocky_build",          "name": "Stocky Build",          "description": "Base speed 25 ft. Disadvantage on long-jump checks." }
    ]
  },
  {
    "id": "wolverine",
    "clade_id": "mustelidae",
    "name": "Wolverine-Folk",
    "size": "medium_large",
    "ability_mods": { "STR": 1 },
    "base_speed_ft": 30,
    "traits": [
      { "id": "savage_jaws",           "name": "Savage Jaws",           "description": "Unarmed bite deals 1d8 + STR piercing. On a critical hit, the wound bleeds: 1d4 damage at the start of the target's turn for 2 turns." },
      { "id": "indomitable_ferocity",  "name": "Indomitable Ferocity",  "description": "When reduced to 0 HP, drop to 1 HP instead. Once per long rest." }
    ],
    "detriments": [
      { "id": "feared_kin",            "name": "Feared Kin",            "description": "Disadvantage on CHA (Persuasion) checks with non-Mustelid creatures who recognize your species. Wolverine reputation precedes you." }
    ]
  },
  {
    "id": "brown_bear",
    "clade_id": "ursidae",
    "name": "Brown Bear-Folk",
    "size": "large",
    "ability_mods": { "STR": 1 },
    "base_speed_ft": 30,
    "traits": [
      { "id": "rending_claws",         "name": "Rending Claws",         "description": "Unarmed claw attacks deal 1d8 + STR slashing. Two-paw rend: if both claw attacks hit the same target in one Attack action, deal an extra 1d6 damage." },
      { "id": "winter_hibernation",    "name": "Winter Hibernation",    "description": "Once per year, enter a deep restorative sleep for 1d4 weeks. On waking, fully heal and remove all levels of exhaustion." }
    ],
    "detriments": []
  },
  {
    "id": "polar_bear",
    "clade_id": "ursidae",
    "name": "Polar Bear-Folk",
    "size": "large",
    "ability_mods": { "WIS": 1 },
    "base_speed_ft": 30,
    "traits": [
      { "id": "arctic_adaptation",     "name": "Arctic Adaptation",     "description": "Resistance to cold damage. Immunity to environmental cold effects. Swim speed equal to walking speed." },
      { "id": "white_pelt",            "name": "White Pelt",            "description": "Advantage on Stealth checks in snow, ice, or arctic terrain." }
    ],
    "detriments": [
      { "id": "polar_appetite",        "name": "Polar Appetite",        "description": "Requires triple rations daily. Without them, gain a level of exhaustion every 8 hours." }
    ]
  },
  {
    "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": "moose",
    "clade_id": "cervidae",
    "name": "Moose-Folk",
    "size": "large",
    "ability_mods": { "CON": 1 },
    "base_speed_ft": 30,
    "traits": [
      { "id": "broad_antlers",         "name": "Broad Antlers",         "description": "Antler attack deals 1d10 + STR piercing. Charging attack: if you move at least 20 ft. straight before attacking, target makes a STR save (DC = 8 + prof + STR) or is knocked prone." },
      { "id": "swamp_strider",         "name": "Swamp Strider",         "description": "No movement penalty in marsh, mud, snow, or shallow water." }
    ],
    "detriments": []
  },
  {
    "id": "rabbit",
    "clade_id": "leporidae",
    "name": "Rabbit-Folk",
    "size": "small",
    "ability_mods": { "WIS": 1 },
    "base_speed_ft": 30,
    "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." }
    ]
  }
]
