Feature Cluster Dependency Matrix - M8
See milestone-dependency-map.md for navigation.
| Cluster ID | Feature Cluster | Milestone | Depends On (Hard) | Depends On (Soft) | Canonical Docs | Decisions | Roadmap Phase | Gap Priority | Exit Gate | Parallelizable With | Risk Notes |
| M8.SDK.CLI_FOUNDATION | ic CLI core workflows, validation/testing scaffolding, early creator loop | M8 | M2.CORE.SIM_FIXED_POINT_AND_ORDERS | M5.SP.LUA_MISSION_RUNTIME | 04-MODDING.md, 08-ROADMAP.md | D004, D005, D062 | Phase 4–5 overlay | — | Creators can init/check/run/test content without visual SDK | M8.COM.MINIMAL_WORKSHOP | Keep CLI aligned with later SDK naming/flows |
| M8.SDK.AUTHORING_REFERENCE_FOUNDATION | Auto-generated authoring reference foundation (YAML schema/Lua API/CLI command docs) + knowledge-base publishing pipeline | M8 | M8.SDK.CLI_FOUNDATION, M2.COM.TELEMETRY_DB_FOUNDATION | M5.SP.LUA_MISSION_RUNTIME | 09e-community.md, 04-MODDING.md | D037, D020, D004, D005 | Phase 4–5 overlay (with 6a SDK embedding consumers) | — | Canonical authoring reference sources exist and are versioned/searchable outside the SDK | M8.COM.MINIMAL_WORKSHOP, M9.SDK.EMBEDDED_AUTHORING_MANUAL | P-Creator: metadata/doc generation drift if command/API/schema docs are hand-maintained in parallel |
| M8.COM.MINIMAL_WORKSHOP | Minimal central Workshop delivery (publish/install/browser/autodownload early slice) | M8 | M8.SDK.CLI_FOUNDATION, M2.COM.TELEMETRY_DB_FOUNDATION | M7.NET.TRACKING_BROWSER_DISCOVERY | 08-ROADMAP.md, 09e-community.md, 04-MODDING.md | D030, D049, D034 | Phase 4–5 overlay | — | Minimal Workshop works before full federation features | M8.MOD.PROFILES_NAMESPACE_FOUNDATION | Do not overbuild full D030 too early |
| M8.COM.WORKSHOP_PACKAGE_HASH_VERIFY_BASELINE | Workshop package integrity baseline (manifest/package hash verification, repair/retry surfaces, lockfile digest recording) | M8 | M8.COM.MINIMAL_WORKSHOP | M2.CORE.SNAPSHOT_HASH_REPLAY_BASE | 09e-community.md, 04-MODDING.md, 17-PLAYER-FLOW.md | D049, D030, D068 | Phase 4–5 overlay | — | Package install/publish paths verify hashes consistently and surface actionable repair/retry behavior | M9.COM.WORKSHOP_MANIFEST_SIGNING_AND_PROVENANCE, M8.OPS.WORKSHOP_OPERATOR_PANEL_MINIMAL | Hash-policy drift or inconsistent verify UX can undermine trust before signatures/provenance hardening lands |
| M8.OPS.WORKSHOP_OPERATOR_PANEL_MINIMAL | Minimal Workshop operator panel (ingest queue, verify/retry, reindex, storage/GC, source health, audit log) | M8 | M8.COM.MINIMAL_WORKSHOP, M2.COM.TELEMETRY_DB_FOUNDATION | M8.COM.WORKSHOP_PACKAGE_HASH_VERIFY_BASELINE | 09e-community.md, 15-SERVER-GUIDE.md | D049, D037, D034 | Phase 4–5 overlay | — | Operators can keep the Workshop healthy without shell-only incident response for routine failures | M9.OPS.WORKSHOP_ADMIN_PANEL_FULL | Operator tooling debt quickly becomes service reliability debt |
| M8.COM.FREEWARE_MIRROR_STARTER_CONTENT | Conditional official/community mirror starter packs for policy-approved legacy/freeware C&C content (clearly labeled provenance path) | M8 | M8.COM.MINIMAL_WORKSHOP, M0.OPS.FREEWARE_CONTENT_MIRROR_POLICY_GATE | M3.CORE.PROPRIETARY_ASSET_IMPORT_AND_EXTRACT, M9.COM.WORKSHOP_MANIFEST_SIGNING_AND_PROVENANCE | 09e-community.md, 09c-modding.md, 17-PLAYER-FLOW.md | D049, D037, D068, D069 | Phase 4–5 overlay / 6a hardening | — | If policy-approved, mirror packs install as optional, provenance-labeled sources; if not approved, this cluster remains intentionally unshipped and D069 owned-import is the onboarding path | M9.COM.D049_FULL_WORKSHOP_CAS | Must not imply redistribution rights or become a silent substitute for owned-install import rules |
| M8.P2P.CORE_ENGINE | p2p-distribute crate core engine — bencode codec, BEP 3 wire protocol, piece picker, filesystem storage, choking/unchoking, HTTP tracker client, full download→seed lifecycle (design milestones 1–2) | M8 | M0.OPS.STANDALONE_CRATE_REPOS | M8.COM.MINIMAL_WORKSHOP | research/p2p-distribute-crate-design.md, research/p2p-engine-protocol-design.md, 09a/D076-standalone-crates.md | D076, D049, D050 | Phase 5 overlay (standalone crate) | — | Two instances transfer a multi-file torrent over TCP; HTTP tracker announce/scrape functional; interop with ≥1 standard BT client | M8.P2P.CONFIG_AND_PROFILES | Standalone repo, MIT OR Apache-2.0; no GPL deps (cargo-deny); must not depend on any ic-* crate |
| M8.P2P.CONFIG_AND_PROFILES | p2p-distribute configuration system — 10 knob groups, config layering, 4 built-in profiles (embedded_minimal/desktop_balanced/server_seedbox/lan_party), runtime mutation, rate limiting, queue management (design milestone 3) | M8 | M8.P2P.CORE_ENGINE | — | research/p2p-distribute-crate-design.md | D076, D049 | Phase 5 overlay (standalone crate) | — | All 10 config groups validated; profile switching works at runtime; TOML/YAML/JSON config round-trips | M8.P2P.DISCOVERY_AND_NAT | Core profiles must map to IC integration use cases (embedded for game client, server_seedbox for ic-server Workshop capability) |
| M8.P2P.DISCOVERY_AND_NAT | p2p-distribute peer discovery and NAT traversal — UDP tracker (BEP 15), PEX (BEP 11), magnet URIs (BEP 9), DHT (BEP 5), UPnP/NAT-PMP port mapping, uTP (BEP 29), LSD (BEP 14) (design milestones 4–5, 7) | M8 | M8.P2P.CONFIG_AND_PROFILES | — | research/p2p-distribute-crate-design.md, research/p2p-engine-protocol-design.md | D076, D049 | Phase 5 overlay (standalone crate) | — | Magnet link download works; DHT-only peer discovery works; client behind NAT reachable via UPnP; uTP yields bandwidth to TCP | M8.P2P.EMBEDDED_TRACKER, M9.P2P.HARDENING | DHT and uTP are feature-gated; NAT traversal quality varies by network environment |
| M8.P2P.EMBEDDED_TRACKER | p2p-distribute embedded HTTP tracker — announce/scrape, swarm health, auth hook (AuthPolicy trait), optional UDP tracker, Prometheus metrics (design milestone 9 subset) | M8 | M8.P2P.CORE_ENGINE | M8.P2P.DISCOVERY_AND_NAT | research/p2p-distribute-crate-design.md | D076, D049, D074 | Phase 5 overlay (standalone crate) | — | Embedded tracker serves announce/scrape; ic-server Workshop capability can use it for permanent seeding | M9.COM.D049_FULL_WORKSHOP_CAS | Tracker is the webapi feature; auth hook enables IC’s Ed25519 token integration |
| M8.P2P.IC_INTEGRATION_BASELINE | IC integration baseline — workshop-core (D050) wraps p2p-distribute with IC-specific AuthPolicy (Ed25519), PeerFilter (ban list), StorageBackend (CAS-backed); ic-server Workshop capability wired to embedded tracker + server_seedbox profile | M8 | M8.P2P.CORE_ENGINE, M8.P2P.CONFIG_AND_PROFILES, M8.COM.MINIMAL_WORKSHOP | M8.P2P.EMBEDDED_TRACKER | research/p2p-distribute-crate-design.md, 09e/D049-workshop-assets.md, 09b/D074-community-server-bundle.md, modding/workshop.md | D049, D050, D074, D076 | Phase 5–6a overlay | — | Workshop publish/install path uses P2P delivery; ic-server seeds packages; auto-download on lobby join uses embedded_minimal profile in game client | M9.COM.D049_FULL_WORKSHOP_CAS | GPL boundary: p2p-distribute stays MIT/Apache; workshop-core stays MIT/Apache (D050); IC-specific wrappers live in GPL ic-net or ic-game |
| M8.MOD.PROFILES_NAMESPACE_FOUNDATION | D062 mod profiles + virtual namespace + fingerprints baseline | M8 | M2.CORE.SNAPSHOT_HASH_REPLAY_BASE, M8.SDK.CLI_FOUNDATION | M8.COM.MINIMAL_WORKSHOP | 04-MODDING.md, 09c-modding.md | D062, D068 | Phase 4–5 overlay / 6a foundation | — | Profile save/activate/fingerprint flow stable | M7.NET.RANKED_MATCHMAKING | Lobby/profile mismatch UX complexity |
| M8.MOD.SELECTIVE_INSTALL_INFRA_HOOKS | D068 install presets/content-footprint hooks reused by D069 and content manager | M8 | M8.COM.MINIMAL_WORKSHOP, M1.CORE.DATA_DIR_AND_PORTABILITY_BASE | M3.UX.FIRST_RUN_SETUP_AND_MAIN_MENU | 09c-modding.md, 17-PLAYER-FLOW.md, 09g-interaction.md | D068, D069, D049 | Phase 6a foundation (with earlier wizard integration) | — | Install profiles and maintenance hooks are stable before full SDK/content-manager polish | — | Keep gameplay/presentation/player-config fingerprint boundaries explicit |