neon-sprawl/docs/decomposition/modules/module_dependency_register.md

36 KiB
Raw Blame History

Module Dependency Register

Tracks cross-epic dependencies and contract readiness. Every Depends On module ID in this table has its own row (closed graph).

Contract means a stable boundary with a defined artifact (Protobuf wire message, JSON Schema content file, telemetry catalog entry, or server-internal type until promoted). See What a contract is for kinds, repo layout, and versioning. Authority (who owns PositionState, camera, combat outcomes): Client vs server authority. PvP × combat: PvP and the combat engine. Quests × party: Quest scope and party rules. Data reload × telemetry ops: Data reload and telemetry operations policy. Docs vs code: Documentation and implementation alignment.

Fleshed-out scope, contracts, and integration notes live in per-module documents (see 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, InteractionRequest Prototype Ready
E1.M2 IsometricCameraController E1.M1 CameraState, ZoomBandConfig, OcclusionPolicy Prototype Ready
E1.M3 InteractionAndTargetingLayer E1.M1 TargetState, InteractableDescriptor, SelectionEvent Prototype In Progress
E1.M4 AbilityInputScaffold E1.M3, E5.M1 AbilityCastRequest, HotbarLoadout, CooldownSnapshot Prototype In Progress

E1.M2 note: Prototype slice Ready: client/scripts/isometric_follow_camera.gd + child Camera3D on World/IsometricFollowCamera in client/scenes/main.tscn; per-tick CameraState (client/scripts/camera_state.gd); ZoomBandConfig (NEO-16); OcclusionPolicy (NEO-17); pick-through "occluder" convention (NEO-20); consumer contract + occluder lifecycle hardening (NEO-18). See E1_M2_IsometricCameraController.md.

E1.M3 note: Decomposition expanded in E1_M3_InteractionAndTargetingLayer.md (E1.M1 vs E1.M3 boundary, contract sketches, Slice 3 alignment). Partial (NEO-23): versioned JSON v1 PlayerTargetStateResponse + POST …/target/select under server/NeonSprawl.Server/Game/Targeting/ (NEO-23; server README — Targeting) — throwaway HTTP spike per contracts.md. Partial (NEO-25): versioned GET /game/world/interactables + InteractablesListDtos / InteractablesWorldApi in Game/Interaction/; Godot interactables_catalog_client.gd + interactable_world_builder.gd (NEO-25; server README — Interactable descriptors). NEO-26 (prototype SelectionEvent): Godot TargetSelectionClient.selection_event on lockedTargetId changes (NEO-26). Follow-on / in progress: richer multi-consumer InteractableDescriptor targeting on later Linear issues. Precursor (E1.M1): InteractionRequest + horizontal reach (NEO-9; Game/Interaction/, Game/World/HorizontalReach.cs).

E1.M4 note: Vertical-slice decomposition is defined in E1M4-prototype-backlog.md with story slugs E1M4-01 through E1M4-05 (loadout contract, cast path, accept/deny UX, cooldown sync, telemetry hooks). NEO-29 started implementation with HotbarLoadout v1 server APIs + persistence wiring and client hydration; NEO-31 added the prototype cast POST + client digit-key path and resolver tests; NEO-28 added server target lock + range gates and client cast feedback UX; NEO-30 documented Epic 1 Slice 3 cast-funnel telemetry hook sites (comment-only, AbilityCastApi); NEO-32 added GET …/cooldown-snapshot, on_cooldown deny, and client HUD + poll sync — module status remains In Progress; see E1_M4_AbilityInputScaffold.md, NEO-29 plan, NEO-31 plan, NEO-28 plan, NEO-30 plan, and NEO-32 plan.

Epic 2 — Skills and Progression Framework

Module ID Module Name Depends On Contract Needed Phase Required Status
E2.M1 SkillDefinitionRegistry None SkillDef, SkillCategory, UnlockRequirement, allowedXpSourceKinds Prototype In Progress
E2.M2 XpAwardAndLevelEngine E2.M1 XpGrantEvent, LevelCurve, LevelUpEvent Prototype In Progress
E2.M3 MasteryAndPerkUnlocks E2.M1, E2.M2 MasteryTrack, PerkDef, PerkUnlockEvent, PerkState Pre-production In Progress
E2.M4 ProgressionPacingControls E2.M2, E9.M2 XpModifierProfile, CatchUpRule, PacingPolicy Pre-production Planned

E2.M1 note: Epic 2 Slice 1 backlog in Linear (Epic 2 — Classless Skill and Progression Framework): NEO-33NEO-34NEO-35NEO-36; label E2.M1. See E2_M1_SkillDefinitionRegistry.md. NEO-33 (content + CI + docs) moves the register row to In Progress; NEO-34+ cover server registry and HTTP. Update documentation and implementation alignment when slices land.

E2.M2 note: Epic 2 Slice 2 — NEO-37 (progression snapshot GET) and NEO-38 (grant POST, persistence, level-up payloads); label E2.M2. Module doc E2_M2_XpAwardAndLevelEngine.md. Slice 3 integration: NEO-41NEO-43 landed. NEO-44 (gig XP on combat defeat) landed under E5.M1 — combat → gig XP only, not E2.M2 skill grants (NEO-44 plan). Keep aligned with documentation and implementation alignment.

E2.M3 note: Epic 2 Slice 4 — NEO-45NEO-49; label E2.M3. NEO-45 landed: prototype salvage mastery catalog + schema + CI. NEO-46 landed: fail-fast server mastery catalog load. NEO-47 landed: PerkUnlockEngine, IPlayerPerkStateStore + V004, level-up hook in skill XP grants. NEO-49 landed: comment-only perk_unlock telemetry hook in PerkUnlockEngine.TryUnlockPerks. NEO-48 landed: GET/POST /game/players/{id}/perk-state + Bruno perk-state/. Flagship track; see E2_M3_MasteryAndPerkUnlocks.md, E2M3-pre-production-backlog.md, and documentation_and_implementation_alignment.md E2.M3 row.

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 Ready
E3.M2 RefinementAndRecipeExecution E3.M1, E3.M3 RecipeDef, CraftRequest, CraftResult Prototype Ready
E3.M3 ItemizationAndInventorySchema None ItemDef, ItemInstance, InventorySlot Prototype In Progress
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

E3.M1 note: Epic 3 Slice 2 backlog in Linear (Epic 3 — Crafting, Gathering, and Itemization Economy): NEO-57NEO-64; label E3.M1. See E3M1-prototype-backlog.md, E3_M1_ResourceNodeAndGatherLoop.md. NEO-57 (content + CI), NEO-58 (server fail-fast load), NEO-59 (IResourceNodeDefinitionRegistry + DI), NEO-60 (GET /game/world/resource-node-definitions), NEO-61 (IResourceNodeInstanceStore + depletion operations, V006), NEO-62 (GatherOperations + GatherResult), NEO-63 (interact → gather engine + four registry anchors + Bruno), NEO-64 (comment-only resource_gathered / gather_node_depleted telemetry hook sites in GatherOperations.TryGather) — E3M1-01E3M1-08 complete; register row Ready.

E3.M3 note: Epic 3 Slice 1 backlog in Linear (Epic 3 — Crafting, Gathering, and Itemization Economy): NEO-50NEO-56; label E3.M3. See E3M3-prototype-backlog.md, E3_M3_ItemizationAndInventorySchema.md. NEO-50 (content + CI), NEO-51 (server fail-fast load), NEO-52 (IItemDefinitionRegistry + DI), NEO-53 (GET /game/world/item-definitions), NEO-54 (inventory store + stack/slot rules engine), NEO-55 (GET/POST /game/players/{id}/inventory), and NEO-56 (comment-only item_created / inventory_transfer_denied telemetry hook sites in PlayerInventoryOperations) — Epic 3 Slice 1 backlog E3M3-01E3M3-07 complete; NEO-72 (client inventory HUD — inventory_client.gd, item_definitions_client.gd, InventoryLabel; NEO-72 manual QA) — Epic 3 Slice 5 E3S5-01 client landed; register row In Progress until Slice 2+; later slices update the alignment table as they land.

E3.M2 note: Epic 3 Slice 3 backlog in Linear (Epic 3 — Crafting, Gathering, and Itemization Economy): NEO-65NEO-71; label E3.M2. See E3M2-prototype-backlog.md, E3_M2_RefinementAndRecipeExecution.md. NEO-42 (refine XP prep helper) is Done; NEO-65NEO-71 complete — NEO-71 (comment-only item_crafted / craft_failed telemetry hook sites in CraftOperations.TryCraft) — E3M2-01E3M2-07 complete; register row Ready. Upstream: E3.M1 Ready, E3.M3 inventory landed.

E3 Slice 5 (client) note: Epic 3 client economy integrationNEO-72NEO-75; labels client + module ids. See E3S5-client-prototype-backlog.md, epic_03 Slice 5. Required for prototype playable gather→craft loop (not Bruno-only).

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 Ready
E5.M2 NpcAiAndBehaviorProfiles E5.M1 NpcBehaviorDef, TelegraphEvent, AggroRule Prototype In Progress
E5.M3 EncounterAndRewardTables E5.M1, E5.M2, E3.M3, E7.M2 EncounterDef, RewardTable, EncounterCompleteEvent Prototype Ready
E5.M4 GroupCombatScaling E5.M3, E8.M1 ScalingProfile, PartySizeModifier, CombatDifficultyBand Pre-production Planned

E5.M1 note: Epic 5 Slice 1 backlog in Linear (Epic 5 — PvE Combat and Encounter Content): NEO-76NEO-86; label E5.M1. Gig XP on defeat: E5M1-10 NEO-44. See E5M1-prototype-backlog.md, E5_M1_CombatRulesEngine.md. Builds on E1.M4 cast funnel (NEO-28/31/32); extends POST …/ability-cast with CombatResolution. NEO-76 landed: frozen four-ability catalog + CI (NEO-76 plan). NEO-77 landed: fail-fast server load of content/abilities/*_abilities.json (NEO-77 plan). NEO-79 landed: injectable IAbilityDefinitionRegistry + DI; hotbar/cast use TryNormalizeKnown (NEO-79 plan). NEO-78 landed: GET /game/world/ability-definitionsAbilityDefinitionsWorldApi + DTOs in Game/Combat/ (NEO-78 plan); Bruno bruno/neon-sprawl-server/ability-definitions/. NEO-80 landed: ICombatEntityHealthStore / InMemoryCombatEntityHealthStore — lazy init (Slice 1 flat 100 HP; superseded by NEO-91 plan per-archetype catalog max HP + three NPC instance ids); DI via AddCombatEntityHealthStore() (NEO-80 plan); server README — Combat entity health (NEO-80, NEO-91). NEO-81 landed: CombatOperations.TryResolve + CombatResult + CombatReasonCodes — defeated pre-check deny vocabulary (target_defeated, unknown_ability, unknown_target) (NEO-81 plan); server README — Combat engine (NEO-81). NEO-82 landed: AbilityCastApi invokes CombatOperations.TryResolve after E1.M4 gates; nested wire combatResolution on accept; per-ability catalog cooldownSeconds on successful resolve; target_defeated JSON cast deny without cooldown (NEO-82 plan); server README — Ability cast (NEO-82); Bruno bruno/neon-sprawl-server/ability-cast/ defeat spine. NEO-83 landed: GET /game/world/combat-targetsCombatTargetsWorldApi + DTOs; authoritative HP snapshot from ICombatEntityHealthStore for client HUD (NEO-83 plan); server README — Combat targets snapshot (NEO-83); Bruno bruno/neon-sprawl-server/combat-targets/. NEO-44 landed: CombatDefeatGigXpGrant on cast targetDefeated25 gig XP to breach via IPlayerGigProgressionStore (V007); GET …/gig-progression (NEO-44 plan); server README — Gig progression (NEO-44). NEO-84 landed: comment-only ability_used / enemy_defeat telemetry hook sites in CombatOperations.TryResolve; reserved encounter_start / player_death (NEO-84 plan); server README — Combat telemetry hooks (NEO-84). NEO-85 landed: client combat HUD — combat_targets_client.gd, CombatTargetHpLabel, CastFeedbackLabel resolution copy; event-driven GET /game/world/combat-targets refresh (NEO-85 plan, NEO-85 manual QA); client README — Combat feedback + target HP HUD (NEO-85). NEO-86 landed: playable combat capstone — gig_progression_client.gd, GigXpLabel, defeat-triggered gig GET refresh; capstone manual QA NEO-86 (NEO-86 plan); client README — End-to-end combat loop (NEO-86). Epic 5 Slice 1 complete — register row Ready.

E5.M2 note: Epic 5 Slice 2 backlog in Linear (Epic 5 — PvE Combat and Encounter Content): NEO-87NEO-98; label E5.M2. Client capstone E5M2-12 NEO-98. See E5M2-prototype-backlog.md, E5_M2_NpcAiAndBehaviorProfiles.md. Upstream E5.M1 Ready. NEO-87 landed: frozen three-behavior catalog + CI (NEO-87 plan). NEO-88 landed: fail-fast server load of content/npc-behaviors/*_npc_behaviors.json (NEO-88 plan); server README — NPC behavior catalog. NEO-89 landed: injectable INpcBehaviorDefinitionRegistry + DI (NEO-89 plan). NEO-90 landed: GET /game/world/npc-behavior-definitionsNpcBehaviorDefinitionsWorldApi + DTOs in Game/Npc/ (NEO-90 plan); server README — NPC behavior definitions (NEO-90); Bruno bruno/neon-sprawl-server/npc-behavior-definitions/. NEO-91 landed: PrototypeNpcRegistry + combat-target migration — three NPC instance ids, per-archetype catalog max HP (NEO-91 plan); server README — Combat entity health (NEO-91). NEO-92NEO-96 landed: aggro/threat, runtime state machine, GET …/npc-runtime-snapshot, player combat HP + NPC attack resolve, telemetry hooks (NEO-92NEO-96). NEO-97 landed: client telegraph HUD (NEO-97 plan, NEO-97 manual QA). NEO-98 landed: playable NPC telegraph combat capstone (NEO-98 plan, NEO-98 manual QA); client README — End-to-end NPC telegraph combat loop (NEO-98). Epic 5 Slice 2 complete — register row Ready. Replaces prototype_target_alpha / beta with three NPC archetype instances; owns ThreatState, TelegraphEvent, session IPlayerCombatHealthStore.

E5.M3 note: Epic 5 Slice 3 backlog in Linear (Epic 5 — PvE Combat and Encounter Content): NEO-100NEO-111; label E5.M3. Client capstone E5M3-12 NEO-111. See E5M3-prototype-backlog.md, E5_M3_EncounterAndRewardTables.md. Upstream E5.M2 Ready, E3.M3 inventory landed. Prototype spine: one encounter prototype_combat_pocket (defeat all three E5.M2 NPC ids) → reward table prototype_combat_pocket_clear ( scrap_metal_bulk ×10, contract_handoff_token ×1 ); idempotent completion per player; per-defeat gig XP unchanged (NEO-44). NEO-100 landed: encounter + reward-table schemas, prototype catalogs, CI gates (NEO-100 plan). NEO-101 landed: fail-fast server load of content/encounters/*_encounters.json + content/reward-tables/*_reward_tables.json (NEO-101 plan); server README — Encounter + reward-table catalogs (NEO-101). NEO-102 landed: injectable IEncounterDefinitionRegistry + IRewardTableDefinitionRegistry + DI (NEO-102 plan); server README — Encounter + reward-table registries (NEO-102). NEO-103 landed: GET /game/world/encounter-definitionsEncounterDefinitionsWorldApi + nested rewardTable summary (NEO-103 plan); server README — Encounter definitions (NEO-103); Bruno bruno/neon-sprawl-server/encounter-definitions/. NEO-104 landed: IEncounterProgressStore + IEncounterCompletionStore + EncounterProgressOperations (NEO-104 plan); server README — Encounter progress (NEO-104). NEO-105 landed: EncounterCompletionOperations + EncounterCompleteEvent result payload (NEO-105 plan); server README — Encounter completion (NEO-105). NEO-106 landed: EncounterCombatWiring on AbilityCastApi (NEO-106 plan); server README — Encounter combat wiring (NEO-106). NEO-107 landed: IEncounterCompleteEventStore + E7.M2 hook stub (NEO-107 plan); server README — Encounter complete event (NEO-107). NEO-108 landed: GET /game/players/{id}/encounter-progressEncounterProgressApi + DTOs (NEO-108 plan); server README — Per-player encounter progress (NEO-108); Bruno bruno/neon-sprawl-server/encounter-progress/. NEO-109 landed: comment-only encounter_start, encounter_complete, reward_attribution, encounter_complete_denied hook sites (NEO-109 plan); server README — Encounter telemetry hooks (NEO-109). NEO-110 landed: client encounter progress + loot HUD — encounter_progress_client.gd, defeat-triggered GET (NEO-110 plan, NEO-110 manual QA); client README — Encounter progress + loot HUD (NEO-110). NEO-111 landed: playable encounter clear capstone — NEO-111 manual QA; client README — End-to-end encounter clear loop (NEO-111); plan NEO-111. Epic 5 Slice 3 complete — register row Ready.

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

Cross-cutting: combat and PvP eligibility

When hostile actions can target players, E5.M1 — CombatRulesEngine must consult E6.M1 — PvPEligibilityAndFlagState in the same server handling path before applying effects. PvE-only milestones may use a stub that denies all player-target hostility until PvP is enabled. Shape and deny reasons: PvP and the combat engine.

Cross-cutting: quests and party

Quest state is per-character by default; party credit and leader-only turn-in use E8.M1 — PartyAndMatchAssembly when enabled in QuestDef. Solo milestones need no party service. Details: Quest scope and party rules.

Cross-cutting: data reload and telemetry

Gameplay content and curves default to boot load with optional dev-only reload; live tuning defers to E9.M3 / E2.M4 when available. Telemetry: PII rules, sampling, retention principles, and baseline event taxonomy (vision plan + future catalog). See Data reload and telemetry operations policy.

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 Ready

E7.M1 note: Epic 7 Slice 1 backlog in Linear (Epic 7 — Questing, Narrative, and Faction Reputation): NEO-112NEO-123 landed; label E7.M1. See E7M1-prototype-backlog.md, E7_M1_QuestStateMachine.md. Upstream: E3.M1 gather Ready, E3.M2 craft Ready, E5.M3 encounter Ready. E7M1-12 / NEO-123 client capstone landed — NEO-123 manual QA, client README — End-to-end onboarding quest loop (NEO-123), plan NEO-123. Epic 7 Slice 1 client capstone complete. | E7.M2 | RewardAndUnlockRouter | E2.M2, E3.M3, E7.M1 | QuestRewardBundle, UnlockGrant, RewardDeliveryEvent | Prototype | Ready |

E7.M2 note: Epic 7 Slice 2 backlog in Linear (Epic 7 — Questing, Narrative, and Faction Reputation): NEO-124NEO-132 landed; label E7.M2. See E7M2-prototype-backlog.md, E7_M2_RewardAndUnlockRouter.md. Upstream: E7.M1 Ready, E2.M2 grant stack (NEO-43), E3.M3 inventory Ready. E7M2-09 / NEO-132 client capstone landed — NEO-132 manual QA, client README — End-to-end quest reward loop (NEO-132), plan NEO-132. Epic 7 Slice 2 client capstone complete. | E7.M3 | FactionReputationLedger | E7.M1, E7.M2 | FactionStanding, ReputationDelta, FactionGateRule | Pre-production | Ready |

E7.M3 note: Epic 7 Slice 3 backlog in Linear (Epic 7 — Questing, Narrative, and Faction Reputation): NEO-133NEO-143 landed; label E7.M3. See E7M3-pre-production-backlog.md, E7_M3_FactionReputationLedger.md. Upstream: E7.M1 Ready, E7.M2 Ready. Prototype spine: two frozen factions; operator chain grants +15 Grid Operators; prototype_quest_grid_contract gated at minStanding 15; rep grants via completionRewardBundle.reputationGrants; accept deny faction_gate_blocked. E7M3-11 / NEO-143 client capstone landed — NEO-143 manual QA, client README — End-to-end faction reputation loop (NEO-143), plan NEO-143. Epic 7 Slice 3 client capstone complete. | 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

Cross-cutting — Content tooling (not E1E9)

Operator-facing authoring infrastructure; module IDs use the CT prefix. Program doc: tooling/internal_authoring.md.

Module ID Module Name Depends On Contract Needed Phase Required Status
CT.M1 ContentValidationPipeline Soft: E2.M1, E3.M2M3, E4.M1, E7.M1 (shape alignment) JSON Schema bundle, validation CLI, error schema Prototype Planned
CT.M2 AuthoringStudioApplication CT.M1 Studio project layout, optional local content API Prototype Planned
CT.M3 ContentReferenceAndBundleWorkflows CT.M1; CT.M2 (recommended) ContentBundleManifest (optional), reference graph Pre-production Planned

CT.* modules consume gameplay content contracts from E1E9; they do not replace E7 runtime quest semantics or E4 server travel evaluation.

Per-module documentation

Module ID Document
E1.M1 E1_M1_InputAndMovementRuntime.md
E1.M2 E1_M2_IsometricCameraController.md
E1.M3 E1_M3_InteractionAndTargetingLayer.md
E1.M4 E1_M4_AbilityInputScaffold.md
E2.M1 E2_M1_SkillDefinitionRegistry.md
E2.M2 E2_M2_XpAwardAndLevelEngine.md
E2.M3 E2_M3_MasteryAndPerkUnlocks.md
E2.M4 E2_M4_ProgressionPacingControls.md
E3.M1 E3_M1_ResourceNodeAndGatherLoop.md
E3.M2 E3_M2_RefinementAndRecipeExecution.md
E3.M3 E3_M3_ItemizationAndInventorySchema.md
E3.M4 E3_M4_SinkAndDurabilityLifecycle.md
E3.M5 E3_M5_EconomyBalancePolicy.md
E4.M1 E4_M1_ZoneGraphAndTravelRules.md
E4.M2 E4_M2_SpawnEcologyController.md
E4.M3 E4_M3_SeamlessHandoffAndRegionState.md
E4.M4 E4_M4_SecurityTierZoneFlags.md
E5.M1 E5_M1_CombatRulesEngine.md
E5.M2 E5_M2_NpcAiAndBehaviorProfiles.md
E5.M3 E5_M3_EncounterAndRewardTables.md
E5.M4 E5_M4_GroupCombatScaling.md
E6.M1 E6_M1_PvPEligibilityAndFlagState.md
E6.M2 E6_M2_ConsentAndRiskUxSignals.md
E6.M3 E6_M3_LossPenaltyAndAntiGriefRules.md
E6.M4 E6_M4_RewardParityEnforcer.md
E7.M1 E7_M1_QuestStateMachine.md
E7.M2 E7_M2_RewardAndUnlockRouter.md
E7.M3 E7_M3_FactionReputationLedger.md
E7.M4 E7_M4_ContractMissionGenerator.md
E8.M1 E8_M1_PartyAndMatchAssembly.md
E8.M2 E8_M2_GuildCorpProgressionState.md
E8.M3 E8_M3_PlayerTradeAndMarketplace.md
E8.M4 E8_M4_ChatModerationAndReporting.md
E9.M1 E9_M1_TelemetryEventSchema.md
E9.M2 E9_M2_KpiDashboardsAndAlerting.md
E9.M3 E9_M3_LiveBalanceControlPlane.md
E9.M4 E9_M4_IntegrityAndAbuseResponse.md
CT.M1 CT_M1_ContentValidationPipeline.md
CT.M2 CT_M2_AuthoringStudioApplication.md
CT.M3 CT_M3_ContentReferenceAndBundleWorkflows.md

Status Legend

  • Planned: No meaningful implementation toward this module yet (see documentation and implementation alignment).
  • In Progress: Partial implementation or active stories; contracts may be incomplete.
  • Ready: Contract stable and usable by dependents (contracts.md).
  • Blocked: Dependency missing or unstable.

Tracking table (modules with code or plans in flight): documentation_and_implementation_alignment.md — Implementation tracking table.