Something went wrong. Try again.
A functional toolkit for authoring resource-leveling algorithms — compose constraint and scoring blocks, enumerate feasible schedules
Something went wrong. Try again.
feat(level-blocks): family composition rules as registry data master
Lift the family grammar into src/level-blocks/composition.ts as pure data and predicates: FAMILY_ORDER, FAMILY_FOLLOWS, canFollow, sortIntoBandOrder, and FAMILY_CARDINALITY. validateGraph now loops over FAMILY_CARDINALITY instead of hard-coding the exactly-one-search check — behavior identical, existing tests unchanged — so a future per-family bound is a data edit. This is the levelset-side source of truth a canvas connection checker mirrors; a canFollow table test captures the contract so the vendor sync can delete its own copy.
Author Russ T. Fugal Date (Jul 16, 2026, 10:20 PM UTC) Commit ff991b2f ff991b2ff4f607bf7e10eaf49d5ff24c9e2ca082 Parent 1e4486c6 1e4486c6d4b7bff9dcf5bf62c7b2677596b68ad7