Glossary

Element

Base authoring type. System, Part, and Requirement all derive from this.

System

Top-level composition type and configured root. A System owns the Part tree and the Requirement tree, and declares allocate wiring between them. Must call model.name(...) exactly once in define().

Part

Composable structural type nested under a System. Declares model.parameter, model.attribute, model.constraint, and model.composed_of in its define(). Must call model.name(...) exactly once.

Requirement

Composable requirements package type. Declares executable checks using the same model.parameter / model.attribute / model.constraint surface as a Part. Must call model.name(...) and model.doc(...) exactly once in define(). Mounted on a System via model.composed_of(name, RequirementType).

ModelDefinitionContext

The model argument in define(cls, model). Records declarations and edges during type authoring. Frozen automatically after define() returns.

model.name

model.name(str) — declares a human-readable snake_case identifier for any element (Part, System, or Requirement). Required exactly once per define().

model.doc

model.doc(str) — declares the primary “shall” statement for a Requirement. Required exactly once per Requirement.define(). Not available on Part or System.

model.composed_of

model.composed_of(name, ChildType) — unified composition primitive. Dispatches to PartRef or RequirementRef based on whether ChildType is a Part or Requirement subclass. Replaces the old model.part(name, Type) and model.requirement_package(name, Type).

model.parameter

model.parameter(name, unit=...) — declares a bindable input slot on a Part or Requirement. Values are supplied at evaluation time via the inputs= map. On a Requirement, parameter slots are wired at allocation time via allocate(..., inputs=...).

model.attribute

model.attribute(name, unit=..., expr=...) — declares a derived value slot computed from an expression over other slots. Use computed_by= to bind an external compute backend.

model.constraint

model.constraint(name, expr=...) — declares a boolean pass/fail check. Results appear in RunResult.constraint_results.

allocate

model.allocate(req_ref, target_ref, inputs={...}) — links a Requirement package to a target Part. The inputs dict maps parameter names declared in the requirement class to AttributeRef slots on the Part (or System-level parameters). Produces ConstraintResult rows tagged with requirement_path and allocation_target_path.

Ref / PartRef / AttributeRef / RequirementRef

Symbolic references created at definition time. Returned by model.composed_of, model.parameter, model.attribute, etc. Not runtime instances — they are used for wiring expressions and allocations.

compile (type compile)

Transforms declaration recording into cached compiled artifacts with validation. Triggered lazily by instantiate() or explicitly by compile_type().

ConfiguredModel

Frozen instantiated topology for one root System type. Holds the instance graph, path registry, and compiled graph cache. Created by instantiate(SystemType).

ValueSlot

Topology-level value cell (parameter or attribute) keyed by a stable id string. Access via cm.root.child_name.slot_name. Use as keys in cm.evaluate(inputs={slot: qty}).

RunContext

Per-run mutable state container. Holds bound inputs, realized values, and constraint results. Created automatically by cm.evaluate(), or manually for the explicit pipeline.

DependencyGraph

Bipartite graph of value nodes and compute nodes used for topological evaluation order. Built by compile_graph(cm).

Evaluator

Runs graph nodes in topological order and writes outcomes into a RunContext. Created by Evaluator(graph, compute_handlers=handlers).

RunResult

Summary of one evaluation run: .passed (bool), .constraint_results (list of ConstraintResult), and .outputs (dict of stable_id → Quantity).

ConstraintResult

Result row for one constraint check. Fields include name, passed, requirement_path (dot-separated path of the owning Requirement package, or None for Part constraints), and allocation_target_path (path of the allocated Part, or None).

ExternalComputeBinding

Binding from internal AttributeRef slots to an external compute backend. Passed to model.attribute(..., computed_by=ExternalComputeBinding(...)).

BehaviorTrace

Structured trace of behavioral dispatch actions (transitions, decisions, merges, item flows, etc.) produced by the behavior evaluation engine.

Scenario

Authored expected behavior contract used by validate_scenario_trace.

Stable ID

Deterministic string identifier derived from configured root type and full instance path. Used as input keys in the explicit Evaluator pipeline.

ExternalCompute / AsyncExternalCompute

Protocols for external backends. Implement name property and compute(inputs) / compute_async(inputs). Optionally implement validate_binding(...) from ValidatableExternalCompute.