Archetypes are diff patches, not classes
Counted from logic/archetype-features.jsonl and the class entities —
build 20212986, patch 2.7.0x.
Pick an archetype and the game doesn't swap in a new class. It applies a short edit script to the one you have. The data records every script:
219 archetypes across 33 classes, each a bundle of add-feature / remove-feature operations plus rarer rewrites — 1,298 additions and 1,235 removals in total. That's the entire mechanism. No hidden stat changes, no separate progression trees.
The grammar
| Operation | Count | Meaning | |---|---:|---| | addFeatures | 1,298 | graft on new abilities/progressions | | removeFeatures | 1,235 | delete class-granted ones | | replaceSpellbook | 21 | rewrite casting entirely | | changeCasterType | 4 | arcane ↔ divine conversion |
The near-symmetry of adds and removes is the design philosophy: an archetype is a trade, roughly one ability out for one in, not an upgrade. When a guide calls an archetype "strictly better," the diff says otherwise — something was deleted to pay for it.
Who has the most
Eight archetypes each for Bard, Bloodrager, Cavalier, Fighter, Magus, and Monk — the martial-and-gish classes carry the customization load, while casters lean on their 21 spellbook replacements instead (Sage and Empyreal Sorcerer among them, each shipping a wholly new spellbook).
The four changeCasterType entries are the rarest operation in the
file — full arcane/divine conversions that touch how every spell slot
on the sheet is computed.
Reading class pages with this in mind
Every class page in our Classes section renders the class as-shipped; pick an archetype and you're looking at base-class minus the removed set plus the added one. The planner composes exactly this diff at build time — which is why archetype picks there can remove things you'd otherwise take for granted.
Sources
logic/archetype-features.jsonl— per-architecture add/remove/ spellbook/caster operations, guid-attributed.- Class entities — archetype membership per class.
- Build: 20212986 (patch 2.7.0x).