{
  "url": "http://127.0.0.1:8080/",
  "viewports": {
    "desktop": {
      "width": 1280,
      "height": 800,
      "status": 200,
      "title": "Bitbrush",
      "hasCanvas": true,
      "bodyTextLen": 336,
      "bodyTextHash": "41d840e86eaf21694a5766543c0b36192413ad2c255525356b10cd54fc51e50d",
      "bodyTextPrefix": "Bitbrush Pixel studio Export PNG 1 2 3 4 8 16 24 32 48 64 Draw o",
      "horizontalOverflow": false,
      "consoleErrors": [],
      "pageErrors": [],
      "screenshot": "/workspace/screenshots/app-builder-preview.png"
    },
    "mobile": {
      "width": 390,
      "height": 844,
      "status": 200,
      "title": "Bitbrush",
      "hasCanvas": true,
      "bodyTextLen": 122,
      "bodyTextHash": "6cf99370973a5248caee7e2bc5a62914cdc9c7de50639eb843c59c9d7e3120e2",
      "bodyTextPrefix": "Bitbrush PNG 8 16 24 32 48 64 Templates Draw on the grid or load",
      "horizontalOverflow": false,
      "consoleErrors": [],
      "pageErrors": [],
      "screenshot": "/workspace/screenshots/app-builder-preview-mobile.png"
    }
  },
  "brandWarnings": [
    "BRAND WARNING: this looks like a game/canvas app but src/lib/og/site.json is missing \"type\": \"x:game\". X uses og:type=x:game to present the unfurl as a game card — set it in /workspace/src/lib/og/site.json per /workspace/.grok/skills/og/SKILL.md. Do not invent x:type or overload twitter:card as the game signal.",
    "BRAND WARNING: this looks like a game/canvas app but /workspace/public/x-banner.jpg is missing. Games need a 50:11 X feed card (1200×264 JPEG) at public/x-banner.jpg — open /workspace/.grok/skills/og/SKILL.md and finish the brand-asset pass."
  ],
  "authWarnings": [],
  "verdictFile": "/workspace/screenshots/app-builder-preview.json"
}