{
  "product": "Specification (reference)",
  "title": "Snake",
  "summary": "Grow a snake by eating food without hitting the wall or yourself.",
  "category": "games",
  "entries": [
    {
      "path": [
        "AI",
        "World",
        "Grid of cells with a wrapping or walled boundary"
      ],
      "value": "",
      "status": "yes",
      "note": "the choice is a rule variant"
    },
    {
      "path": [
        "AI",
        "Snake",
        "Body as an ordered list of cells"
      ],
      "value": "",
      "status": "yes",
      "note": "head first"
    },
    {
      "path": [
        "AI",
        "Snake",
        "Move one cell per tick in the current direction"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Snake",
        "Direction changes cannot reverse onto the neck"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Snake",
        "Queued turns are applied one per tick"
      ],
      "value": "",
      "status": "yes",
      "note": "two keys in one tick must not skip a direction"
    },
    {
      "path": [
        "AI",
        "Food",
        "One food item at a random free cell"
      ],
      "value": "",
      "status": "yes",
      "note": "never under the snake"
    },
    {
      "path": [
        "AI",
        "Food",
        "Eating grows the snake by one and respawns food"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Speed",
        "Tick interval decreases as the snake grows"
      ],
      "value": "",
      "status": "yes",
      "note": "or a selectable speed"
    },
    {
      "path": [
        "AI",
        "End states",
        "Collision with self ends the game"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "End states",
        "Collision with wall ends the game"
      ],
      "value": "",
      "status": "yes",
      "note": "when walls are enabled"
    },
    {
      "path": [
        "AI",
        "Scoring",
        "Score per food, high score persists"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Control",
        "Pause and resume"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "UI",
        "Board",
        "Snake, food and boundary rendered per tick"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "UI",
        "Input",
        "Arrow keys, WASD and swipe"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "UI",
        "Status",
        "Score, high score, game-over overlay"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "UI",
        "Feel",
        "Smooth motion at the chosen tick rate"
      ],
      "value": "",
      "status": "yes",
      "note": "no visible stutter at 10+ ticks/s"
    }
  ]
}
