docs(@projects/@magic-civilization): 🌿 p3-27 — flora succession confirmed subsumed by process_step

Close the flora-succession [~] bullet. Verified in engine code (not the
comment): process_step → run_tier_advancement advances tiers in-place
(par_iter_mut → tick_tiers_capped mutates slots) and returns FloraTransitions
only as a chronicle report. The headless ecology_phase applies succession via
process_step and buffers transitions for the p3-29 FloraSuccession event — no
separate mc-flora::FloraEngine pass needed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Natalie 2026-06-27 06:54:35 -04:00
parent e477784731
commit ca31834db0

View file

@ -22,7 +22,15 @@ interact with.
## Acceptance
- [x] **Ecology population tick** ✅ (eb38e8678 + cba0ea8ec) — `process_ecology_phase` drives `EcologyEngine` per turn in `apply_end_turn` (relocated from mc-turn to dodge the mc-turn→mc-ecology→mc-mapgen cycle); seeds genesis on tick 1, persists via continuation-JSON on GameState; FFI `set_ecology_species_json` + harness `_apply_ecology_species`. mc-player-api 138/0.
- [~] **Flora succession**`EcologyEngine::process_step` already returns + applies `FloraTransition`s (subsumed in the ecology tick above). Confirm whether a separate `mc-flora::FloraEngine` pass is still needed or if process_step covers it.
- [x] **Flora succession** — CONFIRMED 2026-06-27: `process_step` SUBSUMES it; no separate
`mc-flora::FloraEngine` pass is needed. Verified in engine code (not just the doc-comment):
`EcologyEngine::process_step` (engine.rs:341) calls `run_tier_advancement` (engine.rs:500),
which advances tiers **in-place** (`tile_populations.par_iter_mut``tier::tick_tiers_capped`
mutates each tile's `slots`, engine.rs:529/564) and returns the producer-diet `FloraTransition`s
purely as a chronicle **report**. The headless ecology phase (mc-turn `ecology_phase.rs:76`)
applies the succession by calling `process_step` and buffers the returned transitions into
`pending_flora_events` for the p3-29 `FloraSuccession` event surface — it does not need to
re-apply them. So flora succession is live + Rust-authoritative in the headless tick.
- [x] **Marine ecology (core) — DONE; ocean-collapse refinement is GOLD-PLATING, dropped**
(verified 2026-06-27). Per-tile fish-stock + coral-reef + mangrove→fish feedback tick inside
`EcologyEngine::process_step` (engine.rs:416/424) in the headless ecology phase. `ocean_dead_fraction`