//! CLI surface for the `rivet` binary.
//!
//! `main.rs` only sees [`Cli`] (parser type) and [`dispatch`] (entry point).
//! Internally the module is split into four single-purpose siblings so the
//! 900-line monolith stays out of `main.rs`:
//!
//! - [`args`] — clap derive types (`Cli`, `Commands`, `StateAction`,
//! `PlanFormat`, `ReconcileFormat`); pure grammar, no behavior.
//! - [`validate`] — cross-flag invariants that clap cannot express.
//! - [`params`] — `--param KEY=VALUE` parsing and `--source*` resolution.
//! - [`dispatch`] — the `match` that routes each parsed subcommand to its
//! pipeline/init/preflight entry point.
//!
//! Each submodule keeps its own unit tests, so the suite is split along the
//! same seams as the production code.
pub use Cli;
pub use dispatch;