Public Access
109 lines
6.5 KiB
Markdown
109 lines
6.5 KiB
Markdown
# Milestone 6 acceptance review (issue #74)
|
||
|
||
Milestone 6 covers authored and live block instability, deterministic provider
|
||
selection, bounded Age effects, diagnostics, and migration. Its required issues
|
||
#63–#73 are closed. This document is the release gate for **0.6.0.0**, not a
|
||
claim of exact Mystcraft 1.12.2 parity or a claim that every optional-mod
|
||
combination was tested. The player reported an in-game pass for the 0.6.0.0
|
||
candidate on 2026-10-12; the broader manual matrix remains a future checklist.
|
||
|
||
## Scoring and writing
|
||
|
||
The [pinned Legacy audit](LEGACY_INSTABILITY_AUDIT.md) records source defaults
|
||
and the Rivencraft mapping. Authored score/breakdown and provider plan are
|
||
saved per Age; seed-completed missing branches cost zero. Extra single-choice
|
||
controllers cost +500, and out-of-order non-modifier pages cost +100.
|
||
Version-4 Age plans consume period/phase modifiers in written order; repeated
|
||
modifiers combine, while each kind left unconsumed after the last celestial
|
||
page costs +100. Bright Lighting costs +500 per occurrence. The fourth and
|
||
later occurrences of each of the four Legacy structure pages cost +100; the
|
||
same rule applies to named modern structure pages as a project balance
|
||
extension. Forcing a structure into an unsupported selected biome costs +100
|
||
per occurrence. Accelerated and Corrupted pages retain their audited costs.
|
||
Unknown or unrepresentable new writing remains a clear binding error, rather
|
||
than a silent no-op. See [score details](INSTABILITY_SCORE.md).
|
||
|
||
The [live block profile](LIVE_BLOCK_INSTABILITY.md) samples generated chunks
|
||
gradually and contributes only after the Age and Overworld-baseline thresholds.
|
||
It can change the effective score and active provider selection as new chunks
|
||
are profiled, without rewriting authored score or writing. Diamond storage
|
||
blocks are an intentional addition to Legacy's watched blocks. Ores, mineral
|
||
storage blocks, and source fluids supplied by installed mods are recognized
|
||
automatically through common tags and material names; those mods are **not**
|
||
Rivencraft dependencies. Exact weight overrides are optional configuration.
|
||
|
||
## Effects, safety, and diagnostics
|
||
|
||
The [runtime policy](INSTABILITY_RUNTIME.md) documents saved deck order,
|
||
provider costs/levels, per-Age cooldown, rotating Age admission, loaded-chunk
|
||
selection, and server-side action budgets. Defaults allow four Ages per tick,
|
||
two provider calls and one effect action per Age run, up to 16 loaded chunk
|
||
candidates, and a 20-tick per-Age cooldown. These caps and protected
|
||
spawn/portal/platform areas are modern safety adaptations, not Legacy's
|
||
unrestricted execution. Global, per-Age, provider, and world-mutation controls
|
||
suppress execution without rerolling a saved authored plan.
|
||
|
||
Implemented effect families include bounded status effects, four active
|
||
colored decay variants, lightning, explosions, meteors, ordinary burning,
|
||
and guarded erosion. Erosion is deliberately enabled by default for testing
|
||
although Legacy did not register its provider in the active deck. Dormant
|
||
Legacy black/green/yellow decay variants, global burning, and bedrock crumble
|
||
are **not** claimed as working. Potion targeting excludes Creative/Spectator
|
||
players; hostile buffs target hostile mobs. The [effect audit](LEGACY_INSTABILITY_AUDIT.md)
|
||
records those differences. [Operator diagnostics](INSTABILITY_DIAGNOSTICS.md)
|
||
report authored and live block contributions, selected providers, enabled
|
||
state, and budget suppression; raw score is not shown in book UI.
|
||
|
||
## Migration and validation
|
||
|
||
Pre-scoring Ages migrate to neutral instability. Score-only Ages receive a
|
||
deterministic saved provider plan. Existing plan-v3 Ages keep their old
|
||
stage-sorted celestial behavior and writing cost; new plans use schema 4.
|
||
Block profile schema 2 resets old samples once to capture modded materials,
|
||
and preserves unknown material IDs if an optional mod is later removed.
|
||
Missing symbol definitions do not reinterpret a saved authored score, but
|
||
removing required biome/worldgen registry entries may still prevent world
|
||
loading. General old-save compatibility is tracked separately in issue #60.
|
||
|
||
The [Milestone 6 regression record](MILESTONE_6_REGRESSION.md) distinguishes
|
||
the passing 0.5.8.10 focused archive, the later storage-stalled archive, the
|
||
0.5.8.18 build, and the player's reported in-game pass. Its expanded manual
|
||
matrix is a repeatable future checklist, **not** an individually signed-off
|
||
pass for every optional mod, multiplayer, restart, and hazard combination.
|
||
For this completion candidate, verify build, diff check, jar checksum, and a
|
||
fresh in-game pass before publication. Do not rerun the known stalling archive
|
||
as a release gate; hand any newly stalled GameTest scenario to the player.
|
||
The completion review also replaced repeated linear scans of saved active
|
||
symbol indices with one lookup map per call, and shares one effective provider
|
||
plan across the scheduler, hazard, and environmental lanes of an admitted Age
|
||
tick. Live-profile scoring within that plan also uses one sample evaluation
|
||
instead of two. These are
|
||
behavior-preserving cleanups; no provider rates or budgets were raised.
|
||
|
||
## NeoForge decision
|
||
|
||
The project currently develops against NeoForge **21.1.251** for Minecraft
|
||
1.21.1. The [official 21.1.259 changelog](https://maven.neoforged.net/releases/net/neoforged/neoforge/21.1.259/neoforge-21.1.259-changelog.txt)
|
||
lists mostly loader/Mixin dependency updates, a GUI slot-index API change,
|
||
and targeted fixes since 21.1.251. None addresses a known Rivencraft defect.
|
||
Upgrading the development and minimum runtime version during this acceptance
|
||
gate would force an additional optional-integration test pass for little clear
|
||
benefit. Keep 21.1.251 for 0.6.0.0; evaluate 21.1.259 in a separate later
|
||
slice with Create/Ponder, Immersive Portals, Dynamic Dimensions, JEI, and the
|
||
season/biome integrations. This is a release-risk judgment, not a claim that
|
||
21.1.259 is incompatible.
|
||
|
||
## Gate status
|
||
|
||
- Required implementation issues #63–#73: closed.
|
||
- Known unsupported effects and broader save compatibility: explicitly scoped
|
||
above, not counted as working Milestone 6 behavior.
|
||
- Candidate `./gradlew build --offline --no-daemon --quiet`: passed; the
|
||
compiler reported only existing GameTest helper deprecation warnings.
|
||
Local JAR SHA-256: `6eed828156dd1e2679b013c3c5bf8e692a20d9ab80ae27417b3cafe1c26422c7`.
|
||
- Player in-game acceptance of completion candidate: reported pass on
|
||
2026-10-12; individual optional-mod and multiplayer matrix rows were not
|
||
separately signed off.
|
||
- Gitea completion release, uploaded-jar checksum, #74 and milestone closure:
|
||
pending publication and verification.
|