botstadia-interface 0.2.0

BotStadia's shared contracts: arena and agent WIT worlds, arena declarations, payloads, bundles, the policy shell's ONNX contract, replay archives, metrics files and player messages.
Documentation
//! BotStadia's shared contracts.
//!
//! - [`declaration`]: what an arena says about itself, and its checks
//! - [`payload`]: the per-turn input and output encoding, and the host's
//!   validity rule for an output
//! - [`bundle`]: a bot's bundle and its manifest, `botstadia.toml`
//! - [`policy`]: the policy shell's ONNX contract
//! - [`archive`]: the replay archive the player reads
//! - [`metrics`]: the metrics file the site reads
//! - [`copy`]: an arena's `arena.toml`, its site copy
//! - [`player`]: the messages between the site and an arena's player
//!
//! The WIT worlds ship in `wit/`: `botstadia:arena` for arenas' engines and
//! `botstadia:agent` for bots. Features generate bindings for them:
//! `arena-guest`, `agent-guest` and `host`.

pub mod archive;
pub mod bundle;
pub mod copy;
pub mod declaration;
pub mod metrics;
pub mod payload;
pub mod player;
pub mod policy;

/// This crate's version: what generated bot projects depend on.
pub const VERSION: &str = env!("CARGO_PKG_VERSION");

/// The `agent` world's WIT, for tools that generate a bot's bindings (the CLI
/// writes C bindings from it).
pub const AGENT_WIT: &str = include_str!("../wit/agent/agent.wit");

/// The `arena` world's WIT.
pub const ARENA_WIT: &str = include_str!("../wit/arena/arena.wit");

#[cfg(any(feature = "arena-guest", feature = "agent-guest", feature = "host"))]
pub mod bindings;