{
"id": "at.postgame.game",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"game",
"status",
"createdAt"
],
"properties": {
"game": {
"ref": "#gameRef",
"type": "ref"
},
"notes": {
"type": "string",
"maxLength": 1000
},
"rating": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "Rating stored as stars×2 (e.g. 7 = 3.5 stars)"
},
"replay": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Points to the original playthrough record if this is a replay"
},
"status": {
"type": "string",
"maxLength": 64,
"description": "Collection status. Canonical values are 'playing', 'wishlisted', 'backlogged', and 'played'; the remaining known values are legacy and only appear in older records ('started' → playing, 'wishlist' → wishlisted, 'shelved' → backlogged, 'finished'/'abandoned' → played with a playedStatus)",
"knownValues": [
"playing",
"wishlisted",
"backlogged",
"played",
"started",
"wishlist",
"finished",
"shelved",
"abandoned"
]
},
"isReplay": {
"type": "boolean",
"description": "True if this entry represents a replay of a previously played game"
},
"platform": {
"type": "string",
"maxLength": 128
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"startedAt": {
"type": "string",
"format": "datetime"
},
"finishedAt": {
"type": "string",
"format": "datetime"
},
"playedStatus": {
"type": "string",
"maxLength": 64,
"description": "How a played game concluded. Canonical values are 'completed', 'mastered', 'retired', and 'abandoned'; 'shelved' is legacy and only appears in older records",
"knownValues": [
"completed",
"mastered",
"retired",
"abandoned",
"shelved"
]
}
}
},
"description": "A game in a user's collection"
},
"gameRef": {
"type": "object",
"required": [
"igdbId",
"title"
],
"properties": {
"title": {
"type": "string",
"maxLength": 256
},
"ctaUrl": {
"type": "string",
"format": "uri"
},
"genres": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
}
},
"igdbId": {
"type": "integer"
},
"igdbUrl": {
"type": "string",
"format": "uri"
},
"coverUrl": {
"type": "string",
"format": "uri"
},
"backdropUrl": {
"type": "string",
"format": "uri"
},
"identifiers": {
"ref": "#gameIdentifiers",
"type": "ref"
},
"releaseDate": {
"type": "integer",
"description": "Release date as a Unix timestamp in seconds, sourced from IGDB"
}
}
},
"gameIdentifiers": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"atUri": {
"type": "string",
"format": "at-uri",
"description": "AT URI to a canonical game record on a shared game database"
},
"steamId": {
"type": "string"
}
},
"description": "Cross-service identifiers for a game"
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}