Skip to main content

turnbase_match/
lib.rs

1//! Turn-loop orchestration for [`turnbase`]: seat agents and a match stepper.
2//!
3//! [`Simulator`] is plain, synchronous bookkeeping over a [`turnbase::Game`]:
4//! it decides whose turn it is, asks a [`turnbase_bots::Bot`] for an action or
5//! waits on a human, applies the result, and logs it. There is no terminal,
6//! rendering, socket, or file I/O in its dependency tree, so it runs
7//! identically under `cargo test`, behind a `turnbase-simulator` dashboard, or
8//! inside a headless CLI.
9//!
10//! This is the shared substrate the interactive and headless clients both run
11//! on. Rendering lives one layer up in `turnbase-simulator`; persistence and
12//! the request/response port live in `turnbase-session`.
13
14mod simulator;
15
16pub use simulator::{PlayerAgent, Simulator};