Skip to content

Architecture decision records ​

An ADR records a decision that constrains future work: the context that forced it, the choice made, and the consequences accepted. They are immutable once accepted — a reversal is a new record that supersedes the old one, not an edit.

Records here describe decisions that are already embodied in the code. Where a decision is still open, it is on the roadmap instead.

Use _template.md for new records.

Index ​

#TitleStatus
0001Entity graph free of domain semantics and serializationAccepted
0002Codec as a trait owned by the model crateAccepted
0003Domain crates as borrowed viewsAccepted
0004Geometry bridge, not geometry kernelAccepted
0005Scaffold modules declare ownership without claiming capabilityAccepted; points 1 and 3 superseded by 0019
0006Facade features default to thinAccepted
0007Authoring is a schema-layer concern, not a model-layer oneAccepted
0008Fixed slot constants for stable relationshipsAccepted
0009DERIVED attributes resolve through the parent contextAccepted
0010Checked mutation is a model-level primitive, not a bare accessorAccepted
0011Geometry authoring is bidirectional inside the bridgeAccepted
0012Geometry backends are swappable, whole or per areaAccepted
0013Language bindings wrap the facade, one crate per targetAccepted
0014Net geometry is an explicit request; openings are exact booleansAccepted
0015Strict STEP reads validate eagerly and decode lazilyAccepted
0016Open work lives in issues, not in checked-in plansAccepted
0017Versioned PSD/QTO template catalogsAccepted
0018Kernel-free geometry is a feature, not a crateAccepted
0019Planned work is an issue, not a placeholder fileAccepted
0020IFC5 is a separate family; no IFC-JSON codecAccepted
0021Bindings carry placements by default and meshes on requestAccepted
0022Undo records exact inverses in the modelAccepted

Released under the AGPL-3.0-or-later licence. ISO and CEN standards material is not redistributed.