{
  "product": "Specification (reference)",
  "title": "Minesweeper",
  "summary": "Uncover every safe cell on a mined grid using neighbour counts.",
  "category": "games",
  "entries": [
    {
      "path": [
        "AI",
        "Board",
        "Grid of configurable size and mine count"
      ],
      "value": "beginner/intermediate/expert",
      "status": "yes",
      "note": "plus custom"
    },
    {
      "path": [
        "AI",
        "Board",
        "Mines placed after the first click"
      ],
      "value": "",
      "status": "yes",
      "note": "the first click is never a mine"
    },
    {
      "path": [
        "AI",
        "Board",
        "Neighbour mine count per cell"
      ],
      "value": "0–8",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Reveal",
        "Reveal a cell"
      ],
      "value": "",
      "status": "yes",
      "note": "hitting a mine ends the game"
    },
    {
      "path": [
        "AI",
        "Reveal",
        "Flood-fill empty regions"
      ],
      "value": "",
      "status": "yes",
      "note": "revealing a 0 cell opens its neighbours transitively"
    },
    {
      "path": [
        "AI",
        "Reveal",
        "Chord on a satisfied number"
      ],
      "value": "",
      "status": "yes",
      "note": "reveals unflagged neighbours when flags match the count"
    },
    {
      "path": [
        "AI",
        "Marking",
        "Flag and question-mark a cell"
      ],
      "value": "",
      "status": "yes",
      "note": "flagged cells cannot be revealed"
    },
    {
      "path": [
        "AI",
        "Marking",
        "Remaining mine counter"
      ],
      "value": "",
      "status": "yes",
      "note": "mines minus flags, may go negative"
    },
    {
      "path": [
        "AI",
        "End states",
        "Win when all safe cells are revealed"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "End states",
        "Loss reveals all mines"
      ],
      "value": "",
      "status": "yes",
      "note": "and marks wrong flags"
    },
    {
      "path": [
        "AI",
        "Timing",
        "Elapsed timer starts on first reveal"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Timing",
        "Best time per difficulty persists"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "UI",
        "Grid",
        "Covered, flagged and revealed cell states"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "UI",
        "Grid",
        "Number colours by count"
      ],
      "value": "1 blue, 2 green, 3 red…",
      "status": "yes",
      "note": "the classic palette"
    },
    {
      "path": [
        "UI",
        "Input",
        "Left click reveals, right click flags"
      ],
      "value": "",
      "status": "yes",
      "note": "long-press flags on touch"
    },
    {
      "path": [
        "UI",
        "Status",
        "Mine counter, timer, reset button"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "UI",
        "Status",
        "Difficulty selector"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    }
  ]
}
