Files
magic-factorio/tasks/tech-tree-todo-v0.2.md
T

299 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Magical-Law Progression Tasks v0.2
## M1: Prototype portal matter exchange
**Description:** Build a headless and minimal visual toy where 100 mass units form a seeded result bag, outputs arrive in shuffled order, anchors bias the distribution, and throughput raises entropy.
**Acceptance criteria:**
- [ ] The UI shows expected output ranges before a batch starts.
- [ ] Stable, anchored, and high-entropy modes create different useful tradeoffs.
- [ ] Every residue/anomaly has a recovery route; no required item relies on a sub-5% roll.
**Verification:**
- [ ] Same seed/input/calibration produces the same bag and state hash.
- [ ] Save/load mid-bag preserves remaining outputs and cannot reroll.
- [ ] One million simulated batches stay inside configured mass and probability bounds.
**Dependencies:** None
**Files likely touched:**
- `src/simulation/result_bag.gd`
- `src/simulation/portal_exchange.gd`
- `tests/portal_exchange_smoke.gd`
- `scenes/labs/portal_exchange_lab.tscn`
**Estimated scope:** Medium
## M2: Define biome laws and boundaries
**Description:** Add data contracts for zone membership, boundary nodes, law state, failure/recovery, and law-specific machine modifiers without coupling them to rendered terrain.
**Acceptance criteria:**
- [ ] Forest balance, undead decay, ember temperature, mirror entropy, and rift instability use the same lifecycle interface.
- [ ] Boundary crossings are explicit graph edges that can be opened and closed deterministically.
- [ ] Existing entities outside a special zone retain current behavior.
**Verification:**
- [ ] Unit fixtures enter/leave each law and report exact state changes.
- [ ] Closing a crossing never deletes in-flight inventory.
- [ ] Sleeping entities do not wake every tick only because they occupy a special zone.
**Dependencies:** None
**Files likely touched:**
- `src/simulation/biome_law.gd`
- `src/simulation/biome_registry.gd`
- `src/simulation/boundary_network.gd`
- `tests/biome_law_smoke.gd`
**Estimated scope:** Medium
## M3: Encode and validate the v0.2 progression
**Description:** Turn `docs/tech-tree-nodes-v0.2.csv` into typed runtime data and validate prerequisites, roles, proof types, boundary unlocks, experiment requirements, and recovery paths.
**Acceptance criteria:**
- [ ] All 80 records load under stable IDs.
- [ ] M nodes never depend on C/POST/INFINITE nodes.
- [ ] Mainline totals equal K 10,780; L 9,580; D 9,580; E 8,150; S 6,200.
**Verification:**
- [ ] Invalid fixtures cover duplicate IDs, missing prerequisites, cycles, invalid proof types, and missing recovery.
- [ ] The computed G09 closure contains inscription, life, death, element, dimension, and portal tags.
- [ ] Existing simulation smoke tests remain green.
**Dependencies:** M2
**Files likely touched:**
- `src/data/technology_definition.gd`
- `src/data/technology_catalog.gd`
- `src/data/technology_catalog.tres`
- `tests/technology_catalog_smoke.gd`
**Estimated scope:** Medium
## M4: Implement experiment-driven research
**Description:** Consume physical proof items only after their experiment state sequence has completed, then support queues, parallel archives, progress inspection, and exact save/load.
**Acceptance criteria:**
- [ ] Each proof records which law experiment validated it.
- [ ] Archives consume exact proof sets and never duplicate the final unit under parallel completion.
- [ ] UI explains whether the bottleneck is proof validity, input, archive capacity, or prerequisite state.
**Verification:**
- [ ] Disconnect/reconnect preserves partial experiment and research progress.
- [ ] Save/load fingerprints match uninterrupted execution.
- [ ] Invalid hand-spawned blanks cannot satisfy a proof requirement.
**Dependencies:** M3
**Files likely touched:**
- `src/simulation/research_system.gd`
- `src/simulation/proof_experiment.gd`
- `src/ui/research_screen.gd`
- `tests/research_proof_smoke.gd`
**Estimated scope:** Medium
## M5: Deliver the runic opening
**Description:** Map the current prototype into B00K11, then add ordered inscription, mana-frequency splitting, rune adjacency, clay constructs, and boundary surveying.
**Acceptance criteria:**
- [ ] A fresh run produces K automatically and discovers both external-zone crossings.
- [ ] A wrong inscription order returns a reusable blank with a readable diagnosis.
- [ ] Rune templates change at least one recipe and one efficiency property.
**Verification:**
- [ ] Automated flow reaches K11 without debug items.
- [ ] Existing belt/mana/bridge deterministic tests pass.
- [ ] A stripped-art test distinguishes ordinary routing from ordered inscription.
**Dependencies:** M4
**Files likely touched:**
- `src/data/era_runic_content.tres`
- `src/simulation/rune_array.gd`
- `src/simulation/objective_system.gd`
- `tests/era_runic_flow_smoke.gd`
**Estimated scope:** Medium
## M6: Deliver forest and undead zones
**Description:** Implement regenerative growth/ecology balance and timed decay/memory recovery as two order-independent vertical slices with their own crossings and proof lines.
**Acceptance criteria:**
- [ ] Either zone can be completed first from the same K11 save.
- [ ] Overharvest produces recoverable blight; mist decay produces recoverable bone dust.
- [ ] L and D proofs are continuously automatable through their actual law loops.
**Verification:**
- [ ] Life-first and death-first runs both reach L08+D08 with matching mainline totals.
- [ ] Ecology and identity conservation tests pass under backpressure.
- [ ] Starting-zone blueprints visibly fail until adapted to each local law.
**Dependencies:** M5
**Files likely touched:**
- `src/data/era_life_death_content.tres`
- `src/simulation/growth_cycle.gd`
- `src/simulation/decay_identity.gd`
- `tests/era_life_death_flow_smoke.gd`
**Estimated scope:** Medium
## M7: Deliver ember-state production
**Description:** Merge the two anchor laws, open a protected ember crossing, and automate temperature/state cycling through E08.
**Acceptance criteria:**
- [ ] Heat can accelerate production but unsafe heat only pauses and yields recoverable slag.
- [ ] One medium completes cold, molten, and charged states to produce E.
- [ ] Dragon glass requires the state loop rather than a conventional one-step furnace recipe.
**Verification:**
- [ ] Automated mandatory flow reaches E08 without optional fire spirits.
- [ ] Energy and material conservation hold across state transitions.
- [ ] Cooling loss and reheating wake only affected networks.
**Dependencies:** M6
**Files likely touched:**
- `src/data/era_ember_content.tres`
- `src/simulation/thermal_network.gd`
- `src/simulation/item_state.gd`
- `tests/era_ember_flow_smoke.gd`
**Estimated scope:** Medium
## M8: Deliver mirror folding and identity
**Description:** Add paired spatial endpoints, echo sampling, bounded probabilistic duplication, shadow-matter separation, and identity anchoring through S08.
**Acceptance criteria:**
- [ ] Unnamed paths loop or misroute predictably; named endpoint pairs are deterministic.
- [ ] Probability UI shows batch ranges before S05-dependent processes start.
- [ ] Real and echo items can be sorted and both have useful recovery recipes.
**Verification:**
- [ ] Automated flow reaches S08 without optional mirror multiplication.
- [ ] Seeded result bags reproduce exactly across frame rates and reloads.
- [ ] No mainline item depends on a rare random output.
**Dependencies:** M1, M7
**Files likely touched:**
- `src/data/era_mirror_content.tres`
- `src/simulation/fold_network.gd`
- `src/simulation/item_identity.gd`
- `tests/era_mirror_flow_smoke.gd`
**Estimated scope:** Medium
## M9: Deliver the first-warp victory
**Description:** Build the rift site, twelve ring stones, four anchors, beat-synchronized material batches, four-frequency power window, entropy safety, walker construct, and both time achievements.
**Acceptance criteria:**
- [ ] Researching G09 cannot win the game by itself.
- [ ] First warp succeeds deterministically once all displayed ritual conditions hold.
- [ ] The achievement timestamp is the simulation frame on which the walker crosses.
**Verification:**
- [ ] Boundary tests cover 07:59:59/08:00:00 and 23:59:59/24:00:00.
- [ ] Save/load during ring construction, batch ritual, power window, and crossing preserves exact state.
- [ ] A full mainline test contains all five law demonstrations and no C dependency.
**Dependencies:** M8
**Files likely touched:**
- `src/data/era_portal_content.tres`
- `src/simulation/grand_ritual.gd`
- `src/simulation/achievement_clock.gd`
- `tests/first_warp_flow_smoke.gd`
**Estimated scope:** Medium
## M10: Deliver the postgame portal economy
**Description:** Connect the proven exchange toy to the opened campaign gate, add paradox proofs, ecological tuning, destinations, causal locks, relics, exact targeting, multiple gates, and repeatable research.
**Acceptance criteria:**
- [ ] Basic random exchange is usable immediately after victory.
- [ ] The player can trade gathering pressure for sorting/entropy work but cannot outperform local basic-resource loops in every dimension.
- [ ] Entropy bands create recoverable opportunities rather than arbitrary destruction.
**Verification:**
- [ ] Reference factories demonstrate unfocused, ecological, and true-name strategies.
- [ ] Every X/I node calculates deterministic cost and survives save migration.
- [ ] A portal-only economy cannot remain self-sustaining without external mana/catalyst input.
**Dependencies:** M9
**Files likely touched:**
- `src/data/postgame_portal_content.tres`
- `src/simulation/portal_exchange.gd`
- `src/simulation/paradox_research.gd`
- `tests/postgame_portal_smoke.gd`
**Estimated scope:** Medium
## M11: Prove 8/24-hour pacing and magical identity
**Description:** Record progression and law-specific failure metrics, run structured expert and first-play tests, and tune without removing the mandatory magical demonstrations.
**Acceptance criteria:**
- [ ] Telemetry records first proof, zone entry, anchor, gate stage, failure/recovery, and warp timestamps.
- [ ] Target percentiles meet 8/24 hours on standard topology seeds.
- [ ] At least 80% of testers can explain why one machine stopped in each ecology zone.
**Verification:**
- [ ] Report includes at least three rehearsed expert runs and eight experienced first-play runs.
- [ ] Cost simulator matches actual consumed proofs and final inventories.
- [ ] Stripped-art test distinguishes every ecology zone by rules alone.
**Dependencies:** M9, M10
**Files likely touched:**
- `src/telemetry/progression_metrics.gd`
- `tools/progression_report.gd`
- `tests/progression_benchmark_smoke.gd`
- `artifacts/progression-benchmark-v0.2.md`
**Estimated scope:** Medium