export enum GameState { Setup, Joined, Started, MyTurn, Ended, } export enum GameStateState { Setup = 'setup', Running = 'running', Ended = 'ended', } export interface ApiObject { errors?: string[], } export interface JoinCreateGameObject extends ApiObject { player: PlayerObject, code: string, } export interface IsStartedObject extends ApiObject { started: boolean, } export interface MyTurnObject extends ApiObject { gameState: GameStateObject, turn: boolean, } export interface GameStateObject { state: GameStateState, code: string, rounds: RoundObject[], players: PlayerObject[], currentPlayer: PlayerObject, owningPlayer: PlayerObject, } export interface RoundObject { number: number, turns: TurnObject[], loser?: PlayerObject, myRolls: number[], rolls: number[][], } export interface TurnObject { number: number, player: PlayerObject, diceCount: number, dieValue: number, } export interface PlayerObject { id: string, name: string, } export interface GuessAction { diceCount: number, dieValue: number, }