diff --git a/docs/decomposition/README.md b/docs/decomposition/README.md index 060e71d..b615f61 100644 --- a/docs/decomposition/README.md +++ b/docs/decomposition/README.md @@ -9,7 +9,7 @@ This workspace contains detailed planning artifacts derived from the finalized m ## Folder Layout - `epics/` - One file per epic with implementation slices. -- `modules/` - Cross-epic contracts, [dependency register](modules/module_dependency_register.md), one [module doc per registered module](modules/module_dependency_register.md#per-module-documentation), and interface notes. +- `modules/` - Cross-epic contracts, [full module dependency register](modules/module_dependency_register.md) (all epic modules), [per-module docs](modules/module_dependency_register.md#per-module-documentation), and interface notes. - `milestones/` - Phase-gated implementation tracks and pass/fail checklists. ## Working Rules diff --git a/docs/decomposition/modules/E1_M1_InputAndMovementRuntime.md b/docs/decomposition/modules/E1_M1_InputAndMovementRuntime.md index 34ee3a6..9e75afc 100644 --- a/docs/decomposition/modules/E1_M1_InputAndMovementRuntime.md +++ b/docs/decomposition/modules/E1_M1_InputAndMovementRuntime.md @@ -35,8 +35,8 @@ Contract readiness is tracked in the [module dependency register](module_depende ## Dependents (by design) -- **E1.M2** — Isometric camera follows the player; needs stable player anchor / position. -- **E1.M3** — Interaction and targeting builds on movement and position. +- **E1.M2** — [IsometricCameraController](E1_M2_IsometricCameraController.md): stable player anchor / position. +- **E1.M3** — [InteractionAndTargetingLayer](E1_M3_InteractionAndTargetingLayer.md): interaction and targeting on movement/position. - **Downstream epics** — Gathering (E3.M1), zone transitions (E4.M1), and others consume position implicitly via higher layers. ## Related implementation slices diff --git a/docs/decomposition/modules/E1_M3_InteractionAndTargetingLayer.md b/docs/decomposition/modules/E1_M3_InteractionAndTargetingLayer.md new file mode 100644 index 0000000..331e823 --- /dev/null +++ b/docs/decomposition/modules/E1_M3_InteractionAndTargetingLayer.md @@ -0,0 +1,47 @@ +# E1.M3 — InteractionAndTargetingLayer + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E1.M3 | +| **Epic** | [Epic 1 — Core Player Runtime](../epics/epic_01_core_player_runtime.md) | +| **Stage target** | Prototype | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +World object selection, target lock, focus swap rules, and hover/highlight feedback. Bridges movement/position ([E1.M1](E1_M1_InputAndMovementRuntime.md)) into combat, gathering, and ability activation ([E1.M4](E1_M4_AbilityInputScaffold.md), [E5.M1](E5_M1_CombatRulesEngine.md)). + +## Responsibilities + +- Resolve `TargetState` for tab-target and interaction flows. +- Describe interactables via `InteractableDescriptor` and emit `SelectionEvent` for UI and systems. + +## Key contracts + +| Contract | Role | +|----------|------| +| `TargetState` | Current locked target, validity, and swap rules. | +| `InteractableDescriptor` | What can be selected or used in range. | +| `SelectionEvent` | Selection changes for feedback and downstream consumers. | + +## Module dependencies + +- **E1.M1** — InputAndMovementRuntime: range and position source of truth. + +## Dependents (by design) + +- **E1.M4** — AbilityInputScaffold. +- **E3.M1** — ResourceNodeAndGatherLoop. +- **E5.M1** — CombatRulesEngine. +- **E8.M1** — PartyAndMatchAssembly (player/party context hooks per epic). + +## Related implementation slices + +Epic 1 **Slice 3** — interaction, targeting, and ability input wiring with [E5.M1](E5_M1_CombatRulesEngine.md). + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 1. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E1_M4_AbilityInputScaffold.md b/docs/decomposition/modules/E1_M4_AbilityInputScaffold.md new file mode 100644 index 0000000..006314a --- /dev/null +++ b/docs/decomposition/modules/E1_M4_AbilityInputScaffold.md @@ -0,0 +1,45 @@ +# E1.M4 — AbilityInputScaffold + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E1.M4 | +| **Epic** | [Epic 1 — Core Player Runtime](../epics/epic_01_core_player_runtime.md) | +| **Stage target** | Prototype | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Hotbar bindings, cooldown slot UI hooks, and the client/input path that issues `AbilityCastRequest` into [E5.M1 — CombatRulesEngine](E5_M1_CombatRulesEngine.md), using targeting from [E1.M3](E1_M3_InteractionAndTargetingLayer.md). + +## Responsibilities + +- Map hotbar slots to abilities and emit `AbilityCastRequest` with validation hints. +- Surface `HotbarLoadout` and `CooldownSnapshot` for UI sync. + +## Key contracts + +| Contract | Role | +|----------|------| +| `AbilityCastRequest` | Intent sent to combat resolution. | +| `HotbarLoadout` | Bound abilities per slot. | +| `CooldownSnapshot` | Client/server-visible cooldown state for UI. | + +## Module dependencies + +- **E1.M3** — InteractionAndTargetingLayer: target lock and cast validity. +- **E5.M1** — CombatRulesEngine: authoritative accept/deny of casts. + +## Dependents (by design) + +- Consumed by UX and telemetry; combat engine remains the authority. + +## Related implementation slices + +Epic 1 **Slice 3** — `ability_cast_requested`, `ability_cast_denied` with reason codes. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 1. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E2_M1_SkillDefinitionRegistry.md b/docs/decomposition/modules/E2_M1_SkillDefinitionRegistry.md new file mode 100644 index 0000000..b492124 --- /dev/null +++ b/docs/decomposition/modules/E2_M1_SkillDefinitionRegistry.md @@ -0,0 +1,43 @@ +# E2.M1 — SkillDefinitionRegistry + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E2.M1 | +| **Epic** | [Epic 2 — Classless Progression](../epics/epic_02_classless_progression.md) | +| **Stage target** | Prototype | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Central catalog for skill metadata, category tags, and unlock prerequisites. All prototype activities reference skills by stable IDs validated against this registry. + +## Responsibilities + +- Load and validate `SkillDef` from data; expose `SkillCategory` and `UnlockRequirement` for gating. + +## Key contracts + +| Contract | Role | +|----------|------| +| `SkillDef` | Per-skill metadata and references. | +| `SkillCategory` | Grouping for UX and balance. | +| `UnlockRequirement` | Prerequisites before XP or use counts apply. | + +## Module dependencies + +- **None** + +## Dependents (by design) + +- **E2.M2** — XpAwardAndLevelEngine (primary). + +## Related implementation slices + +Epic 2 **Slice 1** — skill registry and prototype skills; invalid references fail at load or in CI. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 2. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E2_M2_XpAwardAndLevelEngine.md b/docs/decomposition/modules/E2_M2_XpAwardAndLevelEngine.md index 8c60881..1fe06ba 100644 --- a/docs/decomposition/modules/E2_M2_XpAwardAndLevelEngine.md +++ b/docs/decomposition/modules/E2_M2_XpAwardAndLevelEngine.md @@ -15,7 +15,7 @@ Central server-authoritative engine for classless skill progression: applying XP ## Responsibilities -- Apply `XpGrantEvent` (or equivalent) per skill with validated skill references from E2.M1. +- Apply `XpGrantEvent` (or equivalent) per skill with validated skill references from [E2.M1](E2_M1_SkillDefinitionRegistry.md). - Resolve experience against `LevelCurve` / threshold tables. - Emit `LevelUpEvent` when thresholds are crossed. - Support data-driven curves and reload policy agreed for prototype. @@ -30,7 +30,7 @@ Central server-authoritative engine for classless skill progression: applying XP ## Module dependencies -- **E2.M1** — SkillDefinitionRegistry: `SkillDef`, categories, and validation of skill IDs. +- **E2.M1** — [SkillDefinitionRegistry](E2_M1_SkillDefinitionRegistry.md): `SkillDef`, categories, and validation of skill IDs. ## Dependents (by design) diff --git a/docs/decomposition/modules/E2_M3_MasteryAndPerkUnlocks.md b/docs/decomposition/modules/E2_M3_MasteryAndPerkUnlocks.md new file mode 100644 index 0000000..1dd4db8 --- /dev/null +++ b/docs/decomposition/modules/E2_M3_MasteryAndPerkUnlocks.md @@ -0,0 +1,43 @@ +# E2.M3 — MasteryAndPerkUnlocks + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E2.M3 | +| **Epic** | [Epic 2 — Classless Progression](../epics/epic_02_classless_progression.md) | +| **Stage target** | Pre-production | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Mastery tracks and perk unlock state so classless builds have expressive identity beyond raw level curves. + +## Responsibilities + +- Progress `MasteryTrack` data; emit `PerkUnlockEvent` and persist `PerkState`. + +## Key contracts + +| Contract | Role | +|----------|------| +| `MasteryTrack` | Branch progress per design. | +| `PerkUnlockEvent` | Unlocks for UI and combat/craft hooks. | +| `PerkState` | Current unlocked perks per character. | + +## Module dependencies + +- **E2.M2** — XpAwardAndLevelEngine. + +## Dependents (by design) + +- Gameplay systems that gate abilities or recipes on perks (integration per content). + +## Related implementation slices + +Epic 2 **Slice 4** — at least one mastery path unlocks a perk without blocking other skills. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 2. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E2_M4_ProgressionPacingControls.md b/docs/decomposition/modules/E2_M4_ProgressionPacingControls.md new file mode 100644 index 0000000..f5bcd06 --- /dev/null +++ b/docs/decomposition/modules/E2_M4_ProgressionPacingControls.md @@ -0,0 +1,44 @@ +# E2.M4 — ProgressionPacingControls + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E2.M4 | +| **Epic** | [Epic 2 — Classless Progression](../epics/epic_02_classless_progression.md) | +| **Stage target** | Pre-production | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Tuning knobs for progression velocity and catch-up policy, informed by KPIs from [E9.M2](E9_M2_KpiDashboardsAndAlerting.md). + +## Responsibilities + +- Apply `XpModifierProfile`, `CatchUpRule`, and `PacingPolicy` without breaking skill-ID integrity from [E2.M1](E2_M1_SkillDefinitionRegistry.md) / [E2.M2](E2_M2_XpAwardAndLevelEngine.md). + +## Key contracts + +| Contract | Role | +|----------|------| +| `XpModifierProfile` | Multipliers or bands per cohort. | +| `CatchUpRule` | Acceleration for lapsed or new players. | +| `PacingPolicy` | Named policy bundles for ops toggles. | + +## Module dependencies + +- **E2.M2** — XpAwardAndLevelEngine. +- **E9.M2** — KpiDashboardsAndAlerting. + +## Dependents (by design) + +- **E9.M3** — LiveBalanceControlPlane (remote tuning). + +## Related implementation slices + +Epic 2 **Slice 4** — pacing policy toggles for test cohorts where possible without full redeploy. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 2. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E3_M1_ResourceNodeAndGatherLoop.md b/docs/decomposition/modules/E3_M1_ResourceNodeAndGatherLoop.md new file mode 100644 index 0000000..77e1e4a --- /dev/null +++ b/docs/decomposition/modules/E3_M1_ResourceNodeAndGatherLoop.md @@ -0,0 +1,45 @@ +# E3.M1 — ResourceNodeAndGatherLoop + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E3.M1 | +| **Epic** | [Epic 3 — Crafting Economy](../epics/epic_03_crafting_economy.md) | +| **Stage target** | Prototype | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +World resource nodes, gather interactions, and yield outputs feeding inventory ([E3.M3](E3_M3_ItemizationAndInventorySchema.md)) and XP ([E2.M2](E2_M2_XpAwardAndLevelEngine.md)). + +## Responsibilities + +- Spawn/manage nodes per `ResourceNodeDef`; resolve `GatherResult` via `ResourceYieldTable`; integrate interaction range via [E1.M3](E1_M3_InteractionAndTargetingLayer.md). + +## Key contracts + +| Contract | Role | +|----------|------| +| `ResourceNodeDef` | Node type, capacity, regen. | +| `GatherResult` | Items and depletion state. | +| `ResourceYieldTable` | Probabilities or fixed yields. | + +## Module dependencies + +- **E1.M3** — InteractionAndTargetingLayer. +- **E2.M2** — XpAwardAndLevelEngine. + +## Dependents (by design) + +- **E3.M2** — RefinementAndRecipeExecution (inputs). +- **E4.M2** — SpawnEcologyController. + +## Related implementation slices + +Epic 3 **Slice 2** — 4–6 node types; `resource_gathered`, `gather_node_depleted`. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 3. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E3_M2_RefinementAndRecipeExecution.md b/docs/decomposition/modules/E3_M2_RefinementAndRecipeExecution.md index 0c2503e..3645271 100644 --- a/docs/decomposition/modules/E3_M2_RefinementAndRecipeExecution.md +++ b/docs/decomposition/modules/E3_M2_RefinementAndRecipeExecution.md @@ -11,7 +11,7 @@ ## Purpose -Implements the processing and crafting pipeline: raw-to-refined flows and recipe execution with server-authoritative inventory mutations. Bridges gathered materials (E3.M1) and item definitions (E3.M3) into usable outputs for combat, quests, and economy loops. +Implements the processing and crafting pipeline: raw-to-refined flows and recipe execution with server-authoritative inventory mutations. Bridges gathered materials ([E3.M1](E3_M1_ResourceNodeAndGatherLoop.md)) and item definitions ([E3.M3](E3_M3_ItemizationAndInventorySchema.md)) into usable outputs for combat, quests, and economy loops. ## Responsibilities @@ -29,13 +29,13 @@ Implements the processing and crafting pipeline: raw-to-refined flows and recipe ## Module dependencies -- **E3.M1** — ResourceNodeAndGatherLoop: refined materials flow from gather outputs into crafting inputs. -- **E3.M3** — ItemizationAndInventorySchema: `ItemDef`, `ItemInstance`, inventory slots for costs and outputs. +- **E3.M1** — [ResourceNodeAndGatherLoop](E3_M1_ResourceNodeAndGatherLoop.md): refined materials from gather outputs into crafting inputs. +- **E3.M3** — [ItemizationAndInventorySchema](E3_M3_ItemizationAndInventorySchema.md): `ItemDef`, `ItemInstance`, inventory slots for costs and outputs. ## Dependents (by design) -- **E7.M1** — QuestStateMachine: quest steps may require crafted items or craft completion. -- **E6.M4** — RewardParityEnforcer: maps PvP rewards to PvE/crafting equivalents involving craft outputs. +- **E7.M1** — [QuestStateMachine](E7_M1_QuestStateMachine.md): quest steps may require crafted items or craft completion. +- **E6.M4** — [RewardParityEnforcer](E6_M4_RewardParityEnforcer.md): PvP ↔ PvE/crafting equivalents involving craft outputs. - **Epic 2 integration** — Callers award crafting XP via [E2.M2](E2_M2_XpAwardAndLevelEngine.md) at activity sites. ## Related implementation slices diff --git a/docs/decomposition/modules/E3_M3_ItemizationAndInventorySchema.md b/docs/decomposition/modules/E3_M3_ItemizationAndInventorySchema.md new file mode 100644 index 0000000..198dcec --- /dev/null +++ b/docs/decomposition/modules/E3_M3_ItemizationAndInventorySchema.md @@ -0,0 +1,43 @@ +# E3.M3 — ItemizationAndInventorySchema + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E3.M3 | +| **Epic** | [Epic 3 — Crafting Economy](../epics/epic_03_crafting_economy.md) | +| **Stage target** | Prototype | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Item definitions, rarity/quality, stackability, and equipment metadata plus `InventorySlot` representation. Foundation for craft outputs, quest rewards, combat loot, and trade. + +## Responsibilities + +- Version `ItemDef` / `ItemInstance` schema; enforce stack and slot rules server-side. + +## Key contracts + +| Contract | Role | +|----------|------| +| `ItemDef` | Static template data. | +| `ItemInstance` | Per-item state (stack, durability hook, binds). | +| `InventorySlot` | Container model for players and exchanges. | + +## Module dependencies + +- **None** + +## Dependents (by design) + +- **E3.M2**, **E3.M4**, **E5.M3**, **E7.M2**, **E8.M3**, and any system moving items. + +## Related implementation slices + +Epic 3 **Slice 1** — MVP inventory; `item_created`, transfer failures. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 3. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E3_M4_SinkAndDurabilityLifecycle.md b/docs/decomposition/modules/E3_M4_SinkAndDurabilityLifecycle.md new file mode 100644 index 0000000..80d10c5 --- /dev/null +++ b/docs/decomposition/modules/E3_M4_SinkAndDurabilityLifecycle.md @@ -0,0 +1,44 @@ +# E3.M4 — SinkAndDurabilityLifecycle + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E3.M4 | +| **Epic** | [Epic 3 — Crafting Economy](../epics/epic_03_crafting_economy.md) | +| **Stage target** | Pre-production | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Item decay, consumption, repair, and other sinks that sustain demand; may integrate with market/trade flows from [E8.M3](E8_M3_PlayerTradeAndMarketplace.md). + +## Responsibilities + +- Track `DurabilityState`; emit `ItemSinkEvent`; apply `RepairCostRule` server-authoritatively. + +## Key contracts + +| Contract | Role | +|----------|------| +| `DurabilityState` | Wear and breakage. | +| `ItemSinkEvent` | Destruction/consumption audit trail. | +| `RepairCostRule` | Currency and material costs. | + +## Module dependencies + +- **E3.M3** — ItemizationAndInventorySchema. +- **E8.M3** — PlayerTradeAndMarketplace (epic dependency for settlement-related sinks). + +## Dependents (by design) + +- **E3.M5** — EconomyBalancePolicy. + +## Related implementation slices + +Epic 3 **Slice 4** — `item_sink`, `repair_performed`. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 3. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E3_M5_EconomyBalancePolicy.md b/docs/decomposition/modules/E3_M5_EconomyBalancePolicy.md new file mode 100644 index 0000000..389df91 --- /dev/null +++ b/docs/decomposition/modules/E3_M5_EconomyBalancePolicy.md @@ -0,0 +1,45 @@ +# E3.M5 — EconomyBalancePolicy + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E3.M5 | +| **Epic** | [Epic 3 — Crafting Economy](../epics/epic_03_crafting_economy.md) | +| **Stage target** | Pre-production | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Faucet/sink parameter sets and guardrails for inflation/deflation; feeds alerts via [E9.M2](E9_M2_KpiDashboardsAndAlerting.md). + +## Responsibilities + +- Encode `EconomyPolicy`, `PriceBandRule`, `FaucetSinkRatio` thresholds; integrate with [E3.M4](E3_M4_SinkAndDurabilityLifecycle.md) sinks. + +## Key contracts + +| Contract | Role | +|----------|------| +| `EconomyPolicy` | Named tunable bundles. | +| `PriceBandRule` | Listing/fee bands for [E8.M3](E8_M3_PlayerTradeAndMarketplace.md). | +| `FaucetSinkRatio` | KPI targets and breach signals. | + +## Module dependencies + +- **E3.M4** — SinkAndDurabilityLifecycle. +- **E9.M2** — KpiDashboardsAndAlerting. + +## Dependents (by design) + +- **E8.M3** — marketplace fees and validation. +- **E9.M3** — LiveBalanceControlPlane. + +## Related implementation slices + +Epic 3 **Slice 4** — policy alerts on ratio breaches. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 3. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E4_M1_ZoneGraphAndTravelRules.md b/docs/decomposition/modules/E4_M1_ZoneGraphAndTravelRules.md new file mode 100644 index 0000000..645cc5b --- /dev/null +++ b/docs/decomposition/modules/E4_M1_ZoneGraphAndTravelRules.md @@ -0,0 +1,44 @@ +# E4.M1 — ZoneGraphAndTravelRules + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E4.M1 | +| **Epic** | [Epic 4 — World Topology](../epics/epic_04_world_topology.md) | +| **Stage target** | Prototype | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Regional zone graph, transition links, and travel constraints. Server and client agree on current zone id; illegal shortcuts are blocked. + +## Responsibilities + +- Author `ZoneDef` and `ZoneEdge`; evaluate `TravelRule` on transitions. + +## Key contracts + +| Contract | Role | +|----------|------| +| `ZoneDef` | Identity, bounds or graph membership. | +| `ZoneEdge` | Valid transitions. | +| `TravelRule` | Gating (level, quest, faction). | + +## Module dependencies + +- **None** + +## Dependents (by design) + +- **E4.M2**, **E4.M3**, **E4.M4** — SecurityTierZoneFlags and world layers. +- **E7.M4** — ContractMissionGenerator. + +## Related implementation slices + +Epic 4 **Slice 1** — `zone_enter`, `zone_exit`, invalid transition attempts. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 4. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E4_M2_SpawnEcologyController.md b/docs/decomposition/modules/E4_M2_SpawnEcologyController.md new file mode 100644 index 0000000..73bdaad --- /dev/null +++ b/docs/decomposition/modules/E4_M2_SpawnEcologyController.md @@ -0,0 +1,45 @@ +# E4.M2 — SpawnEcologyController + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E4.M2 | +| **Epic** | [Epic 4 — World Topology](../epics/epic_04_world_topology.md) | +| **Stage target** | Pre-production | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Resource and NPC spawn profiles per zone, respawn pacing, and depletion/recovery so densities stay within design bounds. + +## Responsibilities + +- Drive `SpawnProfile` / `RespawnRule`; maintain `ZoneEcologyState`; coordinate with [E3.M1](E3_M1_ResourceNodeAndGatherLoop.md) and [E5.M2](E5_M2_NpcAiAndBehaviorProfiles.md). + +## Key contracts + +| Contract | Role | +|----------|------| +| `SpawnProfile` | What spawns where and how often. | +| `RespawnRule` | Timers and caps. | +| `ZoneEcologyState` | Current density/depletion snapshot. | + +## Module dependencies + +- **E4.M1** — ZoneGraphAndTravelRules. +- **E3.M1** — ResourceNodeAndGatherLoop. +- **E5.M2** — NpcAiAndBehaviorProfiles. + +## Dependents (by design) + +- Content and live ops tuning; telemetry for spawn waves and recovery. + +## Related implementation slices + +Epic 4 **Slice 3** — `spawn_wave`, depletion/recovery markers. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 4. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E4_M3_SeamlessHandoffAndRegionState.md b/docs/decomposition/modules/E4_M3_SeamlessHandoffAndRegionState.md new file mode 100644 index 0000000..c7f98b7 --- /dev/null +++ b/docs/decomposition/modules/E4_M3_SeamlessHandoffAndRegionState.md @@ -0,0 +1,45 @@ +# E4.M3 — SeamlessHandoffAndRegionState + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E4.M3 | +| **Epic** | [Epic 4 — World Topology](../epics/epic_04_world_topology.md) | +| **Stage target** | Pre-production | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Cross-region handoff behavior and region authority boundaries. Minimal spike: two regions with authority transfer and no duplicate entities. + +**Epic note:** Depends on **backend world services** in addition to E4.M1; those integrations are out-of-repo contracts until defined. + +## Responsibilities + +- Orchestrate `RegionHandoffEvent`; model `RegionAuthority` and `TransferState` during handoff. + +## Key contracts + +| Contract | Role | +|----------|------| +| `RegionHandoffEvent` | Start/complete/fail lifecycle. | +| `RegionAuthority` | Which service owns simulation for an entity. | +| `TransferState` | Serializable handoff payload. | + +## Module dependencies + +- **E4.M1** — ZoneGraphAndTravelRules. + +## Dependents (by design) + +- World/shard services (external); client runtime for loading/streaming. + +## Related implementation slices + +Epic 4 **Slice 4** — `region_handoff_start`, `region_handoff_complete`, rollback path documented. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 4. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E4_M4_SecurityTierZoneFlags.md b/docs/decomposition/modules/E4_M4_SecurityTierZoneFlags.md index 1430677..9a84980 100644 --- a/docs/decomposition/modules/E4_M4_SecurityTierZoneFlags.md +++ b/docs/decomposition/modules/E4_M4_SecurityTierZoneFlags.md @@ -15,7 +15,7 @@ Layer on top of the zone graph that tags each zone with security tier (e.g. high ## Responsibilities -- Assign and persist `SecurityTier` per zone (from data on E4.M1). +- Assign and persist `SecurityTier` per zone (from data on [E4.M1](E4_M1_ZoneGraphAndTravelRules.md)). - Publish `ZonePolicyState` for server and client display alignment. - Emit or serve `ZoneEntryWarning` when players transition into higher-risk zones. @@ -29,12 +29,12 @@ Layer on top of the zone graph that tags each zone with security tier (e.g. high ## Module dependencies -- **E4.M1** — ZoneGraphAndTravelRules: `ZoneDef`, edges, and travel context for tier attachment. +- **E4.M1** — [ZoneGraphAndTravelRules](E4_M1_ZoneGraphAndTravelRules.md): `ZoneDef`, edges, and travel context for tier attachment. ## Dependents (by design) -- **E6.M1** — PvPEligibilityAndFlagState: primary consumer for who may engage in PvP where. -- **E6.M2** — ConsentAndRiskUxSignals: displays risk using tier and warning contracts. +- **E6.M1** — [PvPEligibilityAndFlagState](E6_M1_PvPEligibilityAndFlagState.md): who may engage in PvP where. +- **E6.M2** — [ConsentAndRiskUxSignals](E6_M2_ConsentAndRiskUxSignals.md): risk UI from tier and warnings. ## Related implementation slices diff --git a/docs/decomposition/modules/E5_M1_CombatRulesEngine.md b/docs/decomposition/modules/E5_M1_CombatRulesEngine.md index a5fb6da..7405a08 100644 --- a/docs/decomposition/modules/E5_M1_CombatRulesEngine.md +++ b/docs/decomposition/modules/E5_M1_CombatRulesEngine.md @@ -30,10 +30,8 @@ Core tab-target combat resolution: valid actions against a locked target, hit re ## Module dependencies -- **E1.M3** — InteractionAndTargetingLayer: `TargetState`, selection, and ability request path alignment with **E1.M4** (AbilityInputScaffold; see [Epic 1](../epics/epic_01_core_player_runtime.md)) for `AbilityCastRequest` wiring to this engine. -- **E2.M2** — XpAwardAndLevelEngine: combat XP grants. - -> **Register note:** The [module dependency register](module_dependency_register.md) lists `E1.M3` for this module; E1.M3 is defined in [Epic 1](../epics/epic_01_core_player_runtime.md) but is not a separate row in the register table. +- **E1.M3** — [InteractionAndTargetingLayer](E1_M3_InteractionAndTargetingLayer.md): `TargetState`, selection, and alignment with **E1.M4** ([AbilityInputScaffold](E1_M4_AbilityInputScaffold.md)) for `AbilityCastRequest` wiring. +- **E2.M2** — [XpAwardAndLevelEngine](E2_M2_XpAwardAndLevelEngine.md): combat XP grants. ## Dependents (by design) diff --git a/docs/decomposition/modules/E5_M2_NpcAiAndBehaviorProfiles.md b/docs/decomposition/modules/E5_M2_NpcAiAndBehaviorProfiles.md new file mode 100644 index 0000000..ba4aae3 --- /dev/null +++ b/docs/decomposition/modules/E5_M2_NpcAiAndBehaviorProfiles.md @@ -0,0 +1,44 @@ +# E5.M2 — NpcAiAndBehaviorProfiles + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E5.M2 | +| **Epic** | [Epic 5 — PvE Combat](../epics/epic_05_pve_combat.md) | +| **Stage target** | Prototype | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Enemy archetype behavior loops, aggro logic, and telegraph scheduling on top of [E5.M1 — CombatRulesEngine](E5_M1_CombatRulesEngine.md). + +## Responsibilities + +- Run `NpcBehaviorDef`; emit `TelegraphEvent`; apply `AggroRule` / threat integration with combat state. + +## Key contracts + +| Contract | Role | +|----------|------| +| `NpcBehaviorDef` | Archetype scripts or state machines. | +| `TelegraphEvent` | Telegraph timing for UI and dodge windows. | +| `AggroRule` | Target selection and leash behavior. | + +## Module dependencies + +- **E5.M1** — CombatRulesEngine. + +## Dependents (by design) + +- **E4.M2** — SpawnEcologyController. +- **E5.M3** — EncounterAndRewardTables. + +## Related implementation slices + +Epic 5 **Slice 2** — three archetypes; `telegraph_fired`, `npc_state_transition`. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 5. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E5_M3_EncounterAndRewardTables.md b/docs/decomposition/modules/E5_M3_EncounterAndRewardTables.md new file mode 100644 index 0000000..5a84ba9 --- /dev/null +++ b/docs/decomposition/modules/E5_M3_EncounterAndRewardTables.md @@ -0,0 +1,47 @@ +# E5.M3 — EncounterAndRewardTables + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E5.M3 | +| **Epic** | [Epic 5 — PvE Combat](../epics/epic_05_pve_combat.md) | +| **Stage target** | Prototype | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Encounter templates, completion criteria, and reward drop routing into items ([E3.M3](E3_M3_ItemizationAndInventorySchema.md)) and quest credit via [E7.M2 — RewardAndUnlockRouter](E7_M2_RewardAndUnlockRouter.md). + +## Responsibilities + +- Instantiate `EncounterDef`; roll `RewardTable`; emit `EncounterCompleteEvent` for downstream routers and parity checks. + +## Key contracts + +| Contract | Role | +|----------|------| +| `EncounterDef` | Spawns, objectives, completion rules. | +| `RewardTable` | Loot and currency references validated against item schema. | +| `EncounterCompleteEvent` | Completion signal for quests and telemetry. | + +## Module dependencies + +- **E5.M1** — CombatRulesEngine. +- **E3.M3** — ItemizationAndInventorySchema. +- **E7.M2** — RewardAndUnlockRouter. + +## Dependents (by design) + +- **E5.M4** — GroupCombatScaling. +- **E6.M4** — RewardParityEnforcer. +- **E7.M4** — ContractMissionGenerator. + +## Related implementation slices + +Epic 5 **Slice 3** — `encounter_complete`, reward attribution once. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 5. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E5_M4_GroupCombatScaling.md b/docs/decomposition/modules/E5_M4_GroupCombatScaling.md new file mode 100644 index 0000000..de35722 --- /dev/null +++ b/docs/decomposition/modules/E5_M4_GroupCombatScaling.md @@ -0,0 +1,44 @@ +# E5.M4 — GroupCombatScaling + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E5.M4 | +| **Epic** | [Epic 5 — PvE Combat](../epics/epic_05_pve_combat.md) | +| **Stage target** | Pre-production | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Duo/squad scaling and anti-trivialization hooks using party context from [E8.M1 — PartyAndMatchAssembly](E8_M1_PartyAndMatchAssembly.md). + +## Responsibilities + +- Apply `ScalingProfile`, `PartySizeModifier`, and `CombatDifficultyBand` when resolving encounters ([E5.M3](E5_M3_EncounterAndRewardTables.md)). + +## Key contracts + +| Contract | Role | +|----------|------| +| `ScalingProfile` | HP/damage modifiers per party size. | +| `PartySizeModifier` | Discrete steps or curves. | +| `CombatDifficultyBand` | Named difficulty for tuning. | + +## Module dependencies + +- **E5.M3** — EncounterAndRewardTables. +- **E8.M1** — PartyAndMatchAssembly. + +## Dependents (by design) + +- Encounter runtime and telemetry `party_combat_scaling_applied`. + +## Related implementation slices + +Epic 5 **Slice 4** — duo fairness metrics. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 5. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E6_M2_ConsentAndRiskUxSignals.md b/docs/decomposition/modules/E6_M2_ConsentAndRiskUxSignals.md new file mode 100644 index 0000000..db18d13 --- /dev/null +++ b/docs/decomposition/modules/E6_M2_ConsentAndRiskUxSignals.md @@ -0,0 +1,44 @@ +# E6.M2 — ConsentAndRiskUxSignals + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E6.M2 | +| **Epic** | [Epic 6 — PvP Security](../epics/epic_06_pvp_security.md) | +| **Stage target** | Prototype | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Entry warnings, in-zone risk UI, and clear PvP state communication using eligibility from [E6.M1](E6_M1_PvPEligibilityAndFlagState.md) and camera/readability context from [E1.M2](E1_M2_IsometricCameraController.md). + +## Responsibilities + +- Show `RiskPrompt` on low-sec entry; drive `ZoneRiskState` / `PvPIndicatorState` in HUD. + +## Key contracts + +| Contract | Role | +|----------|------| +| `RiskPrompt` | Consent dialog payload and outcomes. | +| `ZoneRiskState` | Display model for current zone risk. | +| `PvPIndicatorState` | Persistent indicator semantics. | + +## Module dependencies + +- **E6.M1** — PvPEligibilityAndFlagState. +- **E1.M2** — IsometricCameraController. + +## Dependents (by design) + +- Client UX only; server remains authoritative via E6.M1 / E4.M4. + +## Related implementation slices + +Epic 6 **Slice 2** — `risk_prompt_shown`, accepted/declined. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 6. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E6_M3_LossPenaltyAndAntiGriefRules.md b/docs/decomposition/modules/E6_M3_LossPenaltyAndAntiGriefRules.md new file mode 100644 index 0000000..fc49bb6 --- /dev/null +++ b/docs/decomposition/modules/E6_M3_LossPenaltyAndAntiGriefRules.md @@ -0,0 +1,44 @@ +# E6.M3 — LossPenaltyAndAntiGriefRules + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E6.M3 | +| **Epic** | [Epic 6 — PvP Security](../epics/epic_06_pvp_security.md) | +| **Stage target** | Pre-production | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Death/loss rules in PvP contexts, spawn protection, and abuse mitigation with escalation hooks to [E9.M4 — IntegrityAndAbuseResponse](E9_M4_IntegrityAndAbuseResponse.md). + +## Responsibilities + +- Encode `PvPLossRule`; track `SpawnProtectionState`; raise `GriefingStrike` signals for ops review. + +## Key contracts + +| Contract | Role | +|----------|------| +| `PvPLossRule` | Drop, durability, or flag penalties. | +| `SpawnProtectionState` | Timers and invuln windows. | +| `GriefingStrike` | Escalation input to integrity pipeline. | + +## Module dependencies + +- **E6.M1** — PvPEligibilityAndFlagState. +- **E9.M4** — IntegrityAndAbuseResponse. + +## Dependents (by design) + +- Combat resolution and spawn systems when in PvP context. + +## Related implementation slices + +Epic 6 **Slice 4** — `pvp_death`, `spawn_protection_applied`, `grief_flag_raised`. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 6. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E6_M4_RewardParityEnforcer.md b/docs/decomposition/modules/E6_M4_RewardParityEnforcer.md new file mode 100644 index 0000000..eb3e9fb --- /dev/null +++ b/docs/decomposition/modules/E6_M4_RewardParityEnforcer.md @@ -0,0 +1,45 @@ +# E6.M4 — RewardParityEnforcer + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E6.M4 | +| **Epic** | [Epic 6 — PvP Security](../epics/epic_06_pvp_security.md) | +| **Stage target** | Prototype | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Ensure functional equivalents for PvP rewards through PvE/crafting paths; blocks ship when mapping incomplete per policy. + +## Responsibilities + +- Maintain `RewardParityMap` and `EquivalentPowerBand`; emit `ParityViolationAlert` for CI or live checks across [E3.M2](E3_M2_RefinementAndRecipeExecution.md), [E5.M3](E5_M3_EncounterAndRewardTables.md), [E7.M2](E7_M2_RewardAndUnlockRouter.md). + +## Key contracts + +| Contract | Role | +|----------|------| +| `RewardParityMap` | PvP-only reward → equivalent path. | +| `EquivalentPowerBand` | Acceptable power band comparison. | +| `ParityViolationAlert` | Blocking or warning signal. | + +## Module dependencies + +- **E3.M2** — RefinementAndRecipeExecution. +- **E5.M3** — EncounterAndRewardTables. +- **E7.M2** — RewardAndUnlockRouter. + +## Dependents (by design) + +- Release/content gates; telemetry `parity_violation`, `parity_grant_path_completed`. + +## Related implementation slices + +Epic 6 **Slice 3** — prototype sidegrade example validated. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 6. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E7_M1_QuestStateMachine.md b/docs/decomposition/modules/E7_M1_QuestStateMachine.md index 6127662..6ba6e2b 100644 --- a/docs/decomposition/modules/E7_M1_QuestStateMachine.md +++ b/docs/decomposition/modules/E7_M1_QuestStateMachine.md @@ -34,10 +34,10 @@ Data-driven quest lifecycle: start, step progression, branching, failure/reset, ## Dependents (by design) -- **E7.M2** — RewardAndUnlockRouter: idempotent delivery after completion. -- **E7.M3** — FactionReputationLedger: reputation-gated content (pre-production). -- **E5.M3** — EncounterAndRewardTables: encounter completion and quest credit. -- **E6.M4** — RewardParityEnforcer: quest/PvP reward alignment. +- **E7.M2** — [RewardAndUnlockRouter](E7_M2_RewardAndUnlockRouter.md): idempotent delivery after completion. +- **E7.M3** — [FactionReputationLedger](E7_M3_FactionReputationLedger.md): reputation-gated content (pre-production). +- **E5.M3** — [EncounterAndRewardTables](E5_M3_EncounterAndRewardTables.md): encounter completion and quest credit. +- **E6.M4** — [RewardParityEnforcer](E6_M4_RewardParityEnforcer.md): quest/PvP reward alignment. ## Related implementation slices diff --git a/docs/decomposition/modules/E7_M2_RewardAndUnlockRouter.md b/docs/decomposition/modules/E7_M2_RewardAndUnlockRouter.md new file mode 100644 index 0000000..cf9660c --- /dev/null +++ b/docs/decomposition/modules/E7_M2_RewardAndUnlockRouter.md @@ -0,0 +1,46 @@ +# E7.M2 — RewardAndUnlockRouter + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E7.M2 | +| **Epic** | [Epic 7 — Quest / Faction](../epics/epic_07_quest_faction.md) | +| **Stage target** | Prototype | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Route quest and encounter outputs to XP, items, unlocks, and flags with **idempotent** delivery ([E7.M1](E7_M1_QuestStateMachine.md) completion, [E2.M2](E2_M2_XpAwardAndLevelEngine.md), [E3.M3](E3_M3_ItemizationAndInventorySchema.md)). + +## Responsibilities + +- Apply `QuestRewardBundle`; grant `UnlockGrant`; emit `RewardDeliveryEvent` for audit. + +## Key contracts + +| Contract | Role | +|----------|------| +| `QuestRewardBundle` | Composite rewards for a step or completion. | +| `UnlockGrant` | Blueprints, gates, cosmetics. | +| `RewardDeliveryEvent` | Idempotency key and outcome. | + +## Module dependencies + +- **E2.M2** — XpAwardAndLevelEngine. +- **E3.M3** — ItemizationAndInventorySchema. +- **E7.M1** — QuestStateMachine. + +## Dependents (by design) + +- **E5.M3** — EncounterAndRewardTables. +- **E6.M4** — RewardParityEnforcer. + +## Related implementation slices + +Epic 7 **Slice 2** — `reward_delivery`, `unlock_granted`; no double-claim on replay. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 7. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E7_M3_FactionReputationLedger.md b/docs/decomposition/modules/E7_M3_FactionReputationLedger.md new file mode 100644 index 0000000..7a1bf29 --- /dev/null +++ b/docs/decomposition/modules/E7_M3_FactionReputationLedger.md @@ -0,0 +1,44 @@ +# E7.M3 — FactionReputationLedger + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E7.M3 | +| **Epic** | [Epic 7 — Quest / Faction](../epics/epic_07_quest_faction.md) | +| **Stage target** | Pre-production | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Faction standing, reputation deltas, and `FactionGateRule` evaluation for content and contracts. + +## Responsibilities + +- Persist auditable `FactionStanding`; apply `ReputationDelta`; fail closed on tamper for gates. + +## Key contracts + +| Contract | Role | +|----------|------| +| `FactionStanding` | Current rep per faction. | +| `ReputationDelta` | Change events with source attribution. | +| `FactionGateRule` | Unlock conditions for content. | + +## Module dependencies + +- **E7.M1** — QuestStateMachine. + +## Dependents (by design) + +- **E7.M4** — ContractMissionGenerator. +- **E8.M2** — GuildCorpProgressionState. + +## Related implementation slices + +Epic 7 **Slice 3** — `reputation_delta`, `faction_gate_blocked`. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 7. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E7_M4_ContractMissionGenerator.md b/docs/decomposition/modules/E7_M4_ContractMissionGenerator.md new file mode 100644 index 0000000..a11e87b --- /dev/null +++ b/docs/decomposition/modules/E7_M4_ContractMissionGenerator.md @@ -0,0 +1,45 @@ +# E7.M4 — ContractMissionGenerator + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E7.M4 | +| **Epic** | [Epic 7 — Quest / Faction](../epics/epic_07_quest_faction.md) | +| **Stage target** | Pre-production | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Semi-procedural repeatable contracts from templates, keyed by zone difficulty ([E4.M1](E4_M1_ZoneGraphAndTravelRules.md)), encounter templates ([E5.M3](E5_M3_EncounterAndRewardTables.md)), and faction state ([E7.M3](E7_M3_FactionReputationLedger.md)). + +## Responsibilities + +- Emit validated `ContractTemplate` instances from `ContractSeed`; record `ContractOutcome`. + +## Key contracts + +| Contract | Role | +|----------|------| +| `ContractTemplate` | Parameterized mission skeleton. | +| `ContractSeed` | RNG or daily seed inputs. | +| `ContractOutcome` | Completion and reward linkage. | + +## Module dependencies + +- **E4.M1** — ZoneGraphAndTravelRules. +- **E5.M3** — EncounterAndRewardTables. +- **E7.M3** — FactionReputationLedger. + +## Dependents (by design) + +- Live ops and content pipelines; validate against economy/parity rules per epic. + +## Related implementation slices + +Epic 7 **Slice 4** — `contract_issued`, `contract_complete`, reward anomalies. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 7. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E8_M1_PartyAndMatchAssembly.md b/docs/decomposition/modules/E8_M1_PartyAndMatchAssembly.md new file mode 100644 index 0000000..814d0e6 --- /dev/null +++ b/docs/decomposition/modules/E8_M1_PartyAndMatchAssembly.md @@ -0,0 +1,44 @@ +# E8.M1 — PartyAndMatchAssembly + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E8.M1 | +| **Epic** | [Epic 8 — Social / Guild](../epics/epic_08_social_guild.md) | +| **Stage target** | Pre-production | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Party creation, invites, ready-state, and party-scoped hooks for cooperative activities, anchored on player identity/selection from [E1.M3](E1_M3_InteractionAndTargetingLayer.md). + +## Responsibilities + +- Server-authoritative `PartyState`; `InviteEvent` lifecycle; optional `RolePreference` for matchmaking. + +## Key contracts + +| Contract | Role | +|----------|------| +| `PartyState` | Members, leader, ready flags. | +| `InviteEvent` | Invite, accept, decline, timeout. | +| `RolePreference` | Role or build hints for assembly. | + +## Module dependencies + +- **E1.M3** — InteractionAndTargetingLayer. + +## Dependents (by design) + +- **E5.M4** — GroupCombatScaling. +- **E8.M2** — GuildCorpProgressionState. + +## Related implementation slices + +Epic 8 **Slice 1** — `party_formed`, `party_disbanded`, invite failures. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 8. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E8_M2_GuildCorpProgressionState.md b/docs/decomposition/modules/E8_M2_GuildCorpProgressionState.md new file mode 100644 index 0000000..9f8b554 --- /dev/null +++ b/docs/decomposition/modules/E8_M2_GuildCorpProgressionState.md @@ -0,0 +1,44 @@ +# E8.M2 — GuildCorpProgressionState + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E8.M2 | +| **Epic** | [Epic 8 — Social / Guild](../epics/epic_08_social_guild.md) | +| **Stage target** | Production | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Guild/corp membership, rank permissions, and shared progression tied to faction/social goals via [E7.M3](E7_M3_FactionReputationLedger.md). + +## Responsibilities + +- Maintain `GuildState` and `GuildRolePolicy`; emit `GuildProgressionEvent`; prevent permission bypass griefing. + +## Key contracts + +| Contract | Role | +|----------|------| +| `GuildState` | Org roster, level, shared unlocks. | +| `GuildRolePolicy` | Permission matrix. | +| `GuildProgressionEvent` | Shared milestones. | + +## Module dependencies + +- **E8.M1** — PartyAndMatchAssembly. +- **E7.M3** — FactionReputationLedger. + +## Dependents (by design) + +- Social UI, contracts, and telemetry `guild_progression_event`. + +## Related implementation slices + +Epic 8 **Slice 4** — corp progress not griefable by solo permission bypass. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 8. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E8_M3_PlayerTradeAndMarketplace.md b/docs/decomposition/modules/E8_M3_PlayerTradeAndMarketplace.md new file mode 100644 index 0000000..1c73b77 --- /dev/null +++ b/docs/decomposition/modules/E8_M3_PlayerTradeAndMarketplace.md @@ -0,0 +1,45 @@ +# E8.M3 — PlayerTradeAndMarketplace + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E8.M3 | +| **Epic** | [Epic 8 — Social / Guild](../epics/epic_08_social_guild.md) | +| **Stage target** | Pre-production | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Listings, direct trade, purchases, and **atomic server settlement** for player economy, grounded in [E3.M3](E3_M3_ItemizationAndInventorySchema.md) and policy from [E3.M5](E3_M5_EconomyBalancePolicy.md). + +## Responsibilities + +- `MarketListing` / `TradeOffer` validation; `SettlementEvent` with duplication and cancel-edge coverage. + +## Key contracts + +| Contract | Role | +|----------|------| +| `MarketListing` | Seller, item, price, fees. | +| `TradeOffer` | Bilateral trade window state. | +| `SettlementEvent` | Completed exchange audit. | + +## Module dependencies + +- **E3.M3** — ItemizationAndInventorySchema. +- **E3.M5** — EconomyBalancePolicy. + +## Dependents (by design) + +- **E3.M4** — SinkAndDurabilityLifecycle (epic coupling). +- Integrity and fraud telemetry. + +## Related implementation slices + +Epic 8 **Slice 2** — `trade_completed`, `listing_created`, `purchase_completed`, fraud flags. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 8. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E8_M4_ChatModerationAndReporting.md b/docs/decomposition/modules/E8_M4_ChatModerationAndReporting.md new file mode 100644 index 0000000..96768f9 --- /dev/null +++ b/docs/decomposition/modules/E8_M4_ChatModerationAndReporting.md @@ -0,0 +1,43 @@ +# E8.M4 — ChatModerationAndReporting + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E8.M4 | +| **Epic** | [Epic 8 — Social / Guild](../epics/epic_08_social_guild.md) | +| **Stage target** | Pre-production | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Channel chat with rate limits, player reports, and moderation action logs escalated to [E9.M4 — IntegrityAndAbuseResponse](E9_M4_IntegrityAndAbuseResponse.md). + +## Responsibilities + +- Emit `ChatMessageEvent` with stable ids; accept `PlayerReport`; record `ModerationAction` for audit export. + +## Key contracts + +| Contract | Role | +|----------|------| +| `ChatMessageEvent` | Message payload + channel + ids. | +| `PlayerReport` | Reason codes and context. | +| `ModerationAction` | Mute/ban/warn with actor and timestamp. | + +## Module dependencies + +- **E9.M4** — IntegrityAndAbuseResponse. + +## Dependents (by design) + +- Moderator tooling and compliance exports. + +## Related implementation slices + +Epic 8 **Slice 3** — trace message id to action history in test; `chat_message_sent`, `moderation_action`. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 8. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E9_M2_KpiDashboardsAndAlerting.md b/docs/decomposition/modules/E9_M2_KpiDashboardsAndAlerting.md new file mode 100644 index 0000000..c2d9e3d --- /dev/null +++ b/docs/decomposition/modules/E9_M2_KpiDashboardsAndAlerting.md @@ -0,0 +1,45 @@ +# E9.M2 — KpiDashboardsAndAlerting + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E9.M2 | +| **Epic** | [Epic 9 — LiveOps / Integrity](../epics/epic_09_liveops_integrity.md) | +| **Stage target** | Pre-production | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +KPI aggregation, dashboards, trend alerts, and milestone gate signals built on [E9.M1 — TelemetryEventSchema](E9_M1_TelemetryEventSchema.md). + +## Responsibilities + +- Define `KpiDefinition` and `AlertThreshold`; emit `MilestoneGateSignal` for phase checklists. + +## Key contracts + +| Contract | Role | +|----------|------| +| `KpiDefinition` | Query + visualization binding. | +| `AlertThreshold` | Breach conditions. | +| `MilestoneGateSignal` | Pass/fail inputs for milestones. | + +## Module dependencies + +- **E9.M1** — TelemetryEventSchema. + +## Dependents (by design) + +- **E2.M4** — ProgressionPacingControls. +- **E3.M5** — EconomyBalancePolicy. +- **E9.M3** — LiveBalanceControlPlane. + +## Related implementation slices + +Epic 9 **Slice 2** — each prototype gate has at least one chart or query. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 9. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E9_M3_LiveBalanceControlPlane.md b/docs/decomposition/modules/E9_M3_LiveBalanceControlPlane.md new file mode 100644 index 0000000..55d7e5d --- /dev/null +++ b/docs/decomposition/modules/E9_M3_LiveBalanceControlPlane.md @@ -0,0 +1,46 @@ +# E9.M3 — LiveBalanceControlPlane + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E9.M3 | +| **Epic** | [Epic 9 — LiveOps / Integrity](../epics/epic_09_liveops_integrity.md) | +| **Stage target** | Production | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Runtime-safe application of signed `BalancePatch` bundles to combat, progression, and economy knobs with `RolloutState` and rollback story. + +## Responsibilities + +- Version `ConfigVersion` per patch; stage `RolloutState`; integrate with [E9.M2](E9_M2_KpiDashboardsAndAlerting.md), [E5.M1](E5_M1_CombatRulesEngine.md), [E2.M4](E2_M4_ProgressionPacingControls.md), [E3.M5](E3_M5_EconomyBalancePolicy.md). + +## Key contracts + +| Contract | Role | +|----------|------| +| `BalancePatch` | Signed tunable diff bundle. | +| `ConfigVersion` | Client/server hash visibility. | +| `RolloutState` | Canary, full, rollback. | + +## Module dependencies + +- **E9.M2** — KpiDashboardsAndAlerting. +- **E5.M1** — CombatRulesEngine. +- **E2.M4** — ProgressionPacingControls. +- **E3.M5** — EconomyBalancePolicy. + +## Dependents (by design) + +- Operations UI and automated rollback SLOs. + +## Related implementation slices + +Epic 9 **Slice 4** — `balance_patch_applied`, client config hash; rollback within agreed SLO. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 9. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/E9_M4_IntegrityAndAbuseResponse.md b/docs/decomposition/modules/E9_M4_IntegrityAndAbuseResponse.md new file mode 100644 index 0000000..f0c8054 --- /dev/null +++ b/docs/decomposition/modules/E9_M4_IntegrityAndAbuseResponse.md @@ -0,0 +1,44 @@ +# E9.M4 — IntegrityAndAbuseResponse + +## Summary + +| Field | Value | +|--------|--------| +| **Module ID** | E9.M4 | +| **Epic** | [Epic 9 — LiveOps / Integrity](../epics/epic_09_liveops_integrity.md) | +| **Stage target** | Pre-production | +| **Status** | Planned (see [dependency register](module_dependency_register.md)) | + +## Purpose + +Correlate exploit/bot signals from [E9.M1](E9_M1_TelemetryEventSchema.md) to `IncidentTicket` and `EnforcementAction` with audit trail. + +## Responsibilities + +- Ingest `IntegritySignal`; open/close incidents; log `EnforcementAction` for moderation and economy response. + +## Key contracts + +| Contract | Role | +|----------|------| +| `IntegritySignal` | Detection pipeline output. | +| `IncidentTicket` | Triage record. | +| `EnforcementAction` | Ban, rollback, warning with actor. | + +## Module dependencies + +- **E9.M1** — TelemetryEventSchema. + +## Dependents (by design) + +- **E6.M3** — LossPenaltyAndAntiGriefRules. +- **E8.M4** — ChatModerationAndReporting. + +## Related implementation slices + +Epic 9 **Slice 3** — known exploit replay produces ticket + action log; `integrity_signal`, `incident_open`, `enforcement_action`. + +## Source anchors + +- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 9. +- [Module dependency register](module_dependency_register.md) diff --git a/docs/decomposition/modules/module_dependency_register.md b/docs/decomposition/modules/module_dependency_register.md index d9dd576..4f62b7f 100644 --- a/docs/decomposition/modules/module_dependency_register.md +++ b/docs/decomposition/modules/module_dependency_register.md @@ -1,24 +1,94 @@ # Module Dependency Register -Tracks cross-epic dependencies and contract readiness. +Tracks cross-epic dependencies and contract readiness. Every **Depends On** module ID in this table has its own row (closed graph). -Fleshed-out scope, contracts, and integration notes for each row below live in **per-module documents** (see [Per-module documentation](#per-module-documentation)). +Fleshed-out scope, contracts, and integration notes live in **per-module documents** (see [Per-module documentation](#per-module-documentation)). ## Dependency Table +### Epic 1 — Core Player Runtime + | Module ID | Module Name | Depends On | Contract Needed | Phase Required | Status | |---|---|---|---|---|---| -| E1.M1 | InputAndMovementRuntime | None | MoveCommand, PositionState | Prototype | Planned | -| E1.M2 | IsometricCameraController | E1.M1 | CameraState, ZoomBandConfig | Prototype | Planned | -| E2.M2 | XpAwardAndLevelEngine | E2.M1 | XpGrantEvent, LevelUpEvent | Prototype | Planned | -| E3.M2 | RefinementAndRecipeExecution | E3.M1, E3.M3 | CraftRequest, CraftResult | Prototype | Planned | -| E5.M1 | CombatRulesEngine | E1.M3, E2.M2 | CombatAction, CombatResolution | Prototype | Planned | -| E4.M4 | SecurityTierZoneFlags | E4.M1 | SecurityTier, ZonePolicyState, ZoneEntryWarning | Prototype | Planned | -| E6.M1 | PvPEligibilityAndFlagState | E4.M4 | PvPFlagState, EligibilityRule | Prototype | Planned | -| E7.M1 | QuestStateMachine | E3.M2, E5.M1 | QuestStateTransition | Prototype | Planned | -| E9.M1 | TelemetryEventSchema | None | TelemetryEvent envelope | Prototype | Planned | +| E1.M1 | InputAndMovementRuntime | None | MoveCommand, PositionState, InteractionRequest | Prototype | Planned | +| E1.M2 | IsometricCameraController | E1.M1 | CameraState, ZoomBandConfig, OcclusionPolicy | Prototype | Planned | +| E1.M3 | InteractionAndTargetingLayer | E1.M1 | TargetState, InteractableDescriptor, SelectionEvent | Prototype | Planned | +| E1.M4 | AbilityInputScaffold | E1.M3, E5.M1 | AbilityCastRequest, HotbarLoadout, CooldownSnapshot | Prototype | Planned | -**Note:** E5.M1 depends on **E1.M3** (InteractionAndTargetingLayer; [Epic 1](../epics/epic_01_core_player_runtime.md)). E1.M3 is not listed as its own row in this register; document it when it is promoted to a tracked cross-epic contract. +### Epic 2 — Classless Progression + +| Module ID | Module Name | Depends On | Contract Needed | Phase Required | Status | +|---|---|---|---|---|---| +| E2.M1 | SkillDefinitionRegistry | None | SkillDef, SkillCategory, UnlockRequirement | Prototype | Planned | +| E2.M2 | XpAwardAndLevelEngine | E2.M1 | XpGrantEvent, LevelCurve, LevelUpEvent | Prototype | Planned | +| E2.M3 | MasteryAndPerkUnlocks | E2.M2 | MasteryTrack, PerkUnlockEvent, PerkState | Pre-production | Planned | +| E2.M4 | ProgressionPacingControls | E2.M2, E9.M2 | XpModifierProfile, CatchUpRule, PacingPolicy | Pre-production | Planned | + +### Epic 3 — Crafting Economy + +| Module ID | Module Name | Depends On | Contract Needed | Phase Required | Status | +|---|---|---|---|---|---| +| E3.M1 | ResourceNodeAndGatherLoop | E1.M3, E2.M2 | ResourceNodeDef, GatherResult, ResourceYieldTable | Prototype | Planned | +| E3.M2 | RefinementAndRecipeExecution | E3.M1, E3.M3 | RecipeDef, CraftRequest, CraftResult | Prototype | Planned | +| E3.M3 | ItemizationAndInventorySchema | None | ItemDef, ItemInstance, InventorySlot | Prototype | Planned | +| E3.M4 | SinkAndDurabilityLifecycle | E3.M3, E8.M3 | DurabilityState, ItemSinkEvent, RepairCostRule | Pre-production | Planned | +| E3.M5 | EconomyBalancePolicy | E3.M4, E9.M2 | EconomyPolicy, PriceBandRule, FaucetSinkRatio | Pre-production | Planned | + +### Epic 4 — World Topology + +| Module ID | Module Name | Depends On | Contract Needed | Phase Required | Status | +|---|---|---|---|---|---| +| E4.M1 | ZoneGraphAndTravelRules | None | ZoneDef, ZoneEdge, TravelRule | Prototype | Planned | +| E4.M2 | SpawnEcologyController | E4.M1, E3.M1, E5.M2 | SpawnProfile, RespawnRule, ZoneEcologyState | Pre-production | Planned | +| E4.M3 | SeamlessHandoffAndRegionState | E4.M1 | RegionHandoffEvent, RegionAuthority, TransferState | Pre-production | Planned | +| E4.M4 | SecurityTierZoneFlags | E4.M1 | SecurityTier, ZonePolicyState, ZoneEntryWarning | Prototype | Planned | + +**E4.M3:** Epic also references backend world services for region authority; treat as external integration alongside E4.M1 contracts. + +### Epic 5 — PvE Combat + +| Module ID | Module Name | Depends On | Contract Needed | Phase Required | Status | +|---|---|---|---|---|---| +| E5.M1 | CombatRulesEngine | E1.M3, E2.M2 | CombatAction, CombatResolution, ThreatState | Prototype | Planned | +| E5.M2 | NpcAiAndBehaviorProfiles | E5.M1 | NpcBehaviorDef, TelegraphEvent, AggroRule | Prototype | Planned | +| E5.M3 | EncounterAndRewardTables | E5.M1, E3.M3, E7.M2 | EncounterDef, RewardTable, EncounterCompleteEvent | Prototype | Planned | +| E5.M4 | GroupCombatScaling | E5.M3, E8.M1 | ScalingProfile, PartySizeModifier, CombatDifficultyBand | Pre-production | Planned | + +### Epic 6 — PvP Security + +| Module ID | Module Name | Depends On | Contract Needed | Phase Required | Status | +|---|---|---|---|---|---| +| E6.M1 | PvPEligibilityAndFlagState | E4.M4 | PvPFlagState, EligibilityRule, PvPStateChanged | Prototype | Planned | +| E6.M2 | ConsentAndRiskUxSignals | E6.M1, E1.M2 | RiskPrompt, ZoneRiskState, PvPIndicatorState | Prototype | Planned | +| E6.M3 | LossPenaltyAndAntiGriefRules | E6.M1, E9.M4 | PvPLossRule, SpawnProtectionState, GriefingStrike | Pre-production | Planned | +| E6.M4 | RewardParityEnforcer | E3.M2, E5.M3, E7.M2 | RewardParityMap, EquivalentPowerBand, ParityViolationAlert | Prototype | Planned | + +### Epic 7 — Quest / Faction + +| Module ID | Module Name | Depends On | Contract Needed | Phase Required | Status | +|---|---|---|---|---|---| +| E7.M1 | QuestStateMachine | E3.M2, E5.M1 | QuestDef, QuestStepState, QuestStateTransition | Prototype | Planned | +| E7.M2 | RewardAndUnlockRouter | E2.M2, E3.M3, E7.M1 | QuestRewardBundle, UnlockGrant, RewardDeliveryEvent | Prototype | Planned | +| E7.M3 | FactionReputationLedger | E7.M1 | FactionStanding, ReputationDelta, FactionGateRule | Pre-production | Planned | +| E7.M4 | ContractMissionGenerator | E4.M1, E5.M3, E7.M3 | ContractTemplate, ContractSeed, ContractOutcome | Pre-production | Planned | + +### Epic 8 — Social / Guild + +| Module ID | Module Name | Depends On | Contract Needed | Phase Required | Status | +|---|---|---|---|---|---| +| E8.M1 | PartyAndMatchAssembly | E1.M3 | PartyState, InviteEvent, RolePreference | Pre-production | Planned | +| E8.M2 | GuildCorpProgressionState | E8.M1, E7.M3 | GuildState, GuildRolePolicy, GuildProgressionEvent | Production | Planned | +| E8.M3 | PlayerTradeAndMarketplace | E3.M3, E3.M5 | MarketListing, TradeOffer, SettlementEvent | Pre-production | Planned | +| E8.M4 | ChatModerationAndReporting | E9.M4 | ChatMessageEvent, PlayerReport, ModerationAction | Pre-production | Planned | + +### Epic 9 — LiveOps / Integrity + +| Module ID | Module Name | Depends On | Contract Needed | Phase Required | Status | +|---|---|---|---|---|---| +| E9.M1 | TelemetryEventSchema | None | TelemetryEvent, EventSchemaVersion, ClientEventEnvelope | Prototype | Planned | +| E9.M2 | KpiDashboardsAndAlerting | E9.M1 | KpiDefinition, AlertThreshold, MilestoneGateSignal | Pre-production | Planned | +| E9.M3 | LiveBalanceControlPlane | E9.M2, E5.M1, E2.M4, E3.M5 | BalancePatch, ConfigVersion, RolloutState | Production | Planned | +| E9.M4 | IntegrityAndAbuseResponse | E9.M1 | IntegritySignal, IncidentTicket, EnforcementAction | Pre-production | Planned | ## Per-module documentation @@ -26,13 +96,41 @@ Fleshed-out scope, contracts, and integration notes for each row below live in * |-----------|----------| | E1.M1 | [E1_M1_InputAndMovementRuntime.md](E1_M1_InputAndMovementRuntime.md) | | E1.M2 | [E1_M2_IsometricCameraController.md](E1_M2_IsometricCameraController.md) | +| E1.M3 | [E1_M3_InteractionAndTargetingLayer.md](E1_M3_InteractionAndTargetingLayer.md) | +| E1.M4 | [E1_M4_AbilityInputScaffold.md](E1_M4_AbilityInputScaffold.md) | +| E2.M1 | [E2_M1_SkillDefinitionRegistry.md](E2_M1_SkillDefinitionRegistry.md) | | E2.M2 | [E2_M2_XpAwardAndLevelEngine.md](E2_M2_XpAwardAndLevelEngine.md) | +| E2.M3 | [E2_M3_MasteryAndPerkUnlocks.md](E2_M3_MasteryAndPerkUnlocks.md) | +| E2.M4 | [E2_M4_ProgressionPacingControls.md](E2_M4_ProgressionPacingControls.md) | +| E3.M1 | [E3_M1_ResourceNodeAndGatherLoop.md](E3_M1_ResourceNodeAndGatherLoop.md) | | E3.M2 | [E3_M2_RefinementAndRecipeExecution.md](E3_M2_RefinementAndRecipeExecution.md) | +| E3.M3 | [E3_M3_ItemizationAndInventorySchema.md](E3_M3_ItemizationAndInventorySchema.md) | +| E3.M4 | [E3_M4_SinkAndDurabilityLifecycle.md](E3_M4_SinkAndDurabilityLifecycle.md) | +| E3.M5 | [E3_M5_EconomyBalancePolicy.md](E3_M5_EconomyBalancePolicy.md) | +| E4.M1 | [E4_M1_ZoneGraphAndTravelRules.md](E4_M1_ZoneGraphAndTravelRules.md) | +| E4.M2 | [E4_M2_SpawnEcologyController.md](E4_M2_SpawnEcologyController.md) | +| E4.M3 | [E4_M3_SeamlessHandoffAndRegionState.md](E4_M3_SeamlessHandoffAndRegionState.md) | | E4.M4 | [E4_M4_SecurityTierZoneFlags.md](E4_M4_SecurityTierZoneFlags.md) | | E5.M1 | [E5_M1_CombatRulesEngine.md](E5_M1_CombatRulesEngine.md) | +| E5.M2 | [E5_M2_NpcAiAndBehaviorProfiles.md](E5_M2_NpcAiAndBehaviorProfiles.md) | +| E5.M3 | [E5_M3_EncounterAndRewardTables.md](E5_M3_EncounterAndRewardTables.md) | +| E5.M4 | [E5_M4_GroupCombatScaling.md](E5_M4_GroupCombatScaling.md) | | E6.M1 | [E6_M1_PvPEligibilityAndFlagState.md](E6_M1_PvPEligibilityAndFlagState.md) | +| E6.M2 | [E6_M2_ConsentAndRiskUxSignals.md](E6_M2_ConsentAndRiskUxSignals.md) | +| E6.M3 | [E6_M3_LossPenaltyAndAntiGriefRules.md](E6_M3_LossPenaltyAndAntiGriefRules.md) | +| E6.M4 | [E6_M4_RewardParityEnforcer.md](E6_M4_RewardParityEnforcer.md) | | E7.M1 | [E7_M1_QuestStateMachine.md](E7_M1_QuestStateMachine.md) | +| E7.M2 | [E7_M2_RewardAndUnlockRouter.md](E7_M2_RewardAndUnlockRouter.md) | +| E7.M3 | [E7_M3_FactionReputationLedger.md](E7_M3_FactionReputationLedger.md) | +| E7.M4 | [E7_M4_ContractMissionGenerator.md](E7_M4_ContractMissionGenerator.md) | +| E8.M1 | [E8_M1_PartyAndMatchAssembly.md](E8_M1_PartyAndMatchAssembly.md) | +| E8.M2 | [E8_M2_GuildCorpProgressionState.md](E8_M2_GuildCorpProgressionState.md) | +| E8.M3 | [E8_M3_PlayerTradeAndMarketplace.md](E8_M3_PlayerTradeAndMarketplace.md) | +| E8.M4 | [E8_M4_ChatModerationAndReporting.md](E8_M4_ChatModerationAndReporting.md) | | E9.M1 | [E9_M1_TelemetryEventSchema.md](E9_M1_TelemetryEventSchema.md) | +| E9.M2 | [E9_M2_KpiDashboardsAndAlerting.md](E9_M2_KpiDashboardsAndAlerting.md) | +| E9.M3 | [E9_M3_LiveBalanceControlPlane.md](E9_M3_LiveBalanceControlPlane.md) | +| E9.M4 | [E9_M4_IntegrityAndAbuseResponse.md](E9_M4_IntegrityAndAbuseResponse.md) | ## Status Legend