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).

Related database section: Feats & Traits — e.g. Arcane Strike.