9c53f74124
PF2e characters were generated with the 5e method (standard array / 27-pt point-buy / 4d6) and never applied ancestry/background/class attribute boosts, so every derived stat was wrong. The PF2e ability step is now boost-based: - Every score starts at 10; ancestry fixed boosts + flaw, ancestry free boost(s), background (choose-one + free), class key ability, and 4 free boosts are applied with the +2-below-18 / +1 rule (pf2eApplyBoosts). - Boost data parsed from the bundled ancestry/background fields (parseAncestryBoosts, parseBackgroundBoosts, parseFlaw). Defaults are a legal, class-favoring assignment; same-source duplicate boosts are disabled in the pickers (PF2e doesn't allow them). - Live ability cards show the computed scores. 5e keeps array/point-buy/manual. Verified in-app (Dwarf Alchemist Acolyte → STR 14/DEX 12/CON 14/INT 18/WIS 12/CHA 8, flaw + fixed boosts correct). Pure core has 8 unit tests. 5e path unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>