You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Lark/metadata
Emily Frost e467a483f9
Fleshed out metadata definitions.
4 years ago
..
README.md Fleshed out metadata definitions. 4 years ago

README.md

Metadata definitions

TODO

  • Add a new category for romhacks (like releases but for romhacks) and their respective versions.

  • 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

    • UUID
    • name
      • The release's name in the language and script it was released in.
    • region
      • The region intended for release.
    • 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.

Release group

  • A container for all languages and versions of a release. For example, the Star Fox 64 release group would contain all of the following releases:

    • Star Fox 64 (U) v1.2
    • Star Fox 64 (U) v1.0
    • 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.

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 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.

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.