export interface GameObject { _id: string; } export interface PlayingTurn { currentTeam: string; cardsLocked: string[]; lockedEffects: string[]; tokens: Effect[]; damage: number; gold: number; } export interface Game extends GameObject { fireGems: Container; market: Container; marketStack: Container; teams: Team[]; currentTurn: PlayingTurn; started: boolean; owner: User; } export interface Team extends GameObject { players: Player[]; health: number; } export interface Player extends GameObject { board: Container; discard: Container; hand: Container; stack: Container; user: User; discardMarkers: number; fuckUMarkers: number; } export interface User extends GameObject { userId: string; avatar: string; username: string; } export interface Container extends GameObject { cards: Card[]; shuffling?: boolean; } export interface Effect extends GameObject {} export interface Card extends GameObject { cardId: number; effects: Effect[]; }