mirror of
https://github.com/bryanthaboi/gen1recomp.git
synced 2026-08-19 04:06:10 +02:00
37 lines
1.4 KiB
Markdown
37 lines
1.4 KiB
Markdown
# 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:
|
|
|
|
```json
|
|
{
|
|
"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.
|