What
Plan a full 1→20 build (choices per level), scrub a level slider and watch AC/HP/attacks/DCs/resources evolve, and diff two plans side-by-side (e.g. Fighter 11 vs Fighter 8/Rogue 3 — where do the curves cross?).
Why (differentiator)
Nobody does build planning well — the community lives in spreadsheets and rpgbot tables.
Implementation notes
computeDerivedCharacter is a pure function of (choices, level); running it for levels 1–20 is a loop over the same inputs with level-gated choices applied.
- Needs a "planned choices by level" structure (ASI/feat picks, subclass, technique/knack/upgrade selections per level) — the multiclass
character_classes model plus existing choice storage covers most of it.
- Chart the curves (AC/HP/attack bonus/save DC by level); the diff view is two derived-series rendered together.
- Stretch: export the plan as a shareable artifact (pairs with the wiring-pack format).
What
Plan a full 1→20 build (choices per level), scrub a level slider and watch AC/HP/attacks/DCs/resources evolve, and diff two plans side-by-side (e.g. Fighter 11 vs Fighter 8/Rogue 3 — where do the curves cross?).
Why (differentiator)
Nobody does build planning well — the community lives in spreadsheets and rpgbot tables.
Implementation notes
computeDerivedCharacteris a pure function of (choices, level); running it for levels 1–20 is a loop over the same inputs with level-gated choices applied.character_classesmodel plus existing choice storage covers most of it.