OptionalelementsMap of IFC type → entity count to fabricate.
OptionalextraOptional extra properties merged into ctx.bim.
Display id (used to resolve fixture: "<name>" in manifest.tests).
OptionalschemaSchema version surfaced via ctx.bim.schema.
Synthetic fixture support for the test runner.
The authoring loop's tests need to run against something — but shipping real IFC files in every bundle's
tests/models/is heavy and brittle. Synthetic fixtures fix this by constructing a small in-memory mockbimctx from a structured spec:{ schema: 'IFC4', elements: { IfcWall: 12, IfcSlab: 4, }, }
Test handlers see a
ctx.bimwhosequery.byType(type)returns sequential pseudo-entity-ids matching the declared count. This is deliberately minimalist: enough surface to exercise the call shape of an authored handler, not enough to mimic real IFC semantics. The test runner consumes the result via theloadFixturecallback we already plumbed in.Spec: docs/architecture/ai-customization/04-ai-authoring.md §7.2.