import Character from './Character'; import Gecobject from './Gecobject'; import Player from './Player'; import RoundSet from './RoundSet'; export interface IdentifiedAddress { value: string; city?: string; countryCode?: string; latitude: number; longitude: number; } export interface Location { name?: string; address?: IdentifiedAddress | string; } /** * A ĞecoĞvidanto game. */ export default interface Game extends Gecobject { /** * The start time (in ms since EPOCH). */ readonly start: number; /** * Identifier of the game master. */ readonly masterId: string; /** * Location of where the game is played. */ location: Location; /** * A summary of the game, can contain anything in any language. */ summary?: string; /** * Count of rounds per set, should be 8 or 10. */ readonly roundsPerSet: number; /** * The lenght of a round in minutes, should be between 3 and 5. */ readonly roundLength: number; /** * The players of the game. Even if not whished, players may arrive after game start and leave before game end. */ readonly players: ReadonlyArray; /** * The sets of the game. A fully played game should have at least 2 sets. */ readonly roundSets: ReadonlyArray; /** * The characters in the game. Each set, a player is playing a character from birth to death, but death/rebirth will * likely be in the middle of the set. There may also be non player characters. */ readonly characters: ReadonlyArray; /** * Indicate if the game is closed, no more sets will be played. */ closed: boolean; }