import { Action } from '../rules/Action'; import { PlayerView } from './PlayerView'; /** * A decision maker for one seat. * * Synchronous and pure: given the same view, a bot returns the same action. * Any pacing — the pause that makes a bot feel like it is thinking — belongs to * the presentation layer, not here. */ export interface Bot { readonly name: string; /** Must return one of `view.legalActions`. */ decide(view: PlayerView): Action; }