M6.14: Single-column card layout with clade/species descriptions

Switch Step 0 (Clade) and Step 1 (Species) from a 3-column card grid
to a 1-column layout, with each card carrying a codex-voice
description paragraph between the meta line and the trait chips.
Rationale: establish the world's tone before mechanics — the player
reads who Canidae or Wolf-Folk *are* before evaluating ability mods
and trait pills. Trade is more vertical scrolling, but the card
content was already going wider than three columns comfortably
allowed once the parchment theme bumped padding.

Schema: CladeDef and SpeciesDef gain a Description field (string,
empty default). Populated for all 7 clades and 19 species, sourced
from the doc's italicized blockquote + a one-sentence summary of
the prose paragraph that follows. Empty descriptions fall through
silently — a species without a description still renders, just
without the paragraph.

UI: MakeGrid in both steps becomes Columns = 1 with ExpandFill;
BuildCard sets card.SizeFlagsHorizontal = ExpandFill (replaces the
fixed CustomMinimumSize 200) and prepends the autowrap description
label after the meta line. Hybrid mode stacks sire and dam single-
column grids vertically — same logic as before, just one card wide
each.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Christopher Wiebe
2026-05-04 21:47:00 -07:00
parent 067038de45
commit 66055f9549
6 changed files with 69 additions and 8 deletions
+7
View File
@@ -3,6 +3,7 @@
"id": "canidae",
"name": "Canidae",
"kind": "predator",
"description": "\"We were the first to hunt together, the first to howl in harmony, and the first to sit across from prey and call it diplomacy.\"\n\nPack-hunters who became civilization-builders, defined by social cohesion, hierarchical instinct, and supernatural scent-reading. Disproportionately represented in military, law enforcement, and governance.",
"ability_mods": { "CON": 1, "WIS": 1 },
"languages": ["common", "canid"],
"traits": [
@@ -19,6 +20,7 @@
"id": "felidae",
"name": "Felidae",
"kind": "predator",
"description": "\"We do not need your pack. We do not need your herd. We need only what is ours, and we will take it when you look away.\"\n\nPrecision predators built for explosive power, preternatural reflexes, and absolute independence. They dominate fields requiring solo brilliance — surgery, assassination, fine art, engineering.",
"ability_mods": { "DEX": 1, "CHA": 1 },
"languages": ["common", "felid"],
"traits": [
@@ -36,6 +38,7 @@
"id": "mustelidae",
"name": "Mustelidae",
"kind": "predator",
"description": "\"Small doesn't mean weak. It means you have to be smarter, meaner, and faster than everyone who thinks size is the only thing that matters.\"\n\nThe most physically diverse Clade — weasel-folk, ferret-folk, badger-folk, wolverine-folk, otter-folk — united by furnace metabolisms, ferocity wildly disproportionate to body size, and a reputation for being impossible to pin down.",
"ability_mods": { "DEX": 1, "INT": 1 },
"languages": ["common", "mustelid"],
"traits": [
@@ -52,6 +55,7 @@
"id": "ursidae",
"name": "Ursidae",
"kind": "predator",
"description": "\"The bear doesn't chase. The bear waits. And eventually, everything comes to the bear.\"\n\nThe largest sentient Clade. Slow to anger, slow to move, slow to decide — and catastrophically powerful when any of those things finally tips. Frequently underestimated intellectually because size reads as simplicity; in truth, Ursidae civilizations produced some of the finest philosophy, architecture, and brewing in the world.",
"ability_mods": { "DEX": -1, "CON": 2 },
"languages": ["common", "ursid"],
"traits": [
@@ -68,6 +72,7 @@
"id": "cervidae",
"name": "Cervidae",
"kind": "prey",
"description": "\"We were the first to know that every shadow could be death. That knowledge made us sharper than any claw.\"\n\nDeer-folk, elk-folk, moose-folk — defined by hypervigilance, explosive athleticism, and a cultural philosophy forged in millennia of being hunted. They have turned survival into a technology, a philosophy, and occasionally a weapon.",
"ability_mods": { "DEX": 1, "WIS": 1 },
"languages": ["common", "cervid"],
"traits": [
@@ -84,6 +89,7 @@
"id": "bovidae",
"name": "Bovidae",
"kind": "prey",
"description": "\"The wall holds because we hold it. When the wolves came, we didn't run. We stood, shoulder to shoulder, horns out, and we held.\"\n\nBull-folk, bison-folk, ram-folk, goat-folk — the heaviest prey Clade, defined by communal endurance, raw physical power, and a cultural identity built on the principle that strength means staying.",
"ability_mods": { "STR": 1, "CON": 1 },
"languages": ["common", "bovid"],
"traits": [
@@ -100,6 +106,7 @@
"id": "leporidae",
"name": "Leporidae",
"kind": "prey",
"description": "\"We don't fight. We outrun, outbreed, outthink, and outlast. You want to call that weakness? We'll be here when you're gone.\"\n\nThe smallest common prey Clade — rabbit-folk and hare-folk — surviving through explosive speed, prodigious reproduction, community networks, and a cultural genius for making themselves indispensable. They dominate medicine, communications, logistics, and information brokering.",
"ability_mods": { "STR": -1, "DEX": 2 },
"languages": ["common", "leporid"],
"traits": [