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

14 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 Planned

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. InteractableDescriptor / SelectionEvent and a Godot consumer for targeting remain in progress on later Linear issues. Precursor (E1.M1): InteractionRequest + horizontal reach (NEO-9; Game/Interaction/, Game/World/HorizontalReach.cs).

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 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

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 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

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.