Skip to main content
FORGEJO ERA / ISSUE #624

Options dataset lists the version marker as unsupported in releases that write it

closedOpened by MelanX on

Original description​

By MelanX · October 24, 2026

Crate: ephervex-options (generated data) and tools/minecraft-options

Commit: f844b107

Behavior

crates/options/data/minecraft-options.json lists the version setting (key version) in the unsupported array of the schemas for 1.12.2 through 1.13.2 and every release from 1.17 on (37 releases in revision 56), while the 1.14 through 1.16.5 schemas list it as supported. SchemaFamily::unsupported means settings that provably did not exist in a release, but every one of those releases writes a version:<data version> line to options.txt and has a data_version in its release mapping for exactly that marker (for example 1.12.2 = 1343, 1.20.1 = 3465, 26.1 = 4786).

Suspected cause: dataset.py schema_for() records every canonical setting missing from an extraction_complete record as unsupported, while analyze_options.py extracts the schema marker separately rather than as a setting.

Expected behavior

The version marker is supported (integer codec) wherever the release writes it, or is excluded from the unsupported derivation, and the dataset is regenerated.

Impact

Anything that trusts unsupported as proof of absence gets the wrong answer for version. every_fixture_line_is_a_key_and_value_its_release_writes in crates/options/tests/era_fixtures.rs has to skip VERSION_KEY to avoid a false failure.

Acceptance

  • No schema lists version as unsupported for a release that has a data_version.
  • A regression test covers it.
  • The era fixture test no longer special-cases the marker.

Locations

  • tools/minecraft-options/dataset.py schema_for
  • tools/minecraft-options/analyze_options.py (schema marker extraction)
  • crates/options/data/minecraft-options.json
  • crates/options/tests/era_fixtures.rs

Validation and limitations

Checked against the committed dataset at revision 56. Found while reviewing the era fixture values (#618).