{"asyncapi":"3.0.0","info":{"title":"BeatKhana Socket.IO API","version":"0.1.0","description":"Socket.IO command packets use MessagePack payloads and Socket.IO acknowledgements. Live subscription updates remain server-emitted events. This document is intentionally machine-readable AsyncAPI; Swagger/OpenAPI remains for REST."},"servers":{"production":{"host":"wss.beatkhana.com","protocol":"wss"},"staging":{"host":"wss.staging.beatkhana.com","protocol":"wss"},"local":{"host":"localhost:48522","protocol":"ws"}},"channels":{"authenticate":{"address":"authenticate","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `authenticate` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `authenticate:response` payload shape when applicable.","x-socketio":{"ack":true}},"subscribe":{"address":"subscribe","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `subscribe` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `subscribe:response` payload shape when applicable.","x-socketio":{"ack":true}},"donation:subscribe":{"address":"donation:subscribe","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `donation:subscribe` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `donation:subscribe:response` payload shape when applicable.","x-socketio":{"ack":true}},"donation:unsubscribe":{"address":"donation:unsubscribe","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `donation:unsubscribe` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `donation:unsubscribe:response` payload shape when applicable.","x-socketio":{"ack":true}},"getTournamentOverlay":{"address":"getTournamentOverlay","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `getTournamentOverlay` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `getTournamentOverlay:response` payload shape when applicable.","x-socketio":{"ack":true}},"startSelectedMatch":{"address":"startSelectedMatch","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `startSelectedMatch` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `startSelectedMatch:response` payload shape when applicable.","x-socketio":{"ack":true}},"endSelectedMatch":{"address":"endSelectedMatch","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `endSelectedMatch` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `endSelectedMatch:response` payload shape when applicable.","x-socketio":{"ack":true}},"setTournamentOverlayMatch":{"address":"setTournamentOverlayMatch","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `setTournamentOverlayMatch` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `setTournamentOverlayMatch:response` payload shape when applicable.","x-socketio":{"ack":true}},"setTournamentOverlayPermissions":{"address":"setTournamentOverlayPermissions","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `setTournamentOverlayPermissions` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `setTournamentOverlayPermissions:response` payload shape when applicable.","x-socketio":{"ack":true}},"setMatchOverlayTAData":{"address":"setMatchOverlayTAData","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `setMatchOverlayTAData` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `setMatchOverlayTAData:response` payload shape when applicable.","x-socketio":{"ack":true}},"setTournamentOverlayMatchDetails":{"address":"setTournamentOverlayMatchDetails","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `setTournamentOverlayMatchDetails` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `setTournamentOverlayMatchDetails:response` payload shape when applicable.","x-socketio":{"ack":true}},"setPicksBansOverlayFlow":{"address":"setPicksBansOverlayFlow","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `setPicksBansOverlayFlow` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `setPicksBansOverlayFlow:response` payload shape when applicable.","x-socketio":{"ack":true}},"resetPicksBansOverlayState":{"address":"resetPicksBansOverlayState","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `resetPicksBansOverlayState` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `resetPicksBansOverlayState:response` payload shape when applicable.","x-socketio":{"ack":true}},"addPicksBansOverlayAction":{"address":"addPicksBansOverlayAction","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `addPicksBansOverlayAction` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `addPicksBansOverlayAction:response` payload shape when applicable.","x-socketio":{"ack":true}},"removePicksBansOverlayAction":{"address":"removePicksBansOverlayAction","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `removePicksBansOverlayAction` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `removePicksBansOverlayAction:response` payload shape when applicable.","x-socketio":{"ack":true}},"submitMatchScores":{"address":"submitMatchScores","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `submitMatchScores` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `submitMatchScores:response` payload shape when applicable.","x-socketio":{"ack":true}},"setPlayerVolumeSettings":{"address":"setPlayerVolumeSettings","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `setPlayerVolumeSettings` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `setPlayerVolumeSettings:response` payload shape when applicable.","x-socketio":{"ack":true}},"setMatchSide1":{"address":"setMatchSide1","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `setMatchSide1` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `setMatchSide1:response` payload shape when applicable.","x-socketio":{"ack":true}},"setPicksBansVisibility":{"address":"setPicksBansVisibility","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `setPicksBansVisibility` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `setPicksBansVisibility:response` payload shape when applicable.","x-socketio":{"ack":true}},"setPlayingPlayers":{"address":"setPlayingPlayers","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `setPlayingPlayers` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `setPlayingPlayers:response` payload shape when applicable.","x-socketio":{"ack":true}},"confirmPlayingPlayers":{"address":"confirmPlayingPlayers","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `confirmPlayingPlayers` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `confirmPlayingPlayers:response` payload shape when applicable.","x-socketio":{"ack":true}},"cancelAwaitingScores":{"address":"cancelAwaitingScores","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `cancelAwaitingScores` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `cancelAwaitingScores:response` payload shape when applicable.","x-socketio":{"ack":true}},"setWarmupMode":{"address":"setWarmupMode","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `setWarmupMode` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `setWarmupMode:response` payload shape when applicable.","x-socketio":{"ack":true}},"setTournamentAssistantRoom":{"address":"setTournamentAssistantRoom","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `setTournamentAssistantRoom` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `setTournamentAssistantRoom:response` payload shape when applicable.","x-socketio":{"ack":true}},"publishRealtimeScores":{"address":"publishRealtimeScores","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `publishRealtimeScores` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `publishRealtimeScores:response` payload shape when applicable.","x-socketio":{"ack":true}},"savePendingScoreDrafts":{"address":"savePendingScoreDrafts","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `savePendingScoreDrafts` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `savePendingScoreDrafts:response` payload shape when applicable.","x-socketio":{"ack":true}},"submitPendingScores":{"address":"submitPendingScores","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `submitPendingScores` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `submitPendingScores:response` payload shape when applicable.","x-socketio":{"ack":true}},"reviewPendingScores":{"address":"reviewPendingScores","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `reviewPendingScores` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `reviewPendingScores:response` payload shape when applicable.","x-socketio":{"ack":true}},"subscribeTournamentOverlayDocuments":{"address":"subscribeTournamentOverlayDocuments","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `subscribeTournamentOverlayDocuments` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `subscribeTournamentOverlayDocuments:response` payload shape when applicable.","x-socketio":{"ack":true}},"createOverlayDocument":{"address":"createOverlayDocument","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `createOverlayDocument` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `createOverlayDocument:response` payload shape when applicable.","x-socketio":{"ack":true}},"updateOverlayDocument":{"address":"updateOverlayDocument","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `updateOverlayDocument` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `updateOverlayDocument:response` payload shape when applicable.","x-socketio":{"ack":true}},"deleteOverlayDocument":{"address":"deleteOverlayDocument","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `deleteOverlayDocument` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `deleteOverlayDocument:response` payload shape when applicable.","x-socketio":{"ack":true}},"setActiveOverlayScene":{"address":"setActiveOverlayScene","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `setActiveOverlayScene` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `setActiveOverlayScene:response` payload shape when applicable.","x-socketio":{"ack":true}},"createOverlayNode":{"address":"createOverlayNode","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `createOverlayNode` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `createOverlayNode:response` payload shape when applicable.","x-socketio":{"ack":true}},"updateOverlayNode":{"address":"updateOverlayNode","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `updateOverlayNode` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `updateOverlayNode:response` payload shape when applicable.","x-socketio":{"ack":true}},"deleteOverlayNode":{"address":"deleteOverlayNode","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `deleteOverlayNode` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `deleteOverlayNode:response` payload shape when applicable.","x-socketio":{"ack":true}},"bulkUpdateOverlayNodes":{"address":"bulkUpdateOverlayNodes","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `bulkUpdateOverlayNodes` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `bulkUpdateOverlayNodes:response` payload shape when applicable.","x-socketio":{"ack":true}},"subAwards":{"address":"subAwards","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `subAwards` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `subAwards:response` payload shape when applicable.","x-socketio":{"ack":true}},"showCategory":{"address":"showCategory","messages":{"event":{"$ref":"#/components/messages/ServerEvent"}},"description":"Server-emitted event `showCategory`. Payloads are MessagePack encoded unless documented by Socket.IO as a plain connection event.","x-socketio":{"ack":false}},"TAMock:ModifyExplicitFilter":{"address":"TAMock:ModifyExplicitFilter","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `TAMock:ModifyExplicitFilter` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `TAMock:ModifyExplicitFilter:response` payload shape when applicable.","x-socketio":{"ack":true}},"TAMock:GetFilters":{"address":"TAMock:GetFilters","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `TAMock:GetFilters` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `TAMock:GetFilters:response` payload shape when applicable.","x-socketio":{"ack":true}},"TAMock:GetData":{"address":"TAMock:GetData","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `TAMock:GetData` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `TAMock:GetData:response` payload shape when applicable.","x-socketio":{"ack":true}},"TAMock:ModifyUserClients":{"address":"TAMock:ModifyUserClients","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `TAMock:ModifyUserClients` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `TAMock:ModifyUserClients:response` payload shape when applicable.","x-socketio":{"ack":true}},"TAMock:SubClientLogs":{"address":"TAMock:SubClientLogs","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `TAMock:SubClientLogs` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `TAMock:SubClientLogs:response` payload shape when applicable.","x-socketio":{"ack":true}},"TAMock:Instantiate":{"address":"TAMock:Instantiate","messages":{"request":{"$ref":"#/components/messages/SocketCommandRequest"},"acknowledgement":{"$ref":"#/components/messages/SocketCommandAcknowledgement"}},"description":"Client sends MessagePack payload on `TAMock:Instantiate` with a Socket.IO acknowledgement callback. The server resolves the acknowledgement with the former `TAMock:Instantiate:response` payload shape when applicable.","x-socketio":{"ack":true}},"connected":{"address":"connected","messages":{"event":{"$ref":"#/components/messages/ServerEvent"}},"description":"Server-emitted event `connected`. Payloads are MessagePack encoded unless documented by Socket.IO as a plain connection event.","x-socketio":{"ack":false}},"tournament:donation":{"address":"tournament:donation","messages":{"event":{"$ref":"#/components/messages/ServerEvent"}},"description":"Server-emitted event `tournament:donation`. Payloads are MessagePack encoded unless documented by Socket.IO as a plain connection event.","x-socketio":{"ack":false}},"tournamentOverlayUpdate:match":{"address":"tournamentOverlayUpdate:match","messages":{"event":{"$ref":"#/components/messages/ServerEvent"}},"description":"Server-emitted event `tournamentOverlayUpdate:match`. Payloads are MessagePack encoded unless documented by Socket.IO as a plain connection event.","x-socketio":{"ack":false}},"tournamentOverlayUpdate:permissions":{"address":"tournamentOverlayUpdate:permissions","messages":{"event":{"$ref":"#/components/messages/ServerEvent"}},"description":"Server-emitted event `tournamentOverlayUpdate:permissions`. Payloads are MessagePack encoded unless documented by Socket.IO as a plain connection event.","x-socketio":{"ack":false}},"tournamentOverlayUpdate:matchDetails":{"address":"tournamentOverlayUpdate:matchDetails","messages":{"event":{"$ref":"#/components/messages/ServerEvent"}},"description":"Server-emitted event `tournamentOverlayUpdate:matchDetails`. Payloads are MessagePack encoded unless documented by Socket.IO as a plain connection event.","x-socketio":{"ack":false}},"matchOverlayUpdate:TAData":{"address":"matchOverlayUpdate:TAData","messages":{"event":{"$ref":"#/components/messages/ServerEvent"}},"description":"Server-emitted event `matchOverlayUpdate:TAData`. Payloads are MessagePack encoded unless documented by Socket.IO as a plain connection event.","x-socketio":{"ack":false}},"matchOverlayUpdate:playerVolumes":{"address":"matchOverlayUpdate:playerVolumes","messages":{"event":{"$ref":"#/components/messages/ServerEvent"}},"description":"Server-emitted event `matchOverlayUpdate:playerVolumes`. Payloads are MessagePack encoded unless documented by Socket.IO as a plain connection event.","x-socketio":{"ack":false}},"matchOverlayUpdate:scoreSubmit":{"address":"matchOverlayUpdate:scoreSubmit","messages":{"event":{"$ref":"#/components/messages/ServerEvent"}},"description":"Server-emitted event `matchOverlayUpdate:scoreSubmit`. Payloads are MessagePack encoded unless documented by Socket.IO as a plain connection event.","x-socketio":{"ack":false}},"picksBansOverlayUpdate:state":{"address":"picksBansOverlayUpdate:state","messages":{"event":{"$ref":"#/components/messages/ServerEvent"}},"description":"Server-emitted event `picksBansOverlayUpdate:state`. Payloads are MessagePack encoded unless documented by Socket.IO as a plain connection event.","x-socketio":{"ack":false}},"picksBansOverlayUpdate:flow":{"address":"picksBansOverlayUpdate:flow","messages":{"event":{"$ref":"#/components/messages/ServerEvent"}},"description":"Server-emitted event `picksBansOverlayUpdate:flow`. Payloads are MessagePack encoded unless documented by Socket.IO as a plain connection event.","x-socketio":{"ack":false}},"picksBansOverlayUpdate:state:addAction":{"address":"picksBansOverlayUpdate:state:addAction","messages":{"event":{"$ref":"#/components/messages/ServerEvent"}},"description":"Server-emitted event `picksBansOverlayUpdate:state:addAction`. Payloads are MessagePack encoded unless documented by Socket.IO as a plain connection event.","x-socketio":{"ack":false}},"picksBansOverlayUpdate:state:removeAction":{"address":"picksBansOverlayUpdate:state:removeAction","messages":{"event":{"$ref":"#/components/messages/ServerEvent"}},"description":"Server-emitted event `picksBansOverlayUpdate:state:removeAction`. Payloads are MessagePack encoded unless documented by Socket.IO as a plain connection event.","x-socketio":{"ack":false}},"matchOperationsUpdate":{"address":"matchOperationsUpdate","messages":{"event":{"$ref":"#/components/messages/ServerEvent"}},"description":"Server-emitted event `matchOperationsUpdate`. Payloads are MessagePack encoded unless documented by Socket.IO as a plain connection event.","x-socketio":{"ack":false}},"tournamentOverlayDocuments:update":{"address":"tournamentOverlayDocuments:update","messages":{"event":{"$ref":"#/components/messages/ServerEvent"}},"description":"Server-emitted event `tournamentOverlayDocuments:update`. Payloads are MessagePack encoded unless documented by Socket.IO as a plain connection event.","x-socketio":{"ack":false}},"TAMock:Instance:Data":{"address":"TAMock:Instance:Data","messages":{"event":{"$ref":"#/components/messages/ServerEvent"}},"description":"Server-emitted event `TAMock:Instance:Data`. Payloads are MessagePack encoded unless documented by Socket.IO as a plain connection event.","x-socketio":{"ack":false}}},"operations":{"send:authenticate":{"action":"send","channel":{"$ref":"#/channels/authenticate"},"reply":{"channel":{"$ref":"#/channels/authenticate"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:subscribe":{"action":"send","channel":{"$ref":"#/channels/subscribe"},"reply":{"channel":{"$ref":"#/channels/subscribe"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:donation:subscribe":{"action":"send","channel":{"$ref":"#/channels/donation:subscribe"},"reply":{"channel":{"$ref":"#/channels/donation:subscribe"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:donation:unsubscribe":{"action":"send","channel":{"$ref":"#/channels/donation:unsubscribe"},"reply":{"channel":{"$ref":"#/channels/donation:unsubscribe"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:getTournamentOverlay":{"action":"send","channel":{"$ref":"#/channels/getTournamentOverlay"},"reply":{"channel":{"$ref":"#/channels/getTournamentOverlay"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:startSelectedMatch":{"action":"send","channel":{"$ref":"#/channels/startSelectedMatch"},"reply":{"channel":{"$ref":"#/channels/startSelectedMatch"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:endSelectedMatch":{"action":"send","channel":{"$ref":"#/channels/endSelectedMatch"},"reply":{"channel":{"$ref":"#/channels/endSelectedMatch"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:setTournamentOverlayMatch":{"action":"send","channel":{"$ref":"#/channels/setTournamentOverlayMatch"},"reply":{"channel":{"$ref":"#/channels/setTournamentOverlayMatch"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:setTournamentOverlayPermissions":{"action":"send","channel":{"$ref":"#/channels/setTournamentOverlayPermissions"},"reply":{"channel":{"$ref":"#/channels/setTournamentOverlayPermissions"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:setMatchOverlayTAData":{"action":"send","channel":{"$ref":"#/channels/setMatchOverlayTAData"},"reply":{"channel":{"$ref":"#/channels/setMatchOverlayTAData"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:setTournamentOverlayMatchDetails":{"action":"send","channel":{"$ref":"#/channels/setTournamentOverlayMatchDetails"},"reply":{"channel":{"$ref":"#/channels/setTournamentOverlayMatchDetails"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:setPicksBansOverlayFlow":{"action":"send","channel":{"$ref":"#/channels/setPicksBansOverlayFlow"},"reply":{"channel":{"$ref":"#/channels/setPicksBansOverlayFlow"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:resetPicksBansOverlayState":{"action":"send","channel":{"$ref":"#/channels/resetPicksBansOverlayState"},"reply":{"channel":{"$ref":"#/channels/resetPicksBansOverlayState"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:addPicksBansOverlayAction":{"action":"send","channel":{"$ref":"#/channels/addPicksBansOverlayAction"},"reply":{"channel":{"$ref":"#/channels/addPicksBansOverlayAction"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:removePicksBansOverlayAction":{"action":"send","channel":{"$ref":"#/channels/removePicksBansOverlayAction"},"reply":{"channel":{"$ref":"#/channels/removePicksBansOverlayAction"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:submitMatchScores":{"action":"send","channel":{"$ref":"#/channels/submitMatchScores"},"reply":{"channel":{"$ref":"#/channels/submitMatchScores"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:setPlayerVolumeSettings":{"action":"send","channel":{"$ref":"#/channels/setPlayerVolumeSettings"},"reply":{"channel":{"$ref":"#/channels/setPlayerVolumeSettings"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:setMatchSide1":{"action":"send","channel":{"$ref":"#/channels/setMatchSide1"},"reply":{"channel":{"$ref":"#/channels/setMatchSide1"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:setPicksBansVisibility":{"action":"send","channel":{"$ref":"#/channels/setPicksBansVisibility"},"reply":{"channel":{"$ref":"#/channels/setPicksBansVisibility"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:setPlayingPlayers":{"action":"send","channel":{"$ref":"#/channels/setPlayingPlayers"},"reply":{"channel":{"$ref":"#/channels/setPlayingPlayers"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:confirmPlayingPlayers":{"action":"send","channel":{"$ref":"#/channels/confirmPlayingPlayers"},"reply":{"channel":{"$ref":"#/channels/confirmPlayingPlayers"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:cancelAwaitingScores":{"action":"send","channel":{"$ref":"#/channels/cancelAwaitingScores"},"reply":{"channel":{"$ref":"#/channels/cancelAwaitingScores"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:setWarmupMode":{"action":"send","channel":{"$ref":"#/channels/setWarmupMode"},"reply":{"channel":{"$ref":"#/channels/setWarmupMode"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:setTournamentAssistantRoom":{"action":"send","channel":{"$ref":"#/channels/setTournamentAssistantRoom"},"reply":{"channel":{"$ref":"#/channels/setTournamentAssistantRoom"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:publishRealtimeScores":{"action":"send","channel":{"$ref":"#/channels/publishRealtimeScores"},"reply":{"channel":{"$ref":"#/channels/publishRealtimeScores"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:savePendingScoreDrafts":{"action":"send","channel":{"$ref":"#/channels/savePendingScoreDrafts"},"reply":{"channel":{"$ref":"#/channels/savePendingScoreDrafts"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:submitPendingScores":{"action":"send","channel":{"$ref":"#/channels/submitPendingScores"},"reply":{"channel":{"$ref":"#/channels/submitPendingScores"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:reviewPendingScores":{"action":"send","channel":{"$ref":"#/channels/reviewPendingScores"},"reply":{"channel":{"$ref":"#/channels/reviewPendingScores"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:subscribeTournamentOverlayDocuments":{"action":"send","channel":{"$ref":"#/channels/subscribeTournamentOverlayDocuments"},"reply":{"channel":{"$ref":"#/channels/subscribeTournamentOverlayDocuments"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:createOverlayDocument":{"action":"send","channel":{"$ref":"#/channels/createOverlayDocument"},"reply":{"channel":{"$ref":"#/channels/createOverlayDocument"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:updateOverlayDocument":{"action":"send","channel":{"$ref":"#/channels/updateOverlayDocument"},"reply":{"channel":{"$ref":"#/channels/updateOverlayDocument"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:deleteOverlayDocument":{"action":"send","channel":{"$ref":"#/channels/deleteOverlayDocument"},"reply":{"channel":{"$ref":"#/channels/deleteOverlayDocument"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:setActiveOverlayScene":{"action":"send","channel":{"$ref":"#/channels/setActiveOverlayScene"},"reply":{"channel":{"$ref":"#/channels/setActiveOverlayScene"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:createOverlayNode":{"action":"send","channel":{"$ref":"#/channels/createOverlayNode"},"reply":{"channel":{"$ref":"#/channels/createOverlayNode"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:updateOverlayNode":{"action":"send","channel":{"$ref":"#/channels/updateOverlayNode"},"reply":{"channel":{"$ref":"#/channels/updateOverlayNode"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:deleteOverlayNode":{"action":"send","channel":{"$ref":"#/channels/deleteOverlayNode"},"reply":{"channel":{"$ref":"#/channels/deleteOverlayNode"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:bulkUpdateOverlayNodes":{"action":"send","channel":{"$ref":"#/channels/bulkUpdateOverlayNodes"},"reply":{"channel":{"$ref":"#/channels/bulkUpdateOverlayNodes"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:subAwards":{"action":"send","channel":{"$ref":"#/channels/subAwards"},"reply":{"channel":{"$ref":"#/channels/subAwards"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:showCategory":{"action":"send","channel":{"$ref":"#/channels/showCategory"},"reply":{"channel":{"$ref":"#/channels/showCategory"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:TAMock:ModifyExplicitFilter":{"action":"send","channel":{"$ref":"#/channels/TAMock:ModifyExplicitFilter"},"reply":{"channel":{"$ref":"#/channels/TAMock:ModifyExplicitFilter"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:TAMock:GetFilters":{"action":"send","channel":{"$ref":"#/channels/TAMock:GetFilters"},"reply":{"channel":{"$ref":"#/channels/TAMock:GetFilters"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:TAMock:GetData":{"action":"send","channel":{"$ref":"#/channels/TAMock:GetData"},"reply":{"channel":{"$ref":"#/channels/TAMock:GetData"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:TAMock:ModifyUserClients":{"action":"send","channel":{"$ref":"#/channels/TAMock:ModifyUserClients"},"reply":{"channel":{"$ref":"#/channels/TAMock:ModifyUserClients"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:TAMock:SubClientLogs":{"action":"send","channel":{"$ref":"#/channels/TAMock:SubClientLogs"},"reply":{"channel":{"$ref":"#/channels/TAMock:SubClientLogs"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"send:TAMock:Instantiate":{"action":"send","channel":{"$ref":"#/channels/TAMock:Instantiate"},"reply":{"channel":{"$ref":"#/channels/TAMock:Instantiate"},"messages":[{"$ref":"#/components/messages/SocketCommandAcknowledgement"}]}},"receive:connected":{"action":"receive","channel":{"$ref":"#/channels/connected"}},"receive:tournament:donation":{"action":"receive","channel":{"$ref":"#/channels/tournament:donation"}},"receive:showCategory":{"action":"receive","channel":{"$ref":"#/channels/showCategory"}},"receive:tournamentOverlayUpdate:match":{"action":"receive","channel":{"$ref":"#/channels/tournamentOverlayUpdate:match"}},"receive:tournamentOverlayUpdate:permissions":{"action":"receive","channel":{"$ref":"#/channels/tournamentOverlayUpdate:permissions"}},"receive:tournamentOverlayUpdate:matchDetails":{"action":"receive","channel":{"$ref":"#/channels/tournamentOverlayUpdate:matchDetails"}},"receive:matchOverlayUpdate:TAData":{"action":"receive","channel":{"$ref":"#/channels/matchOverlayUpdate:TAData"}},"receive:matchOverlayUpdate:playerVolumes":{"action":"receive","channel":{"$ref":"#/channels/matchOverlayUpdate:playerVolumes"}},"receive:matchOverlayUpdate:scoreSubmit":{"action":"receive","channel":{"$ref":"#/channels/matchOverlayUpdate:scoreSubmit"}},"receive:picksBansOverlayUpdate:state":{"action":"receive","channel":{"$ref":"#/channels/picksBansOverlayUpdate:state"}},"receive:picksBansOverlayUpdate:flow":{"action":"receive","channel":{"$ref":"#/channels/picksBansOverlayUpdate:flow"}},"receive:picksBansOverlayUpdate:state:addAction":{"action":"receive","channel":{"$ref":"#/channels/picksBansOverlayUpdate:state:addAction"}},"receive:picksBansOverlayUpdate:state:removeAction":{"action":"receive","channel":{"$ref":"#/channels/picksBansOverlayUpdate:state:removeAction"}},"receive:matchOperationsUpdate":{"action":"receive","channel":{"$ref":"#/channels/matchOperationsUpdate"}},"receive:tournamentOverlayDocuments:update":{"action":"receive","channel":{"$ref":"#/channels/tournamentOverlayDocuments:update"}},"receive:TAMock:Instance:Data":{"action":"receive","channel":{"$ref":"#/channels/TAMock:Instance:Data"}}},"components":{"messages":{"SocketCommandRequest":{"name":"SocketCommandRequest","contentType":"application/x-msgpack","payload":{"$ref":"#/components/schemas/SocketCommandPayload"}},"SocketCommandAcknowledgement":{"name":"SocketCommandAcknowledgement","contentType":"application/json","payload":{"$ref":"#/components/schemas/SocketCommandResponse"}},"ServerEvent":{"name":"ServerEvent","contentType":"application/x-msgpack","payload":{"type":"object","additionalProperties":true}}},"schemas":{"SocketCommandPayload":{"type":"object","additionalProperties":true,"description":"Packet-specific request payload. See backend-ts/src/modals/websocket for TypeScript request interfaces."},"SocketCommandResponse":{"oneOf":[{"type":"object","required":["type"],"properties":{"type":{"const":"success"},"error":{"type":"string"}},"additionalProperties":true},{"type":"object","required":["type","error"],"properties":{"type":{"const":"fail"},"error":{"type":"string"}},"additionalProperties":true}]}}},"x-beatkhana-notes":{"acknowledgements":"All command channels listed in this spec should be called with Socket.IO emitWithAck/sendWithAck. Legacy clients without an acknowledgement callback may still receive a deprecated *:response event.","subscriptions":{"donation:subscribe":"Joins {tournamentGuid}:donations and receives tournament:donation.","subscribeTournamentOverlayDocuments":"Joins {tournamentGuid}:{overlayGuid} and receives tournamentOverlayDocuments:update plus overlay update events.","getTournamentOverlay":"Fetches the current overlay snapshot, joins {tournamentGuid}:{overlayGuid}, and receives matchOperationsUpdate and picks/bans undo updates.","subAwards":"Joins awardsListener and receives showCategory.","TAMock:SubClientLogs":"Joins the TA mock instance log room and receives TAMock:Instance:Data."}}}