A functional toolkit for authoring resource-leveling algorithms — compose constraint and scoring blocks, enumerate feasible schedules
0

Configure Feed

Select the types of activity you want to include in your feed.

fix(level-blocks): exhaustiveness guard on the family switch

A BlockFamily member added later would have fallen through the switch
and been silently dropped from CompiledFamilies. The never-typed
default makes that a compile error and a loud runtime failure.

Russ T. Fugal (Jun 12, 2026, 3:25 AM -0600) 414eee12 143748f0

+4
+4
src/level-blocks/compile.ts
··· 70 70 case "collector": 71 71 collectors.push(compiled); 72 72 break; 73 + default: { 74 + const exhaustive: never = def.family; 75 + throw new Error(`Unhandled block family: ${String(exhaustive)}`); 76 + } 73 77 } 74 78 } 75 79