import { Player, PlayerPhantom } from "./Player" import { Action } from "./Action" import { CourtObject } from "./CourtObjects" export interface Tactic { readonly id: number readonly name: string readonly courtType: CourtType readonly currentStepContent: StepContent readonly rootStepNode: StepInfoNode } export interface StepContent { readonly stepId: number readonly components: TacticComponent[] } export interface StepInfoNode { readonly id: number readonly children: StepInfoNode[] } export type TacticComponent = Player | CourtObject | PlayerPhantom export type ComponentId = string export type CourtType = "PLAIN" | "HALF" export interface Component { /** * The component's type */ readonly type: T /** * The component's identifier */ readonly id: ComponentId readonly pos: Positioning readonly actions: Action[] }