1.4 KiB
Mod option schema export
mod_option_schemas.json is an optional runtime snapshot written beside
options.lua after the mod loader finishes. It gives a native launcher a
data-only description of mod settings without requiring the launcher to run
untrusted mod entry code before boot.
Version 1 has this shape:
{
"schema_version": 1,
"mods": {
"example": [
{"key":"enabled","type":"toggle","label":"Enabled","default":true},
{"key":"mode","type":"choice","label":"Mode","default":"safe",
"choices":[["Safe","safe"],["Fast","fast"]]},
{"key":"rate","type":"number","label":"Rate","default":5,
"min":0,"max":10,"step":1},
{"key":"name","type":"text","label":"Name","default":"","maxLen":12}
]
}
}
Only enabled, successfully loaded mods are included. A boot with no schemas
writes {"schema_version":1,"mods":{}} when an older snapshot exists, so a
disabled or failed mod cannot leave stale settings rows behind. A filesystem
that cannot write is tolerated, and a fresh mod-free boot does not create the
file.
The supported row types are toggle, choice, number, and text. Native
consumers may ignore unknown future row types. Consumers must accept a
missing schema_version as legacy version 1 and ignore newer versions rather
than guessing at their shape. Producers must bump the version when changing
the document shape.