Implements the full D-180/D-181 economics pipeline: **#810 — Event input port (D-180)** - Add EconEvent struct with Target/Effect/Duration/Visibility variants - Implement EventPort as typed input queue for external disruptions - Apply events in simulation step; D-179 Test 3 now uses real shock injection **#821 — Integrate econ-sim into server tick loop** - Extract econ-sim as library crate (lib.rs + sim.rs, Cargo.toml [lib] section) - Add Simulation stateful runner; step() advances one economy tick - Add EconSimResource, EconStateResource (7 D-181 signals), tick_economy_simulation - Economy loads once at startup; graceful no-op when systems.db absent - Server advances economy 1 tick per 10 game ticks (D-031) **#822 — Expose economy state over IPC bridge** - Protocol version 20 → 21 - Add EconomySnapshot, EconNodeSnapshot wire types - Add EconStateQuery PlayerAction variant; response in economy_snapshot field - Add EconQueryBuffer resource + serve_econ_state_query system **#823 — Economics debug commands** - Add InjectEconEvent, SetEconParam, GetEconState to DebugCommandKind - Add EconDebugEffect, EconParamKind enums - SetEconParam mutates α/β at runtime (α/β promoted to pub const + Simulation fields) - ALPHA and BETA constants threaded through step_inner/trade_step signatures All 1147 unit tests pass; zero warnings. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
31 lines
901 B
Rust
31 lines
901 B
Rust
//! econ_sim — Settled Reach economics simulation library.
|
|
//!
|
|
//! Exposes the Layer 1+2+3 tâtonnement simulation as a reusable library crate.
|
|
//! The standalone `econ-sim` binary uses the same modules independently.
|
|
//!
|
|
//! ## Entry points
|
|
//!
|
|
//! - [`Simulation`] — stateful per-tick runner for server integration (#821).
|
|
//! Initialize once, call `step()` each economy tick.
|
|
//!
|
|
//! - [`model::run_with_events`] — batch runner (runs N ticks, returns TickRecords).
|
|
//! Used by the standalone binary and stability checks.
|
|
//!
|
|
//! ## Key decisions
|
|
//!
|
|
//! - D-178: Economic model architecture (Leontief + tâtonnement + agents)
|
|
//! - D-180: Event input port (`EconEvent`, `EventPort`)
|
|
//! - D-181: 7-signal vocabulary per active node
|
|
|
|
pub mod agents;
|
|
pub mod currency;
|
|
pub mod db;
|
|
pub mod events;
|
|
pub mod model;
|
|
pub mod prng;
|
|
pub mod seed;
|
|
pub mod trade;
|
|
|
|
mod sim;
|
|
pub use sim::Simulation;
|