Where features come from: provenance chains
Counted from logic/feature-origin.jsonl (4,642 features with fully
traced grant chains) and logic/progression-links.jsonl (4,100
progression edges) — build 20212986, patch 2.7.0x.
Ask "where did this character get Precise Strike?" and the honest answer is usually "several ways at once." We traced every feature's grant chain to its roots. The graph is deeper and more redundant than the feat list suggests.
The terminal verbs
How the 4,642 traced features finally land on a unit:
| Via | Features | |---|---:| | selection (you picked it) | 1,805 | | progression (class granted it) | 1,574 | | archetype-add | 998 | | archetype-remove | 265 |
That last row matters: 265 feature-grants in the shipped data are deletions — archetype diffs unwinding what the base class added.
Chains run deep
Grant chains aren't one hop. Depth distribution across features: 2,220 resolve in a single link, but 935 need two, 412 three, and the tail runs long — the deepest chain in the file is Animal Companion at 427 origins, because every class's companion progression in the game grants it. Selections nest inside selections; features are granted by features granted by archetypes.
Redundancy is the norm
2,422 of 4,642 features (52%) are reachable through more than one origin path. A combat feat can come from your class's odd-level schedule, a fighter-only bonus pool, or an archetype graft — three distinct routes to the same blueprint. This is why "where do I get X?" has multiple right answers in WotR and why build planners must union paths instead of picking one.
The other graph
progression-links.jsonl adds 4,100 edges between progressions
themselves: fact references dominate (3,467 — a progression reading
another's state), then feature references (446) and explicit
prerequisite-for links (137).
Per-feature origins render on every page in our Feats section.
Sources
logic/feature-origin.jsonl— per-feature grant chains, each link attributed via/level/origin.logic/progression-links.jsonl— progression-to-progression edges.- Build: 20212986 (patch 2.7.0x).