Modeller
Reference

Template packs

Independently versioned, validated template adapters for deterministic generation.

A template pack declares its identity, version, generation contract, renderer requirement, reusable output recipes, definition scopes, confined path patterns, and pinned templates.

TemplatePackLoader.Load validates a supplied manifest and template set without planning, rendering, discovery side effects, or filesystem writes. Reordering manifest properties or artifact declarations produces the same normalized descriptor digest. Missing templates, path traversal, duplicate output paths, and incompatible generation or renderer contracts fail before planning.

The reference csharp/domain-project pack declares context, Entity, Enumeration, Rule, and Behaviour recipes. Applying it to Child Care discovers the matching canonical definitions and creates concrete artifact descriptors. No recipe or template names Booking, Determine ACCS eligibility, or Submit application.

Validated descriptors feed generation planning, and pinned template bytes feed template rendering.

Manifest identity

Every manifest declares id, packVersion, generationContractVersion, rendererId, rendererVersion, and language. rendererId/rendererVersion are the compatibility seam: TemplatePackLoader.Load rejects any pack whose pair isn't in the caller's supplied allow-list, before planning. language is descriptive metadata that selects which registered renderer capability applies among renderers sharing the same rendererId/rendererVersion — it never gates compatibility by itself; a supported rendererId/rendererVersion paired with an unrecognized language fails with a distinct template-pack.renderer-unsupported diagnostic one layer up, when the caller resolves a capability. See renderer capability resolution.

On this page