Removed the database-brained aspect of this design.

metadata-restructure
Emily Frost 4 years ago
parent bce55ec9b5
commit 21ec564616
Signed by: Emily
GPG Key ID: AA5D42849F1CBDC9

@ -1,43 +1,22 @@
# Metadata definitions
# TODO
* Decide on a file structure. This shouldn't be one giant json file, but it needs to be split in
useful ways.
## Image
A stored copy of a game's disk image. For example:
- Star Fox 64 (U) v1.2.z64
- Star Fox 64 (U) v1.2.v64
* UUID
- A unique identifier for this specific data object.
* format
- The format this image is stored in. For example: bin, iso, chd, z64, v64
* sha1sum
- The sha1sum hash of this specific image.
* release
- The release that this image was taken from.
* dump credit
- Where the hash came from, who dumped it, etc
## Release
A single release of a game. For example: Star Fox 64 (U) v1.2
## Platform
A single set of hardware and/or software that shares compatibility. For example:
- Nintendo Entertainment System
- Microsoft Windows 7
- Microsoft Windows 98
* UUID
* name
- The release's name in the language and script it was released in.
* region
- The official release code for the game.
* version
- The release version of the game. Some are verison numbers, some are just sequential
release numbers.
* disambiguation (can be empty)
- If this release is different in a way that isn't region or version, that information goes
here.
* release group
- The UUID of release group that this release belongs to.
* platform
- The UUID of the platform that this release is built for.
- The English name of the platform. As with release group names, this is mostly for
hand-editing data.
* regional_names
- A hash map with the keys being language identifers (en-US, jp, fr, etc) and the values
being the platform's name in the language and script it was released in.
* shortcode
- A small, three to five letter code for the platform. This must be unique among other
platforms.
* release groups
- A list containing release groups for this platform.
## Release group
A container for all languages and versions of a release. For example, the Star Fox 64 release
@ -47,46 +26,55 @@ A container for all languages and versions of a release. For example, the Star F
- Star Fox 64 (J) v1.0
- Lylat Wars (E) v1.0
* UUID
* name
- The English name for the release group. This is largely for contributors to quickly
understand the raw data, as frontends should ideally pull the name from a configured
region or something.
* releases
- A list containing all releases in this release group.
## Platform
A single set of hardware and/or software that shares compatibility. For example:
- Nintendo Entertainment System
- Microsoft Windows 7
- Microsoft Windows 98
* UUID
## Release
A single release of a game. For example: Star Fox 64 (U) v1.2
* name
- The English name of the platform. As with release group names, this is mostly for
hand-editing data.
* regional_names
- A hash map with the keys being language identifers (en-US, jp, fr, etc) and the values
being the platform's name in the language and script it was released in.
* shortcode
- A small, three-letter code for the platform. This is essentially for directory names.
- The release's name in the language and script it was released in.
* region
- The official release code for the game.
* version
- The release version of the game. Some are verison numbers, some are just sequential
release numbers.
* disambiguation (can be empty)
- If this release is different in a way that isn't region or version, that information goes
here.
* images
- A list of all images of this release.
## Image
A stored copy of a game's disk image. For example:
- Star Fox 64 (U) v1.2.z64
- Star Fox 64 (U) v1.2.v64
* format
- The format this image is stored in. For example: bin, iso, chd, z64, v64
* sha1sum
- The sha1sum hash of this specific image.
* dump credit
- Where the hash came from, who dumped it, etc
* patches (can be empty)
- A list of patches that are intended to apply to this image.
## Patches
Unofficial patches or mods for a game, usually called romhacks.
* UUID
* name
- The patch's name in it's original language.
* file sha1sum
- The patch file's sha1sum.
* target image
- The UUID of the image that the patch is intended to be applied to.
# Design notes
* This spec is designed with the intent to be imported into databases while also being reasonably
hand-editable for contributors.
* Everything has a UUID because formats and hashing algorithms change, and this should be made as
long-term and language-agnostic as is reasonable.
* Releases have multiple images to account for different formats. The z64 and v64 images of the
same N64 game are different files with different hashes.

Loading…
Cancel
Save