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>
44 lines
1.3 KiB
TOML
44 lines
1.3 KiB
TOML
[package]
|
|
name = "settled-reach-server"
|
|
version = "0.1.33"
|
|
edition = "2021"
|
|
|
|
[dependencies]
|
|
bevy_ecs = "0.18"
|
|
bevy_app = "0.18"
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_yaml = "0.9"
|
|
ron = "0.8"
|
|
rmp-serde = "1"
|
|
bincode = "1"
|
|
rand = "0.9"
|
|
rand_chacha = "0.9"
|
|
pathfinding = "4.11"
|
|
thiserror = "2"
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
|
|
clap = { version = "4", features = ["derive"] }
|
|
crossbeam-channel = "0.5"
|
|
sysinfo = "0.35"
|
|
serde_json = "1"
|
|
rusqlite = { version = "0.32", features = ["bundled"] }
|
|
toml = "0.8"
|
|
# Economics simulation — Leontief + tâtonnement + D-180 event port (#821)
|
|
econ-sim = { path = "../tooling/econ-sim" }
|
|
|
|
[features]
|
|
default = ["gauntlet"]
|
|
gauntlet = []
|
|
|
|
[dev-dependencies]
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Explicit test target for the Layer 3 integration module (D-030, ticket #200).
|
|
# tests/integration/mod.rs cannot be auto-discovered by cargo (only top-level
|
|
# *.rs files in tests/ are auto-discovered). This declaration makes it a named
|
|
# test binary: `cargo test --test integration_layer3`.
|
|
# ---------------------------------------------------------------------------
|
|
[[test]]
|
|
name = "integration_layer3"
|
|
path = "tests/integration/mod.rs"
|