syntax = "proto3"; option go_package = "relay/internal/proto"; import "types.proto"; import "latency_tracker.proto"; package proto; message ProtoMessageBase { string payload_type = 1; ProtoLatencyTracker latency = 2; } message ProtoMessage { ProtoMessageBase message_base = 1; oneof payload { // Input types ProtoMouseMove mouse_move = 2; ProtoMouseMoveAbs mouse_move_abs = 3; ProtoMouseWheel mouse_wheel = 4; ProtoMouseKeyDown mouse_key_down = 5; ProtoMouseKeyUp mouse_key_up = 6; ProtoKeyDown key_down = 7; ProtoKeyUp key_up = 8; // Controller input types ProtoControllerAttach controller_attach = 9; ProtoControllerDetach controller_detach = 10; ProtoControllerRumble controller_rumble = 11; ProtoControllerStateBatch controller_state_batch = 12; // Signaling types ProtoICE ice = 20; ProtoSDP sdp = 21; ProtoRaw raw = 22; ProtoClientRequestRoomStream client_request_room_stream = 23; ProtoClientDisconnected client_disconnected = 24; ProtoServerPushStream server_push_stream = 25; } }