{
  "status": "illustrative scope; human review pending",
  "objective": "Two local players can ready, start and end a practice match",
  "basis": "Pinned local lobby example; no online backend or rewards",
  "assumptions": [
    "One shared device",
    "Two local slots",
    "No personal information collected by the example",
    "No payment, physical action or reward fulfillment"
  ],
  "included": [
    "Ready-state controls",
    "Capacity and premature-start errors",
    "End/reset behavior",
    "Keyboard and assistive-technology review of a proposed UI"
  ],
  "excluded": [
    "Real accounts",
    "Online matchmaking",
    "Server activation",
    "Rewards, payments or hardware control"
  ],
  "acceptance": [
    {
      "id": "local-functional",
      "requirement": "Pinned sample passes start/capacity/end checks",
      "status": "automated-pass",
      "evidence": "../sdk-local-lobby/run.mjs"
    },
    {
      "id": "keyboard",
      "requirement": "Tab order, visible focus, activate controls and escape where needed",
      "status": "not-tested",
      "evidence": null
    },
    {
      "id": "screen-reader",
      "requirement": "Labels, role/state and error announcements convey the flow",
      "status": "not-tested",
      "evidence": null
    },
    {
      "id": "zoom",
      "requirement": "At 200% and 400% zoom, essential content and controls remain usable",
      "status": "not-tested",
      "evidence": null
    },
    {
      "id": "contrast-motion",
      "requirement": "Contrast reviewed and nonessential motion respects user settings",
      "status": "not-tested",
      "evidence": null
    },
    {
      "id": "error-recovery",
      "requirement": "A failed action preserves context and offers a clear next step",
      "status": "not-tested",
      "evidence": null
    }
  ],
  "review": {
    "owner": "unassigned",
    "reviewer": null,
    "date": null,
    "artifactHash": null,
    "decision": "pending"
  },
  "launchDecision": "not-approved"
}
