Repository navigation
Release v4.25.0
Template applicability is now decided by the Scene engine instead of Studio. A template reference can name an own or a blueprint template with a version pin, a template must carry a category, and a picker asks one function what to offer at a target (C# and TypeScript, identical results on the shared corpus).
Added
ApplicableTemplates.Compute/applicableTemplates(library, target): own templates by category, then only the blueprints that have at least one applicable template (TPL2). A target is a scope, an optional slice kind, the container whose slots the template must fit, and the chain of templates already chosen above (no loops, TPL6). It composesTemplateApplicabilityandScreenTemplateResolverwith the per-level defaults of spec 4.2; explicitscopes/sliceKindsoverride and category never implies a scope.ApplicableTemplates.Validate/validate*ForTargetgive the reason a template does not apply.TemplateReference(sourceOwn | Blueprint,id,blueprint,versionsemver range, default^<installed>) andTemplateReferenceResolver.Resolve/resolveTemplateReferencewithResolved,Malformed,UnknownBlueprint,VersionNotSatisfied(drift) andUnknownTemplate.TemplateMetadata.sliceKinds(reusingSliceKindfrom the application structure) narrows which slice kinds a template applies to.- Catalog entries carry
warnings.
Changed
categoryis required:TemplateCatalog.Describe/describeTemplateCatalogreport a missing category (templateCategoryMissing) as a problem for a template in aBlueprintpackage and as a warning for an own template.- Every template in
blueprint.default(Foundation / <type>) andblueprint.components(Business / <domain>) now has a category; the components list/detail/command templates declare their slice kinds. template-applicability-fixtures.jsonnow covers each level, explicit scopes, slot-nesting failure, hidden blueprints, the slice-kind split, category error/warning and version-pinned references, asserted by bothEngine.Specsandenginespecs.scene-model-shape.jsonand docs (template-applicability.md,template-provenance.md) updated.
Part of #98. Spec §3.3, §4 (TPL1, TPL2, TPL5, TPL6), REN1, REN2.