Debt (their decision 6, planned): framing math implemented 3× (members.js, Python generator, pre-baked BREPs), held equal only by parity tests. Consolidate to one source (likely a shared spec → members representation both compilers consume; browser BREPs stay pre-baked but derive from the single source at bake time).
Order: after the five Critical fixes above land (don't refactor and fix simultaneously).
Acceptance: one enumerator; parity tests become identity checks; CI green at equal or better coverage.
Debt (their decision 6, planned): framing math implemented 3× (members.js, Python generator, pre-baked BREPs), held equal only by parity tests. Consolidate to one source (likely a shared spec → members representation both compilers consume; browser BREPs stay pre-baked but derive from the single source at bake time).
Order: after the five Critical fixes above land (don't refactor and fix simultaneously).
Acceptance: one enumerator; parity tests become identity checks; CI green at equal or better coverage.