| { |
| "$schema": "https://json-schema.org/draft/2020-12/schema", |
| "$id": "https://ortho32.dev/schemas/fabric-command.schema.json", |
| "title": "FabricCommand", |
| "description": "Logical fabric command submitted to ORTHO-32 fabric. Applications program against FabricCommand only and never write PCIe BAR registers directly.", |
| "type": "object", |
| "properties": { |
| "opcode": { |
| "type": "string", |
| "enum": ["EXECUTE", "STEP", "TENSOR", "PROBE", "RESET", "ATTEST"], |
| "description": "Fabric opcode. Logical API, not a BAR offset." |
| }, |
| "device": { |
| "type": "string", |
| "description": "Stable target device identifier (OrthoDeviceId)" |
| }, |
| "address": { |
| "type": "string", |
| "pattern": "^0x[0-9a-fA-F]+$", |
| "description": "Typed address in ORTHO memory map (FabricAddress), hex-encoded" |
| }, |
| "length": { |
| "type": "integer", |
| "minimum": 0, |
| "description": "Payload length in bytes" |
| }, |
| "epoch": { |
| "type": "integer", |
| "minimum": 0, |
| "description": "Epoch counter for deterministic arbitration (FabricEpoch)" |
| }, |
| "slot": { |
| "type": "integer", |
| "minimum": 0, |
| "description": "Slot in static grant table (FabricSlot)" |
| }, |
| "sequence": { |
| "type": "integer", |
| "minimum": 0, |
| "description": "Monotonic sequence number for completion matching" |
| }, |
| "payloadHash": { |
| "type": "string", |
| "pattern": "^[0-9a-fA-F]{64}$", |
| "description": "SHA-256 hex digest of payload (64 hex chars)" |
| }, |
| "flags": { |
| "type": "integer", |
| "minimum": 0, |
| "description": "Bit flags for command options" |
| } |
| }, |
| "required": ["opcode", "device", "address", "length", "epoch", "slot", "sequence", "payloadHash", "flags"], |
| "additionalProperties": false |
| } |
|
|