syntax = "proto3"; package archive_control.v1; import "archive_control/v1/client.proto"; import "archive_control/v1/common.proto"; import "archive_control/v1/control.proto"; import "archive_control/v1/inventory.proto"; import "google/protobuf/timestamp.proto"; // Envelope is the only top-level WebSocket application message. UUID fields // use lowercase canonical UUID text. correlation_id links a response/event to // the initiating envelope when applicable. message Envelope { ProtocolVersion protocol_version = 1; string message_id = 2; string correlation_id = 3; google.protobuf.Timestamp sent_at = 4; oneof payload { RegisterRequest register_request = 10; RegisterResponse register_response = 11; Heartbeat heartbeat = 12; HeartbeatAck heartbeat_ack = 13; Command command = 14; CommandAck command_ack = 15; InventoryChunk inventory_chunk = 16; JobEvent job_event = 17; JobSnapshot job_snapshot = 18; ClientStateSnapshot client_state_snapshot = 19; RouteUpdate route_update = 20; ProtocolError protocol_error = 21; } }