| { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "$id": "https://ortho32.dev/schemas/fabric-completion.schema.json", |
| "title": "FabricCompletion", |
| "description": "Fabric completion for a FabricCommand. Cycles are architectural integers (deterministic logical time) not wall-clock nanoseconds. Completion is matched by sequence.", |
| "type": "object", |
| "properties": { |
| "sequence": { |
| "type": "integer", |
| "minimum": 0, |
| "description": "Echoed sequence from FabricCommand for matching" |
| }, |
| "status": { |
| "type": "string", |
| "enum": ["OK", "ERROR", "TIMEOUT", "REJECTED"], |
| "description": "Completion status" |
| }, |
| "acceptedCycle": { |
| "type": "integer", |
| "minimum": 0, |
| "description": "Architectural cycle when fabric accepted the command. Integer logical time, NOT wall-clock. Deterministic." |
| }, |
| "completionCycle": { |
| "type": "integer", |
| "minimum": 0, |
| "description": "Architectural cycle when command completed. Integer logical time, NOT wall-clock. Deterministic. Must be >= acceptedCycle." |
| }, |
| "resultHash": { |
| "type": "string", |
| "pattern": "^[0-9a-fA-F]{64}$", |
| "description": "SHA-256 hex of result payload" |
| }, |
| "traceRoot": { |
| "type": "string", |
| "pattern": "^[0-9a-fA-F]{64}$", |
| "description": "Merkle root (SHA-256 hex) of ExecutionTrace for this command" |
| } |
| }, |
| "required": ["sequence", "status", "acceptedCycle", "completionCycle", "resultHash", "traceRoot"], |
| "additionalProperties": false |
| } |
|
|