Current plans:
- Fetch a small file to check for updates.
- Fetch a compressed pre-prepared manifest of game metadata and a category list from e.g. repo.digitalmzx.com:
- Base version vault ID
- Vault ID
- Primary file SHA-256
- Category (game, engine, day of zeux, etc...)
- Title
- Author
- Version
- Description
- Overall rating
- Tags
- Base version vault ID
- This list will be constructed by the vault based on various criteria:
- Visibility/status (incl. possibly a new visibility that forbids a game from appearing in the repo)
- Reject any game in the MegaZeux category
- Reject any game not archived as a .ZIP
- Write a script to rearchive the games that aren't?
- Visibility/status (incl. possibly a new visibility that forbids a game from appearing in the repo)
- Request vault ID + primary file from some script to download. Extract .ZIP and compute manifest
- Display all games in an searchable, categorized interface on startup instead of the load menu (CONFIGURABLE) and display only items from the "Game" category with >=3.8 stars by default
- If any games are installed through this system, show the installed games on startup instead
- Upgrade by matching same base vault IDs
Archive structure:
- REPO/
- archive.txt
- installed.txt
- ZIPS/
- (base vault ID)/
- manifest.txt
- DATA/
- manifest.txt
- ...
- archive.txt
TBA: how to determine the main .MZX file
TBA: how to deal with multiple .ZIP games (imo we should rearchive them)