One game.
Distinct projects.
An original game can have a browser version, a native port and a fan recreation. The catalog gives each implementation its own identity, requirements and source links.
Stable references
project:<slug> identifies a community implementation. Original-game IDs group related implementations without merging their authors, hosts, files or compatibility. Keep project IDs when revising facts; a new implementation needs a new ID. IDs are portable across a future canonical-domain change.
The v1 JSON catalog keeps its existing fields and schemaVersion: 1. Additive fields may appear; consumers should ignore fields they do not use. dataRevision identifies normalized catalog content, not a publication date. reviewedThrough is the latest source-review date, not a claim that every game was tested then. counts summarizes the exported inventory, and evidencePolicy explains its limits.
A real project example
This example comes directly from the current Mitchell Hynes Web listing.
{
"id": "project:halo-combat-evolved",
"title": "Halo: Combat Evolved",
"project": "Mitchell Hynes Web",
"canonicalUrl": "https://playable.wtf/games/halo-combat-evolved/",
"originals": [
{
"id": "halocombatevolved",
"name": "Halo: Combat Evolved",
"relationship": "port-of"
}
],
"availability": {
"runtime": "browser",
"delivery": "browser-launch",
"status": "released",
"route": {
"kind": "play",
"url": "https://mitchellhynes.com/halo/halo.html"
}
},
"fileRequirement": "own-files",
"files": {
"answer": "Choose an XISO made from your own Xbox copy of Halo: Combat Evolved. The host says it does not provide game data.",
"sourceUrl": "https://mitchellhynes.com/halo/halo.html"
}
}Field dictionary
| Field | Meaning |
|---|---|
id | Stable project identity, project:<slug>. Keep it when updating a listing; do not reuse it for a different implementation. |
slug | Stable URL segment for the implementation. A future rename requires a retained redirect and identity mapping. |
title, project | Original-game display title and the specific community implementation name. A shared title does not merge projects. |
canonicalPath, canonicalUrl | Canonical HTML reference. Absolute URLs follow the configured SITE_URL; portable IDs do not depend on a domain. |
originals[] | Original-game {id, name, relationship} tuples. IDs are catalog identifiers, not external authority IDs. One mashup can reference several originals. |
aliases, kind, genre | Search aliases, project classification and editorial genre. Aliases do not assert ownership or equivalence. |
summary, description | Short listing copy and version-specific description. Third-party names and quoted material retain their own rights. |
editorial | Optional long-form player guidance shared with the HTML and Markdown page. sections contain stable id, title, kind (background, project, practical or limitations), paragraphs and sourceIds; sources contain id, label and url. Background describes the original game, not automatic support in the listed project. Absent editorial is null; private review decisions are omitted. CSV remains a compact metadata table. |
credits[] | Named roles with url, basis and evidence; originalGameId associates original-developer credit with the correct game. An absent credit is unknown. |
legacyAttribution | Compatibility field: legacy creator name and URL with unspecified role. Prefer explicit credits; do not infer authorship. |
availability | runtime is browser, native or unknown. delivery is browser-launch, native-download, native-setup, source-build, unavailable or video. status is the recorded project status; route {kind, url} uses play, download, setup or project. A source build is not a playable browser release. |
fileRequirement | none, own-files, demo-or-own-files, optional or unknown. none means no extra files stated, not a license to original assets. |
capabilities | mobile, controller, multiplayer, multiplayerLocal and multiplayerOnline values. Each has state, basis and a supporting fact key. |
facts | files, setup, devices, controls, multiplayer, issues, scope and saves. v1 retains null unknown answers. The public dataset omits empty facts. |
facts.<key> | answer, basis, sourceUrl, checkedAt, locator and steps in v1; the dataset keeps answer, basis, sourceUrl and steps. A check date is not publication or game release. |
verification | sourceReview, reviewedAt, gameplayTested and gameplayTests. A brief recorded interaction never certifies a whole game or other devices. |
indexable | v1 eligibility flag for the HTML page. Thin entries remain in v1 for compatibility but stay out of the public dataset and readable exports. |
sources[] | Source evidence: label, url, checkedAt, scope, optional sourceUrl/revision/hash. These document provenance, not a license to copy the source. |
discovery | Original intake provenance: catalogUrl, label, license, revision and sourceGeneratedAt. An upstream catalog license covers its scope only. |
linkCheck | Dated request outcome and scope. A successful HTTP response does not establish gameplay, rights or compatibility. |
release | Documented upstream tag, URL, publishedAt, checkedAt and artifactType when known. This is separate from a Playable editorial event. |
socialSources[] | Project-related post references and their recorded association. A post or video is not proof of a playable release. |
searchText | Derived search text for v1 consumers; use structured identities and factual fields for meaning. |
Original-game relationships
| Relationship | Meaning |
|---|---|
port-of | A port of the original game. |
reimplementation-of | An implementation of the original game using a different engine or code base. |
inspired-by | An inspired project; do not assume original-game content or completeness. |
mod-for | A modification requiring its host game. |
includes-mechanics-from | A mashup or recreation incorporating mechanics from this original. |
associated-with | A documented association without a more specific asserted relationship. |
Unknowns and compatibility
A capability state is supported, limited, experimental, unsupported or unknown. Its basis is creator-reported, independently-tested or unknown. Missing evidence remains unknown. A creator’s documented feature does not become a Playable test result.
Download formats
The public dataset JSON is a separate versioned subset, containing source-reviewed public records. It omits internal check inventories, empty facts and media. Its guides array includes canonical references, real editorial dates and sources. A game’s families array links relevant version comparisons, their guides and reasoned project choices; a limited comparison link may carry an explicit exception without promoting that project to the dataset. Its rights object describes reuse scope without granting rights to third-party material.
The CSV download uses UTF-8, a header row, quoted fields and CRLF record endings. It flattens original IDs, names and relationships into parallel lists separated by | . Practical-answer columns hold text; blanks mean unknown. Formula-like values receive a leading apostrophe for safer spreadsheet import. Use JSON for lossless nested data.
Editorial changes
Feeds use stable editorial-event IDs, a target project or guide, a recorded publication or material-update date and a change summary. Source-review, HTTP-check and upstream-release dates remain separate. Existing undated listings do not receive an invented publication date.