feat(simulation): extensible generation cascade harness (#952, D-200)

server/src/atlas/cascade.rs — run_cascade(body_seed, body_id, path,
default_sea_level, up_to) loads Layer 0 (heightmap.png) and runs every layer up
to the requested CascadeLayer, returning a CascadeSnapshot. The pure core
run_cascade_from_heightmap orchestrates the layers without file I/O (testable);
run_cascade is the thin path-loading wrapper.

CascadeSnapshot is extensible — each layer's artifact is an Option that becomes
Some once it runs (Layer 0 heightmap always present, Layer 1 topography next;
#954+ append their fields). The carried SeedChain is unused by the RNG-free
Layers 0-1 and feeds the RNG-using layers later (D-224). CascadeLayer is an
append-only ordered enum.

Tests: layer-gating, same-heightmap determinism, layer ordering. The golden-seed
regression fixture (the #952 deliverable) builds on this next.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-23 12:09:49 +02:00
co-authored by Claude Opus 4.7
parent 41343987f0
commit 9bc2ed28f2
2 changed files with 171 additions and 0 deletions
+1
View File
@@ -6,6 +6,7 @@
pub mod attractor_matching;
pub mod block_irregularity;
pub mod body_world_state;
pub mod cascade;
pub mod district_mix;
pub mod drainage;
pub mod features;