# at.postgame.game

> Published by [postgame.at](https://lexicon.garden/identity/did:plc:crwol3wvv2w2lvvognhvd5cm)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:crwol3wvv2w2lvvognhvd5cm/at.postgame.game)
- [Documentation](https://lexicon.garden/lexicon/did:plc:crwol3wvv2w2lvvognhvd5cm/at.postgame.game/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:crwol3wvv2w2lvvognhvd5cm/at.postgame.game/examples)

## Definitions

### `at.postgame.game`

**Type**: `record`

A game in a user's collection

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `game` | `ref` → `#gameRef` | Yes |  |
| `notes` | `string` | No |  |
| `rating` | `integer` | No | Rating stored as stars×2 (e.g. 7 = 3.5 stars) |
| `replay` | `ref` → `com.atproto.repo.strongRef` | No | Points to the original playthrough record if this is a replay |
| `status` | `string` | Yes | 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) |
| `isReplay` | `boolean` | No | True if this entry represents a replay of a previously played game |
| `platform` | `string` | No |  |
| `createdAt` | `string` (datetime) | Yes |  |
| `startedAt` | `string` (datetime) | No |  |
| `finishedAt` | `string` (datetime) | No |  |
| `playedStatus` | `string` | No | How a played game concluded. Canonical values are 'completed', 'mastered', 'retired', and 'abandoned'; 'shelved' is legacy and only appears in older records |

### `at.postgame.game#gameRef`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `title` | `string` | Yes |  |
| `ctaUrl` | `string` (uri) | No |  |
| `genres` | `array` | No |  |
| `igdbId` | `integer` | Yes |  |
| `igdbUrl` | `string` (uri) | No |  |
| `coverUrl` | `string` (uri) | No |  |
| `backdropUrl` | `string` (uri) | No |  |
| `identifiers` | `ref` → `#gameIdentifiers` | No |  |
| `releaseDate` | `integer` | No | Release date as a Unix timestamp in seconds, sourced from IGDB |

### `at.postgame.game#gameIdentifiers`

**Type**: `object`

Cross-service identifiers for a game

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `slug` | `string` | No |  |
| `atUri` | `string` (at-uri) | No | AT URI to a canonical game record on a shared game database |
| `steamId` | `string` | No |  |

## Raw Schema

```json
{
  "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
}
```
