A.6.7:4.4 - SuiteProtocols
A suite MAY describe allowed protocols (pipelines) as descriptive constraints on how suite members are intended to be composed. A SuiteProtocol describes the member-operation sequence. Its description:
- MUST name the member mechanisms it uses (explicitly; no “implicit use”),
- MAY mark steps as optional,
- MUST NOT introduce hidden crossings or hidden admissibility steps,
- MUST identify any “publish/telemetry” as an external step of the surrounding protocol, realized through existing publication surfaces (e.g., Part G shipping), rather than as a hidden tail inside a mechanism. This external step is not a
ProtocolStepin the suite-member sequence.
A canonical shape for the suite-member sequence:
SuiteProtocol := ⟨
steps: [ ProtocolStep₁, …, ProtocolStepₙ ],
invariants?: ProtocolInvariant[*],
notes?: DidacticNotes
⟩
ProtocolStep := ⟨
mechanism: MechanismDeclarationRef, // resolves to the exact selected edition
operation: declaration-local operationDesignator,
optionality: {required|optional},
requires_pins?: PinRef[*]
⟩