# com.crashthearcade.game

> Published by [crashthearcade.com](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/com.crashthearcade.game)
- [Documentation](https://lexicon.garden/lexicon/did:plc:crwol3wvv2w2lvvognhvd5cm/com.crashthearcade.game/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:crwol3wvv2w2lvvognhvd5cm/com.crashthearcade.game/examples)

## Definitions

### `com.crashthearcade.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 |  |
| `platform` | `string` | No |  |
| `createdAt` | `string` (datetime) | Yes |  |
| `startedAt` | `string` (datetime) | No |  |
| `finishedAt` | `string` (datetime) | No |  |
| `playedStatus` | `string` | No |  |

### `com.crashthearcade.game#gameRef`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `title` | `string` | Yes |  |
| `ctaUrl` | `string` (uri) | No |  |
| `igdbId` | `integer` | Yes |  |
| `igdbUrl` | `string` (uri) | No |  |
| `coverUrl` | `string` (uri) | No |  |

## Raw Schema

```json
{
  "id": "com.crashthearcade.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,
            "knownValues": [
              "playing",
              "wishlisted",
              "backlogged",
              "played",
              "started",
              "wishlist",
              "finished",
              "shelved",
              "abandoned"
            ]
          },
          "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,
            "knownValues": [
              "completed",
              "retired",
              "shelved",
              "abandoned"
            ]
          }
        }
      },
      "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"
        },
        "igdbId": {
          "type": "integer"
        },
        "igdbUrl": {
          "type": "string",
          "format": "uri"
        },
        "coverUrl": {
          "type": "string",
          "format": "uri"
        }
      }
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
