{
  "product": "Specification (reference)",
  "title": "2048",
  "summary": "Sliding tile puzzle: merge equal tiles on a 4×4 grid until 2048 appears.",
  "category": "games",
  "entries": [
    {
      "path": [
        "AI",
        "Board",
        "4×4 grid state"
      ],
      "value": "16 cells",
      "status": "yes",
      "note": "empty cells hold no tile"
    },
    {
      "path": [
        "AI",
        "Board",
        "Spawn a tile after every move"
      ],
      "value": "",
      "status": "yes",
      "note": "90% a 2, 10% a 4, in a random empty cell"
    },
    {
      "path": [
        "AI",
        "Board",
        "Two starting tiles"
      ],
      "value": "",
      "status": "yes",
      "note": "placed before the first move"
    },
    {
      "path": [
        "AI",
        "Movement",
        "Slide all tiles one direction"
      ],
      "value": "up/down/left/right",
      "status": "yes",
      "note": "tiles travel as far as they can"
    },
    {
      "path": [
        "AI",
        "Movement",
        "Merge equal adjacent tiles"
      ],
      "value": "",
      "status": "yes",
      "note": "the merged tile doubles"
    },
    {
      "path": [
        "AI",
        "Movement",
        "One merge per tile per move"
      ],
      "value": "",
      "status": "yes",
      "note": "4,4,8 sliding left gives 8,8 — not 16"
    },
    {
      "path": [
        "AI",
        "Movement",
        "A move that changes nothing is rejected"
      ],
      "value": "",
      "status": "yes",
      "note": "no tile spawns on a no-op move"
    },
    {
      "path": [
        "AI",
        "Scoring",
        "Score increases by each merged value"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Scoring",
        "Best score persists"
      ],
      "value": "",
      "status": "yes",
      "note": "survives reload"
    },
    {
      "path": [
        "AI",
        "End states",
        "Win at 2048"
      ],
      "value": "",
      "status": "yes",
      "note": "continuable after winning"
    },
    {
      "path": [
        "AI",
        "End states",
        "Game over when no move is possible"
      ],
      "value": "",
      "status": "yes",
      "note": "grid full and no equal neighbours"
    },
    {
      "path": [
        "AI",
        "History",
        "Undo the last move"
      ],
      "value": "",
      "status": "yes",
      "note": "at least one level"
    },
    {
      "path": [
        "UI",
        "Grid",
        "Tiles rendered with value-dependent styling"
      ],
      "value": "",
      "status": "yes",
      "note": "larger values visually distinct"
    },
    {
      "path": [
        "UI",
        "Grid",
        "Slide and merge animation"
      ],
      "value": "",
      "status": "yes",
      "note": "tiles move rather than teleport"
    },
    {
      "path": [
        "UI",
        "Input",
        "Arrow keys and swipe gestures"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "UI",
        "Status",
        "Current score, best score, new-game button"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "UI",
        "Status",
        "Win and game-over overlay"
      ],
      "value": "",
      "status": "yes",
      "note": "with keep-going and retry"
    }
  ]
}
