feat(simulation): VoxelColumn walking skeleton (T-1028)
D-239 §1/§7/§10 — the lower derivation chain end-to-end with the AlluvialPlain fallback only (specialized families are T-1029). - chunk_context.rs: ChunkContext (64m) — basin_direction + meander phase/wavelength + active-channel params. NO per-tile flow_direction[64x64] (D8 ~152m coarser than a chunk, D-239 §10); features >64m seed from Region-or-higher. SeedDomain::ChunkContext=8. - voxel.rs: VoxelColumn (1m) composing the D-228 tile axes (TerrainMaterial / FloorMaterial=None / Vegetation / Water / elevation_m). Derive-on-demand + VoxelCache (LRU BTreeMap, never persisted per D-227). Domain warp (T-1026) wired through: f64 warp -> as-i32 truncation to the voxel address; all material/morphology gates integer (D-010 — the meander wavelength f64 is truncated before the Water decision). - AlluvialPlain generator: Soil/Wetland terrain, climate vegetation, integer-meander channel (Shallow/Deep) from ChunkContext. The other 7 families are dispatch stubs (canonical terrain material, fall back to AlluvialPlain geometry) — no panic. 29 new tests incl end-to-end determinism (same seed/pos -> identical column), cache hit/miss/eviction/re-derivation, warp-applied. cargo test 1563 pass, clippy -D warnings clean, fmt clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in: