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

feat(level-blocks): derived block metadata (deriveBlockMeta/dumpBlockMeta) master

Port a zod→JSON-Schema walk into src/level-blocks/meta.ts, minus all Blockly assembly: deriveBlockMeta flattens a block's input schema into editable scalar fields (date/number/slider/dropdown/checkbox with labels/bounds/defaults), variadic scalar-array params, and complex (field-less) params, alongside the block's family/tier/doc/shadow and its JSON-Schema. dumpBlockMeta wraps the whole registry with the composition grammar. Exports the ISO-date pattern both sides agree on by construction. Zod-only, exported from levelset/leveling.


+565
3 changed files