{
  "schema": "gobadminton.design-input.v1",
  "status": "DESIGN_INPUT_ONLY",
  "issue": 404,
  "related_issues": [
    526,
    523
  ],
  "concept": "Дружеский мэтч — взаимное желание сыграть, отдельный contact gate",
  "model_assignment": {
    "requested_model": "gpt-6-astra",
    "requested_effort": "high",
    "launcher_reported_model": "gpt-6-astra",
    "launcher_reported_effort": "high",
    "receipt": "launch.json",
    "authority": "Launcher receipt, not independent provider attestation",
    "timebox_seconds": 600,
    "paid_repeats_initiated": 0,
    "subagents": 0,
    "cost": "UNKNOWN; preserve launcher receipts/events; not asserted zero"
  },
  "source": {
    "sha": "ad6913bff55c15c0b31060cbc19279eb07f4739e",
    "snapshot_root": "inputs/source",
    "proof": "inputs/source-proof.json",
    "verified_files": 15,
    "application_source_modified": false
  },
  "style_guide": {
    "root": "/opt/gobadminton-clean-qa/style-guide",
    "policy": "refs/FRONTEND_STYLE_GUIDE_FIRST_V001.md",
    "source_pins": {
      "src/App.tsx": "04187d4d7d70c8c61e9ca2f08b6b6325a98539a3ec90c711c48ab771f675b61c",
      "src/index.css": "f660e31973a6142784308f22728c751d7bb7432fb2ac0136bac032dbc6b1db2a"
    },
    "verified": true,
    "mapping": "Modal/result + expanded responsive overlay; Avatar; primary lime; ghost; Onest hero ink/purple; copied CloseButton SVG"
  },
  "entrypoint": "index.html",
  "editable": [
    "index.html",
    "styles.css",
    "prototype.js"
  ],
  "capture": {
    "viewports": [
      {
        "width": 390,
        "height": 844
      },
      {
        "width": 1280,
        "height": 900
      }
    ],
    "set_api": "window.setScenario(state,width)",
    "measure_api": "window.measureScenario()",
    "fonts_ready": "document.fonts.ready",
    "width_note": "Set actual Chromium viewport to same width; width argument constrains preview frame. External synthetic-fixture annotation is 28px high.",
    "png_status": "NOT_TESTED; parent captures after completion"
  },
  "scenarios": [
    "allowed",
    "accepted",
    "loading",
    "error",
    "blocked",
    "declined",
    "unavailable",
    "pending_incoming",
    "pending_outgoing",
    "long-name",
    "wrapped-heading",
    "missing-avatars",
    "outgoing",
    "withdrawn",
    "malformed",
    "unknown",
    "optimistic",
    "history",
    "closed",
    "hidden",
    "navigated"
  ],
  "fixtures": {
    "all_players": "Synthetic; initials are no-avatar presentation",
    "all_receipts": "Synthetic local mutation fixtures; never real DEV proof",
    "contact_navigation": "Only records intended route in measureScenario().navigationIntent; no real navigation or POST"
  },
  "guard_examples": {
    "repeat": "matchPrototype.dismiss(); matchPrototype.replayReceipt(); // false; no reopen",
    "stale_contact": "const t=measureScenario().contactTicket; matchPrototype.invalidate(\"block\"); matchPrototype.resolveContact(t,\"allowed\"); // false",
    "keyboard": "Initial heading focus, Tab/Shift+Tab contained, Escape closes and returns focus"
  },
  "assets_provenance": "Provided local Onest/logo/court photo; no generation, external fetch or player photo used",
  "artifacts": [
    {
      "path": "index.html",
      "bytes": 6246,
      "sha256": "737049e37d92249364cb96ebd595cdcea3dcaea0f8365263cc46f5b2450b8af9"
    },
    {
      "path": "styles.css",
      "bytes": 8780,
      "sha256": "f80d1ec8a1ac9e525afaced62d2d1d08fe04c696e1193877209de6ad748abb8d"
    },
    {
      "path": "prototype.js",
      "bytes": 13052,
      "sha256": "0e4db3472e5379cb37b19ebdb5b023db39b04cf7efc3ec1c51580d6f0d360bf7"
    },
    {
      "path": "HANDOFF.md",
      "bytes": 12056,
      "sha256": "d1627e5b523e96bf9bd441bd49877bc32ec2f264fc225e509717e2db354a570c"
    },
    {
      "path": "verification.json",
      "bytes": 531,
      "sha256": "e06441d8385b7f062d46389d2982f2a68ddfe12c271002e3cdb3bc180e388606"
    },
    {
      "path": "assets/onest.ttf",
      "bytes": 124376,
      "sha256": "3faa4b905661849b2332e394b42f91b5bf5575e553c516caa81811e868a4d589"
    },
    {
      "path": "assets/go-badminton.svg",
      "bytes": 204851,
      "sha256": "b168aeb3545164eb173b694b2caa5d0eff98d864d4482233af9bec1bb65c8827"
    },
    {
      "path": "assets/badminton-courts.jpg",
      "bytes": 161732,
      "sha256": "1acea73ecbe6c322bede0c066f533422e17e90635463cafedfc8a630dd7771cd"
    }
  ],
  "verification": "verification.json",
  "not_tested": [
    "Chromium rendered geometry / PNG",
    "keyboard in browser",
    "real mutual data",
    "application implementation",
    "live auth / contact permissions",
    "DEV release / smoke / UAT"
  ],
  "publication": "NONE; parent trusted publisher decides",
  "preserved_receipts": [
    "launch.json",
    "events.jsonl",
    "stderr",
    "model-availability.json"
  ],
  "boundary": "Only assigned artifact directory written; no app source/git/leases/runtime/DB/provider/network/PROD operations"
}
