This pull request includes significant updates to automate the version
control of mods and enhance the metadata schema. The changes involve
adding a Python script to fetch the latest mod versions from GitHub,
updating the workflow to run this script periodically, and modifying the
metadata schema and documentation to support automatic version checking.
### Automation of Mod Version Control:
*
[`.github/scripts/update_mod_versions.py`](diffhunk://#diff-ce76f7bf74b62aaea873670c15651b4caec6662ded3cc8e597cb7e2b1eac67c7R1-R181):
Added a Python script to automatically fetch the latest release or
commit version of mods from their GitHub repositories and update the
`meta.json` files accordingly.
*
[`.github/workflows/update-mod-versions.yml`](diffhunk://#diff-08c6175ddce4a9d49c79d12925be3c4f705913aadcd437a10b8bde3bde8fe740R1-R52):
Created a GitHub Actions workflow to run the version update script every
hour and commit the changes if any versions are updated.
### Metadata Schema and Documentation:
*
[`README.md`](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L39-R40):
Updated the documentation to include new `version` and
`automatic-version-check` fields in the mod metadata.
[[1]](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L39-R40)
[[2]](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5R52-R53)
*
[`schema/meta.schema.json`](diffhunk://#diff-b4174e73fe600a4b4f8497152d8782f7b2a92afb191bd76e022608c572334726R38-R43):
Added new fields `version` and `automatic-version-check` to the metadata
schema to support automatic version checking.
### Example Mod Metadata Update:
*
[`mods/WilsontheWolf@DebugPlus/meta.json`](diffhunk://#diff-c7742e2479f6104a4c5d38c6bc31cc3c9883ff52014290b103d0b5c0800e3c39L8-R9):
Enabled automatic version checking for the `DebugPlus` mod by adding the
`automatic-version-check` field.
FlowerPot needs to have its install folder specifically named
"Flower-Pot", otherwise it will make the game crash.
Discovered this problem after trying to launch Balatro with FlowerPot
installed.
Add optional property `folderName` which rejects names containing any
invalid characters.
Rejected characters are `<` `>` `:` `"` `/` `\` `|` `?` `*` as required
by Windows and UNIX.
Does not protect against strings containing non-printable control
characters, or strings of Windows-reserved filenames like CON, PRN, AUX,
NUL. These checks should be done when creating the directory.
Also set the folderName parameter for mods that are known to be
sensitive to folder name: Cryptid, Talisman and Trance.
Brainstorm is another popular mod that requires a specific folder name,
but is not currently on the mod index.
Document new optional parameter folderName.
Also add clarification of required vs optional parameters, and Categories requiring at least one item from the valid Category list.
Rejected characters are /< > : " / \ | ? *
Does not protect against strings containing non-printable control characters, or strings of reserved filenames like CON, PRN, AUX, NUL.