Rewrite simulation core for design model

This commit is contained in:
2026-05-10 18:41:17 +02:00
parent ca41e009bd
commit 851f6d27e8
23 changed files with 2033 additions and 1192 deletions

View File

@@ -4,8 +4,9 @@
- Branch: `design-rewrite`
- Scope approved: implement `docs/design.md` end-to-end with deterministic defaults and no backward compatibility.
- Existing implementation is the previous combined-cell integer simulation and editor. It will be replaced instead of migrated.
- First commit establishes this tracker only.
- Simulation core has been replaced with the first design-native model and deterministic engine slice.
- Simulation and test projects now target `net10.0` because this Linux environment only has the .NET 10 runtime.
- Win2D editor still references the removed legacy model and is the next major implementation area.
## Completed Work
@@ -13,20 +14,27 @@
- Confirmed deterministic balance defaults should be chosen during implementation.
- Confirmed a full Win2D editor is required.
- Created branch `design-rewrite`.
- Added `TASKS.md` as the required per-commit work tracker.
- Removed the legacy integer hazard/effect/hazard plug-in simulation surface.
- Added design-native terrain, underground carrier layers, surface hazards, props, leaks, doors, reactor bindings, robot inventory, rule events, validation, serialization, and forecasts.
- Added deterministic default balancing values.
- Added a first deterministic simulation pipeline for network propagation, consumers, leaks, surface interactions, robot safety, reactor readiness, rule events, and forecasts.
- Replaced old tests with design-based simulation tests.
- Verified `dotnet test tests/ReactorMaintenance.Simulation.Tests/ReactorMaintenance.Simulation.Tests.csproj` passes: 11 passed.
- Attempted `dotnet jb cleanupcode --build=False ...`; unavailable in this environment because `dotnet-jb` is not installed.
- Reviewed the first slice and fixed an action-resolution maintainability issue before commit.
- Verified `git diff --check` reports no whitespace errors.
## Current Work
- Establish task tracking before code changes.
- Commit the first simulation-core rewrite slice.
## Future Work
1. Replace the simulation domain model with terrain, underground carrier layers, props, leaks, doors, inventory, reactor bindings, rule events, forecasts, and float-valued runtime state.
2. Replace balancing with deterministic defaults for all values named by the design.
3. Implement validation errors and warnings from the design.
4. Implement the turn pipeline: actions, runtime validation, rule events, network propagation, consumers, leak injection, surface interactions, robot safety, reactor state, event advancement, and forecasts.
5. Implement player actions and editor operations for the new model.
6. Replace serialization with a schema-valid current format only.
7. Update the Win2D editor for all authored layers and new runtime inspection.
8. Replace tests with design-based behavior coverage.
9. Update documentation to reflect the new implementation.
10. Run cleanup, tests, code review, and iterate until the implementation is clean and maintainable.
1. Expand simulation fidelity where the first slice is intentionally simplified: junction branch inference, ambiguity validation, complete pair table coverage, richer rule predicates/effects, and stronger forecast proof cases.
2. Update the Win2D editor for all authored layers and new runtime inspection.
3. Add editor workflows for reactor bindings, door edge selection, electricity wall leak faces, rule events, and layer-specific painting.
4. Update README and any affected docs to reflect the new schema, .NET target, editor controls, and deterministic defaults.
5. Build the Win2D project on a Windows-capable environment after the editor rewrite.
6. Add broader tests for junction ratios, ambiguous junctions, all rule event families, serialization edge cases, and editor operations.
7. Run cleanup when `dotnet-jb` is available, tests, code review, and iterate until the implementation is clean and maintainable.