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 # Metadata definitions
# TODO ## Platform
* Decide on a file structure. This shouldn't be one giant json file, but it needs to be split in A single set of hardware and/or software that shares compatibility. For example:
useful ways. - Nintendo Entertainment System
- Microsoft Windows 7
## Image - Microsoft Windows 98
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
* UUID
* name * name
- The release's name in the language and script it was released in. - The English name of the platform. As with release group names, this is mostly for
* region hand-editing data.
- The official release code for the game. * regional_names
* version - A hash map with the keys being language identifers (en-US, jp, fr, etc) and the values
- The release version of the game. Some are verison numbers, some are just sequential being the platform's name in the language and script it was released in.
release numbers. * shortcode
* disambiguation (can be empty) - A small, three to five letter code for the platform. This must be unique among other
- If this release is different in a way that isn't region or version, that information goes platforms.
here. * release groups
* release group - A list containing release groups for this platform.
- The UUID of release group that this release belongs to.
* platform
- The UUID of the platform that this release is built for.
## Release group ## Release group
A container for all languages and versions of a release. For example, the Star Fox 64 release 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 - Star Fox 64 (J) v1.0
- Lylat Wars (E) v1.0 - Lylat Wars (E) v1.0
* UUID
* name * name
- The English name for the release group. This is largely for contributors to quickly - 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 understand the raw data, as frontends should ideally pull the name from a configured
region or something. 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 * name
- The English name of the platform. As with release group names, this is mostly for - The release's name in the language and script it was released in.
hand-editing data. * region
* regional_names - The official release code for the game.
- A hash map with the keys being language identifers (en-US, jp, fr, etc) and the values * version
being the platform's name in the language and script it was released in. - The release version of the game. Some are verison numbers, some are just sequential
* shortcode release numbers.
- A small, three-letter code for the platform. This is essentially for directory names. * 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 ## Patches
Unofficial patches or mods for a game, usually called romhacks. Unofficial patches or mods for a game, usually called romhacks.
* UUID
* name * name
- The patch's name in it's original language. - The patch's name in it's original language.
* file sha1sum * file sha1sum
- The patch file's sha1sum. - The patch file's sha1sum.
* target image
- The UUID of the image that the patch is intended to be applied to.
# Design notes # Design notes
* This spec is designed with the intent to be imported into databases while also being reasonably * This spec is designed with the intent to be imported into databases while also being reasonably
hand-editable for contributors. 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 * 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. same N64 game are different files with different hashes.

Loading…
Cancel
Save