Schema reference

Validation rules

The Pydantic / JSON Schema layer enforces the rules below. Each carries a stable SIG### identifier so importers, the Data Explorer and generated reports can surface them by code.

IDSeverityRule
SIG001errorEvery interface.from_ref and interface.to_ref system_id resolves in components[*].id.
SIG003errorEvery party_id in signal.vendor_io_mappings[*] exists in parties[*].id.
SIG004errorfunction.id is unique within the project.
SIG005errorsignal.id is unique within the project signal registry.
SIG006errorEvery connections[*].signal matches an existing signals[*].id.
SIG007errorEach component.modes[*].id is unique within the component.
SIG008errorEvery function.component_id reference resolves in components[*].id.
SIG014errorA released artefact (status: released) must define contract_version and published_at.
SIG015errorconnectedTo must link Port -> Port only.
SIG016erroractUpon must link Port -> Signal only.
SIG021errorIf port.direction is out, both port_type and protocol must be provided.
SIG022errorEvery function.modes[*] entry must exist in component.modes[*].id for that function's component_id.
SIG023errorIf port.module_id is set, it must exist in component.modules[*].id for that same component.
SIG018errorArtefact lifecycle coherence: deprecated/withdrawn lifecycle states require matching metadata fields.
SIG019errorDeprecated elements must set deprecated_at and sunset_at; withdrawn elements must set replaced_by.
SIG020errorLineage hops must reference known parties and use contiguous step numbering with matching input/output contracts.
SIG024errorIf component.vendor is set, the referenced parties[*] entry must have kind equal to vendor.

SIG007, SIG022

mode and authority checks
  • SIG007: a component cannot define duplicate mode IDs in its canonical mode catalog.
  • SIG022: function mode references must be a subset of the selected component's canonical mode IDs.

SIG015–SIG016, SIG021

ontology checks
  • SIG015: validate that each connectedTo edge references valid ports on both ends.
  • SIG016: validate that each actUpon edge references one valid port and one valid signal.
  • SIG021: enforce interface completeness for outbound ports by requiring port_type and protocol when direction=out.