five-on-it / apps/client/src/ui/lobby / lobbyCalls
Function: lobbyCalls()
lobbyCalls(
platform):object
Defined in: apps/client/src/ui/lobby.ts:34
The lobbies' calls, as the page's platform client makes them.
Parameters
platform
Returns
object
create
create: (
game,mission,visibility,playlist?) =>Promise<{canStart:boolean;countdown: {seconds:number;waiting:boolean; } |null;game: {by:string;curated:boolean;id:string;level:string;rating: {average:number;count:number; };title:string; };host:string|null;id:string;join?: {joinUrl:string;room:string;run:string; };max:number;mission: {blurb:string|null;id:string;rules: {each:boolean;friendlyFire:boolean;joinInProgress:"never"|"untilCheckpoint"|"always";lives: {count:number;per:"player"|"team"; } |null;mode:"solo"|"coop"|"versus";onDeath:"checkpoint"|"spectate"|"teamSpawn";players: {max:number;min:number; };respect:number|null;retries:number;teams:object[];timeLimit:number|null; };title:string; };notice: {code:"busy"|"gaveUp"|"refused"|"inRun";text:string; } |null;players:number;playlist?:"any"|"coop"|"versus"|"races"|null;results: {forfeit:boolean;mission:string;outcome:"complete"|"failed"|"abandoned"|"won"|"draw"|"lost";run:string|null;seats:object[];seconds:number|null;title:string;winner:string|null;winnerName:string|null; } |null;run:string|null;state:"gathering"|"countdown"|"running"|"ready"|"results";teams:object[];visibility:"private"|"public";vote: {endsIn:number;mine:"level"|"game"|"same"|"replay"|null;offers:object[]; } |null;you:string|null; }>
Parameters
game
string
mission
string
visibility?
"private" | "public"
playlist?
"any" | "coop" | "versus" | "races"
Returns
Promise<{ canStart: boolean; countdown: { seconds: number; waiting: boolean; } | null; game: { by: string; curated: boolean; id: string; level: string; rating: { average: number; count: number; }; title: string; }; host: string | null; id: string; join?: { joinUrl: string; room: string; run: string; }; max: number; mission: { blurb: string | null; id: string; rules: { each: boolean; friendlyFire: boolean; joinInProgress: "never" | "untilCheckpoint" | "always"; lives: { count: number; per: "player" | "team"; } | null; mode: "solo" | "coop" | "versus"; onDeath: "checkpoint" | "spectate" | "teamSpawn"; players: { max: number; min: number; }; respect: number | null; retries: number; teams: object[]; timeLimit: number | null; }; title: string; }; notice: { code: "busy" | "gaveUp" | "refused" | "inRun"; text: string; } | null; players: number; playlist?: "any" | "coop" | "versus" | "races" | null; results: { forfeit: boolean; mission: string; outcome: "complete" | "failed" | "abandoned" | "won" | "draw" | "lost"; run: string | null; seats: object[]; seconds: number | null; title: string; winner: string | null; winnerName: string | null; } | null; run: string | null; state: "gathering" | "countdown" | "running" | "ready" | "results"; teams: object[]; visibility: "private" | "public"; vote: { endsIn: number; mine: "level" | "game" | "same" | "replay" | null; offers: object[]; } | null; you: string | null; }>
get
get: (
id) =>Promise<{canStart:boolean;countdown: {seconds:number;waiting:boolean; } |null;game: {by:string;curated:boolean;id:string;level:string;rating: {average:number;count:number; };title:string; };host:string|null;id:string;join?: {joinUrl:string;room:string;run:string; };max:number;mission: {blurb:string|null;id:string;rules: {each:boolean;friendlyFire:boolean;joinInProgress:"never"|"untilCheckpoint"|"always";lives: {count:number;per:"player"|"team"; } |null;mode:"solo"|"coop"|"versus";onDeath:"checkpoint"|"spectate"|"teamSpawn";players: {max:number;min:number; };respect:number|null;retries:number;teams:object[];timeLimit:number|null; };title:string; };notice: {code:"busy"|"gaveUp"|"refused"|"inRun";text:string; } |null;players:number;playlist?:"any"|"coop"|"versus"|"races"|null;results: {forfeit:boolean;mission:string;outcome:"complete"|"failed"|"abandoned"|"won"|"draw"|"lost";run:string|null;seats:object[];seconds:number|null;title:string;winner:string|null;winnerName:string|null; } |null;run:string|null;state:"gathering"|"countdown"|"running"|"ready"|"results";teams:object[];visibility:"private"|"public";vote: {endsIn:number;mine:"level"|"game"|"same"|"replay"|null;offers:object[]; } |null;you:string|null; }>
Parameters
id
string
Returns
Promise<{ canStart: boolean; countdown: { seconds: number; waiting: boolean; } | null; game: { by: string; curated: boolean; id: string; level: string; rating: { average: number; count: number; }; title: string; }; host: string | null; id: string; join?: { joinUrl: string; room: string; run: string; }; max: number; mission: { blurb: string | null; id: string; rules: { each: boolean; friendlyFire: boolean; joinInProgress: "never" | "untilCheckpoint" | "always"; lives: { count: number; per: "player" | "team"; } | null; mode: "solo" | "coop" | "versus"; onDeath: "checkpoint" | "spectate" | "teamSpawn"; players: { max: number; min: number; }; respect: number | null; retries: number; teams: object[]; timeLimit: number | null; }; title: string; }; notice: { code: "busy" | "gaveUp" | "refused" | "inRun"; text: string; } | null; players: number; playlist?: "any" | "coop" | "versus" | "races" | null; results: { forfeit: boolean; mission: string; outcome: "complete" | "failed" | "abandoned" | "won" | "draw" | "lost"; run: string | null; seats: object[]; seconds: number | null; title: string; winner: string | null; winnerName: string | null; } | null; run: string | null; state: "gathering" | "countdown" | "running" | "ready" | "results"; teams: object[]; visibility: "private" | "public"; vote: { endsIn: number; mine: "level" | "game" | "same" | "replay" | null; offers: object[]; } | null; you: string | null; }>
invite
invite: (
id,account) =>Promise<void>
Parameters
id
string
account
string
Returns
Promise<void>
join
join: (
id) =>Promise<{canStart:boolean;countdown: {seconds:number;waiting:boolean; } |null;game: {by:string;curated:boolean;id:string;level:string;rating: {average:number;count:number; };title:string; };host:string|null;id:string;join?: {joinUrl:string;room:string;run:string; };max:number;mission: {blurb:string|null;id:string;rules: {each:boolean;friendlyFire:boolean;joinInProgress:"never"|"untilCheckpoint"|"always";lives: {count:number;per:"player"|"team"; } |null;mode:"solo"|"coop"|"versus";onDeath:"checkpoint"|"spectate"|"teamSpawn";players: {max:number;min:number; };respect:number|null;retries:number;teams:object[];timeLimit:number|null; };title:string; };notice: {code:"busy"|"gaveUp"|"refused"|"inRun";text:string; } |null;players:number;playlist?:"any"|"coop"|"versus"|"races"|null;results: {forfeit:boolean;mission:string;outcome:"complete"|"failed"|"abandoned"|"won"|"draw"|"lost";run:string|null;seats:object[];seconds:number|null;title:string;winner:string|null;winnerName:string|null; } |null;run:string|null;state:"gathering"|"countdown"|"running"|"ready"|"results";teams:object[];visibility:"private"|"public";vote: {endsIn:number;mine:"level"|"game"|"same"|"replay"|null;offers:object[]; } |null;you:string|null; }>
Parameters
id
string
Returns
Promise<{ canStart: boolean; countdown: { seconds: number; waiting: boolean; } | null; game: { by: string; curated: boolean; id: string; level: string; rating: { average: number; count: number; }; title: string; }; host: string | null; id: string; join?: { joinUrl: string; room: string; run: string; }; max: number; mission: { blurb: string | null; id: string; rules: { each: boolean; friendlyFire: boolean; joinInProgress: "never" | "untilCheckpoint" | "always"; lives: { count: number; per: "player" | "team"; } | null; mode: "solo" | "coop" | "versus"; onDeath: "checkpoint" | "spectate" | "teamSpawn"; players: { max: number; min: number; }; respect: number | null; retries: number; teams: object[]; timeLimit: number | null; }; title: string; }; notice: { code: "busy" | "gaveUp" | "refused" | "inRun"; text: string; } | null; players: number; playlist?: "any" | "coop" | "versus" | "races" | null; results: { forfeit: boolean; mission: string; outcome: "complete" | "failed" | "abandoned" | "won" | "draw" | "lost"; run: string | null; seats: object[]; seconds: number | null; title: string; winner: string | null; winnerName: string | null; } | null; run: string | null; state: "gathering" | "countdown" | "running" | "ready" | "results"; teams: object[]; visibility: "private" | "public"; vote: { endsIn: number; mine: "level" | "game" | "same" | "replay" | null; offers: object[]; } | null; you: string | null; }>
kick
kick: (
id,account) =>Promise<{canStart:boolean;countdown: {seconds:number;waiting:boolean; } |null;game: {by:string;curated:boolean;id:string;level:string;rating: {average:number;count:number; };title:string; };host:string|null;id:string;join?: {joinUrl:string;room:string;run:string; };max:number;mission: {blurb:string|null;id:string;rules: {each:boolean;friendlyFire:boolean;joinInProgress:"never"|"untilCheckpoint"|"always";lives: {count:number;per:"player"|"team"; } |null;mode:"solo"|"coop"|"versus";onDeath:"checkpoint"|"spectate"|"teamSpawn";players: {max:number;min:number; };respect:number|null;retries:number;teams:object[];timeLimit:number|null; };title:string; };notice: {code:"busy"|"gaveUp"|"refused"|"inRun";text:string; } |null;players:number;playlist?:"any"|"coop"|"versus"|"races"|null;results: {forfeit:boolean;mission:string;outcome:"complete"|"failed"|"abandoned"|"won"|"draw"|"lost";run:string|null;seats:object[];seconds:number|null;title:string;winner:string|null;winnerName:string|null; } |null;run:string|null;state:"gathering"|"countdown"|"running"|"ready"|"results";teams:object[];visibility:"private"|"public";vote: {endsIn:number;mine:"level"|"game"|"same"|"replay"|null;offers:object[]; } |null;you:string|null; }>
Parameters
id
string
account
string
Returns
Promise<{ canStart: boolean; countdown: { seconds: number; waiting: boolean; } | null; game: { by: string; curated: boolean; id: string; level: string; rating: { average: number; count: number; }; title: string; }; host: string | null; id: string; join?: { joinUrl: string; room: string; run: string; }; max: number; mission: { blurb: string | null; id: string; rules: { each: boolean; friendlyFire: boolean; joinInProgress: "never" | "untilCheckpoint" | "always"; lives: { count: number; per: "player" | "team"; } | null; mode: "solo" | "coop" | "versus"; onDeath: "checkpoint" | "spectate" | "teamSpawn"; players: { max: number; min: number; }; respect: number | null; retries: number; teams: object[]; timeLimit: number | null; }; title: string; }; notice: { code: "busy" | "gaveUp" | "refused" | "inRun"; text: string; } | null; players: number; playlist?: "any" | "coop" | "versus" | "races" | null; results: { forfeit: boolean; mission: string; outcome: "complete" | "failed" | "abandoned" | "won" | "draw" | "lost"; run: string | null; seats: object[]; seconds: number | null; title: string; winner: string | null; winnerName: string | null; } | null; run: string | null; state: "gathering" | "countdown" | "running" | "ready" | "results"; teams: object[]; visibility: "private" | "public"; vote: { endsIn: number; mine: "level" | "game" | "same" | "replay" | null; offers: object[]; } | null; you: string | null; }>
leave
leave: (
id) =>Promise<void>
Parameters
id
string
Returns
Promise<void>
list
list: (
game?) =>Promise<object[]>
Parameters
game?
string
Returns
Promise<object[]>
mine
mine: () =>
Promise<{invites:object[];lobby:string|null; }>
Returns
Promise<{ invites: object[]; lobby: string | null; }>
playlists
playlists: () =>
Promise<object[]>
Returns
Promise<object[]>
quick
quick: (
playlist) =>Promise<{canStart:boolean;countdown: {seconds:number;waiting:boolean; } |null;game: {by:string;curated:boolean;id:string;level:string;rating: {average:number;count:number; };title:string; };host:string|null;id:string;join?: {joinUrl:string;room:string;run:string; };max:number;mission: {blurb:string|null;id:string;rules: {each:boolean;friendlyFire:boolean;joinInProgress:"never"|"untilCheckpoint"|"always";lives: {count:number;per:"player"|"team"; } |null;mode:"solo"|"coop"|"versus";onDeath:"checkpoint"|"spectate"|"teamSpawn";players: {max:number;min:number; };respect:number|null;retries:number;teams:object[];timeLimit:number|null; };title:string; };notice: {code:"busy"|"gaveUp"|"refused"|"inRun";text:string; } |null;players:number;playlist?:"any"|"coop"|"versus"|"races"|null;results: {forfeit:boolean;mission:string;outcome:"complete"|"failed"|"abandoned"|"won"|"draw"|"lost";run:string|null;seats:object[];seconds:number|null;title:string;winner:string|null;winnerName:string|null; } |null;run:string|null;state:"gathering"|"countdown"|"running"|"ready"|"results";teams:object[];visibility:"private"|"public";vote: {endsIn:number;mine:"level"|"game"|"same"|"replay"|null;offers:object[]; } |null;you:string|null; }>
Parameters
playlist
"any" | "coop" | "versus" | "races"
Returns
Promise<{ canStart: boolean; countdown: { seconds: number; waiting: boolean; } | null; game: { by: string; curated: boolean; id: string; level: string; rating: { average: number; count: number; }; title: string; }; host: string | null; id: string; join?: { joinUrl: string; room: string; run: string; }; max: number; mission: { blurb: string | null; id: string; rules: { each: boolean; friendlyFire: boolean; joinInProgress: "never" | "untilCheckpoint" | "always"; lives: { count: number; per: "player" | "team"; } | null; mode: "solo" | "coop" | "versus"; onDeath: "checkpoint" | "spectate" | "teamSpawn"; players: { max: number; min: number; }; respect: number | null; retries: number; teams: object[]; timeLimit: number | null; }; title: string; }; notice: { code: "busy" | "gaveUp" | "refused" | "inRun"; text: string; } | null; players: number; playlist?: "any" | "coop" | "versus" | "races" | null; results: { forfeit: boolean; mission: string; outcome: "complete" | "failed" | "abandoned" | "won" | "draw" | "lost"; run: string | null; seats: object[]; seconds: number | null; title: string; winner: string | null; winnerName: string | null; } | null; run: string | null; state: "gathering" | "countdown" | "running" | "ready" | "results"; teams: object[]; visibility: "private" | "public"; vote: { endsIn: number; mine: "level" | "game" | "same" | "replay" | null; offers: object[]; } | null; you: string | null; }>
ready
ready: (
id,ready) =>Promise<{canStart:boolean;countdown: {seconds:number;waiting:boolean; } |null;game: {by:string;curated:boolean;id:string;level:string;rating: {average:number;count:number; };title:string; };host:string|null;id:string;join?: {joinUrl:string;room:string;run:string; };max:number;mission: {blurb:string|null;id:string;rules: {each:boolean;friendlyFire:boolean;joinInProgress:"never"|"untilCheckpoint"|"always";lives: {count:number;per:"player"|"team"; } |null;mode:"solo"|"coop"|"versus";onDeath:"checkpoint"|"spectate"|"teamSpawn";players: {max:number;min:number; };respect:number|null;retries:number;teams:object[];timeLimit:number|null; };title:string; };notice: {code:"busy"|"gaveUp"|"refused"|"inRun";text:string; } |null;players:number;playlist?:"any"|"coop"|"versus"|"races"|null;results: {forfeit:boolean;mission:string;outcome:"complete"|"failed"|"abandoned"|"won"|"draw"|"lost";run:string|null;seats:object[];seconds:number|null;title:string;winner:string|null;winnerName:string|null; } |null;run:string|null;state:"gathering"|"countdown"|"running"|"ready"|"results";teams:object[];visibility:"private"|"public";vote: {endsIn:number;mine:"level"|"game"|"same"|"replay"|null;offers:object[]; } |null;you:string|null; }>
Parameters
id
string
ready
boolean
Returns
Promise<{ canStart: boolean; countdown: { seconds: number; waiting: boolean; } | null; game: { by: string; curated: boolean; id: string; level: string; rating: { average: number; count: number; }; title: string; }; host: string | null; id: string; join?: { joinUrl: string; room: string; run: string; }; max: number; mission: { blurb: string | null; id: string; rules: { each: boolean; friendlyFire: boolean; joinInProgress: "never" | "untilCheckpoint" | "always"; lives: { count: number; per: "player" | "team"; } | null; mode: "solo" | "coop" | "versus"; onDeath: "checkpoint" | "spectate" | "teamSpawn"; players: { max: number; min: number; }; respect: number | null; retries: number; teams: object[]; timeLimit: number | null; }; title: string; }; notice: { code: "busy" | "gaveUp" | "refused" | "inRun"; text: string; } | null; players: number; playlist?: "any" | "coop" | "versus" | "races" | null; results: { forfeit: boolean; mission: string; outcome: "complete" | "failed" | "abandoned" | "won" | "draw" | "lost"; run: string | null; seats: object[]; seconds: number | null; title: string; winner: string | null; winnerName: string | null; } | null; run: string | null; state: "gathering" | "countdown" | "running" | "ready" | "results"; teams: object[]; visibility: "private" | "public"; vote: { endsIn: number; mine: "level" | "game" | "same" | "replay" | null; offers: object[]; } | null; you: string | null; }>
start
start: (
id) =>Promise<{canStart:boolean;countdown: {seconds:number;waiting:boolean; } |null;game: {by:string;curated:boolean;id:string;level:string;rating: {average:number;count:number; };title:string; };host:string|null;id:string;join?: {joinUrl:string;room:string;run:string; };max:number;mission: {blurb:string|null;id:string;rules: {each:boolean;friendlyFire:boolean;joinInProgress:"never"|"untilCheckpoint"|"always";lives: {count:number;per:"player"|"team"; } |null;mode:"solo"|"coop"|"versus";onDeath:"checkpoint"|"spectate"|"teamSpawn";players: {max:number;min:number; };respect:number|null;retries:number;teams:object[];timeLimit:number|null; };title:string; };notice: {code:"busy"|"gaveUp"|"refused"|"inRun";text:string; } |null;players:number;playlist?:"any"|"coop"|"versus"|"races"|null;results: {forfeit:boolean;mission:string;outcome:"complete"|"failed"|"abandoned"|"won"|"draw"|"lost";run:string|null;seats:object[];seconds:number|null;title:string;winner:string|null;winnerName:string|null; } |null;run:string|null;state:"gathering"|"countdown"|"running"|"ready"|"results";teams:object[];visibility:"private"|"public";vote: {endsIn:number;mine:"level"|"game"|"same"|"replay"|null;offers:object[]; } |null;you:string|null; }>
Parameters
id
string
Returns
Promise<{ canStart: boolean; countdown: { seconds: number; waiting: boolean; } | null; game: { by: string; curated: boolean; id: string; level: string; rating: { average: number; count: number; }; title: string; }; host: string | null; id: string; join?: { joinUrl: string; room: string; run: string; }; max: number; mission: { blurb: string | null; id: string; rules: { each: boolean; friendlyFire: boolean; joinInProgress: "never" | "untilCheckpoint" | "always"; lives: { count: number; per: "player" | "team"; } | null; mode: "solo" | "coop" | "versus"; onDeath: "checkpoint" | "spectate" | "teamSpawn"; players: { max: number; min: number; }; respect: number | null; retries: number; teams: object[]; timeLimit: number | null; }; title: string; }; notice: { code: "busy" | "gaveUp" | "refused" | "inRun"; text: string; } | null; players: number; playlist?: "any" | "coop" | "versus" | "races" | null; results: { forfeit: boolean; mission: string; outcome: "complete" | "failed" | "abandoned" | "won" | "draw" | "lost"; run: string | null; seats: object[]; seconds: number | null; title: string; winner: string | null; winnerName: string | null; } | null; run: string | null; state: "gathering" | "countdown" | "running" | "ready" | "results"; teams: object[]; visibility: "private" | "public"; vote: { endsIn: number; mine: "level" | "game" | "same" | "replay" | null; offers: object[]; } | null; you: string | null; }>
team
team: (
id,team) =>Promise<{canStart:boolean;countdown: {seconds:number;waiting:boolean; } |null;game: {by:string;curated:boolean;id:string;level:string;rating: {average:number;count:number; };title:string; };host:string|null;id:string;join?: {joinUrl:string;room:string;run:string; };max:number;mission: {blurb:string|null;id:string;rules: {each:boolean;friendlyFire:boolean;joinInProgress:"never"|"untilCheckpoint"|"always";lives: {count:number;per:"player"|"team"; } |null;mode:"solo"|"coop"|"versus";onDeath:"checkpoint"|"spectate"|"teamSpawn";players: {max:number;min:number; };respect:number|null;retries:number;teams:object[];timeLimit:number|null; };title:string; };notice: {code:"busy"|"gaveUp"|"refused"|"inRun";text:string; } |null;players:number;playlist?:"any"|"coop"|"versus"|"races"|null;results: {forfeit:boolean;mission:string;outcome:"complete"|"failed"|"abandoned"|"won"|"draw"|"lost";run:string|null;seats:object[];seconds:number|null;title:string;winner:string|null;winnerName:string|null; } |null;run:string|null;state:"gathering"|"countdown"|"running"|"ready"|"results";teams:object[];visibility:"private"|"public";vote: {endsIn:number;mine:"level"|"game"|"same"|"replay"|null;offers:object[]; } |null;you:string|null; }>
Parameters
id
string
team
string
Returns
Promise<{ canStart: boolean; countdown: { seconds: number; waiting: boolean; } | null; game: { by: string; curated: boolean; id: string; level: string; rating: { average: number; count: number; }; title: string; }; host: string | null; id: string; join?: { joinUrl: string; room: string; run: string; }; max: number; mission: { blurb: string | null; id: string; rules: { each: boolean; friendlyFire: boolean; joinInProgress: "never" | "untilCheckpoint" | "always"; lives: { count: number; per: "player" | "team"; } | null; mode: "solo" | "coop" | "versus"; onDeath: "checkpoint" | "spectate" | "teamSpawn"; players: { max: number; min: number; }; respect: number | null; retries: number; teams: object[]; timeLimit: number | null; }; title: string; }; notice: { code: "busy" | "gaveUp" | "refused" | "inRun"; text: string; } | null; players: number; playlist?: "any" | "coop" | "versus" | "races" | null; results: { forfeit: boolean; mission: string; outcome: "complete" | "failed" | "abandoned" | "won" | "draw" | "lost"; run: string | null; seats: object[]; seconds: number | null; title: string; winner: string | null; winnerName: string | null; } | null; run: string | null; state: "gathering" | "countdown" | "running" | "ready" | "results"; teams: object[]; visibility: "private" | "public"; vote: { endsIn: number; mine: "level" | "game" | "same" | "replay" | null; offers: object[]; } | null; you: string | null; }>
vote
vote: (
id,offer) =>Promise<{canStart:boolean;countdown: {seconds:number;waiting:boolean; } |null;game: {by:string;curated:boolean;id:string;level:string;rating: {average:number;count:number; };title:string; };host:string|null;id:string;join?: {joinUrl:string;room:string;run:string; };max:number;mission: {blurb:string|null;id:string;rules: {each:boolean;friendlyFire:boolean;joinInProgress:"never"|"untilCheckpoint"|"always";lives: {count:number;per:"player"|"team"; } |null;mode:"solo"|"coop"|"versus";onDeath:"checkpoint"|"spectate"|"teamSpawn";players: {max:number;min:number; };respect:number|null;retries:number;teams:object[];timeLimit:number|null; };title:string; };notice: {code:"busy"|"gaveUp"|"refused"|"inRun";text:string; } |null;players:number;playlist?:"any"|"coop"|"versus"|"races"|null;results: {forfeit:boolean;mission:string;outcome:"complete"|"failed"|"abandoned"|"won"|"draw"|"lost";run:string|null;seats:object[];seconds:number|null;title:string;winner:string|null;winnerName:string|null; } |null;run:string|null;state:"gathering"|"countdown"|"running"|"ready"|"results";teams:object[];visibility:"private"|"public";vote: {endsIn:number;mine:"level"|"game"|"same"|"replay"|null;offers:object[]; } |null;you:string|null; }>
Parameters
id
string
offer
"level" | "game" | "same" | "replay"
Returns
Promise<{ canStart: boolean; countdown: { seconds: number; waiting: boolean; } | null; game: { by: string; curated: boolean; id: string; level: string; rating: { average: number; count: number; }; title: string; }; host: string | null; id: string; join?: { joinUrl: string; room: string; run: string; }; max: number; mission: { blurb: string | null; id: string; rules: { each: boolean; friendlyFire: boolean; joinInProgress: "never" | "untilCheckpoint" | "always"; lives: { count: number; per: "player" | "team"; } | null; mode: "solo" | "coop" | "versus"; onDeath: "checkpoint" | "spectate" | "teamSpawn"; players: { max: number; min: number; }; respect: number | null; retries: number; teams: object[]; timeLimit: number | null; }; title: string; }; notice: { code: "busy" | "gaveUp" | "refused" | "inRun"; text: string; } | null; players: number; playlist?: "any" | "coop" | "versus" | "races" | null; results: { forfeit: boolean; mission: string; outcome: "complete" | "failed" | "abandoned" | "won" | "draw" | "lost"; run: string | null; seats: object[]; seconds: number | null; title: string; winner: string | null; winnerName: string | null; } | null; run: string | null; state: "gathering" | "countdown" | "running" | "ready" | "results"; teams: object[]; visibility: "private" | "public"; vote: { endsIn: number; mine: "level" | "game" | "same" | "replay" | null; offers: object[]; } | null; you: string | null; }>