feat(ecology): F1 — data-driven natural-node species/lifecycle model (pure Shared) #252
No reviewers
Labels
No labels
alpha:wave-0
alpha:wave-1
alpha:wave-2
alpha:wave-3
area:assets
area:combat
area:ecology
area:infra
area:render
area:scripting
area:ui
area:world
enhancement
epic
migration
post-alpha
roadmap
tech-debt
type:bug
type:chore
type:design
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
marco/IsoMmo!252
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/ecology-f1"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
First, pure-
Sharedlayer of the ecology system (epic #250, slice #251): a data-driven natural-node species/lifecycle model —content/ecology.txt+ its parser + a lazy time-derived stage function. NO World / entity / networking / rendering (those are F2–F5, each its own PR). Design:docs/superpowers/specs/2026-08-02-ecology-harvest-audit.md(recognition audit) +…-ecology-slice-design.md(design + full Invariants Check) + the F1 plan (all committed here).What's here:
StageDef/SpeciesDef(StageAtElapsed— pure, wallclock-seconds growth, provably terminating even on a cyclic lifecycle) /EcologyData/EcologyFormat.Read(validated parser).content/ecology.txtwith the two slice species — pine (4-stage) and rock (2-stage): different lifecycles on one generic engine, proving extend-by-type.How it was tested
IsoMmo.Shared.Tests/Ecology): parser happy-path + every error path (dup ids, unknown stage/baseline refs, undeclared species, malformed rows, empty biomes); lazy derivation (boundary, multi-hop chain, terminal stage, cyclic-termination, negative-elapsed, unknown-fromStage passthrough); a committed-content golden test.IsoMmo.slnxwalk-up; reject zero-biome species; +termination/edge tests) all fixed.Scope & next
F1 only. Next PRs: F2 node entity + baseline-deterministic/delta persistence · F3 deterministic spawner · F4 AoI +
NaturalNode*DTOs + protocol bump · F5 client render · then the harvest slice (its own design). Part of #250; first step of #251.Checklist
just lint(CSharpier + analyzers, 0 warnings)just testgreen