{
  "version": "riddle-proof.profile-result.v1",
  "profile_name": "lilarcade-v215-stale-player-resource",
  "runner": "riddle",
  "status": "product_regression",
  "baseline_policy": "invariant_only",
  "route": {
    "requested": "https://lilarcade.com/play/riddle-proof-v215-stale-resource",
    "observed": "/play/riddle-proof-v215-stale-resource",
    "expected_path": "/play/riddle-proof-v215-stale-resource",
    "matched": true,
    "http_status": 200
  },
  "artifacts": {
    "screenshots": [
      "lilarcade-v215-stale-player-resource-desktop",
      "lilarcade-v215-stale-player-resource-phone",
      "lilarcade-v215-stale-player-resource-ipad-mini",
      "lilarcade-v215-stale-player-resource-ipad"
    ],
    "console": "console.json",
    "proof_json": "proof.json",
    "dom_summary": "dom-summary.json"
  },
  "checks": [
    {
      "type": "network_mocks_succeeded",
      "label": "network mocks succeeded",
      "status": "passed",
      "evidence": {
        "mock_count": 2,
        "required_count": 2,
        "hit_count": 8,
        "hits_by_label": {
          "saved-manifest-stale-resource": 4,
          "saved-player-html-unavailable": 4
        },
        "required_hits_by_label": {
          "saved-manifest-stale-resource": 1,
          "saved-player-html-unavailable": 1
        },
        "failed": []
      }
    },
    {
      "type": "route_loaded",
      "label": "route_loaded",
      "status": "passed",
      "evidence": {
        "expected_path": "/play/riddle-proof-v215-stale-resource",
        "observed_paths": [
          "/play/riddle-proof-v215-stale-resource",
          "/play/riddle-proof-v215-stale-resource",
          "/play/riddle-proof-v215-stale-resource",
          "/play/riddle-proof-v215-stale-resource"
        ],
        "http_statuses": [
          200,
          200,
          200,
          200
        ]
      }
    },
    {
      "type": "selector_visible",
      "label": "selector_visible",
      "status": "passed",
      "evidence": {
        "selector": ".game-player-root",
        "visible_counts": [
          1,
          1,
          1,
          1
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "failed",
      "evidence": {
        "text": "Game not found",
        "matches": [
          false,
          false,
          false,
          false
        ]
      },
      "message": "Text assertion failed in 4 viewport(s)."
    },
    {
      "type": "selector_absent",
      "label": "selector_absent",
      "status": "failed",
      "evidence": {
        "selector": ".game-player-root iframe",
        "counts": [
          1,
          1,
          1,
          1
        ]
      },
      "message": "Selector .game-player-root iframe was present in 4 viewport(s)."
    },
    {
      "type": "text_absent",
      "label": "text_absent",
      "status": "failed",
      "evidence": {
        "text": "RP215 Stale Resource",
        "matches": [
          true,
          true,
          true,
          true
        ]
      },
      "message": "Text assertion failed in 4 viewport(s)."
    },
    {
      "type": "no_mobile_horizontal_overflow",
      "label": "no_mobile_horizontal_overflow",
      "status": "passed",
      "evidence": {
        "max_overflow_px": 1,
        "overflow_px": [
          0,
          0,
          0
        ],
        "bounds_overflow_px": [
          0,
          0,
          0
        ],
        "overflow_offender_counts": [
          0,
          0,
          0
        ],
        "viewports": [
          "phone",
          "ipad-mini",
          "ipad"
        ]
      }
    },
    {
      "type": "no_fatal_console_errors",
      "label": "no_fatal_console_errors",
      "status": "failed",
      "evidence": {
        "console_fatal_count": 4,
        "page_error_count": 0,
        "total_console_fatal_count": 4,
        "total_page_error_count": 0,
        "allowed_console_fatal_count": 0,
        "allowed_page_error_count": 0,
        "allowed_console_texts": [],
        "allowed_console_patterns": [],
        "allowed_page_error_texts": [],
        "allowed_page_error_patterns": []
      },
      "message": "4 fatal browser error(s) were captured."
    }
  ],
  "summary": "lilarcade-v215-stale-player-resource failed 4 product invariant(s) across 4 viewport(s).",
  "captured_at": "2026-05-14T02:54:38.881Z",
  "evidence": {
    "version": "riddle-proof.profile-evidence.v1",
    "profile_name": "lilarcade-v215-stale-player-resource",
    "target_url": "https://lilarcade.com/play/riddle-proof-v215-stale-resource",
    "baseline_policy": "invariant_only",
    "captured_at": "2026-05-14T02:54:38.881Z",
    "viewports": [
      {
        "name": "desktop",
        "width": 1280,
        "height": 900,
        "url": "https://lilarcade.com/play/riddle-proof-v215-stale-resource",
        "route": {
          "requested": "https://lilarcade.com/play/riddle-proof-v215-stale-resource",
          "observed": "/play/riddle-proof-v215-stale-resource",
          "expected_path": "/play/riddle-proof-v215-stale-resource",
          "matched": true,
          "http_status": 200
        },
        "title": "LilArcade",
        "body_text_length": 44,
        "body_text_sample": "🕹️ LilArcade ← Back RP RP215 Stale Resource",
        "scroll_width": 1280,
        "client_width": 1280,
        "overflow_px": 0,
        "bounds_overflow_px": 0,
        "overflow_offenders": [],
        "selectors": {
          ".game-player-root": {
            "count": 1,
            "visible_count": 1
          },
          ".game-player-root iframe": {
            "count": 1,
            "visible_count": 1
          }
        },
        "frames": {},
        "text_sequences": {},
        "text_matches": {
          "text:Game not found": false,
          "text:RP215 Stale Resource": true
        },
        "setup_action_results": [],
        "screenshot_label": "lilarcade-v215-stale-player-resource-desktop"
      },
      {
        "name": "phone",
        "width": 390,
        "height": 844,
        "url": "https://lilarcade.com/play/riddle-proof-v215-stale-resource",
        "route": {
          "requested": "https://lilarcade.com/play/riddle-proof-v215-stale-resource",
          "observed": "/play/riddle-proof-v215-stale-resource",
          "expected_path": "/play/riddle-proof-v215-stale-resource",
          "matched": true,
          "http_status": 200
        },
        "title": "LilArcade",
        "body_text_length": 44,
        "body_text_sample": "🕹️ LilArcade ← Back RP RP215 Stale Resource",
        "scroll_width": 390,
        "client_width": 390,
        "overflow_px": 0,
        "bounds_overflow_px": 0,
        "overflow_offenders": [],
        "selectors": {
          ".game-player-root": {
            "count": 1,
            "visible_count": 1
          },
          ".game-player-root iframe": {
            "count": 1,
            "visible_count": 1
          }
        },
        "frames": {},
        "text_sequences": {},
        "text_matches": {
          "text:Game not found": false,
          "text:RP215 Stale Resource": true
        },
        "setup_action_results": [],
        "screenshot_label": "lilarcade-v215-stale-player-resource-phone"
      },
      {
        "name": "ipad-mini",
        "width": 768,
        "height": 1024,
        "url": "https://lilarcade.com/play/riddle-proof-v215-stale-resource",
        "route": {
          "requested": "https://lilarcade.com/play/riddle-proof-v215-stale-resource",
          "observed": "/play/riddle-proof-v215-stale-resource",
          "expected_path": "/play/riddle-proof-v215-stale-resource",
          "matched": true,
          "http_status": 200
        },
        "title": "LilArcade",
        "body_text_length": 44,
        "body_text_sample": "🕹️ LilArcade ← Back RP RP215 Stale Resource",
        "scroll_width": 768,
        "client_width": 768,
        "overflow_px": 0,
        "bounds_overflow_px": 0,
        "overflow_offenders": [],
        "selectors": {
          ".game-player-root": {
            "count": 1,
            "visible_count": 1
          },
          ".game-player-root iframe": {
            "count": 1,
            "visible_count": 1
          }
        },
        "frames": {},
        "text_sequences": {},
        "text_matches": {
          "text:Game not found": false,
          "text:RP215 Stale Resource": true
        },
        "setup_action_results": [],
        "screenshot_label": "lilarcade-v215-stale-player-resource-ipad-mini"
      },
      {
        "name": "ipad",
        "width": 820,
        "height": 1180,
        "url": "https://lilarcade.com/play/riddle-proof-v215-stale-resource",
        "route": {
          "requested": "https://lilarcade.com/play/riddle-proof-v215-stale-resource",
          "observed": "/play/riddle-proof-v215-stale-resource",
          "expected_path": "/play/riddle-proof-v215-stale-resource",
          "matched": true,
          "http_status": 200
        },
        "title": "LilArcade",
        "body_text_length": 44,
        "body_text_sample": "🕹️ LilArcade ← Back RP RP215 Stale Resource",
        "scroll_width": 820,
        "client_width": 820,
        "overflow_px": 0,
        "bounds_overflow_px": 0,
        "overflow_offenders": [],
        "selectors": {
          ".game-player-root": {
            "count": 1,
            "visible_count": 1
          },
          ".game-player-root iframe": {
            "count": 1,
            "visible_count": 1
          }
        },
        "frames": {},
        "text_sequences": {},
        "text_matches": {
          "text:Game not found": false,
          "text:RP215 Stale Resource": true
        },
        "setup_action_results": [],
        "screenshot_label": "lilarcade-v215-stale-player-resource-ipad"
      }
    ],
    "console": {
      "events": [
        {
          "type": "error",
          "text": "Failed to load resource: the server responded with a status of 404 (Not Found)",
          "location": {
            "url": "https://lilarcade-game-previews.s3.us-east-1.amazonaws.com/saved/riddle-proof-v215-stale-resource/index.html",
            "lineNumber": 0,
            "columnNumber": 0
          }
        },
        {
          "type": "error",
          "text": "Failed to load resource: the server responded with a status of 404 (Not Found)",
          "location": {
            "url": "https://lilarcade-game-previews.s3.us-east-1.amazonaws.com/saved/riddle-proof-v215-stale-resource/index.html",
            "lineNumber": 0,
            "columnNumber": 0
          }
        },
        {
          "type": "error",
          "text": "Failed to load resource: the server responded with a status of 404 (Not Found)",
          "location": {
            "url": "https://lilarcade-game-previews.s3.us-east-1.amazonaws.com/saved/riddle-proof-v215-stale-resource/index.html",
            "lineNumber": 0,
            "columnNumber": 0
          }
        },
        {
          "type": "error",
          "text": "Failed to load resource: the server responded with a status of 404 (Not Found)",
          "location": {
            "url": "https://lilarcade-game-previews.s3.us-east-1.amazonaws.com/saved/riddle-proof-v215-stale-resource/index.html",
            "lineNumber": 0,
            "columnNumber": 0
          }
        }
      ],
      "fatal_count": 4
    },
    "page_errors": [],
    "network_mocks": [
      {
        "ok": true,
        "label": "saved-manifest-stale-resource",
        "response_label": "saved-manifest-stale-resource",
        "hit_index": 0,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://lilarcade-game-previews.s3.us-east-1.amazonaws.com/saved/manifest.json",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "saved-player-html-unavailable",
        "response_label": "saved-player-html-unavailable",
        "hit_index": 0,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://lilarcade-game-previews.s3.us-east-1.amazonaws.com/saved/riddle-proof-v215-stale-resource/index.html",
        "method": "GET",
        "status": 404
      },
      {
        "ok": true,
        "label": "saved-manifest-stale-resource",
        "response_label": "saved-manifest-stale-resource",
        "hit_index": 1,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://lilarcade-game-previews.s3.us-east-1.amazonaws.com/saved/manifest.json",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "saved-player-html-unavailable",
        "response_label": "saved-player-html-unavailable",
        "hit_index": 1,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://lilarcade-game-previews.s3.us-east-1.amazonaws.com/saved/riddle-proof-v215-stale-resource/index.html",
        "method": "GET",
        "status": 404
      },
      {
        "ok": true,
        "label": "saved-manifest-stale-resource",
        "response_label": "saved-manifest-stale-resource",
        "hit_index": 2,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://lilarcade-game-previews.s3.us-east-1.amazonaws.com/saved/manifest.json",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "saved-player-html-unavailable",
        "response_label": "saved-player-html-unavailable",
        "hit_index": 2,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://lilarcade-game-previews.s3.us-east-1.amazonaws.com/saved/riddle-proof-v215-stale-resource/index.html",
        "method": "GET",
        "status": 404
      },
      {
        "ok": true,
        "label": "saved-manifest-stale-resource",
        "response_label": "saved-manifest-stale-resource",
        "hit_index": 3,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://lilarcade-game-previews.s3.us-east-1.amazonaws.com/saved/manifest.json",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "saved-player-html-unavailable",
        "response_label": "saved-player-html-unavailable",
        "hit_index": 3,
        "response_index": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://lilarcade-game-previews.s3.us-east-1.amazonaws.com/saved/riddle-proof-v215-stale-resource/index.html",
        "method": "GET",
        "status": 404
      }
    ],
    "dom_summary": {
      "expected_viewport_count": 4,
      "viewport_count": 4,
      "partial": false,
      "routes": [
        {
          "requested": "https://lilarcade.com/play/riddle-proof-v215-stale-resource",
          "observed": "/play/riddle-proof-v215-stale-resource",
          "expected_path": "/play/riddle-proof-v215-stale-resource",
          "matched": true,
          "http_status": 200
        },
        {
          "requested": "https://lilarcade.com/play/riddle-proof-v215-stale-resource",
          "observed": "/play/riddle-proof-v215-stale-resource",
          "expected_path": "/play/riddle-proof-v215-stale-resource",
          "matched": true,
          "http_status": 200
        },
        {
          "requested": "https://lilarcade.com/play/riddle-proof-v215-stale-resource",
          "observed": "/play/riddle-proof-v215-stale-resource",
          "expected_path": "/play/riddle-proof-v215-stale-resource",
          "matched": true,
          "http_status": 200
        },
        {
          "requested": "https://lilarcade.com/play/riddle-proof-v215-stale-resource",
          "observed": "/play/riddle-proof-v215-stale-resource",
          "expected_path": "/play/riddle-proof-v215-stale-resource",
          "matched": true,
          "http_status": 200
        }
      ],
      "titles": [
        "LilArcade",
        "LilArcade",
        "LilArcade",
        "LilArcade"
      ],
      "overflow_px": [
        0,
        0,
        0,
        0
      ],
      "bounds_overflow_px": [
        0,
        0,
        0,
        0
      ],
      "overflow_offender_counts": [
        0,
        0,
        0,
        0
      ],
      "frames": [
        {
          "viewport": "desktop",
          "selectors": []
        },
        {
          "viewport": "phone",
          "selectors": []
        },
        {
          "viewport": "ipad-mini",
          "selectors": []
        },
        {
          "viewport": "ipad",
          "selectors": []
        }
      ],
      "route_inventory": [],
      "network_mock_count": 2,
      "network_mock_hit_count": 8
    }
  }
}