Composition that matches the domain
Independent records link through relationships. Dependent children live as sub-entities under a parent. Arrays of entity references point at peers. The model chooses the shape; the engine enforces it.
Engine
The engine is not a code generator. It is the interpreter and guardian of your business specification — from validation through authorized writes.
The executor speaks a fixed vocabulary — create entity, update entity, delete, relationship changes, workflow transitions, and related primitives. Domain meaning lives in commands and rules, not in inventing new action types for every noun (“stockDecrease” is an update plus rules, not a new verb in the kernel).
Subjects, roles, ownership, and field-level policies are part of the model. The engine decides access the same way it decides invariants: explicitly, before state changes stick.
Independent records link through relationships. Dependent children live as sub-entities under a parent. Arrays of entity references point at peers. The model chooses the shape; the engine enforces it.
Models can propose definitions. The compiler is the gate. That split is intentional: generative speed on the way in, deterministic execution on the way through.