# space.dailygame.score

> Published by [dailygame.space](https://lexicon.garden/identity/did:plc:ai5s6bbqotd4wbimmawo32zo)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:ai5s6bbqotd4wbimmawo32zo/space.dailygame.score)
- [Documentation](https://lexicon.garden/lexicon/did:plc:ai5s6bbqotd4wbimmawo32zo/space.dailygame.score/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:ai5s6bbqotd4wbimmawo32zo/space.dailygame.score/examples)

## Definitions

### `space.dailygame.score`

**Type**: `record`

A score for a daily web game played by the user.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `game` | `string` | Yes | Game id from the app catalog (e.g. 'wordle', 'globle'). |
| `score` | `integer` | No | Game-specific numeric score. |
| `attempts` | `integer` | No | Number of attempts used; meaning is game-specific. |
| `metadata` | `unknown` | No | Game-specific extras (hard mode, hints used, group order, etc.). |
| `playedAt` | `string` (datetime) | Yes | When the user played the puzzle. |
| `puzzleId` | `string` | Yes | Per-game puzzle identifier, e.g. '1027' or '2026-04-17'. |
| `rawShare` | `string` | Yes | The cleaned share text (URLs, hashtags, promos stripped). |
| `completed` | `boolean` | Yes | Whether the user completed the puzzle successfully. |
| `createdAt` | `string` (datetime) | Yes | When this record was created. |
| `durationMs` | `integer` | No | Time to complete the puzzle in milliseconds. |
| `maxAttempts` | `integer` | No | Maximum attempts allowed by the game (e.g. 6 for Wordle). |

## Examples

The following examples demonstrate valid data for this lexicon. [View all examples](https://lexicon.garden/lexicon/did:plc:ai5s6bbqotd4wbimmawo32zo/space.dailygame.score/examples)

### Example 1 (`#main`)

**Description**: A successful Wordle play (4/6, non–hard mode). Demonstrates the canonical word-game shape: integer `attempts`/`maxAttempts`, the cleaned `rawShare` (URLs and hashtags already stripped), and a free-form `metadata` object carrying game-specific extras (here, `hardMode` and the per-row emoji `grid`).

```json
{
  "game": "wordle",
  "$type": "space.dailygame.score",
  "attempts": 4,
  "metadata": {
    "grid": [
      "⬜⬜🟨⬜⬜",
      "⬜🟨⬜🟨⬜",
      "🟩🟩⬜🟩🟩",
      "🟩🟩🟩🟩🟩"
    ],
    "hardMode": false
  },
  "playedAt": "2026-05-01T13:42:11.000Z",
  "puzzleId": "1027",
  "rawShare": "Wordle 1,027 4/6\n\n⬜⬜🟨⬜⬜\n⬜🟨⬜🟨⬜\n🟩🟩⬜🟩🟩\n🟩🟩🟩🟩🟩",
  "completed": true,
  "createdAt": "2026-05-01T13:42:12.000Z",
  "maxAttempts": 6
}
```

### Example 2 (`#main`)

**Description**: A Connections win with three mistakes. Shows how a non-Wordle word game uses the same record: `attempts` is the number of guesses (7), `maxAttempts` is the per-game ceiling (4 categories + 4 allowed mistakes = 8), `score` is a game-specific integer (here, mistakes — lower is better), and `metadata` carries the same number plus the 4-square emoji grid for each guess.

```json
{
  "game": "connections",
  "$type": "space.dailygame.score",
  "score": 3,
  "attempts": 7,
  "metadata": {
    "grid": [
      "🟩🟦🟨🟪",
      "🟩🟨🟪🟨",
      "🟦🟦🟦🟦",
      "🟨🟪🟪🟨",
      "🟨🟨🟨🟨",
      "🟪🟪🟪🟪",
      "🟩🟩🟩🟩"
    ],
    "mistakes": 3
  },
  "playedAt": "2026-05-01T14:05:00.000Z",
  "puzzleId": "1041",
  "rawShare": "Connections\nPuzzle #1041\n🟩🟦🟨🟪\n🟩🟨🟪🟨\n🟦🟦🟦🟦\n🟨🟪🟪🟨\n🟨🟨🟨🟨\n🟪🟪🟪🟪\n🟩🟩🟩🟩",
  "completed": true,
  "createdAt": "2026-05-01T14:05:01.000Z",
  "maxAttempts": 8
}
```

## Raw Schema

```json
{
  "id": "space.dailygame.score",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "game",
          "puzzleId",
          "playedAt",
          "completed",
          "rawShare",
          "createdAt"
        ],
        "properties": {
          "game": {
            "type": "string",
            "maxLength": 64,
            "description": "Game id from the app catalog (e.g. 'wordle', 'globle').",
            "knownValues": [
              "wordle",
              "connections",
              "strands",
              "parseword",
              "clues-by-sam",
              "metazooa",
              "globle",
              "maptap",
              "satle",
              "queens",
              "tango",
              "zip",
              "mini-sudoku",
              "patches",
              "set-fury",
              "timeguessr",
              "kickoff-league",
              "puzzmo-crossword",
              "puzzmo-ribbit",
              "puzzmo-memoku",
              "craftword",
              "enclose-horse",
              "center-fit"
            ]
          },
          "score": {
            "type": "integer",
            "description": "Game-specific numeric score."
          },
          "attempts": {
            "type": "integer",
            "minimum": 0,
            "description": "Number of attempts used; meaning is game-specific."
          },
          "metadata": {
            "type": "unknown",
            "description": "Game-specific extras (hard mode, hints used, group order, etc.)."
          },
          "playedAt": {
            "type": "string",
            "format": "datetime",
            "description": "When the user played the puzzle."
          },
          "puzzleId": {
            "type": "string",
            "maxLength": 64,
            "description": "Per-game puzzle identifier, e.g. '1027' or '2026-04-17'."
          },
          "rawShare": {
            "type": "string",
            "maxLength": 20000,
            "description": "The cleaned share text (URLs, hashtags, promos stripped).",
            "maxGraphemes": 2000
          },
          "completed": {
            "type": "boolean",
            "description": "Whether the user completed the puzzle successfully."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "When this record was created."
          },
          "durationMs": {
            "type": "integer",
            "minimum": 0,
            "description": "Time to complete the puzzle in milliseconds."
          },
          "maxAttempts": {
            "type": "integer",
            "minimum": 0,
            "description": "Maximum attempts allowed by the game (e.g. 6 for Wordle)."
          }
        }
      },
      "description": "A score for a daily web game played by the user."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
