Skip to main content
FORGEJO ERA / ISSUE #618

Options era fixtures contain values the game does not write for chat visibility and graphics

closedOpened by MelanX on

Original description​

By MelanX · October 23, 2026

Crate: ephervex-options (test fixtures)

Commit: 2b2af1e4f8166d02e4732d19e040a53745d97a51

Behavior

Two lines in the hand-authored fixtures/options/*.txt files disagree with the generated dataset:

  • options-1.20.1.txt:50 and options-26.1.txt:51 contain chatVisibility:"full". The dataset types chatVisibility as enum_id with values [0, 1, 2] in every release, and the 1.12.2 and 1.16.5 fixtures write chatVisibility:0. A name token is not a value the game writes for this key.
  • options-26.1.txt:41 contains graphicsMode:1. Since 1.21.11 the dataset has no graphicsMode; it has graphicsPreset (quoted enum_token: custom, fabulous, fancy, fast) and improvedTransparency. The 26.1 fixture has the previous era's key and neither new one.

Expected behavior

Each fixture contains only keys and value shapes the named release writes, as SOURCES.md describes. The 26.1 fixture uses graphicsPreset and improvedTransparency, and every fixture writes chatVisibility as an integer id.

Impact

The 26.1 fixture does not exercise the era it is documented to prove, and a neighboring-era key sits in a file the era test says must not contain one. Nothing fails today because era_fixtures.rs only checks byte-for-byte round trips and rewriting of managed keys, and neither key is managed there.

Locations

  • fixtures/options/options-1.20.1.txt (50)
  • fixtures/options/options-26.1.txt (41, 51)
  • crates/options/tests/era_fixtures.rs

Validation and limitations

Compared the fixture lines with the committed minecraft-options.json (codecs for chatVisibility, graphicsMode, graphicsPreset, improvedTransparency per release). Not compared with a file written by a real game, and the Rust tests were not run against corrected fixtures. A test that checks every fixture key against the dataset codec for its release would catch this class of drift.