Field note / structure
Two languages, one design
Language-agnostic design lives once; TypeScript and Python implement it in lockstep.
Shared design
README, changelog, and docs hold the language-agnostic reasoning.
Mirrored packages
Core, math, evaluators, feedback, estimation, terminal, and constraints exist on both sides.
Change order
The design changes first, then both implementations land together.