{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/continuum/v1/edge/server_message.schema.json", "title": "EdgeServerMessage", "description": "What continuum-backend sends back down the same WebSocket. Discriminated on 'type'; snake_case for the same reason as EdgeClientMessage.", "oneOf": [ { "type": "object", "title": "HelloAck", "properties": { "type": { "const": "hello_ack" }, "session_id": { "type": "string" } }, "required": ["type", "session_id"] }, { "type": "object", "title": "HelloError", "description": "The handshake was rejected. The connection closes immediately after this.", "properties": { "type": { "const": "hello_error" }, "message": { "type": "string" } }, "required": ["type", "message"] }, { "type": "object", "title": "HeartbeatAck", "properties": { "type": { "const": "heartbeat_ack" }, "seq": { "type": "integer", "minimum": 0, "description": "Echoes the seq from the heartbeat being acknowledged." } }, "required": ["type", "seq"] }, { "type": "object", "title": "Command", "description": "Do something to one printer on this gateway. Answered with a client command_result carrying the same command_id.", "properties": { "type": { "const": "command" }, "command_id": { "type": "string" }, "printer_id": { "type": "string", "description": "The gateway's own printer id, not the backend UUID - the backend translates on the way out, so a gateway never has to know its printers' cloud identities." }, "command": { "$ref": "./printer_command.schema.json" } }, "required": ["type", "command_id", "printer_id", "command"] } ] }