use typed_arena::Arena; use crate::{game_state::GameState, action::PlayerAction, agent::PlayerAgent}; pub struct GameStateMachine<'a> { pub state_arena: Arena<GameState>, pub action_arena: Arena<PlayerAction>, pub history: Vec<&'a GameState>, pub action_history: Vec<&'a PlayerAction>, pub current_state: &'a GameState, pub player_agent1: PlayerAgent, pub player_agent2: PlayerAgent, }