Persistent per-file compile cache. Skips lex/parse/transform/codegen
(and the sidecar dispatch) for unchanged inputs by hashing the source
together with the build config and stashing the resulting record on
disk. Cache hits are O(read JSON + parse).
dmc-schema descriptor -> TypeScript type emitter. Drives the typed
interfaces in the generated index.d.ts. Mirrors the kinds accepted
by dmc_schema::compile_descriptor; unknown shapes fall back to
unknown so the build never fails on an unrecognised descriptor.