--- title: "Gestalt Round 1 — Morphology Algorithm Family + Game-Feel Constraints" workshop: tile-derivation-contract participant: Gestalt round: 1 date: 2026-06-07 --- # Gestalt Round 1: The Morphology Family and What Terrain Must Do Let me break down what this actually means mechanically. We have two distinct problems that must be solved simultaneously: (1) the classification logic that selects which algorithm runs for a given region, and (2) the game-feel contract that algorithm must satisfy. These are not separable — an algorithm that is geologically plausible but produces flat, featureless terrain at the 64 m chunk scale is a failed algorithm regardless of its realism score. --- ## Framing: What the Morphology Algorithm Actually Produces Tyre's API contract gives each morphology family a clean interface: - **Receives:** `ChunkContext` (RegionProfile + warped position + elevation grid + flow data) - **Produces:** `ElevationDelta: i16` per voxel column (signed integer metres, delta from base heightmap) That `ElevationDelta` output is then consumed by the material/vegetation/water derivation steps. So the morphology family's job is: given a region's coarse character, produce the fine-grain elevation variation within each chunk that (a) reads as physically coherent and (b) produces tactically interesting geometry. The D-228 axis for "shape / geometry" is explicitly `f(elevation-step × material)` — sand slumps, rock faces go vertical. The morphology algorithm drives `elevation`; material drives how that elevation is expressed as renderable geometry. These two together produce cover, line-of-sight, and chokepoints. --- ## Part 1: The Six Morphology Families I am enumerating eight families, not six — six is the minimum; eight is what the world actually needs. The selector logic is why this makes sense: some of these are statistically rare (fjord, lava field) but their game-feel is so distinct that collapsing them into a broader family would produce detectable sameness. ### Selection Logic Overview The selector is a decision tree over integer inputs. All inputs are available in `RegionProfile` as Tyre has sketched it. I will specify what each input node needs to be, and flag one addition. **Inputs required (all integer or enum — D-010 compliant):** | Input | Type | Source | |-------|------|--------| | `slope_class` | `Flat / Gentle / Steep / Cliff` | 3×3 elevation kernel, already in RegionProfile | | `drainage_class` | `None / Ephemeral / Perennial / Major` | D8 flow accumulation | | `sea_level_margin` | `i32` metres | elevation − sea_level | | `lithology` | enum | body params + elevation strata | | `glaciation` | `u8` grade 0–4 | body params (temperature + tectonic age) | | `tectonic_class` | `Passive / Active / Volcanic` | body params (new — see below) | | `sub_biome` | enum | D-210 | **One addition to RegionProfile I need:** `tectonic_class: TectonicClass` (Passive / Active / Volcanic). This is a body-level parameter (like `hydrosphere` and `tectonic_activity`) that modulates which high-energy families are eligible. A geologically dead body cannot produce lava fields or fault scarps. This keeps the classification honest and prevents algorithm outputs that contradict the body's established character. --- ### Family 1: Meander Reach **Selection context:** - `slope_class` = Flat or Gentle - `drainage_class` = Perennial or Major - `sea_level_margin` > +20 m (above tidal influence) - `glaciation` <= 1 (not glaciated) - `lithology` = Alluvial or Sedimentary **What the algorithm produces:** A sinuous channel with a defined thalweg (deepest flow line), pointbar deposits on the inside of bends, and a cutbank face on the outside. The active floodplain is 3–12 m below the surrounding terrace. Oxbow lakes appear where prior meanders were cut off — these are ponds of still water on the floodplain, 4–20 m across. The meander geometry is driven by a parametric sine-distortion of the D8 flow direction at chunk scale, with the amplitude controlled by `meander_intensity` (already in `RegionProfile`). The sinuosity parameter (ratio of channel length to valley length) ranges 1.3–2.8 depending on `meander_intensity`. **ElevationDelta range:** −8 to +4 m (channel is below floodplain; terrace is above; total relief within a 64 m chunk is modest). **Tactical character:** Long sight lines broken by river banks and terrace edges. The pointbar is open ground with poor cover; the cutbank is a steep earthen wall (1–3 m, provides hard cover). Oxbow lakes are impassable unless frozen or bridged. River crossing is a chokepoint — the channel itself, 3–15 m wide, forces engagement on the banks. Meander bends create natural flanking ambush positions where the bank curves away from a pursuer's sightline. --- ### Family 2: Incised Gorge / Badland **Selection context:** - `slope_class` = Steep or Cliff - `drainage_class` = Perennial or Major - `sea_level_margin` > +50 m (high above sea level) - `tectonic_class` = Active (or high uplift rate from body params) - `lithology` = Sedimentary or Metamorphic **What the algorithm produces:** A V-shaped or slot canyon geometry. The channel is narrow (2–8 m wide at floor) and deeply incised (15–80 m below the surrounding plateau). Canyon walls are vertical or near-vertical rock faces. At the top, the plateau surface continues at the base heightmap elevation. Talus slopes appear at the base of cliff faces (coarser scree — Gravel lithology — where the cliff transitions to channel floor). Within a 64 m chunk, a gorge manifests as: the plateau surface at base elevation (flat or gently rolling), a cliff edge dropping sharply, the canyon floor, and the far cliff rising again. Not every chunk contains the full cross-section — chunks on the plateau see only the cliff edge; chunks on the floor see only walls. **ElevationDelta range:** −80 to 0 m (plateau stays at base; gorge cuts downward). **Tactical character:** Extreme vertical asymmetry — the dominant tactical variable. A character on the plateau rim has total LOS advantage over the floor, can fire down, cannot be flanked from below. But cliff faces are un-climbable without gear (a mechanical constraint the tile data supports: Cliff shape on Rock material = impassable). Gorge floors are extremely exposed if the rim is held. Gorge passages are decisive chokepoints — a party controlling a narrow canyon floor controls the route. The slot geometry creates situations where the player cannot retreat without crossing the enemy's field of fire. --- ### Family 3: Braided Delta / Distributary Fan **Selection context:** - `slope_class` = Flat or Gentle - `drainage_class` = Major - `sea_level_margin` between −5 and +15 m (near sea level) - `lithology` = Alluvial - NOT `glaciation` >= 3 **What the algorithm produces:** Multiple shallow, anastomosing channels (2–6 m wide, 0.3–1.5 m deep) dividing and rejoining across a nearly-flat fan surface. Islands of slightly higher ground (natural levees and splays) sit between channels. The whole surface is within 2–4 m of sea level; many tiles are waterlogged or tidal-flat state at high water. Channel positions are driven by a multi-seed Voronoi partition of the chunk area with D8 flow direction as an attractor — each Voronoi center generates a channel branch. The `meander_intensity` parameter controls how much the branches deviate from a straight downslope path. **ElevationDelta range:** −2 to +3 m (almost flat; channels are slight incisions; levees are slight rises). **Tactical character:** Mobility is the dominant constraint. The network of small channels fragments the surface into irregular islands — movement requires knowing which crossings are wadeable (Shallow Water at low tide) vs blocked (Deep Water at high tide). The Q-105 tidal/seasonal water model makes the same terrain tactically different at different times of day. Cover is minimal (low, flat vegetation, no high ground) but concealment is high (dense reed beds, tall grass, poor LOS in all directions). Ambushes are set in reed cover; pursuit is slow; routing is non-obvious. --- ### Family 4: Dune Strand / Aeolian Plain **Selection context:** - `sea_level_margin` between −2 and +30 m - `lithology` = Sand - `sub_biome` = Arid or Coastal - `drainage_class` = None or Ephemeral - `slope_class` = Flat or Gentle **What the algorithm produces:** Transverse or barchan dune forms, oriented perpendicular to `dune_orientation` (compass octant in RegionProfile — prevailing wind). Dune height 2–12 m; inter-dune corridors are flat sand at base elevation. The slip face (steep lee side, ~32° angle of repose) is the sharp edge; the windward stoss side is gentle. Within a 64 m chunk: typically 1–3 dune crests visible, with inter-dune troughs. The pattern repeats with seed-driven wavelength variation (0.7–1.4× nominal spacing) to prevent visible periodicity. **ElevationDelta range:** −3 to +12 m (troughs below base; crests above). **Tactical character:** Dune crests are the key terrain feature — short-range cover on the stoss side (the gentle approach), sudden exposure on the slip face (the sharp drop). Crest control is inherently ephemeral in the sense that the geometry forces skyline exposure — you are visible from anywhere on the stoss side the moment you crest. The inter-dune corridors are covered routes but lead into bowls with no exit cover. Movement slows on loose sand (a material-driven movement penalty). LOS is extremely range-dependent: from a dune top you see far; in a trough you see perhaps 20 m. --- ### Family 5: Cliff Coast / Sea Stack **Selection context:** - `sea_level_margin` between −20 and +10 m - `slope_class` = Steep or Cliff - `lithology` = Rock or Metamorphic (NOT Sand — that is Dune Strand) - `glaciation` <= 1 **What the algorithm produces:** A wave-cut platform at or just below sea level, then a cliff face rising 10–80 m to a clifftop plateau. The cliff face is sheer rock (Cliff shape, Rock material, impassable). Sea stacks are isolated rock pillars standing in shallow water offshore — generated as local elevation spikes in the sub-sea zone where a noise field exceeds a lithology-dependent threshold (hard rock produces stacks; soft rock produces a smooth platform). The clifftop is the base heightmap elevation; the platform and stack geometry are ElevationDelta downward from there (platform −10 to −30 m relative to clifftop, meaning near sea level; stacks are +0 to +20 m above sea level but below the main cliff top). **ElevationDelta range:** −30 to 0 m (cliff is a step-down to the coast; no upward delta from clifftop). **Tactical character:** Unambiguous dominance of the high ground. Cliff-edge positions are impregnable from below (cliff face is impassable) and exposed from above. Clifftop defenders have infinite LOS over the ocean approach. Attackers from the sea face a wall. The wave-cut platform, when exposed at low tide, is a short-duration tactical route — accessible only during specific water states (the Q-105 tidal model), creating timed-window scenarios. Sea stacks provide intermediate cover in an otherwise featureless marine approach — the only interrupt of a long open crossing. --- ### Family 6: Fjord Wall / Glaciated Inlet **Selection context:** - `sea_level_margin` between −50 and +200 m - `slope_class` = Cliff (required) - `glaciation` >= 2 - `lithology` = Rock or Metamorphic **What the algorithm produces:** Near-vertical rock walls rising from deep water. The U-shaped cross-section (glacial, not V-shaped fluvial) means the wall base is at or below sea level and the wall face continues upward to the fjord rim hundreds of meters above. Hanging valleys produce waterfalls (a narrow shelf partway up the wall where a tributary glacier once entered). The water within the fjord is deep (ElevationDelta far below sea level on the water side). At the 64 m chunk scale: most fjord wall chunks are almost entirely cliff face. The only variation is whether the chunk is at the waterline (bottom of cliff meets water), mid-wall (continuous cliff face), or near the rim (cliff top with overhanging vegetation at the edge). Hanging valley shelves appear occasionally as a narrow flat ledge at a consistent elevation band across the wall. **ElevationDelta range:** −200 to +50 m (deep water below; wall can rise significantly above base heightmap where the hanging valley creates a ledge). **Tactical character:** Maximum verticality. The fjord is effectively a sealed corridor — the wall faces are impassable; movement is restricted to the narrow strip at the water's edge (when it exists) or to the fjord rim. The hanging valley shelves are the critical feature: a narrow ledge 40–80 m above the waterline that provides fire positions looking down the full length of the fjord. Controlling a hanging valley shelf means controlling the entire fjord below. Approach by water is extremely exposed — no cover, walls on both sides, no retreat options. --- ### Family 7: Alluvial Plain / Floodplain Terrace **Selection context:** - `slope_class` = Flat - `drainage_class` = None or Ephemeral (no active major channel in this region) - `sea_level_margin` > +5 m - `lithology` = Alluvial or Sedimentary - `glaciation` <= 1 **What the algorithm produces:** The default "open country" family. Low-relief terrain with gentle undulation from a filtered noise field. Occasional low terrace edges (1–3 m) mark former floodplain levels. Isolated stone outcrops (lithology-dependent) provide local relief. The dominant feature is the long sight line — this is the family where LOS extends to the full render distance. **ElevationDelta range:** −3 to +5 m (mild undulation, terrace edges). **Tactical character:** This is the exposed terrain family, and it is here by design. The game needs open ground — not every biome should be a maze of cover. Alluvial plains force movement decisions about crossing open ground, using dead ground (slight hollows where elevation puts you below the local crestline), and timing movement to reach scattered cover (the occasional outcrop or terrace edge). The terrace edges are the key tactical micro-feature: a 2 m earthen drop that provides hard cover from one direction but exposes you from the other. --- ### Family 8: Lava Field / Volcanic Surface **Selection context:** - `tectonic_class` = Volcanic - `lithology` = Lava (basalt) - `sub_biome` = Volcanic or Barren **What the algorithm produces:** Two sub-types depending on lava flow age (body parameter): - **Pahoehoe (fresh/smooth):** Gently rolling surface with occasional lava tubes (collapsed tunnels — impassable gaps, 2–8 m across, 5–20 m deep). Glassy, uneven surface with no vegetation. - **A'a (older/rough):** Sharply irregular surface with scoria ridges 1–4 m high. Near-impassable except along flow channels where the surface smoothed. **ElevationDelta range:** −20 to +8 m (lava tubes cut down; scoria ridges add height). **Tactical character:** Irregular terrain with extreme movement costs on A'a surface (material: Lava, movement penalty severe). Lava tubes are natural ambush corridors — narrow, enclosed, high-concealment, but with no exit options once committed. The pahoehoe surface, while traversable, produces a distinctive movement sound profile (glassy clicks vs soft dirt) that may affect stealth mechanics. --- ## Part 2: The Selection Decision Tree This is the classifier that produces `MorphologyFamily` from `RegionProfile`. It is a deterministic decision tree, not a probability distribution — each input combination maps to exactly one primary family (with a secondary family for boundary blending, as Tyre's API already anticipates). ``` if tectonic_class == Volcanic AND lithology == Lava: → LavaField else if sea_level_margin IN [-200, +10] AND slope_class IN [Steep, Cliff]: if glaciation >= 2: → FjordWall else: → CliffCoast else if sea_level_margin IN [-5, +15] AND drainage_class == Major AND lithology == Alluvial: → BraidedDelta else if lithology == Sand AND drainage_class IN [None, Ephemeral]: → DuneStrand else if drainage_class IN [Perennial, Major] AND slope_class IN [Steep, Cliff] AND sea_level_margin > +50: → IncisedGorge else if drainage_class IN [Perennial, Major] AND slope_class IN [Flat, Gentle] AND sea_level_margin > +20: → MeanderReach else: → AlluvialPlain ← the default / open-country family ``` **Why AlluvialPlain is the fallback:** It is the correct geological answer for "didn't meet any special conditions." It is also the most tactically important family to have abundant — players need open ground. If everything is a special terrain family, every encounter becomes a cave-fight. **Secondary family for blending:** When a chunk sits on a region boundary, the secondary family is the result of running this tree on the adjacent `RegionProfile`. The families that blend gracefully (MeanderReach + AlluvialPlain) are common and well-behaved. The families that do NOT blend gracefully (FjordWall + DuneStrand) should never be adjacent — and if the world generates that adjacency, it indicates a body parameter inconsistency that the body-params validator should flag. --- ## Part 3: Family Transition Boundaries — Where the Families Actually Meet These are the terrain edges that players will encounter most often. They are not smooth transitions — they are geomorphological discontinuities, and that is correct. The domain warp (Tyre's mechanism) prevents the discontinuity from aligning with a chunk grid line, but the discontinuity itself should be sharp. **Meander Reach → Alluvial Plain:** The river floodplain (Meander) transitions to the surrounding upland (Alluvial) at the terrace edge. This is the most common transition in lowland terrain. Tactically: crossing from open plain to the floodplain means descending the terrace edge — a 1–3 m earthen step that provides cover in one direction. **Incised Gorge → Alluvial Plain:** The plateau continues as AlluvialPlain; the gorge cuts into it. From the surface, this appears as a sudden cliff edge. The transition is the most dramatic visible boundary in the game — you walk across open ground and the terrain simply drops away. Tactically: the cliff edge is a LOS boundary — you cannot see into the gorge until you are at the rim. **Braided Delta → Meander Reach:** Moving upstream, the multi-channel delta collapses into a single meandering channel. The transition is gradual — channels reduce in number, ground height increases slightly. Tactically: the covered, fragmented delta gives way to the more open meander terrain. **Cliff Coast → Alluvial Plain:** Clifftop terrain is AlluvialPlain at the heightmap elevation; below is CliffCoast. The transition is the cliff edge — same character as Gorge → Plain but coastal. **Fjord Wall → AlluvialPlain (at the fjord head):** At the landward end of a fjord, the walls close off and the valley floor becomes accessible. This narrow valley floor is AlluvialPlain — a classic settlement site. Tactically: the fjord head is the one location where the wall-dominated fjord opens into traversable terrain. It is always a strategic point. --- ## Part 4: Game-Feel Constraints the Contract Must Satisfy This is the section I am most insistent on. The morphology algorithm family must satisfy these constraints, or it fails as a design — regardless of geological fidelity. These are not aesthetic preferences; they are mechanical requirements that flow from D-008 (action design) and the five pillars. ### Constraint 1: Every chunk must contain at least one tactical decision point A "tactical decision point" is any terrain feature that creates a meaningful choice about movement, positioning, or engagement: a crest, a bank, a chokepoint, a crossing, a blind corner, a piece of cover. Alluvial plain is the hardest family to satisfy this constraint — flat terrain with no features is not interesting. The solution: the terrace edges (1–3 m earthen drops, never absent from AlluvialPlain chunks) and the isolated outcrops (seed-driven, present in ~60% of chunks) always provide at least one feature. The constraint is violated if an algorithm produces a perfectly flat, featureless 64×64 m surface. This must be checked during family implementation. ### Constraint 2: Cover and concealment must be distinct D-228's composite tile schema gives us the tools: `TerrainMaterial` (hard cover — does a rock stop a projectile), `Vegetation` (soft cover / concealment — does a reed bed block LOS), and `elevation` / shape (geometric cover — am I below the crestline). These are orthogonal axes, and a well-designed morphology family exploits the distinction. - Meander pointbar: low elevation (no geometric cover) + dense Vegetation (concealment) + Alluvial soil (no hard cover) → concealment without protection - Gorge cliff face: Cliff shape (un-crossable) + Rock material (hard cover) + no Vegetation → hard cover with no concealment - Dune crest: geometric cover only (elevation blocks LOS from below) + no hard cover (sand stops nothing) + no concealment (bare sand, no vegetation) - Reed delta: Vegetation concealment + no geometric cover + no hard cover → the ambush terrain The morphology algorithm must place these in combination, not uniformly. A family that produces uniform concealment throughout is not interesting. The good terrain is the one where the player has to read the ground to understand which tiles give which kind of protection. ### Constraint 3: Verticality must create asymmetric engagement conditions D-008 explicitly calls for Z-levels and vertical asymmetry. The terrain derivation is the source of that asymmetry at the world level (buildings create it at the settlement level). The constraints: - **The high ground must be visibly identifiable** from the approach. Players should be able to see that the gorge rim dominates the floor, that the dune crest exposes them, that the fjord shelf controls the inlet. The rendered geometry must make this legible — and that geometry comes from the ElevationDelta values the morphology algorithm produces. - **The high ground must not be universally dominant.** If every elevated position is trivially superior, the game collapses to "whoever controls the high ground wins." The counter: (a) the high ground is often exposed from range (silhouette), (b) close terrain (gorge wall, dense reed bed) negates ranged advantages, (c) the cliff face is impassable from below but also from above (you cannot exploit the position you cannot reach). The morpology algorithm must produce terrain where the high ground advantage is real but contestable. - **Chokepoints must be narrow enough to matter.** A river ford that is 50 m wide is not a chokepoint. The meander algorithm must produce crossings narrow enough (3–15 m) that controlling one bank can meaningfully contest passage. The gorge floor must be narrow enough (2–8 m at the cliff base) that it cannot be flanked. ### Constraint 4: The derivation must be legible at the Atlas layer The Atlas (Phase 3–4 deliverable) must show morphology zone boundaries as visible map features — players planning movement at the region scale need to read the terrain. This means: - `RegionProfile.morphology_zone` must map cleanly to a distinct Atlas color / icon — Tyre's API already provides this; I am confirming the family vocabulary supports this legibility. - The transition between families must be visible at Atlas resolution (the 1 km region scale) even though the texture of that transition is driven by chunk-scale geometry. A "MeanderReach region" on the Atlas should look like a floodplain, not just a flat-colored zone. ### Constraint 5: Seasonal and dynamic state must change tactical character, not just appearance Q-105 ties the tidal and seasonal water model to derived tile states. The morphology families that depend on this model are BraidedDelta and MeanderReach — both produce floodplain terrain where the Q-105 water-height determines which tiles are passable. The contract: the morphology algorithm must produce ElevationDelta values that, when combined with the regional water-height model, create a genuine tactical difference between high-water and low-water states. "The delta floods at high tide" must mean "you cannot cross the delta at high tide, period" — not "the color of the water tiles changes." This requires the delta channel elevations to be genuinely below the Q-105 high-water threshold, and the island levees to be genuinely above it. This is an explicit coupling between the morphology algorithm's ElevationDelta output and the Q-105 model's water-height range. The contract must pin this: BraidedDelta and MeanderReach algorithms must produce elevations relative to sea_level such that: - `channel_floor_elevation ≈ sea_level − 0.5 to sea_level + 0.5 m` - `levee_elevation ≈ sea_level + 1 to sea_level + 3 m` - `high_water_height ≈ sea_level + 1 to sea_level + 1.5 m` (Q-105 tidal term) This puts channels under water at high tide and levees dry at low tide — a real tactical difference. --- ## Part 5: What I Need From Other Participants **From Tyre:** - Confirmation that `tectonic_class` can be added to `RegionProfile` without touching the D8 / Layer-1 pipeline. My expectation: it derives from body params (already available at the region classification stage), so it is a free addition. - The morphology algorithm's contract for its per-chunk warp offset interaction. Specifically: does the warp apply before or after the algorithm sees the ElevationDelta? My position: warp applies to the spatial query position, not to the ElevationDelta output. The algorithm produces a delta for the warped position; material derivation then runs on that delta. This keeps the algorithm implementations simple. - Clarification on the secondary family blending: when `blend_weight < 255`, does the caller blend two ElevationDelta values (one per family), or does each family produce its own full `TileAxes` and the caller blends those? I prefer blending ElevationDelta only — material/vegetation derivation from a blended elevation is cleaner than blending two independent material sets. **From Miri:** - Which families need sub-region variation that cannot be expressed by the algorithm alone? My expectation: MeanderReach needs oxbow lake positions (a secondary zone within a meander region chunk). I propose this is handled by the algorithm internally — oxbow lake detection runs a simple cutoff test on meander radius vs wavelength, producing a local sub-feature without requiring a second region classification. Miri should confirm this matches how real oxbow lakes form (spoiler: it does — they form when meander radius exceeds a threshold relative to channel width, exactly the kind of threshold test the algorithm can implement). - Confirmation that the 8 families cover the morphology diversity the worldbuilder expects. I anticipate Miri will want to add a Mountain Pass family (which I have omitted as a deliberate choice — see note below). **Note on Mountain Pass:** D-234 references "mountain-pass → ribbon only (streets linear along the terrain axis)" as a morphology zone affecting settlement. I have not included MountainPass as a distinct morphology FAMILY because a mountain pass is not a terrain-generating algorithm — it is an Incised Gorge at high elevation with specific access semantics. The RegionProfile's `morphology_zone` can carry MountainPass as a zone classification (distinct from IncisedGorge in semantics and Atlas display) while using the IncisedGorge algorithm for geometry. This keeps the algorithm count lean without losing the semantic distinction D-234 requires. **From Troblum:** - Performance validation on the algorithm implementations. The families I am most concerned about are BraidedDelta (multi-seed Voronoi is potentially expensive) and FjordWall (the hanging valley shelf detection may require neighbor lookups). Both should be implementable in ~1–2 ms/chunk; Troblum should stress-test. --- ## Summary Table | Family | Primary Selector | ElevationDelta | Key Tactical Feature | |--------|-----------------|----------------|---------------------| | MeanderReach | Flat + Perennial/Major + above tide | −8 to +4 m | River crossing chokepoints; bank cover | | IncisedGorge | Steep/Cliff + Perennial + high elevation + Active | −80 to 0 m | Extreme vertical asymmetry; floor exposed | | BraidedDelta | Flat + Major + near sea level + Alluvial | −2 to +3 m | Tidal-cycle movement changes; concealment | | DuneStrand | Sand + arid/coastal + no drainage | −3 to +12 m | Crest exposure; dead-ground corridors | | CliffCoast | Near sea level + Steep/Cliff + non-glaciated + Rock | −30 to 0 m | Timed access via wave-cut platform | | FjordWall | Cliff + glaciated >= 2 + Rock | −200 to +50 m | Hanging valley fire positions; sealed corridor | | AlluvialPlain | Fallback (no special conditions) | −3 to +5 m | Open ground; terrace edges; long LOS | | LavaField | Volcanic + Lava lithology | −20 to +8 m | Movement cost; tube ambush corridors | The algorithm-family vocabulary doubles as the `MorphologyZone` vocabulary for D-228 region-level semantics, with MountainPass added as a zone classification (not a distinct algorithm) for D-234 compatibility.