{
  "version": 2,
  "generatedAt": "2026-09-07T11:00:57.734Z",
  "profile": "primary",
  "baseUrl": "https://crawler-test-site.uk.sitebulb.com",
  "environmentCapabilities": [],
  "profiles": [
    {
      "id": "primary",
      "baseUrl": "https://crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "The primary crawler test site serving most fixture routes.",
      "available": true
    },
    {
      "id": "robots-allow-all",
      "baseUrl": "https://robots-allow-all.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "Origin whose robots.txt allows all user agents everywhere.",
      "available": false
    },
    {
      "id": "robots-block-all",
      "baseUrl": "https://robots-block-all.crawler-test-site.uk.sitebulb.com",
      "risk": "risky",
      "summary": "Origin whose robots.txt disallows all crawling.",
      "available": false
    },
    {
      "id": "robots-blank-disallow",
      "baseUrl": "https://robots-blank-disallow.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "Origin whose robots.txt has a blank Disallow value (allow all).",
      "available": false
    },
    {
      "id": "robots-allow-override",
      "baseUrl": "https://robots-allow-override.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "Origin whose robots.txt mixes Disallow with a more specific Allow override.",
      "available": false
    },
    {
      "id": "robots-crawl-delay",
      "baseUrl": "https://robots-crawl-delay.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "Origin whose robots.txt declares a Crawl-delay.",
      "available": false
    },
    {
      "id": "robots-sitemap",
      "baseUrl": "https://robots-sitemap.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "Origin whose robots.txt declares Sitemap references.",
      "available": false
    },
    {
      "id": "robots-patterns",
      "baseUrl": "https://robots-patterns.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "Origin whose robots.txt uses wildcard and end-anchor patterns.",
      "available": false
    },
    {
      "id": "robots-multiple-agents",
      "baseUrl": "https://robots-multiple-agents.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "Origin whose robots.txt declares several user-agent groups with different rules.",
      "available": false
    },
    {
      "id": "robots-ai-specific",
      "baseUrl": "https://robots-ai-specific.crawler-test-site.uk.sitebulb.com",
      "risk": "risky",
      "summary": "Origin whose robots.txt targets AI crawler user agents specifically.",
      "available": false
    },
    {
      "id": "robots-malformed",
      "baseUrl": "https://robots-malformed.crawler-test-site.uk.sitebulb.com",
      "risk": "risky",
      "summary": "Origin serving a syntactically broken robots.txt.",
      "available": false
    },
    {
      "id": "robots-404",
      "baseUrl": "https://robots-404.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "Origin whose robots.txt returns HTTP 404.",
      "available": false
    },
    {
      "id": "robots-500",
      "baseUrl": "https://robots-500.crawler-test-site.uk.sitebulb.com",
      "risk": "risky",
      "summary": "Origin whose robots.txt returns HTTP 500.",
      "available": false
    },
    {
      "id": "robots-bom",
      "baseUrl": "https://robots-bom.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "Origin whose robots.txt begins with a UTF-8 byte-order mark.",
      "available": false
    },
    {
      "id": "robots-large",
      "baseUrl": "https://robots-large.crawler-test-site.uk.sitebulb.com",
      "risk": "risky",
      "summary": "Origin serving an oversized robots.txt to exercise size limits.",
      "available": false
    },
    {
      "id": "robots-redirect",
      "baseUrl": "https://robots-redirect.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "Origin whose robots.txt redirects before serving content.",
      "available": false
    },
    {
      "id": "llms-valid",
      "baseUrl": "https://llms-valid.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "Origin serving a well-formed llms.txt.",
      "available": false
    },
    {
      "id": "llms-optional",
      "baseUrl": "https://llms-optional.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "Origin serving an llms.txt that uses only optional sections.",
      "available": false
    },
    {
      "id": "llms-missing",
      "baseUrl": "https://llms-missing.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "Origin with no llms.txt at all.",
      "available": false
    },
    {
      "id": "llms-malformed",
      "baseUrl": "https://llms-malformed.crawler-test-site.uk.sitebulb.com",
      "risk": "risky",
      "summary": "Origin serving a malformed llms.txt.",
      "available": false
    },
    {
      "id": "host-www",
      "baseUrl": "https://www.canonical.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "The www variant of the host-canonicalisation pair.",
      "available": false
    },
    {
      "id": "host-apex",
      "baseUrl": "https://canonical.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "The apex variant of the host-canonicalisation pair.",
      "available": false
    },
    {
      "id": "host-www-to-apex",
      "baseUrl": "https://www.redirect-apex.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "A www host that redirects every request to its apex equivalent.",
      "available": false
    },
    {
      "id": "host-www-to-apex-target",
      "baseUrl": "https://redirect-apex.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "The apex target of the www-to-apex redirect host.",
      "available": false
    },
    {
      "id": "host-apex-to-www",
      "baseUrl": "https://redirect-www.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "An apex host that redirects every request to its www equivalent.",
      "available": false
    },
    {
      "id": "host-apex-to-www-target",
      "baseUrl": "https://www.redirect-www.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "The www target of the apex-to-www redirect host.",
      "available": false
    },
    {
      "id": "host-subdomain",
      "baseUrl": "https://cross-origin.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "A controlled cross-origin subdomain for cross-host fixtures.",
      "available": false
    },
    {
      "id": "host-case",
      "baseUrl": "https://casehost.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "A host for hostname case-normalisation fixtures.",
      "available": false
    },
    {
      "id": "host-idn",
      "baseUrl": "https://xn--bcher-kva.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "An internationalised (punycode) hostname.",
      "available": false
    },
    {
      "id": "tls-valid",
      "baseUrl": "https://tls-valid.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "A host with a valid TLS certificate, the control for the TLS variants.",
      "available": false
    },
    {
      "id": "tls-self-signed",
      "baseUrl": "https://tls-self-signed.crawler-test-site.uk.sitebulb.com",
      "risk": "risky",
      "summary": "A host presenting a self-signed certificate.",
      "available": false
    },
    {
      "id": "tls-expired",
      "baseUrl": "https://tls-expired.crawler-test-site.uk.sitebulb.com",
      "risk": "risky",
      "summary": "A host presenting an expired certificate.",
      "available": false
    },
    {
      "id": "tls-hostname-mismatch",
      "baseUrl": "https://tls-mismatch.crawler-test-site.uk.sitebulb.com",
      "risk": "risky",
      "summary": "A host presenting a certificate for a different hostname.",
      "available": false
    },
    {
      "id": "protocol-edge",
      "baseUrl": "https://protocol-edge.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "A host for protocol edge cases (HTTP versions, compression, raw URLs).",
      "available": false
    },
    {
      "id": "http-only",
      "baseUrl": "https://http-only.crawler-test-site.uk.sitebulb.com",
      "risk": "moderate",
      "summary": "A plain-HTTP host with no redirect to HTTPS.",
      "available": false
    },
    {
      "id": "cdn-assets",
      "baseUrl": "https://cdn.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "A CDN-style asset origin for crawl-scope subresource fixtures.",
      "available": false
    },
    {
      "id": "tracking-stub",
      "baseUrl": "https://tracking.crawler-test-site.uk.sitebulb.com",
      "risk": "safe",
      "summary": "A third-party-style tracking-stub origin for crawl-scope fixtures.",
      "available": false
    },
    {
      "id": "fingerprinting",
      "baseUrl": "https://fingerprint.crawler-test-site.uk.sitebulb.com",
      "risk": "risky",
      "summary": "A host that varies behaviour on client fingerprint signals.",
      "available": false
    },
    {
      "id": "streaming",
      "baseUrl": "https://streaming.crawler-test-site.uk.sitebulb.com",
      "risk": "risky",
      "summary": "A host serving chunked, slow-body, SSE, and WebSocket responses.",
      "available": false
    }
  ],
  "fixtures": [
    {
      "id": "hello-status-200",
      "title": "Hello — Status 200",
      "summary": "A minimal page that returns HTTP 200, the simplest possible crawl target.",
      "route": "/fixtures/hello-status-200",
      "method": "GET",
      "group": "foundation-example",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "hello-status-200",
      "robotsStanzas": []
    },
    {
      "id": "user-agent-mirror",
      "title": "User agent mirror",
      "summary": "Returns the requesting user agent as JSON, or plain text when requested.",
      "route": "/user-agent-mirror",
      "method": "GET",
      "group": "utility-endpoints",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Cache-Control",
            "value": "no-store"
          }
        ],
        "expectedContentType": "application/json",
        "bodyMarkers": [
          "sb-fixture:user-agent-mirror:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "headers-mirror",
      "title": "Headers mirror",
      "summary": "Returns the request headers as JSON, with sensitive headers redacted.",
      "route": "/headers-mirror",
      "method": "GET",
      "group": "utility-endpoints",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Cache-Control",
            "value": "no-store"
          }
        ],
        "expectedContentType": "application/json",
        "bodyMarkers": [
          "sb-fixture:headers-mirror:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "ip-mirror",
      "title": "IP mirror",
      "summary": "Returns the requester IP information visible to the app, including forwarded headers.",
      "route": "/ip-mirror",
      "method": "GET",
      "group": "utility-endpoints",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Cache-Control",
            "value": "no-store"
          }
        ],
        "expectedContentType": "application/json",
        "bodyMarkers": [
          "sb-fixture:ip-mirror:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "timing",
      "title": "Timing",
      "summary": "Returns server timestamps and a request duration marker, never cached.",
      "route": "/timing",
      "method": "GET",
      "group": "utility-endpoints",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Cache-Control",
            "value": "no-store"
          }
        ],
        "expectedContentType": "application/json",
        "bodyMarkers": [
          "sb-fixture:timing:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "security-txt",
      "title": "security.txt",
      "summary": "Stable RFC 9116 security contact content for crawler discovery tests.",
      "route": "/.well-known/security.txt",
      "method": "GET",
      "group": "utility-endpoints",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Cache-Control",
            "value": "no-store"
          }
        ],
        "expectedContentType": "text/plain; charset=utf-8",
        "bodyMarkers": [
          "Contact:"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "robots-txt",
      "title": "robots.txt",
      "summary": "The primary robots policy, generated from registry contributions.",
      "route": "/robots.txt",
      "method": "GET",
      "group": "utility-endpoints",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Cache-Control",
            "value": "no-store"
          }
        ],
        "expectedContentType": "text/plain; charset=utf-8",
        "bodyMarkers": [
          "User-agent: *"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "llms-txt",
      "title": "llms.txt",
      "summary": "The primary AI-crawler guidance file, generated from the registry.",
      "route": "/llms.txt",
      "method": "GET",
      "group": "utility-endpoints",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Cache-Control",
            "value": "no-store"
          }
        ],
        "expectedContentType": "text/plain; charset=utf-8",
        "bodyMarkers": [
          "# Sitebulb Crawler Test Site"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "http-status-102-processing",
      "title": "HTTP 102 Processing",
      "summary": "An interim 102 Processing followed by a final 200; needs wire-level server support.",
      "route": "/tests/http-status/informational/102-processing",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "protocol-edge",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:http-status-102-processing:final"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/informational",
      "robotsStanzas": []
    },
    {
      "id": "http-status-103-early-hints",
      "title": "HTTP 103 Early Hints",
      "summary": "An interim 103 with preload hints followed by the final 200 page.",
      "route": "/protocol/103-early-hints",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "protocol-edge",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:http-status-103-early-hints:final"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/informational",
      "robotsStanzas": []
    },
    {
      "id": "http-status-200-ok",
      "title": "HTTP 200 OK",
      "summary": "The baseline crawlable HTML page for the status-code group.",
      "route": "/tests/http-status/success/200-ok",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:http-status-200-ok:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/200-ok",
      "robotsStanzas": []
    },
    {
      "id": "http-status-204-no-content",
      "title": "HTTP 204 No Content",
      "summary": "A successful response with deliberately no body at all.",
      "route": "/tests/http-status/success/204-no-content",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 204,
        "expectedHeaders": [],
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/success-conditional",
      "robotsStanzas": []
    },
    {
      "id": "http-status-206-partial-content",
      "title": "HTTP 206 Partial Content",
      "summary": "Serves byte ranges: 206 with Content-Range for a Range request, 200 with Accept-Ranges otherwise.",
      "route": "/tests/http-status/success/206-partial-content",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Accept-Ranges",
            "value": "bytes"
          }
        ],
        "expectedContentType": "text/plain; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-206-partial-content:full"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/success-conditional",
      "robotsStanzas": []
    },
    {
      "id": "http-status-304-not-modified",
      "title": "HTTP 304 Not Modified",
      "summary": "An unconditional GET returns 200 with validators; a conditional GET earns the 304.",
      "route": "/tests/http-status/conditional/304-not-modified",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "ETag",
            "value": "\"sb-fixture-304-not-modified\""
          },
          {
            "name": "Last-Modified",
            "value": "Mon, 01 Jun 2026 00:00:00 GMT"
          }
        ],
        "bodyMarkers": [
          "sb-fixture:http-status-304-not-modified:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/success-conditional",
      "robotsStanzas": []
    },
    {
      "id": "http-status-300-multiple-choices",
      "title": "HTTP 300 Multiple Choices",
      "summary": "A 300 response advertising the baseline page in its Location header.",
      "route": "/tests/http-status/redirect/300-multiple-choices",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 300,
        "expectedHeaders": [],
        "expectedLocation": "/tests/http-status/success/200-ok",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-503-retry-after",
      "title": "HTTP 503 with Retry-After",
      "summary": "A 503 carrying an explicit Retry-After backoff signal.",
      "route": "/tests/http-status/server-error/503-retry-after",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 503,
        "expectedHeaders": [
          {
            "name": "Retry-After",
            "value": "120"
          }
        ],
        "bodyMarkers": [
          "sb-fixture:http-status-503-retry-after:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-301",
      "title": "HTTP 301 Moved Permanently",
      "summary": "Returns exactly HTTP 301 (Moved Permanently) pointing at the baseline 200 page.",
      "route": "/tests/http-status/redirect/301",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 301,
        "expectedHeaders": [],
        "expectedLocation": "/tests/http-status/success/200-ok",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-302",
      "title": "HTTP 302 Found",
      "summary": "Returns exactly HTTP 302 (Found) pointing at the baseline 200 page.",
      "route": "/tests/http-status/redirect/302",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 302,
        "expectedHeaders": [],
        "expectedLocation": "/tests/http-status/success/200-ok",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-303",
      "title": "HTTP 303 See Other",
      "summary": "Returns exactly HTTP 303 (See Other) pointing at the baseline 200 page.",
      "route": "/tests/http-status/redirect/303",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 303,
        "expectedHeaders": [],
        "expectedLocation": "/tests/http-status/success/200-ok",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-307",
      "title": "HTTP 307 Temporary Redirect",
      "summary": "Returns exactly HTTP 307 (Temporary Redirect) pointing at the baseline 200 page.",
      "route": "/tests/http-status/redirect/307",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 307,
        "expectedHeaders": [],
        "expectedLocation": "/tests/http-status/success/200-ok",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-308",
      "title": "HTTP 308 Permanent Redirect",
      "summary": "Returns exactly HTTP 308 (Permanent Redirect) pointing at the baseline 200 page.",
      "route": "/tests/http-status/redirect/308",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 308,
        "expectedHeaders": [],
        "expectedLocation": "/tests/http-status/success/200-ok",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-400",
      "title": "HTTP 400 Bad Request",
      "summary": "Returns exactly HTTP 400 (Bad Request) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/400",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 400,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-400:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-401",
      "title": "HTTP 401 Unauthorized",
      "summary": "Returns exactly HTTP 401 (Unauthorized) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/401",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 401,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-401:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-402",
      "title": "HTTP 402 Payment Required",
      "summary": "Returns exactly HTTP 402 (Payment Required) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/402",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 402,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-402:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-403",
      "title": "HTTP 403 Forbidden",
      "summary": "Returns exactly HTTP 403 (Forbidden) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/403",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 403,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-403:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-404",
      "title": "HTTP 404 Not Found",
      "summary": "Returns exactly HTTP 404 (Not Found) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/404",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 404,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-404:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-405",
      "title": "HTTP 405 Method Not Allowed",
      "summary": "Returns exactly HTTP 405 (Method Not Allowed) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/405",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 405,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-405:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-406",
      "title": "HTTP 406 Not Acceptable",
      "summary": "Returns exactly HTTP 406 (Not Acceptable) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/406",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 406,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-406:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-407",
      "title": "HTTP 407 Proxy Authentication Required",
      "summary": "Returns exactly HTTP 407 (Proxy Authentication Required) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/407",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 407,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-407:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-408",
      "title": "HTTP 408 Request Timeout",
      "summary": "Returns exactly HTTP 408 (Request Timeout) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/408",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 408,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-408:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-409",
      "title": "HTTP 409 Conflict",
      "summary": "Returns exactly HTTP 409 (Conflict) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/409",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 409,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-409:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-410-gone",
      "title": "HTTP 410 Gone",
      "summary": "Returns exactly HTTP 410 (Gone) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/410-gone",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 410,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-410-gone:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-411",
      "title": "HTTP 411 Length Required",
      "summary": "Returns exactly HTTP 411 (Length Required) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/411",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 411,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-411:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-412",
      "title": "HTTP 412 Precondition Failed",
      "summary": "Returns exactly HTTP 412 (Precondition Failed) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/412",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 412,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-412:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-413",
      "title": "HTTP 413 Content Too Large",
      "summary": "Returns exactly HTTP 413 (Content Too Large) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/413",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 413,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-413:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-414",
      "title": "HTTP 414 URI Too Long",
      "summary": "Returns exactly HTTP 414 (URI Too Long) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/414",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 414,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-414:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-415",
      "title": "HTTP 415 Unsupported Media Type",
      "summary": "Returns exactly HTTP 415 (Unsupported Media Type) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/415",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 415,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-415:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-416",
      "title": "HTTP 416 Range Not Satisfiable",
      "summary": "Returns exactly HTTP 416 (Range Not Satisfiable) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/416",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 416,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-416:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-417",
      "title": "HTTP 417 Expectation Failed",
      "summary": "Returns exactly HTTP 417 (Expectation Failed) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/417",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 417,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-417:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-418",
      "title": "HTTP 418 I'm a teapot",
      "summary": "Returns exactly HTTP 418 (I'm a teapot) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/418",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 418,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-418:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-421",
      "title": "HTTP 421 Misdirected Request",
      "summary": "Returns exactly HTTP 421 (Misdirected Request) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/421",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 421,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-421:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-422",
      "title": "HTTP 422 Unprocessable Content",
      "summary": "Returns exactly HTTP 422 (Unprocessable Content) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/422",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 422,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-422:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-423",
      "title": "HTTP 423 Locked",
      "summary": "Returns exactly HTTP 423 (Locked) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/423",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 423,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-423:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-424",
      "title": "HTTP 424 Failed Dependency",
      "summary": "Returns exactly HTTP 424 (Failed Dependency) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/424",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 424,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-424:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-425",
      "title": "HTTP 425 Too Early",
      "summary": "Returns exactly HTTP 425 (Too Early) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/425",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 425,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-425:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-426",
      "title": "HTTP 426 Upgrade Required",
      "summary": "Returns exactly HTTP 426 (Upgrade Required) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/426",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 426,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-426:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-428",
      "title": "HTTP 428 Precondition Required",
      "summary": "Returns exactly HTTP 428 (Precondition Required) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/428",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 428,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-428:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-429",
      "title": "HTTP 429 Too Many Requests",
      "summary": "Returns exactly HTTP 429 (Too Many Requests) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/429",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 429,
        "expectedHeaders": [
          {
            "name": "Retry-After",
            "value": "120"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-429:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-431",
      "title": "HTTP 431 Request Header Fields Too Large",
      "summary": "Returns exactly HTTP 431 (Request Header Fields Too Large) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/431",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 431,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-431:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-451-legal",
      "title": "HTTP 451 Unavailable For Legal Reasons",
      "summary": "Returns exactly HTTP 451 (Unavailable For Legal Reasons) with a machine-readable marker.",
      "route": "/tests/http-status/client-error/451-unavailable-for-legal-reasons",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 451,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-451-legal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-500",
      "title": "HTTP 500 Internal Server Error",
      "summary": "Returns exactly HTTP 500 (Internal Server Error) with a machine-readable marker.",
      "route": "/tests/http-status/server-error/500",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 500,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-500:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-501",
      "title": "HTTP 501 Not Implemented",
      "summary": "Returns exactly HTTP 501 (Not Implemented) with a machine-readable marker.",
      "route": "/tests/http-status/server-error/501",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 501,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-501:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-502",
      "title": "HTTP 502 Bad Gateway",
      "summary": "Returns exactly HTTP 502 (Bad Gateway) with a machine-readable marker.",
      "route": "/tests/http-status/server-error/502",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 502,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-502:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-503",
      "title": "HTTP 503 Service Unavailable",
      "summary": "Returns exactly HTTP 503 (Service Unavailable) with a machine-readable marker.",
      "route": "/tests/http-status/server-error/503",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 503,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-503:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-504",
      "title": "HTTP 504 Gateway Timeout",
      "summary": "Returns exactly HTTP 504 (Gateway Timeout) with a machine-readable marker.",
      "route": "/tests/http-status/server-error/504",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 504,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-504:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-505",
      "title": "HTTP 505 HTTP Version Not Supported",
      "summary": "Returns exactly HTTP 505 (HTTP Version Not Supported) with a machine-readable marker.",
      "route": "/tests/http-status/server-error/505",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 505,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-505:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-506",
      "title": "HTTP 506 Variant Also Negotiates",
      "summary": "Returns exactly HTTP 506 (Variant Also Negotiates) with a machine-readable marker.",
      "route": "/tests/http-status/server-error/506",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 506,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-506:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-507",
      "title": "HTTP 507 Insufficient Storage",
      "summary": "Returns exactly HTTP 507 (Insufficient Storage) with a machine-readable marker.",
      "route": "/tests/http-status/server-error/507",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 507,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-507:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-508",
      "title": "HTTP 508 Loop Detected",
      "summary": "Returns exactly HTTP 508 (Loop Detected) with a machine-readable marker.",
      "route": "/tests/http-status/server-error/508",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 508,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-508:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-510",
      "title": "HTTP 510 Not Extended",
      "summary": "Returns exactly HTTP 510 (Not Extended) with a machine-readable marker.",
      "route": "/tests/http-status/server-error/510",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 510,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-510:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-511",
      "title": "HTTP 511 Network Authentication Required",
      "summary": "Returns exactly HTTP 511 (Network Authentication Required) with a machine-readable marker.",
      "route": "/tests/http-status/server-error/511",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 511,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-status-511:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/overview",
      "robotsStanzas": []
    },
    {
      "id": "http-status-soft-404-title-body",
      "title": "Soft 404 — not-found title and body",
      "summary": "Returns HTTP 200 while the title and body read as a not-found page.",
      "route": "/tests/http-status/soft-404/not-found-title-body",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:http-status-soft-404-title-body:served",
          "Page Not Found"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/soft-404",
      "robotsStanzas": []
    },
    {
      "id": "http-status-soft-404-thin-content",
      "title": "Soft 404 — thin content",
      "summary": "Returns HTTP 200 with almost no content, a thin soft-404 candidate.",
      "route": "/tests/http-status/soft-404/thin-content",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:http-status-soft-404-thin-content:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/soft-404",
      "robotsStanzas": []
    },
    {
      "id": "http-status-soft-404-noindex",
      "title": "Soft 404 — noindex with 200",
      "summary": "Returns HTTP 200 with not-found language plus a meta robots noindex.",
      "route": "/tests/http-status/soft-404/noindex-200",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:http-status-soft-404-noindex:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "meta-robots",
            "value": "noindex",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/soft-404",
      "robotsStanzas": []
    },
    {
      "id": "http-status-soft-404-title-says-404",
      "title": "Soft 404 — title says 404, status says 200",
      "summary": "Returns HTTP 200 while the title claims a 404 error.",
      "route": "/tests/http-status/soft-404/title-says-404-status-200",
      "method": "GET",
      "group": "http-status-codes",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:http-status-soft-404-title-says-404:served",
          "404 Error"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-status-codes/soft-404",
      "robotsStanzas": []
    },
    {
      "id": "redirect-standard-301",
      "title": "Redirect 301 Moved Permanently",
      "summary": "Returns a raw HTTP 301 (Moved Permanently) pointing at the final 200 target page.",
      "route": "/tests/redirects/standard/301",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 301,
        "expectedHeaders": [],
        "expectedLocation": "/tests/redirects/targets/final-200",
        "expectedFinalUrl": "/tests/redirects/targets/final-200",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/standard-http-redirects",
      "robotsStanzas": []
    },
    {
      "id": "redirect-standard-302",
      "title": "Redirect 302 Found",
      "summary": "Returns a raw HTTP 302 (Found) pointing at the final 200 target page.",
      "route": "/tests/redirects/standard/302",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 302,
        "expectedHeaders": [],
        "expectedLocation": "/tests/redirects/targets/final-200",
        "expectedFinalUrl": "/tests/redirects/targets/final-200",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/standard-http-redirects",
      "robotsStanzas": []
    },
    {
      "id": "redirect-standard-303",
      "title": "Redirect 303 See Other",
      "summary": "Returns a raw HTTP 303 (See Other) pointing at the final 200 target page.",
      "route": "/tests/redirects/standard/303",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 303,
        "expectedHeaders": [],
        "expectedLocation": "/tests/redirects/targets/final-200",
        "expectedFinalUrl": "/tests/redirects/targets/final-200",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/standard-http-redirects",
      "robotsStanzas": []
    },
    {
      "id": "redirect-standard-307",
      "title": "Redirect 307 Temporary Redirect",
      "summary": "Returns a raw HTTP 307 (Temporary Redirect) pointing at the final 200 target page.",
      "route": "/tests/redirects/standard/307",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 307,
        "expectedHeaders": [],
        "expectedLocation": "/tests/redirects/targets/final-200",
        "expectedFinalUrl": "/tests/redirects/targets/final-200",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/standard-http-redirects",
      "robotsStanzas": []
    },
    {
      "id": "redirect-standard-308",
      "title": "Redirect 308 Permanent Redirect",
      "summary": "Returns a raw HTTP 308 (Permanent Redirect) pointing at the final 200 target page.",
      "route": "/tests/redirects/standard/308",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 308,
        "expectedHeaders": [],
        "expectedLocation": "/tests/redirects/targets/final-200",
        "expectedFinalUrl": "/tests/redirects/targets/final-200",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/standard-http-redirects",
      "robotsStanzas": []
    },
    {
      "id": "redirect-target-final-200",
      "title": "Redirect target — final 200",
      "summary": "The shared 200 HTML landing page every safe redirect fixture in this group resolves to.",
      "route": "/tests/redirects/targets/final-200",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:redirect-target-final-200:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/standard-http-redirects",
      "robotsStanzas": []
    },
    {
      "id": "redirect-chain-two-hop-301",
      "title": "Redirect chain — two hops of 301",
      "summary": "A 301 to a helper hop that 301s again before landing on the final 200 target.",
      "route": "/tests/redirects/chains/two-hop-301",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 301,
        "expectedHeaders": [],
        "expectedLocation": "/tests/redirects/chains/two-hop-301/hop-1",
        "expectedFinalUrl": "/tests/redirects/targets/final-200",
        "expectedFinalStatus": 200,
        "maxFollowCount": 2,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/redirect-chains",
      "robotsStanzas": []
    },
    {
      "id": "redirect-chain-three-hop-mixed",
      "title": "Redirect chain — three mixed hops",
      "summary": "A 301, then a 302, then a 301 before landing on the final 200 target.",
      "route": "/tests/redirects/chains/three-hop-mixed",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 301,
        "expectedHeaders": [],
        "expectedLocation": "/tests/redirects/chains/three-hop-mixed/hop-1",
        "expectedFinalUrl": "/tests/redirects/targets/final-200",
        "expectedFinalStatus": 200,
        "maxFollowCount": 3,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/redirect-chains",
      "robotsStanzas": []
    },
    {
      "id": "redirect-chain-five-hop",
      "title": "Redirect chain — five hops",
      "summary": "Five consecutive 301 redirects before the final 200 target, long enough to probe depth limits.",
      "route": "/tests/redirects/chains/five-hop",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 301,
        "expectedHeaders": [],
        "expectedLocation": "/tests/redirects/chains/five-hop/hop-1",
        "expectedFinalUrl": "/tests/redirects/targets/final-200",
        "expectedFinalStatus": 200,
        "maxFollowCount": 5,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/redirect-chains",
      "robotsStanzas": []
    },
    {
      "id": "redirect-chain-ends-404",
      "title": "Redirect chain — ends in 404",
      "summary": "A 301 whose target deliberately returns HTTP 404.",
      "route": "/tests/redirects/chains/ends-404",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 301,
        "expectedHeaders": [],
        "expectedLocation": "/tests/redirects/chains/ends-404/missing",
        "expectedFinalStatus": 404,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/redirect-chains",
      "robotsStanzas": []
    },
    {
      "id": "redirect-chain-ends-410",
      "title": "Redirect chain — ends in 410",
      "summary": "A 301 whose target deliberately returns HTTP 410 Gone.",
      "route": "/tests/redirects/chains/ends-410",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 301,
        "expectedHeaders": [],
        "expectedLocation": "/tests/redirects/chains/ends-410/gone",
        "expectedFinalStatus": 410,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/redirect-chains",
      "robotsStanzas": []
    },
    {
      "id": "redirect-chain-robots-disallowed-middle",
      "title": "Redirect chain — robots-disallowed middle hop",
      "summary": "A 301 through a robots-disallowed intermediate hop that redirects on to the final 200 target.",
      "route": "/tests/redirects/chains/robots-disallowed-middle",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "risky-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 301,
        "expectedHeaders": [],
        "expectedLocation": "/tests/redirects/chains/robots-disallowed-middle/blocked-hop",
        "expectedFinalUrl": "/tests/redirects/targets/final-200",
        "expectedFinalStatus": 200,
        "maxFollowCount": 2,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/redirect-chains",
      "robotsStanzas": [
        {
          "userAgent": "*",
          "rules": [
            {
              "directive": "disallow",
              "path": "/tests/redirects/chains/robots-disallowed-middle/blocked-hop"
            }
          ],
          "sitemapRefs": []
        }
      ]
    },
    {
      "id": "redirect-chain-robots-disallowed-final",
      "title": "Redirect chain — robots-disallowed final URL",
      "summary": "A 301 whose final URL is disallowed by robots.txt while still serving HTTP 200 content.",
      "route": "/tests/redirects/chains/robots-disallowed-final",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "risky-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 301,
        "expectedHeaders": [],
        "expectedLocation": "/tests/redirects/chains/robots-disallowed-final/blocked-final",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/redirect-chains",
      "robotsStanzas": [
        {
          "userAgent": "*",
          "rules": [
            {
              "directive": "disallow",
              "path": "/tests/redirects/chains/robots-disallowed-final/blocked-final"
            }
          ],
          "sitemapRefs": []
        }
      ]
    },
    {
      "id": "redirect-meta-immediate",
      "title": "Meta refresh — immediate",
      "summary": "An HTTP 200 page whose meta refresh points immediately at the final 200 target.",
      "route": "/tests/redirects/meta/immediate",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:redirect-meta-immediate:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "refresh-meta",
            "value": "0; url=/tests/redirects/targets/final-200",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/meta-refresh",
      "robotsStanzas": []
    },
    {
      "id": "redirect-meta-delayed-5s",
      "title": "Meta refresh — delayed 5s",
      "summary": "An HTTP 200 page whose meta refresh waits five seconds before pointing at the final 200 target.",
      "route": "/tests/redirects/meta/delayed-5s",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:redirect-meta-delayed-5s:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "refresh-meta",
            "value": "5; url=/tests/redirects/targets/final-200",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/meta-refresh",
      "robotsStanzas": []
    },
    {
      "id": "redirect-js-window-location-href",
      "title": "JavaScript redirect — window.location.href",
      "summary": "An HTTP 200 page whose inline script assigns window.location.href to the final 200 target on load.",
      "route": "/tests/redirects/javascript/window-location-href",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedFinalUrl": "/tests/redirects/targets/final-200",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [
          "sb-fixture:redirect-js-window-location-href:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:redirect-target-final-200:served"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/javascript-redirects",
      "robotsStanzas": []
    },
    {
      "id": "redirect-js-window-location-replace",
      "title": "JavaScript redirect — window.location.replace",
      "summary": "An HTTP 200 page whose inline script calls window.location.replace with the final 200 target on load.",
      "route": "/tests/redirects/javascript/window-location-replace",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedFinalUrl": "/tests/redirects/targets/final-200",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [
          "sb-fixture:redirect-js-window-location-replace:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:redirect-target-final-200:served"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/javascript-redirects",
      "robotsStanzas": []
    },
    {
      "id": "redirect-js-spa-pushstate",
      "title": "JavaScript redirect — SPA pushState",
      "summary": "An HTTP 200 page whose script mutates the URL via history.pushState without any network redirect.",
      "route": "/tests/redirects/javascript/spa-pushstate",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:redirect-js-spa-pushstate:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:redirect-js-spa-pushstate:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/javascript-redirects",
      "robotsStanzas": []
    },
    {
      "id": "redirect-edge-http-refresh-header",
      "title": "Redirect edge — HTTP Refresh header",
      "summary": "An HTTP 200 response carrying a non-standard Refresh header pointing at the final 200 target.",
      "route": "/tests/redirects/edge/http-refresh-header",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Refresh",
            "value": "0; url=/tests/redirects/targets/final-200"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:redirect-edge-http-refresh-header:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "refresh-header",
            "value": "0; url=/tests/redirects/targets/final-200",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/edge-cases",
      "robotsStanzas": []
    },
    {
      "id": "redirect-edge-fragment",
      "title": "Redirect edge — fragment in Location",
      "summary": "A 301 whose Location header carries a URL fragment a crawler must normalise.",
      "route": "/tests/redirects/edge/fragment",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 301,
        "expectedHeaders": [],
        "expectedLocation": "/tests/redirects/targets/final-200#section",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/edge-cases",
      "robotsStanzas": []
    },
    {
      "id": "redirect-edge-pdf-target",
      "title": "Redirect edge — PDF target",
      "summary": "A 302 whose target is a PDF resource rather than an HTML page.",
      "route": "/tests/redirects/edge/pdf-target",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 302,
        "expectedHeaders": [],
        "expectedLocation": "/tests/redirects/resources/redirect-target.pdf",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/edge-cases",
      "robotsStanzas": []
    },
    {
      "id": "redirect-target-pdf",
      "title": "Redirect target — PDF resource",
      "summary": "A minimal valid PDF served as the non-HTML landing resource for the pdf-target redirect.",
      "route": "/tests/redirects/resources/redirect-target.pdf",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "application/pdf",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/edge-cases",
      "robotsStanzas": []
    },
    {
      "id": "redirect-edge-query-preservation",
      "title": "Redirect edge — query preservation",
      "summary": "A 302 that echoes the incoming query string onto the final 200 target.",
      "route": "/tests/redirects/edge/query-preservation?source=redirects&keep=1",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 302,
        "expectedHeaders": [],
        "expectedLocation": "/tests/redirects/targets/final-200?source=redirects&keep=1",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/edge-cases",
      "robotsStanzas": []
    },
    {
      "id": "redirect-edge-absolute-url",
      "title": "Redirect edge — absolute same-site URL",
      "summary": "A 301 whose Location header is the absolute primary-site URL of the final 200 target.",
      "route": "/tests/redirects/edge/absolute-url",
      "method": "GET",
      "group": "redirects",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 301,
        "expectedHeaders": [],
        "expectedLocation": "https://crawler-test-site.uk.sitebulb.com/tests/redirects/targets/final-200",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "redirects/edge-cases",
      "robotsStanzas": []
    },
    {
      "id": "robots-root-allow-all",
      "title": "Root robots.txt — allow all",
      "summary": "An origin whose robots.txt permits every user agent everywhere.",
      "route": "/robots.txt",
      "method": "GET",
      "group": "robots-protocol",
      "profile": "robots-allow-all",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/plain; charset=utf-8",
        "bodyMarkers": [
          "User-agent: *",
          "Allow: /"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "robots-root-blank-disallow",
      "title": "Root robots.txt — blank Disallow",
      "summary": "A robots.txt whose Disallow value is blank, which means allow all.",
      "route": "/robots.txt",
      "method": "GET",
      "group": "robots-protocol",
      "profile": "robots-blank-disallow",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/plain; charset=utf-8",
        "bodyMarkers": [
          "User-agent: *",
          "Disallow:"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "robots-root-allow-override",
      "title": "Root robots.txt — Allow overrides Disallow",
      "summary": "A robots.txt mixing a broad Disallow with a more specific Allow override.",
      "route": "/robots.txt",
      "method": "GET",
      "group": "robots-protocol",
      "profile": "robots-allow-override",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/plain; charset=utf-8",
        "bodyMarkers": [
          "User-agent: *",
          "Disallow: /private/",
          "Allow: /private/allowed/"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "robots-crawl-delay-variants",
      "title": "Root robots.txt — Crawl-delay variants",
      "summary": "A robots.txt declaring Crawl-delay values of 0, 1, and 10 across user-agent groups.",
      "route": "/robots.txt",
      "method": "GET",
      "group": "robots-protocol",
      "profile": "robots-crawl-delay",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/plain; charset=utf-8",
        "bodyMarkers": [
          "Crawl-delay: 0",
          "Crawl-delay: 1",
          "Crawl-delay: 10"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "robots-sitemap-valid-and-missing",
      "title": "Root robots.txt — valid and missing sitemap references",
      "summary": "A robots.txt referencing one resolvable sitemap and one that returns 404.",
      "route": "/robots.txt",
      "method": "GET",
      "group": "robots-protocol",
      "profile": "robots-sitemap",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/plain; charset=utf-8",
        "bodyMarkers": [
          "Sitemap: https://robots-sitemap.crawler-test-site.uk.sitebulb.com/sitemap.xml",
          "Sitemap: https://robots-sitemap.crawler-test-site.uk.sitebulb.com/missing-sitemap.xml"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "robots-wildcard-and-end-anchor",
      "title": "Root robots.txt — wildcard and end-anchor patterns",
      "summary": "A robots.txt using * wildcards and $ end anchors in its rules.",
      "route": "/robots.txt",
      "method": "GET",
      "group": "robots-protocol",
      "profile": "robots-patterns",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/plain; charset=utf-8",
        "bodyMarkers": [
          "Disallow: /*?",
          "Disallow: /*.pdf$"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "robots-multiple-user-agents",
      "title": "Root robots.txt — multiple user-agent groups",
      "summary": "A robots.txt with several user-agent groups so crawlers must pick the most specific.",
      "route": "/robots.txt",
      "method": "GET",
      "group": "robots-protocol",
      "profile": "robots-multiple-agents",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/plain; charset=utf-8",
        "bodyMarkers": [
          "User-agent: *",
          "User-agent: Googlebot",
          "User-agent: Sitebulb"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "robots-404",
      "title": "Root robots.txt — HTTP 404",
      "summary": "An origin with no robots.txt; the request returns HTTP 404.",
      "route": "/robots.txt",
      "method": "GET",
      "group": "robots-protocol",
      "profile": "robots-404",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 404,
        "expectedHeaders": [],
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "robots-bom",
      "title": "Root robots.txt — UTF-8 BOM",
      "summary": "A robots.txt whose body begins with a UTF-8 byte-order mark.",
      "route": "/robots.txt",
      "method": "GET",
      "group": "robots-protocol",
      "profile": "robots-bom",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/plain; charset=utf-8",
        "bodyMarkers": [
          "User-agent: *",
          "Disallow: /bom-blocked/"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "robots-redirect",
      "title": "Root robots.txt — redirect before content",
      "summary": "A robots.txt that 301-redirects once before serving its content.",
      "route": "/robots.txt",
      "method": "GET",
      "group": "robots-protocol",
      "profile": "robots-redirect",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 301,
        "expectedHeaders": [],
        "expectedLocation": "/robots-target.txt",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "robots-meta-noindex",
      "title": "Meta robots — noindex",
      "summary": "An HTML page declaring meta robots noindex in its head.",
      "route": "/tests/robots/meta/noindex",
      "method": "GET",
      "group": "robots-protocol",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:robots-meta-noindex:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "meta-robots",
            "value": "noindex",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "robots-protocol/overview",
      "robotsStanzas": []
    },
    {
      "id": "robots-meta-nofollow-none-noarchive",
      "title": "Meta robots — combined nofollow, none, noarchive",
      "summary": "An HTML page combining nofollow, none, and noarchive in one meta robots tag.",
      "route": "/tests/robots/meta/directives",
      "method": "GET",
      "group": "robots-protocol",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:robots-meta-nofollow-none-noarchive:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "meta-robots",
            "value": "nofollow, none, noarchive",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "robots-protocol/meta-directives",
      "robotsStanzas": []
    },
    {
      "id": "robots-meta-uppercase",
      "title": "Meta robots — uppercase NOINDEX",
      "summary": "An HTML page declaring meta robots NOINDEX in uppercase; directives are case-insensitive.",
      "route": "/tests/robots/meta/uppercase-noindex",
      "method": "GET",
      "group": "robots-protocol",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:robots-meta-uppercase:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "meta-robots",
            "value": "NOINDEX",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "robots-protocol/meta-directives",
      "robotsStanzas": []
    },
    {
      "id": "robots-meta-conflict",
      "title": "Meta robots — conflicting tags",
      "summary": "An HTML page with two meta robots tags declaring contradictory noindex and index directives.",
      "route": "/tests/robots/meta/conflicting-tags",
      "method": "GET",
      "group": "robots-protocol",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:robots-meta-conflict:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "meta-robots",
            "value": "noindex",
            "source": "raw"
          },
          {
            "kind": "meta-robots",
            "value": "index",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "robots-protocol/meta-directives",
      "robotsStanzas": []
    },
    {
      "id": "robots-meta-bot-specific",
      "title": "Meta robots — bot-specific googlebot tag",
      "summary": "An HTML page declaring noindex only for googlebot via a bot-named meta tag.",
      "route": "/tests/robots/meta/bot-specific-googlebot",
      "method": "GET",
      "group": "robots-protocol",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:robots-meta-bot-specific:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "meta-robots",
            "value": "googlebot:noindex",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "robots-protocol/bot-specific",
      "robotsStanzas": []
    },
    {
      "id": "robots-meta-body-ignored",
      "title": "Meta robots — body placement is ignored",
      "summary": "An HTML page whose only robots meta tag sits inside the body, where it has no effect.",
      "route": "/tests/robots/meta/body-placement",
      "method": "GET",
      "group": "robots-protocol",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:robots-meta-body-ignored:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "robots-protocol/overview",
      "robotsStanzas": []
    },
    {
      "id": "robots-x-robots-html",
      "title": "X-Robots-Tag — noindex on HTML",
      "summary": "An HTML response carrying an X-Robots-Tag: noindex header.",
      "route": "/tests/robots/x-robots/html-noindex",
      "method": "GET",
      "group": "robots-protocol",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "X-Robots-Tag",
            "value": "noindex"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:robots-x-robots-html:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "x-robots-tag",
            "value": "noindex",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "robots-protocol/overview",
      "robotsStanzas": []
    },
    {
      "id": "robots-x-robots-pdf",
      "title": "X-Robots-Tag — noindex on PDF",
      "summary": "A minimal generated PDF carrying an X-Robots-Tag: noindex header.",
      "route": "/tests/robots/x-robots/pdf-noindex",
      "method": "GET",
      "group": "robots-protocol",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "X-Robots-Tag",
            "value": "noindex"
          }
        ],
        "expectedContentType": "application/pdf",
        "bodyMarkers": [
          "%PDF-1.4",
          "sb-fixture:robots-x-robots-pdf:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "x-robots-tag",
            "value": "noindex",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "robots-protocol/x-robots-pdf",
      "robotsStanzas": []
    },
    {
      "id": "canonical-self",
      "title": "Canonical — self-referencing",
      "summary": "An HTML page whose head canonical points at its own absolute URL.",
      "route": "/tests/canonicals/self",
      "method": "GET",
      "group": "canonical-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:canonical-self:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/tests/canonicals/self",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "canonical-tags/overview",
      "robotsStanzas": []
    },
    {
      "id": "canonical-cross-page",
      "title": "Canonical — points at the preferred page",
      "summary": "An HTML page whose head canonical nominates a different preferred page.",
      "route": "/tests/canonicals/to-preferred-page",
      "method": "GET",
      "group": "canonical-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:canonical-cross-page:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/tests/canonicals/preferred-page",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "canonical-tags/target-states",
      "robotsStanzas": []
    },
    {
      "id": "canonical-preferred-page",
      "title": "Canonical preferred page",
      "summary": "The plain crawlable page that cross-page and conflict fixtures nominate as canonical.",
      "route": "/tests/canonicals/preferred-page",
      "method": "GET",
      "group": "canonical-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:canonical-preferred-page:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "canonical-http-link-header",
      "title": "Canonical — HTTP Link header",
      "summary": "An HTML response whose only canonical declaration arrives in an HTTP Link header.",
      "route": "/tests/canonicals/http-link-header",
      "method": "GET",
      "group": "canonical-tags",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "value": "<https://crawler-test-site.uk.sitebulb.com/tests/canonicals/http-link-header>; rel=\"canonical\""
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:canonical-http-link-header:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-http",
            "value": "https://crawler-test-site.uk.sitebulb.com/tests/canonicals/http-link-header",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "canonical-tags/overview",
      "robotsStanzas": []
    },
    {
      "id": "canonical-body-ignored",
      "title": "Canonical — body placement is ignored",
      "summary": "An HTML page whose only canonical link element sits inside the body, where it has no effect.",
      "route": "/tests/canonicals/body-placement",
      "method": "GET",
      "group": "canonical-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:canonical-body-ignored:served",
          "https://crawler-test-site.uk.sitebulb.com/tests/canonicals/body-placement"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "CanonicalOutsideOfHead"
      ],
      "contentRef": "canonical-tags/conflicts",
      "robotsStanzas": []
    },
    {
      "id": "canonical-multiple-conflict",
      "title": "Canonical — multiple conflicting head canonicals",
      "summary": "An HTML page declaring two head canonicals that nominate different URLs.",
      "route": "/tests/canonicals/multiple-conflicting",
      "method": "GET",
      "group": "canonical-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:canonical-multiple-conflict:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/tests/canonicals/multiple-conflicting",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/tests/canonicals/preferred-page",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "CanonicalFoundMoreThanOnce"
      ],
      "contentRef": "canonical-tags/conflicts",
      "robotsStanzas": []
    },
    {
      "id": "canonical-html-vs-http-conflict",
      "title": "Canonical — HTML head vs HTTP Link header conflict",
      "summary": "An HTML response whose head canonical disagrees with the canonical in its HTTP Link header.",
      "route": "/tests/canonicals/html-http-conflict",
      "method": "GET",
      "group": "canonical-tags",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "value": "<https://crawler-test-site.uk.sitebulb.com/tests/canonicals/preferred-page>; rel=\"canonical\""
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:canonical-html-vs-http-conflict:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/tests/canonicals/html-http-conflict",
            "source": "raw"
          },
          {
            "kind": "canonical-http",
            "value": "https://crawler-test-site.uk.sitebulb.com/tests/canonicals/preferred-page",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "CanonicalLinkAndHttpHeaderFoundDiffers"
      ],
      "contentRef": "canonical-tags/conflicts",
      "robotsStanzas": []
    },
    {
      "id": "canonical-og-url-conflict",
      "title": "Canonical — disagrees with og:url",
      "summary": "An HTML page whose head canonical and og:url meta tag nominate different URLs.",
      "route": "/tests/canonicals/og-url-conflict",
      "method": "GET",
      "group": "canonical-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:canonical-og-url-conflict:served",
          "https://crawler-test-site.uk.sitebulb.com/tests/canonicals/preferred-page"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/tests/canonicals/og-url-conflict",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "canonical-tags/conflicts",
      "robotsStanzas": []
    },
    {
      "id": "canonical-target-404",
      "title": "Canonical — target returns 404",
      "summary": "An HTML page whose canonical nominates a URL that returns HTTP 404.",
      "route": "/tests/canonicals/to-404",
      "method": "GET",
      "group": "canonical-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:canonical-target-404:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/tests/canonicals/missing-target",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "CanonicalPointsToNotFoundUrls"
      ],
      "contentRef": "canonical-tags/target-states",
      "robotsStanzas": []
    },
    {
      "id": "canonical-target-redirect",
      "title": "Canonical — target redirects",
      "summary": "An HTML page whose canonical nominates a URL that 301-redirects to the preferred page.",
      "route": "/tests/canonicals/to-redirect",
      "method": "GET",
      "group": "canonical-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:canonical-target-redirect:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/tests/canonicals/redirect-target",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "CanonicalPointsToRedirectUrls"
      ],
      "contentRef": "canonical-tags/target-states",
      "robotsStanzas": []
    },
    {
      "id": "canonical-target-noindex",
      "title": "Canonical — target is noindex",
      "summary": "An HTML page whose canonical nominates a page that declares meta robots noindex.",
      "route": "/tests/canonicals/to-noindex",
      "method": "GET",
      "group": "canonical-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:canonical-target-noindex:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/tests/canonicals/noindex-target",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "CanonicalPointsToNoindexUrls"
      ],
      "contentRef": "canonical-tags/target-states",
      "robotsStanzas": []
    },
    {
      "id": "canonical-relative",
      "title": "Canonical — relative URL",
      "summary": "An HTML page whose head canonical uses a root-relative href instead of an absolute URL.",
      "route": "/tests/canonicals/relative-url",
      "method": "GET",
      "group": "canonical-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:canonical-relative:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "/tests/canonicals/relative-url",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "CanonicalIsRelativeUrl"
      ],
      "contentRef": "canonical-tags/url-shape",
      "robotsStanzas": []
    },
    {
      "id": "canonical-case-variant",
      "title": "Canonical — case variant of its own path",
      "summary": "An HTML page whose canonical nominates an uppercase case-variant of its own path.",
      "route": "/tests/canonicals/case-variant",
      "method": "GET",
      "group": "canonical-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:canonical-case-variant:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/tests/canonicals/CASE-VARIANT",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "canonical-tags/url-shape",
      "robotsStanzas": []
    },
    {
      "id": "canonical-trailing-slash",
      "title": "Canonical — trailing-slash variant of its own path",
      "summary": "An HTML page served without a trailing slash whose canonical adds one.",
      "route": "/tests/canonicals/trailing-slash",
      "method": "GET",
      "group": "canonical-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:canonical-trailing-slash:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "/tests/canonicals/trailing-slash/",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "canonical-tags/url-shape",
      "robotsStanzas": []
    },
    {
      "id": "canonical-fragment-stripped",
      "title": "Canonical — href carries a fragment",
      "summary": "An HTML page whose canonical href includes a #section fragment that crawlers must strip.",
      "route": "/tests/canonicals/fragment",
      "method": "GET",
      "group": "canonical-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:canonical-fragment-stripped:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/tests/canonicals/fragment#section",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "canonical-tags/url-shape",
      "robotsStanzas": []
    },
    {
      "id": "canonical-protocol-mismatch",
      "title": "Canonical — http page nominates its https equivalent",
      "summary": "A plain-HTTP page whose canonical nominates the https URL of the same path on the primary site.",
      "route": "/tests/canonicals/protocol-mismatch",
      "method": "GET",
      "group": "canonical-tags",
      "profile": "http-only",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:canonical-protocol-mismatch:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/tests/canonicals/protocol-mismatch",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [
        "CanonicalPointsToHTTPS"
      ],
      "contentRef": "canonical-tags/cross-origin",
      "robotsStanzas": []
    },
    {
      "id": "canonical-port-normalisation",
      "title": "Canonical — explicit default port",
      "summary": "A page whose canonical advertises an explicit :443 port that normalises away for https.",
      "route": "/tests/canonicals/port-normalisation",
      "method": "GET",
      "group": "canonical-tags",
      "profile": "protocol-edge",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:canonical-port-normalisation:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://protocol-edge.crawler-test-site.uk.sitebulb.com:443/tests/canonicals/port-normalisation",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "contentRef": "canonical-tags/cross-origin",
      "robotsStanzas": []
    },
    {
      "id": "links-standard-internal",
      "title": "Standard internal anchors",
      "summary": "Two plain internal anchors pointing at real 200 target pages.",
      "route": "/tests/links/standard/internal",
      "method": "GET",
      "group": "links",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:links-standard-internal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/links/targets/target-a",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/links/targets/target-b",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "links/overview",
      "robotsStanzas": []
    },
    {
      "id": "links-standard-external",
      "title": "Standard external anchor",
      "summary": "A single anchor leaving the fixture site for the controlled external target.",
      "route": "/tests/links/standard/external",
      "method": "GET",
      "group": "links",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": true,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:links-standard-external:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "https://example.com/",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "links/overview",
      "robotsStanzas": []
    },
    {
      "id": "links-relative-root-protocol",
      "title": "Relative, root-relative, and protocol-relative anchors",
      "summary": "Three URL forms that all resolve to real target pages.",
      "route": "/tests/links/url-forms",
      "method": "GET",
      "group": "links",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:links-relative-root-protocol:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "./targets/target-a",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/links/targets/target-b",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "//crawler-test-site.uk.sitebulb.com/tests/links/targets/target-c",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "links/overview",
      "robotsStanzas": []
    },
    {
      "id": "links-base-href",
      "title": "Base href changes link resolution",
      "summary": "A base element redirects relative anchor resolution into the targets directory.",
      "route": "/tests/links/base-href",
      "method": "GET",
      "group": "links",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:links-base-href:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "target-a",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "target-b",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "links/base-href",
      "robotsStanzas": []
    },
    {
      "id": "links-image-link",
      "title": "Image-wrapped anchor",
      "summary": "An anchor whose only content is an inline SVG image.",
      "route": "/tests/links/image-link",
      "method": "GET",
      "group": "links",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:links-image-link:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/links/targets/target-a",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "links/image-link",
      "robotsStanzas": []
    },
    {
      "id": "links-empty-and-broken",
      "title": "Empty and broken anchors",
      "summary": "Anchors with empty, missing, whitespace-only, and scheme-only hrefs.",
      "route": "/tests/links/empty-and-broken",
      "method": "GET",
      "group": "links",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:links-empty-and-broken:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "   ",
            "source": "raw",
            "discoverable": false
          },
          {
            "href": "https://",
            "source": "raw",
            "discoverable": false
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "links/empty-and-broken",
      "robotsStanzas": []
    },
    {
      "id": "links-nofollow",
      "title": "rel=nofollow anchor",
      "summary": "A single internal anchor carrying rel=\"nofollow\".",
      "route": "/tests/links/nofollow/basic",
      "method": "GET",
      "group": "links",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:links-nofollow:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/links/targets/target-a",
            "rel": "nofollow",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "links/nofollow",
      "robotsStanzas": []
    },
    {
      "id": "links-ugc-sponsored",
      "title": "rel=ugc sponsored anchor",
      "summary": "A single internal anchor carrying rel=\"ugc sponsored\".",
      "route": "/tests/links/nofollow/ugc-sponsored",
      "method": "GET",
      "group": "links",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:links-ugc-sponsored:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/links/targets/target-b",
            "rel": "ugc sponsored",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "links/nofollow",
      "robotsStanzas": []
    },
    {
      "id": "links-follow-and-nofollow-same-target",
      "title": "Follow and nofollow anchors to the same target",
      "summary": "Two anchors to one target: one followed, one rel=\"nofollow\".",
      "route": "/tests/links/nofollow/same-target-conflict",
      "method": "GET",
      "group": "links",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:links-follow-and-nofollow-same-target:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/links/targets/target-c",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/links/targets/target-c",
            "rel": "nofollow",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "links/nofollow",
      "robotsStanzas": []
    },
    {
      "id": "links-js-string-concat",
      "title": "Anchor href built by string concatenation",
      "summary": "Inline script concatenates path fragments and injects the anchor after load.",
      "route": "/tests/links/javascript/string-concat",
      "method": "GET",
      "group": "links",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:links-js-string-concat:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:links-js-string-concat:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/links/targets/target-c",
            "source": "rendered",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "links/javascript-links",
      "robotsStanzas": []
    },
    {
      "id": "links-ajax-loaded",
      "title": "Anchor injected from an AJAX response",
      "summary": "Inline script fetches a JSON helper and injects the anchor it describes.",
      "route": "/tests/links/javascript/ajax-loaded",
      "method": "GET",
      "group": "links",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:links-ajax-loaded:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:links-ajax-loaded:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/links/targets/target-b",
            "source": "rendered",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "links/javascript-links",
      "robotsStanzas": []
    },
    {
      "id": "links-pushstate",
      "title": "pushState navigation",
      "summary": "A SPA-style anchor whose click handler mutates the URL with history.pushState.",
      "route": "/tests/links/javascript/pushstate",
      "method": "GET",
      "group": "links",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:links-pushstate:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:links-pushstate:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/links/targets/target-a",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "links/javascript-links",
      "robotsStanzas": []
    },
    {
      "id": "links-shadow-dom-open",
      "title": "Anchor inside an open shadow root",
      "summary": "Inline script attaches an open shadow root containing the only anchor.",
      "route": "/tests/links/shadow-dom/open",
      "method": "GET",
      "group": "links",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:links-shadow-dom-open:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:links-shadow-dom-open:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/links/targets/target-c",
            "source": "rendered",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "links/shadow-dom",
      "robotsStanzas": []
    },
    {
      "id": "links-data-href",
      "title": "data-href span",
      "summary": "A span carrying the URL in a data-href attribute instead of an anchor.",
      "route": "/tests/links/nonstandard/data-href",
      "method": "GET",
      "group": "links",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:links-data-href:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/links/targets/target-b",
            "source": "raw",
            "discoverable": false
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "links/hidden-links",
      "robotsStanzas": []
    },
    {
      "id": "links-noscript",
      "title": "Anchor inside noscript",
      "summary": "The only anchor on the page lives inside a noscript element.",
      "route": "/tests/links/hidden/noscript",
      "method": "GET",
      "group": "links",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:links-noscript:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/links/targets/target-b",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "links/hidden-links",
      "robotsStanzas": []
    },
    {
      "id": "links-comment-template",
      "title": "Anchors inside a comment and a template",
      "summary": "Anchor markup inside an HTML comment and a template element, neither a live link.",
      "route": "/tests/links/hidden/comment-template",
      "method": "GET",
      "group": "links",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:links-comment-template:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/links/targets/target-a",
            "source": "raw",
            "discoverable": false
          },
          {
            "href": "/tests/links/targets/target-b",
            "source": "raw",
            "discoverable": false
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "links/hidden-links",
      "robotsStanzas": []
    },
    {
      "id": "links-iframe-same-domain",
      "title": "Same-domain iframe",
      "summary": "A page embedding a same-site iframe whose document carries one internal anchor.",
      "route": "/tests/links/iframes/same-domain",
      "method": "GET",
      "group": "links",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:links-iframe-same-domain:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "links/iframes",
      "robotsStanzas": []
    },
    {
      "id": "links-whitespace-encoded",
      "title": "Whitespace and percent-encoded hrefs",
      "summary": "Anchors with surrounding whitespace, a percent-encoded path, and an entity-encoded query.",
      "route": "/tests/links/url-edge-cases",
      "method": "GET",
      "group": "links",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:links-whitespace-encoded:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "  /tests/links/targets/target-a  ",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/links/targets/%74arget-b",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/links/targets/target-c?a=1&amp;b=2",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "links/url-edge-cases",
      "robotsStanzas": []
    },
    {
      "id": "links-nested-anchors",
      "title": "Nested anchors",
      "summary": "Deliberately invalid markup nesting one anchor inside another.",
      "route": "/tests/links/malformed/nested-anchors",
      "method": "GET",
      "group": "links",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:links-nested-anchors:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/links/targets/target-a",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/links/targets/target-b",
            "source": "raw",
            "discoverable": false
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "links-target-a",
      "title": "Link target A",
      "summary": "A real 200 page that link fixtures in this group point at (target a).",
      "route": "/tests/links/targets/target-a",
      "method": "GET",
      "group": "links",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:links-target-a:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "links-target-b",
      "title": "Link target B",
      "summary": "A real 200 page that link fixtures in this group point at (target b).",
      "route": "/tests/links/targets/target-b",
      "method": "GET",
      "group": "links",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:links-target-b:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "links-target-c",
      "title": "Link target C",
      "summary": "A real 200 page that link fixtures in this group point at (target c).",
      "route": "/tests/links/targets/target-c",
      "method": "GET",
      "group": "links",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:links-target-c:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "urls-trailing-slash-with",
      "title": "Trailing slash — with slash",
      "summary": "The trailing-slash variant of the pair: the framework 301-redirects it to the slashless form.",
      "route": "/tests/urls/trailing-slash/with-slash/",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 301,
        "expectedHeaders": [],
        "expectedLocation": "/tests/urls/trailing-slash/with-slash",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "urls-normalisation/overview",
      "robotsStanzas": []
    },
    {
      "id": "urls-trailing-slash-with-target",
      "title": "Trailing slash — slashless redirect target",
      "summary": "The slashless landing page of the trailing-slash redirect.",
      "route": "/tests/urls/trailing-slash/with-slash",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:urls-trailing-slash-with-target:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "urls-trailing-slash-without",
      "title": "Trailing slash — without slash",
      "summary": "The slashless variant of the trailing-slash pair, served as an ordinary page.",
      "route": "/tests/urls/trailing-slash/without-slash",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:urls-trailing-slash-without:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "urls-normalisation/overview",
      "robotsStanzas": []
    },
    {
      "id": "urls-index-html",
      "title": "Default document — index.html",
      "summary": "A literal index.html file so default-document URL handling is visible without directory rewriting.",
      "route": "/tests/urls/default-documents/index.html",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:urls-index-html:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "urls-normalisation/default-documents",
      "robotsStanzas": []
    },
    {
      "id": "urls-index-htm",
      "title": "Default document — index.htm",
      "summary": "A literal index.htm file so default-document URL handling is visible without directory rewriting.",
      "route": "/tests/urls/default-documents/index.htm",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:urls-index-htm:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "urls-normalisation/default-documents",
      "robotsStanzas": []
    },
    {
      "id": "urls-default-html",
      "title": "Default document — default.html",
      "summary": "A literal default.html file so default-document URL handling is visible without directory rewriting.",
      "route": "/tests/urls/default-documents/default.html",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:urls-default-html:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "urls-normalisation/default-documents",
      "robotsStanzas": []
    },
    {
      "id": "urls-double-slash",
      "title": "Double slash in path",
      "summary": "A path containing an empty segment (//) that must reach the app without slash merging.",
      "route": "/tests/urls//double-slash",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:urls-double-slash:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "raw-url-passthrough"
      ],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "urls-triple-slash",
      "title": "Triple slash in path",
      "summary": "A path containing two empty segments (///) that must reach the app without slash merging.",
      "route": "/tests/urls///triple-slash",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:urls-triple-slash:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "raw-url-passthrough"
      ],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "urls-space-encoded",
      "title": "Percent-encoded space in path",
      "summary": "A path whose final segment contains a percent-encoded space (%20).",
      "route": "/tests/urls/encoding/space%20encoded",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:urls-space-encoded:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "urls-double-encoded",
      "title": "Double-encoded percent sign in path",
      "summary": "A path containing %2520 (a double-encoded space) that must not be collapsed by intermediate decoding.",
      "route": "/tests/urls/encoding/double-encoded-%2520",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:urls-double-encoded:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "raw-url-passthrough"
      ],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "urls-path-case",
      "title": "Path case sensitivity",
      "summary": "An uppercase path variant served alongside a lowercase twin with a distinct marker.",
      "route": "/tests/urls/case/Page.html",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:urls-path-case:upper"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "urls-fragment-source",
      "title": "Fragment link source page",
      "summary": "A stable page whose anchors point at same-page fragments, which are never sent to the server.",
      "route": "/tests/urls/fragments/source",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:urls-fragment-source:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "#section-one",
            "source": "raw",
            "discoverable": false
          },
          {
            "href": "#section-two",
            "source": "raw",
            "discoverable": false
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "urls-normalisation/overview",
      "robotsStanzas": []
    },
    {
      "id": "urls-duplicate-query-keys",
      "title": "Duplicate query keys",
      "summary": "An endpoint that echoes every value parsed for a repeated query key.",
      "route": "/tests/urls/query/duplicate-keys?a=1&a=2",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "application/json",
        "bodyMarkers": [
          "sb-fixture:urls-duplicate-query-keys:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "urls-normalisation/query-normalisation",
      "robotsStanzas": []
    },
    {
      "id": "urls-query-order-ab",
      "title": "Query parameter order — a then b",
      "summary": "The a-first variant of the query-order pair; the endpoint echoes the raw query string.",
      "route": "/tests/urls/query/order?a=1&b=2",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:urls-query-order-ab:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "urls-normalisation/query-normalisation",
      "robotsStanzas": []
    },
    {
      "id": "urls-query-order-ba",
      "title": "Query parameter order — b then a",
      "summary": "The b-first variant of the query-order pair; the endpoint echoes the raw query string.",
      "route": "/tests/urls/query/order?b=2&a=1",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:urls-query-order-ba:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "urls-normalisation/query-normalisation",
      "robotsStanzas": []
    },
    {
      "id": "urls-session-id",
      "title": "Session ID parameter",
      "summary": "An endpoint that echoes a session-style query parameter so session-ID URLs are identifiable.",
      "route": "/tests/urls/parameters/session-id?sessionid=abc123",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "application/json",
        "bodyMarkers": [
          "sb-fixture:urls-session-id:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "urls-normalisation/tracking-parameters",
      "robotsStanzas": []
    },
    {
      "id": "urls-utm-parameters",
      "title": "UTM tracking parameters",
      "summary": "An endpoint that echoes utm_source and utm_medium so tracking-parameter URLs are identifiable.",
      "route": "/tests/urls/parameters/utm?utm_source=test&utm_medium=crawler",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "application/json",
        "bodyMarkers": [
          "sb-fixture:urls-utm-parameters:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "urls-normalisation/tracking-parameters",
      "robotsStanzas": []
    },
    {
      "id": "urls-utf8-hebrew",
      "title": "International URL — Hebrew",
      "summary": "A path whose final segment contains percent-encoded Hebrew characters.",
      "route": "/tests/urls/international/hebrew-%D7%A9%D7%9C%D7%95%D7%9D",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:urls-utf8-hebrew:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "urls-utf8-japanese",
      "title": "International URL — Japanese",
      "summary": "A path whose final segment contains percent-encoded Japanese characters.",
      "route": "/tests/urls/international/japanese-%E6%97%A5%E6%9C%AC%E8%AA%9E",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:urls-utf8-japanese:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "urls-utf8-polish",
      "title": "International URL — Polish",
      "summary": "A path whose final segment contains percent-encoded Polish characters.",
      "route": "/tests/urls/international/polish-za%C5%BC%C3%B3%C5%82%C4%87",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:urls-utf8-polish:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "urls-utf8-arabic",
      "title": "International URL — Arabic",
      "summary": "A path whose final segment contains percent-encoded Arabic characters.",
      "route": "/tests/urls/international/arabic-%D9%85%D8%B1%D8%AD%D8%A8%D8%A7",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:urls-utf8-arabic:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "urls-punycode-idn",
      "title": "Punycode IDN host",
      "summary": "A fixture page served from the internationalised (punycode) hostname profile.",
      "route": "/tests/urls/idn",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "host-idn",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:urls-punycode-idn:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "contentRef": "urls-normalisation/host-normalisation",
      "robotsStanzas": []
    },
    {
      "id": "urls-host-case",
      "title": "Hostname case normalisation",
      "summary": "A fixture page requested with a mixed-case hostname against the lowercase-registered host profile.",
      "route": "/tests/urls/host-case",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "host-case",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:urls-host-case:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "contentRef": "urls-normalisation/host-normalisation",
      "robotsStanzas": []
    },
    {
      "id": "urls-trailing-dot-host",
      "title": "Trailing-dot FQDN host",
      "summary": "An ordinary page whose fixture variant requests the same route with a trailing-dot fully qualified Host header.",
      "route": "/tests/urls/trailing-dot",
      "method": "GET",
      "group": "urls-normalisation",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:urls-trailing-dot-host:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "contentRef": "urls-normalisation/host-normalisation",
      "robotsStanzas": []
    },
    {
      "id": "js-document-write",
      "title": "Content via document.write",
      "summary": "An inline script document.writes the rendered marker and visible content during parse.",
      "route": "/tests/javascript/content/document-write",
      "method": "GET",
      "group": "javascript-rendering",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:js-document-write:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:js-document-write:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "js-inner-html",
      "title": "Content via innerHTML",
      "summary": "An inline script assigns innerHTML to inject the rendered marker and visible content.",
      "route": "/tests/javascript/content/inner-html",
      "method": "GET",
      "group": "javascript-rendering",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:js-inner-html:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:js-inner-html:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "javascript-rendering/overview",
      "robotsStanzas": []
    },
    {
      "id": "js-text-content",
      "title": "Content via textContent",
      "summary": "An inline script creates elements and sets textContent to inject the rendered marker.",
      "route": "/tests/javascript/content/text-content",
      "method": "GET",
      "group": "javascript-rendering",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:js-text-content:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:js-text-content:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "js-fetch-content",
      "title": "Content loaded over fetch",
      "summary": "An inline script fetches the fetch-data helper JSON and renders its payload plus the rendered marker.",
      "route": "/tests/javascript/content/fetch-loaded",
      "method": "GET",
      "group": "javascript-rendering",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:js-fetch-content:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:js-fetch-content:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "javascript-rendering/overview",
      "robotsStanzas": []
    },
    {
      "id": "js-delay-500",
      "title": "Content delayed by 500ms",
      "summary": "A setTimeout of exactly 500ms appends the rendered marker and delayed content.",
      "route": "/tests/javascript/delays/500ms",
      "method": "GET",
      "group": "javascript-rendering",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:js-delay-500:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:js-delay-500:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "js-delay-2000",
      "title": "Content delayed by 2000ms",
      "summary": "A setTimeout of exactly 2000ms appends the rendered marker and delayed content.",
      "route": "/tests/javascript/delays/2000ms",
      "method": "GET",
      "group": "javascript-rendering",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:js-delay-2000:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:js-delay-2000:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "js-spa-hydration",
      "title": "SPA shell hydration",
      "summary": "The raw HTML serves an app shell placeholder; an inline script hydrates it with content and the rendered marker.",
      "route": "/tests/javascript/spa/hydration-control",
      "method": "GET",
      "group": "javascript-rendering",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:js-spa-hydration:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:js-spa-hydration:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "js-title-set",
      "title": "Title changed by JavaScript",
      "summary": "An inline script changes document.title to JS Rendered Title after load.",
      "route": "/tests/javascript/metadata/title",
      "method": "GET",
      "group": "javascript-rendering",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:js-title-set:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:js-title-set:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "js-description-set",
      "title": "Meta description inserted by JavaScript",
      "summary": "An inline script inserts a meta description reading JS rendered description after load.",
      "route": "/tests/javascript/metadata/description",
      "method": "GET",
      "group": "javascript-rendering",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:js-description-set:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:js-description-set:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "js-canonical-inserted",
      "title": "Canonical inserted by JavaScript",
      "summary": "An inline script inserts a self-referencing canonical link element after load.",
      "route": "/tests/javascript/metadata/canonical",
      "method": "GET",
      "group": "javascript-rendering",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:js-canonical-inserted:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:js-canonical-inserted:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "/tests/javascript/metadata/canonical",
            "source": "rendered"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "js-jsonld-injected",
      "title": "JSON-LD injected by JavaScript",
      "summary": "An inline script appends an application/ld+json Article block to the head after load.",
      "route": "/tests/javascript/metadata/json-ld",
      "method": "GET",
      "group": "javascript-rendering",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:js-jsonld-injected:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:js-jsonld-injected:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "js-all-body-text",
      "title": "All body text rendered by JavaScript",
      "summary": "The raw body carries only the raw marker; every visible sentence is created by JavaScript.",
      "route": "/tests/javascript/proof/body-text-only-js",
      "method": "GET",
      "group": "javascript-rendering",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:js-all-body-text:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:js-all-body-text:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "javascript-rendering/overview",
      "robotsStanzas": []
    },
    {
      "id": "js-all-links",
      "title": "All links rendered by JavaScript",
      "summary": "The raw body carries only the raw marker; both anchors are built at runtime from path fragments.",
      "route": "/tests/javascript/proof/links-only-js",
      "method": "GET",
      "group": "javascript-rendering",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:js-all-links:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:js-all-links:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/javascript/content/inner-html",
            "source": "rendered",
            "discoverable": true
          },
          {
            "href": "/tests/javascript/content/text-content",
            "source": "rendered",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    },
    {
      "id": "js-intersection-observer",
      "title": "Content revealed by IntersectionObserver",
      "summary": "A sentinel div far below the fold triggers an IntersectionObserver that appends the rendered marker.",
      "route": "/tests/javascript/events/intersection-observer",
      "method": "GET",
      "group": "javascript-rendering",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:js-intersection-observer:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:js-intersection-observer:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "javascript-rendering/events",
      "robotsStanzas": []
    },
    {
      "id": "js-shadow-open",
      "title": "Content inside an open shadow root",
      "summary": "An inline script attaches an open shadow root whose runtime-built text is the rendered marker.",
      "route": "/tests/javascript/shadow-dom/open",
      "method": "GET",
      "group": "javascript-rendering",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:js-shadow-open:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:js-shadow-open:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "javascript-rendering/shadow-dom",
      "robotsStanzas": []
    },
    {
      "id": "meta-title-missing",
      "title": "Title — missing",
      "summary": "An HTML page whose head contains no title element at all.",
      "route": "/tests/content-meta/title/missing",
      "method": "GET",
      "group": "content-meta-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:meta-title-missing:served"
        ],
        "absentBodyMarkers": [
          "<title"
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "TitleMissing"
      ],
      "contentRef": "content-meta-tags/overview",
      "robotsStanzas": []
    },
    {
      "id": "meta-title-empty",
      "title": "Title — empty",
      "summary": "An HTML page whose title element exists but contains no text.",
      "route": "/tests/content-meta/title/empty",
      "method": "GET",
      "group": "content-meta-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:meta-title-empty:served",
          "<title></title>"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "TitleEmpty"
      ],
      "contentRef": "content-meta-tags/title",
      "robotsStanzas": []
    },
    {
      "id": "meta-title-long",
      "title": "Title — long",
      "summary": "An HTML page with a deterministic title of roughly 280 characters.",
      "route": "/tests/content-meta/title/long",
      "method": "GET",
      "group": "content-meta-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:meta-title-long:served",
          "title-length-fixture-segment-01 title-length-fixture-segment-02 title-length-fixture-segment-03 title-length-fixture-segment-04 title-length-fixture-segment-05 title-length-fixture-segment-06 title-length-fixture-segment-07 title-length-fixture-segment-08 title-length-fixture-segment-09"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "TitleTooLong"
      ],
      "contentRef": "content-meta-tags/title",
      "robotsStanzas": []
    },
    {
      "id": "meta-title-multiple",
      "title": "Title — multiple",
      "summary": "An HTML page whose head contains two distinct title elements.",
      "route": "/tests/content-meta/title/multiple",
      "method": "GET",
      "group": "content-meta-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:meta-title-multiple:served",
          "First title fixture",
          "Second title fixture"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "TitleFoundMoreThanOnce"
      ],
      "contentRef": "content-meta-tags/title",
      "robotsStanzas": []
    },
    {
      "id": "meta-title-body",
      "title": "Title — inside body only",
      "summary": "An HTML page whose only title element sits inside the body, not the head.",
      "route": "/tests/content-meta/title/in-body",
      "method": "GET",
      "group": "content-meta-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:meta-title-body:served",
          "<title>In-body title fixture</title>"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "TitleOutsideOfHead"
      ],
      "contentRef": "content-meta-tags/title",
      "robotsStanzas": []
    },
    {
      "id": "meta-title-entities",
      "title": "Title — HTML entities",
      "summary": "An HTML page whose title contains raw HTML entities that must decode consistently.",
      "route": "/tests/content-meta/title/entities",
      "method": "GET",
      "group": "content-meta-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:meta-title-entities:served",
          "&amp; &lt; &copy;"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "content-meta-tags/title",
      "robotsStanzas": []
    },
    {
      "id": "meta-title-newlines",
      "title": "Title — newline in text",
      "summary": "An HTML page whose title text contains a literal line break.",
      "route": "/tests/content-meta/title/newlines",
      "method": "GET",
      "group": "content-meta-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:meta-title-newlines:served",
          "Title first line",
          "Title second line"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "content-meta-tags/title",
      "robotsStanzas": []
    },
    {
      "id": "meta-description-missing",
      "title": "Meta description — missing",
      "summary": "An HTML page whose head contains no meta description at all.",
      "route": "/tests/content-meta/description/missing",
      "method": "GET",
      "group": "content-meta-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:meta-description-missing:served"
        ],
        "absentBodyMarkers": [
          "name=\"description\""
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "MetaDescriptionMissing"
      ],
      "contentRef": "content-meta-tags/overview",
      "robotsStanzas": []
    },
    {
      "id": "meta-description-empty",
      "title": "Meta description — empty",
      "summary": "An HTML page whose meta description exists with an empty content attribute.",
      "route": "/tests/content-meta/description/empty",
      "method": "GET",
      "group": "content-meta-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:meta-description-empty:served",
          "name=\"description\" content=\"\""
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "MetaDescriptionEmpty"
      ],
      "contentRef": "content-meta-tags/description",
      "robotsStanzas": []
    },
    {
      "id": "meta-description-duplicate",
      "title": "Meta description — duplicated tag",
      "summary": "An HTML page whose head contains two meta description elements.",
      "route": "/tests/content-meta/description/duplicate",
      "method": "GET",
      "group": "content-meta-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:meta-description-duplicate:served",
          "First meta description fixture",
          "Second meta description fixture"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "MetaDescriptionFoundMoreThanOnce"
      ],
      "contentRef": "content-meta-tags/description",
      "robotsStanzas": []
    },
    {
      "id": "meta-description-long",
      "title": "Meta description — long",
      "summary": "An HTML page with a deterministic meta description of roughly 400 characters.",
      "route": "/tests/content-meta/description/long",
      "method": "GET",
      "group": "content-meta-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:meta-description-long:served",
          "description-length-fixture-segment-01 description-length-fixture-segment-02 description-length-fixture-segment-03 description-length-fixture-segment-04 description-length-fixture-segment-05 description-length-fixture-segment-06 description-length-fixture-segment-07 description-length-fixture-segment-08 description-length-fixture-segment-09 description-length-fixture-segment-10 description-length-fixture-segment-11"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "MetaDescriptionTooLong"
      ],
      "contentRef": "content-meta-tags/description",
      "robotsStanzas": []
    },
    {
      "id": "meta-h1-missing",
      "title": "Headings — H1 missing",
      "summary": "An HTML page whose top-level heading is an H2 with no H1 anywhere.",
      "route": "/tests/content-meta/headings/h1-missing",
      "method": "GET",
      "group": "content-meta-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:meta-h1-missing:served"
        ],
        "absentBodyMarkers": [
          "<h1"
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "content-meta-tags/overview",
      "robotsStanzas": []
    },
    {
      "id": "meta-h1-multiple",
      "title": "Headings — multiple H1s",
      "summary": "An HTML page containing two H1 elements.",
      "route": "/tests/content-meta/headings/h1-multiple",
      "method": "GET",
      "group": "content-meta-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:meta-h1-multiple:served",
          "First h1 fixture",
          "Second h1 fixture"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "content-meta-tags/headings",
      "robotsStanzas": []
    },
    {
      "id": "meta-heading-order",
      "title": "Headings — out of order",
      "summary": "An HTML page that opens with an H3 before its H1, breaking heading hierarchy.",
      "route": "/tests/content-meta/headings/out-of-order",
      "method": "GET",
      "group": "content-meta-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:meta-heading-order:served",
          "Out-of-order h3 fixture"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "content-meta-tags/headings",
      "robotsStanzas": []
    },
    {
      "id": "meta-charset-utf8",
      "title": "Charset — UTF-8 baseline",
      "summary": "An HTML page declaring UTF-8 via meta charset and carrying multi-byte body text.",
      "route": "/tests/content-meta/charset/utf-8",
      "method": "GET",
      "group": "content-meta-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:meta-charset-utf8:served",
          "naïve café — déjà vu"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "content-meta-tags/overview",
      "robotsStanzas": []
    },
    {
      "id": "meta-charset-iso",
      "title": "Charset — ISO-8859-1",
      "summary": "An endpoint declaring ISO-8859-1 in both the Content-Type header and meta charset, serving genuine Latin-1 bytes.",
      "route": "/tests/content-meta/charset/iso-8859-1",
      "method": "GET",
      "group": "content-meta-tags",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=iso-8859-1",
        "bodyMarkers": [
          "sb-fixture:meta-charset-iso:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "CharSetIsNotUtf8"
      ],
      "contentRef": "content-meta-tags/charset",
      "robotsStanzas": []
    },
    {
      "id": "meta-charset-mismatch",
      "title": "Charset — header/body mismatch",
      "summary": "An endpoint whose Content-Type header declares ISO-8859-1 while the body is UTF-8 with a UTF-8 meta charset.",
      "route": "/tests/content-meta/charset/mismatch",
      "method": "GET",
      "group": "content-meta-tags",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=iso-8859-1",
        "bodyMarkers": [
          "sb-fixture:meta-charset-mismatch:served",
          "<meta charset=\"utf-8\""
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "content-meta-tags/charset",
      "robotsStanzas": []
    },
    {
      "id": "meta-charset-missing",
      "title": "Charset — undeclared",
      "summary": "An endpoint sending text/html with no charset parameter and no meta charset, forcing auto-detection.",
      "route": "/tests/content-meta/charset/missing",
      "method": "GET",
      "group": "content-meta-tags",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html",
        "bodyMarkers": [
          "sb-fixture:meta-charset-missing:served"
        ],
        "absentBodyMarkers": [
          "<meta charset"
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "CharSetIsNotSpecifiedInHeadOrHeaders"
      ],
      "contentRef": "content-meta-tags/charset",
      "robotsStanzas": []
    },
    {
      "id": "meta-charset-http-html-conflict",
      "title": "Charset — HTTP/HTML conflict",
      "summary": "An endpoint whose Content-Type header declares UTF-8 while the meta charset claims ISO-8859-1.",
      "route": "/tests/content-meta/charset/http-html-conflict",
      "method": "GET",
      "group": "content-meta-tags",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:meta-charset-http-html-conflict:served",
          "<meta charset=\"iso-8859-1\""
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "content-meta-tags/charset",
      "robotsStanzas": []
    },
    {
      "id": "meta-thin-content",
      "title": "Content — thin",
      "summary": "An HTML page whose entire body copy is one short sentence.",
      "route": "/tests/content-meta/content/thin",
      "method": "GET",
      "group": "content-meta-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:meta-thin-content:served",
          "This page intentionally contains a single short sentence of body copy."
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "content-meta-tags/overview",
      "robotsStanzas": []
    },
    {
      "id": "meta-duplicate-content",
      "title": "Content — duplicate pair (primary)",
      "summary": "The first of two pages sharing an identical 120-word body for duplicate-content detection.",
      "route": "/tests/content-meta/content/duplicate",
      "method": "GET",
      "group": "content-meta-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:meta-duplicate-content:served",
          "This page and its twin publish exactly the same body copy so that duplicate-content detection has a deterministic pair to compare. Every sentence in this paragraph is fixed, never templated, and never randomised, because the comparison only works when the two documents match byte for byte. A crawler that fingerprints body text should produce an identical hash for both routes, while a crawler that fingerprints whole responses will still see the two distinct fixture markers. The paragraph deliberately covers ordinary subjects such as crawling, parsing, extraction, and reporting, so that no single rare term dominates the similarity comparison. Both routes return HTTP 200, declare UTF-8, and remain safe to crawl, which keeps the duplicate signal clean of any confounding status or encoding noise."
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "HasDuplicateContent"
      ],
      "contentRef": "content-meta-tags/overview",
      "robotsStanzas": []
    },
    {
      "id": "meta-duplicate-content-twin",
      "title": "Content — duplicate pair (twin)",
      "summary": "The twin page sharing the identical 120-word body with the primary duplicate fixture.",
      "route": "/tests/content-meta/content/duplicate-twin",
      "method": "GET",
      "group": "content-meta-tags",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:meta-duplicate-content-twin:served",
          "This page and its twin publish exactly the same body copy so that duplicate-content detection has a deterministic pair to compare. Every sentence in this paragraph is fixed, never templated, and never randomised, because the comparison only works when the two documents match byte for byte. A crawler that fingerprints body text should produce an identical hash for both routes, while a crawler that fingerprints whole responses will still see the two distinct fixture markers. The paragraph deliberately covers ordinary subjects such as crawling, parsing, extraction, and reporting, so that no single rare term dominates the similarity comparison. Both routes return HTTP 200, declare UTF-8, and remain safe to crawl, which keeps the duplicate signal clean of any confounding status or encoding noise."
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "HasDuplicateContent"
      ],
      "robotsStanzas": []
    },
    {
      "id": "jsonld-article-valid",
      "title": "JSON-LD Article (valid)",
      "summary": "One application/ld+json script in the head carrying a valid Article payload.",
      "route": "/tests/structured-data/jsonld-article-valid",
      "method": "GET",
      "group": "structured-data",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:jsonld-article-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data/valid-jsonld",
      "robotsStanzas": []
    },
    {
      "id": "jsonld-breadcrumb-valid",
      "title": "JSON-LD BreadcrumbList (valid)",
      "summary": "One head script carrying a valid BreadcrumbList payload with two positioned ListItem entries.",
      "route": "/tests/structured-data/jsonld-breadcrumb-valid",
      "method": "GET",
      "group": "structured-data",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:jsonld-breadcrumb-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data/valid-jsonld",
      "robotsStanzas": []
    },
    {
      "id": "jsonld-faq-valid",
      "title": "JSON-LD FAQPage (valid)",
      "summary": "One head script carrying a valid FAQPage payload with two question and answer pairs.",
      "route": "/tests/structured-data/jsonld-faq-valid",
      "method": "GET",
      "group": "structured-data",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:jsonld-faq-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data/valid-jsonld",
      "robotsStanzas": []
    },
    {
      "id": "jsonld-product-valid",
      "title": "JSON-LD Product (valid)",
      "summary": "One head script carrying a valid Product payload with a name and an Offer.",
      "route": "/tests/structured-data/jsonld-product-valid",
      "method": "GET",
      "group": "structured-data",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:jsonld-product-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data/valid-jsonld",
      "robotsStanzas": []
    },
    {
      "id": "jsonld-organization-valid",
      "title": "JSON-LD Organization (valid)",
      "summary": "One head script carrying a valid Organization payload with name, url, and logo.",
      "route": "/tests/structured-data/jsonld-organization-valid",
      "method": "GET",
      "group": "structured-data",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:jsonld-organization-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data/valid-jsonld",
      "robotsStanzas": []
    },
    {
      "id": "jsonld-missing-required-field",
      "title": "JSON-LD Product missing required field",
      "summary": "A Product payload that parses cleanly but deliberately omits the name property.",
      "route": "/tests/structured-data/jsonld-missing-required-field",
      "method": "GET",
      "group": "structured-data",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:jsonld-missing-required-field:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data/invalid-jsonld",
      "robotsStanzas": []
    },
    {
      "id": "jsonld-nonexistent-type",
      "title": "JSON-LD nonexistent type",
      "summary": "Syntactically valid JSON-LD declaring the unknown type FooBarWidget.",
      "route": "/tests/structured-data/jsonld-nonexistent-type",
      "method": "GET",
      "group": "structured-data",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:jsonld-nonexistent-type:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data/invalid-jsonld",
      "robotsStanzas": []
    },
    {
      "id": "jsonld-malformed-json",
      "title": "JSON-LD malformed JSON",
      "summary": "A script block whose content fails JSON parsing while the surrounding HTML stays fully parseable.",
      "route": "/tests/structured-data/jsonld-malformed-json",
      "method": "GET",
      "group": "structured-data",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:jsonld-malformed-json:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data/invalid-jsonld",
      "robotsStanzas": []
    },
    {
      "id": "jsonld-multiple-blocks",
      "title": "JSON-LD multiple blocks",
      "summary": "Two separate valid head scripts: the Article payload and the BreadcrumbList payload.",
      "route": "/tests/structured-data/jsonld-multiple-blocks",
      "method": "GET",
      "group": "structured-data",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:jsonld-multiple-blocks:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data/placement-and-multiplicity",
      "robotsStanzas": []
    },
    {
      "id": "jsonld-head-location",
      "title": "JSON-LD head placement",
      "summary": "The Article payload as the only script, placed inside the head.",
      "route": "/tests/structured-data/jsonld-head-location",
      "method": "GET",
      "group": "structured-data",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:jsonld-head-location:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data/placement-and-multiplicity",
      "robotsStanzas": []
    },
    {
      "id": "jsonld-body-location",
      "title": "JSON-LD body placement",
      "summary": "The identical Article payload as the only script, placed immediately before the closing body tag.",
      "route": "/tests/structured-data/jsonld-body-location",
      "method": "GET",
      "group": "structured-data",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:jsonld-body-location:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data/placement-and-multiplicity",
      "robotsStanzas": []
    },
    {
      "id": "jsonld-js-injected",
      "title": "JSON-LD injected by JavaScript",
      "summary": "Raw HTML ships zero JSON-LD blocks; an inline script injects the Article payload into the head after load.",
      "route": "/tests/structured-data/jsonld-js-injected",
      "method": "GET",
      "group": "structured-data",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:jsonld-js-injected:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:jsonld-js-injected:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data/rendering-and-conflict",
      "robotsStanzas": []
    },
    {
      "id": "jsonld-visible-content-conflict",
      "title": "JSON-LD versus visible content conflict",
      "summary": "Product JSON-LD declares price 19.99 while the visible page price element states 29.99.",
      "route": "/tests/structured-data/jsonld-visible-content-conflict",
      "method": "GET",
      "group": "structured-data",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:jsonld-visible-content-conflict:served",
          "\"price\": \"19.99\"",
          "29.99"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data/rendering-and-conflict",
      "robotsStanzas": []
    },
    {
      "id": "microdata-basic",
      "title": "Microdata Product (basic)",
      "summary": "An itemscope/itemtype/itemprop Product snippet in the body with no JSON-LD on the page.",
      "route": "/tests/structured-data/microdata-basic",
      "method": "GET",
      "group": "structured-data",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:microdata-basic:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data/microdata-and-rdfa",
      "robotsStanzas": []
    },
    {
      "id": "rdfa-basic",
      "title": "RDFa Product (basic)",
      "summary": "A vocab/typeof/property Product snippet in the body with no JSON-LD on the page.",
      "route": "/tests/structured-data/rdfa-basic",
      "method": "GET",
      "group": "structured-data",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:rdfa-basic:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data/microdata-and-rdfa",
      "robotsStanzas": []
    },
    {
      "id": "responsive-single-url",
      "title": "Responsive single URL",
      "summary": "One URL serving byte-identical responsive HTML to every User-Agent, with a valid viewport meta and a media-query stylesheet.",
      "route": "/tests/mobile-responsive/responsive-single-url",
      "method": "GET",
      "group": "mobile-responsive",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Vary",
            "absent": true
          }
        ],
        "bodyMarkers": [
          "sb-fixture:responsive-single-url:static"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "mobile-responsive/responsive-baseline",
      "robotsStanzas": []
    },
    {
      "id": "mobile-alternate-desktop",
      "title": "Alternate mobile URL — desktop page",
      "summary": "The desktop half of a separate-mobile-URL pair, annotating its mobile alternate and self-referencing canonical.",
      "route": "/tests/mobile-responsive/mobile-alternate-desktop",
      "method": "GET",
      "group": "mobile-responsive",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:mobile-alternate-desktop:static"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "/tests/mobile-responsive/mobile-alternate-desktop",
            "source": "raw"
          }
        ],
        "expectedLinks": [
          {
            "href": "/tests/mobile-responsive/mobile-alternate-mobile",
            "rel": "alternate",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "mobile-responsive/alternate-mobile-urls",
      "robotsStanzas": []
    },
    {
      "id": "mobile-alternate-mobile",
      "title": "Alternate mobile URL — mobile page",
      "summary": "The mobile half of the separate-mobile-URL pair, declaring the desktop URL as canonical.",
      "route": "/tests/mobile-responsive/mobile-alternate-mobile",
      "method": "GET",
      "group": "mobile-responsive",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:mobile-alternate-mobile:static"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "/tests/mobile-responsive/mobile-alternate-desktop",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "mobile-responsive/alternate-mobile-urls",
      "robotsStanzas": []
    },
    {
      "id": "dynamic-serving-vary-user-agent",
      "title": "Dynamic serving with Vary on User-Agent",
      "summary": "The base dynamic-serving fixture; the UA token Mobile selects the mobile body, otherwise desktop, always with Vary on User-Agent.",
      "route": "/tests/mobile-responsive/dynamic-serving-vary-user-agent",
      "method": "GET",
      "group": "mobile-responsive",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Vary",
            "value": "User-Agent"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:dynamic-serving-vary-user-agent:desktop"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "mobile-responsive/dynamic-serving",
      "robotsStanzas": []
    },
    {
      "id": "mobile-title-different",
      "title": "Dynamic serving — title differs per variant",
      "summary": "UA-switched fixture whose title differs between the desktop and mobile variants while the bodies otherwise match.",
      "route": "/tests/mobile-responsive/mobile-title-different",
      "method": "GET",
      "group": "mobile-responsive",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Vary",
            "value": "User-Agent"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:mobile-title-different:desktop"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "mobile-responsive/dynamic-serving",
      "robotsStanzas": []
    },
    {
      "id": "mobile-h1-different",
      "title": "Dynamic serving — H1 differs per variant",
      "summary": "UA-switched fixture whose H1 text differs between variants while title and links stay identical.",
      "route": "/tests/mobile-responsive/mobile-h1-different",
      "method": "GET",
      "group": "mobile-responsive",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Vary",
            "value": "User-Agent"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:mobile-h1-different:desktop"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "mobile-responsive/dynamic-serving",
      "robotsStanzas": []
    },
    {
      "id": "mobile-word-count-different",
      "title": "Dynamic serving — word count differs per variant",
      "summary": "UA-switched fixture serving 200 words of fixed copy to desktop UAs and the first 50 words to mobile UAs.",
      "route": "/tests/mobile-responsive/mobile-word-count-different",
      "method": "GET",
      "group": "mobile-responsive",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Vary",
            "value": "User-Agent"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:mobile-word-count-different:desktop"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "mobile-responsive/dynamic-serving",
      "robotsStanzas": []
    },
    {
      "id": "mobile-outbound-links-different",
      "title": "Dynamic serving — outbound links differ per variant",
      "summary": "UA-switched fixture linking five fixture routes on the desktop variant and only the first two on the mobile variant.",
      "route": "/tests/mobile-responsive/mobile-outbound-links-different",
      "method": "GET",
      "group": "mobile-responsive",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Vary",
            "value": "User-Agent"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:mobile-outbound-links-different:desktop"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/mobile-responsive/responsive-single-url",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/mobile-responsive/mobile-alternate-desktop",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/mobile-responsive/amp-canonical-source",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/mobile-responsive/viewport-missing",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/mobile-responsive/css-media-query-marker",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "mobile-responsive/dynamic-serving",
      "robotsStanzas": []
    },
    {
      "id": "amp-canonical-source",
      "title": "AMP relationship — canonical source",
      "summary": "An ordinary HTML article advertising its AMP page via rel=\"amphtml\" with a self-referencing canonical.",
      "route": "/tests/mobile-responsive/amp-canonical-source",
      "method": "GET",
      "group": "mobile-responsive",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:amp-canonical-source:static"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "/tests/mobile-responsive/amp-canonical-source",
            "source": "raw"
          }
        ],
        "expectedLinks": [
          {
            "href": "/tests/mobile-responsive/amp-page",
            "rel": "amphtml",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "mobile-responsive/amp-relationship",
      "robotsStanzas": []
    },
    {
      "id": "amp-page",
      "title": "AMP relationship — AMP page",
      "summary": "An AMP-flavoured page flagged with the amp and lightning html attributes, declaring the source article as canonical.",
      "route": "/tests/mobile-responsive/amp-page",
      "method": "GET",
      "group": "mobile-responsive",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:amp-page:static"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "/tests/mobile-responsive/amp-canonical-source",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "mobile-responsive/amp-relationship",
      "robotsStanzas": []
    },
    {
      "id": "viewport-missing",
      "title": "Viewport meta missing",
      "summary": "An HTML page whose head contains no viewport meta tag at all.",
      "route": "/tests/mobile-responsive/viewport-missing",
      "method": "GET",
      "group": "mobile-responsive",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:viewport-missing:static"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "MissingViewport"
      ],
      "contentRef": "mobile-responsive/viewport-and-rendering",
      "robotsStanzas": []
    },
    {
      "id": "viewport-invalid",
      "title": "Viewport meta invalid",
      "summary": "An HTML page with a viewport meta whose content is the unparseable value wibble.",
      "route": "/tests/mobile-responsive/viewport-invalid",
      "method": "GET",
      "group": "mobile-responsive",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:viewport-invalid:static"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "mobile-responsive/viewport-and-rendering",
      "robotsStanzas": []
    },
    {
      "id": "css-media-query-marker",
      "title": "CSS media-query visibility markers",
      "summary": "Two markers both present in the raw HTML; a 640px-breakpoint stylesheet makes exactly one visible per viewport width.",
      "route": "/tests/mobile-responsive/css-media-query-marker",
      "method": "GET",
      "group": "mobile-responsive",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:css-media-query-marker:mobile-visible",
          "sb-fixture:css-media-query-marker:desktop-visible"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "mobile-responsive/viewport-and-rendering",
      "robotsStanzas": []
    },
    {
      "id": "touch-target-marker",
      "title": "Undersized touch targets",
      "summary": "Two adjacent links each styled to exactly 24x24px with a 4px gap, an undersized-tap-target sample.",
      "route": "/tests/mobile-responsive/touch-target-marker",
      "method": "GET",
      "group": "mobile-responsive",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:touch-target-marker:static"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/mobile-responsive/responsive-single-url",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/mobile-responsive/responsive-single-url",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "TapTargetsTooSmall"
      ],
      "contentRef": "mobile-responsive/viewport-and-rendering",
      "robotsStanzas": []
    },
    {
      "id": "headers-cache-no-cache",
      "title": "Cache-Control no-cache",
      "summary": "Serves an explicit Cache-Control: no-cache, forcing revalidation on every reuse.",
      "route": "/tests/http-headers/cache/no-cache",
      "method": "GET",
      "group": "http-headers",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Cache-Control",
            "value": "no-cache"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:headers-cache-no-cache:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-headers/cache-headers",
      "robotsStanzas": []
    },
    {
      "id": "headers-cache-no-store",
      "title": "Cache-Control no-store",
      "summary": "Serves an explicit Cache-Control: no-store, forbidding any caching of the response.",
      "route": "/tests/http-headers/cache/no-store",
      "method": "GET",
      "group": "http-headers",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Cache-Control",
            "value": "no-store"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:headers-cache-no-store:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-headers/cache-headers",
      "robotsStanzas": []
    },
    {
      "id": "headers-cache-max-age-zero",
      "title": "Cache-Control max-age=0",
      "summary": "Serves Cache-Control: max-age=0, an immediately stale but cacheable response.",
      "route": "/tests/http-headers/cache/max-age-0",
      "method": "GET",
      "group": "http-headers",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Cache-Control",
            "value": "max-age=0"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:headers-cache-max-age-zero:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-headers/cache-headers",
      "robotsStanzas": []
    },
    {
      "id": "headers-cache-long",
      "title": "Cache-Control one-year max-age",
      "summary": "Serves Cache-Control: public, max-age=31536000, a one-year shared-cache lifetime.",
      "route": "/tests/http-headers/cache/max-age-31536000",
      "method": "GET",
      "group": "http-headers",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Cache-Control",
            "value": "public, max-age=31536000"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:headers-cache-long:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-headers/cache-headers",
      "robotsStanzas": []
    },
    {
      "id": "headers-cache-private",
      "title": "Cache-Control private",
      "summary": "Serves Cache-Control: private, max-age=600, cacheable only by the end client.",
      "route": "/tests/http-headers/cache/private",
      "method": "GET",
      "group": "http-headers",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Cache-Control",
            "value": "private, max-age=600"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:headers-cache-private:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-headers/cache-headers",
      "robotsStanzas": []
    },
    {
      "id": "headers-expires",
      "title": "Expires header",
      "summary": "Serves a far-future Expires date alongside Cache-Control: public so the legacy header stays operative.",
      "route": "/tests/http-headers/cache/expires",
      "method": "GET",
      "group": "http-headers",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Cache-Control",
            "value": "public"
          },
          {
            "name": "Expires",
            "value": "Thu, 01 Jan 2032 00:00:00 GMT"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:headers-expires:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-headers/cache-headers",
      "robotsStanzas": []
    },
    {
      "id": "headers-cache-conflict",
      "title": "Conflicting cache headers",
      "summary": "Serves the self-contradictory Cache-Control: no-store, max-age=31536000 plus a far-future Expires.",
      "route": "/tests/http-headers/cache/conflicting",
      "method": "GET",
      "group": "http-headers",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Cache-Control",
            "value": "no-store, max-age=31536000"
          },
          {
            "name": "Expires",
            "value": "Thu, 01 Jan 2032 00:00:00 GMT"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:headers-cache-conflict:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-headers/cache-headers",
      "robotsStanzas": []
    },
    {
      "id": "headers-etag",
      "title": "ETag conditional flow",
      "summary": "An unconditional GET returns 200 with a fixed ETag; a matching If-None-Match earns a 304.",
      "route": "/tests/http-headers/cache/etag",
      "method": "GET",
      "group": "http-headers",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "ETag",
            "value": "\"sb-fixture-headers-etag\""
          },
          {
            "name": "Cache-Control",
            "value": "no-cache"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:headers-etag:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-headers/cache-headers",
      "robotsStanzas": []
    },
    {
      "id": "headers-last-modified",
      "title": "Last-Modified conditional flow",
      "summary": "An unconditional GET returns 200 with a fixed Last-Modified; a matching If-Modified-Since earns a 304.",
      "route": "/tests/http-headers/cache/last-modified",
      "method": "GET",
      "group": "http-headers",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Last-Modified",
            "value": "Mon, 01 Jun 2026 00:00:00 GMT"
          },
          {
            "name": "Cache-Control",
            "value": "no-cache"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:headers-last-modified:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-headers/cache-headers",
      "robotsStanzas": []
    },
    {
      "id": "headers-vary-user-agent",
      "title": "Vary on User-Agent with identical content",
      "summary": "Serves byte-identical HTML to every User-Agent while declaring Vary: User-Agent.",
      "route": "/tests/http-headers/negotiation/vary-user-agent",
      "method": "GET",
      "group": "http-headers",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Vary",
            "value": "User-Agent"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:headers-vary-user-agent:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-headers/content-negotiation-and-type",
      "robotsStanzas": []
    },
    {
      "id": "headers-content-type-malformed",
      "title": "Content-Type malformed",
      "summary": "Serves HTML under the malformed media type texthtml, which has no type/subtype slash.",
      "route": "/tests/http-headers/content-type/malformed",
      "method": "GET",
      "group": "http-headers",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "texthtml",
        "bodyMarkers": [
          "sb-fixture:headers-content-type-malformed:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-headers/content-negotiation-and-type",
      "robotsStanzas": []
    },
    {
      "id": "headers-text-plain-html",
      "title": "HTML body served as text/plain",
      "summary": "Serves a complete HTML document under Content-Type: text/plain so markup must not be interpreted.",
      "route": "/tests/http-headers/content-type/text-plain-html",
      "method": "GET",
      "group": "http-headers",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/plain; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:headers-text-plain-html:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-headers/content-negotiation-and-type",
      "robotsStanzas": []
    },
    {
      "id": "headers-gzip",
      "title": "Compression — gzip encoded response",
      "summary": "Serves HTML with Content-Encoding: gzip negotiated at the proxy layer.",
      "route": "/tests/http-headers/compression/gzip",
      "method": "GET",
      "group": "http-headers",
      "profile": "protocol-edge",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Encoding",
            "value": "gzip"
          }
        ],
        "bodyMarkers": [
          "sb-fixture:headers-gzip:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin",
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "http-headers/compression-and-transfer",
      "robotsStanzas": []
    },
    {
      "id": "headers-brotli",
      "title": "Compression — brotli encoded response",
      "summary": "Serves HTML with Content-Encoding: br negotiated at the proxy layer.",
      "route": "/tests/http-headers/compression/brotli",
      "method": "GET",
      "group": "http-headers",
      "profile": "protocol-edge",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Encoding",
            "value": "br"
          }
        ],
        "bodyMarkers": [
          "sb-fixture:headers-brotli:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin",
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "http-headers/compression-and-transfer",
      "robotsStanzas": []
    },
    {
      "id": "headers-delay-5s",
      "title": "Delayed response — 5 seconds",
      "summary": "Holds the whole response for exactly 5 seconds before serving the 200 page.",
      "route": "/tests/http-headers/timing/delay-5s",
      "method": "GET",
      "group": "http-headers",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:headers-delay-5s:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-headers/timing",
      "robotsStanzas": []
    },
    {
      "id": "headers-csp-inline-block",
      "title": "CSP blocks inline scripts",
      "summary": "Serves Content-Security-Policy: script-src 'self' so the inline script never rewrites the result element.",
      "route": "/tests/http-headers/security/csp-inline-block",
      "method": "GET",
      "group": "http-headers",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Security-Policy",
            "value": "script-src 'self'"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:headers-csp-inline-block:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [
          "sb-fixture:headers-csp-inline-block:executed"
        ],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-headers/security-headers",
      "robotsStanzas": []
    },
    {
      "id": "headers-csp-external-block",
      "title": "CSP blocks an external script",
      "summary": "Serves Content-Security-Policy: script-src 'none' so the referenced probe script never executes.",
      "route": "/tests/http-headers/security/csp-external-block",
      "method": "GET",
      "group": "http-headers",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Security-Policy",
            "value": "script-src 'none'"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:headers-csp-external-block:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [
          "sb-fixture:headers-csp-external-block:executed"
        ],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-headers/security-headers",
      "robotsStanzas": []
    },
    {
      "id": "headers-nosniff",
      "title": "X-Content-Type-Options nosniff",
      "summary": "Serves X-Content-Type-Options: nosniff alongside an accurate HTML Content-Type.",
      "route": "/tests/http-headers/security/nosniff",
      "method": "GET",
      "group": "http-headers",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "X-Content-Type-Options",
            "value": "nosniff"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:headers-nosniff:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "http-headers/security-headers",
      "robotsStanzas": []
    },
    {
      "id": "headers-hsts-short",
      "title": "HSTS — short max-age",
      "summary": "Serves Strict-Transport-Security: max-age=300 over HTTPS.",
      "route": "/tests/http-headers/security/hsts-short",
      "method": "GET",
      "group": "http-headers",
      "profile": "protocol-edge",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Strict-Transport-Security",
            "value": "max-age=300"
          }
        ],
        "bodyMarkers": [
          "sb-fixture:headers-hsts-short:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin",
        "https"
      ],
      "sitebulbHintIds": [],
      "contentRef": "http-headers/security-headers",
      "robotsStanzas": []
    },
    {
      "id": "headers-hsts-long-preload",
      "title": "HSTS — long max-age with preload",
      "summary": "Serves Strict-Transport-Security: max-age=63072000; includeSubDomains; preload over HTTPS.",
      "route": "/tests/http-headers/security/hsts-preload",
      "method": "GET",
      "group": "http-headers",
      "profile": "protocol-edge",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Strict-Transport-Security",
            "value": "max-age=63072000; includeSubDomains; preload"
          }
        ],
        "bodyMarkers": [
          "sb-fixture:headers-hsts-long-preload:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin",
        "https"
      ],
      "sitebulbHintIds": [],
      "contentRef": "http-headers/security-headers",
      "robotsStanzas": []
    },
    {
      "id": "valid-single-url",
      "title": "Valid single-URL sitemap",
      "summary": "A schema-valid urlset with exactly one URL, referenced from the generated robots.txt for auto-discovery.",
      "route": "/tests/sitemaps/fixtures/valid-single-url.xml",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/xml; charset=utf-8",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/discovery",
      "robotsStanzas": [
        {
          "userAgent": "*",
          "rules": [],
          "sitemapRefs": [
            "/tests/sitemaps/fixtures/valid-single-url.xml"
          ]
        }
      ]
    },
    {
      "id": "sitemap-only-unlinked-page",
      "title": "Sitemap-only unlinked page",
      "summary": "A 200 page referenced only by the valid single-URL sitemap, never by any HTML anchor.",
      "route": "/tests/sitemaps/sitemap-only-unlinked-page",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:sitemap-only-unlinked-page:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/discovery",
      "robotsStanzas": []
    },
    {
      "id": "not-referenced-in-robots",
      "title": "Sitemap absent from robots.txt",
      "summary": "A valid single-URL sitemap that contributes no robots.txt line, so it never surfaces via robots auto-discovery.",
      "route": "/tests/sitemaps/fixtures/not-referenced-in-robots.xml",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/xml; charset=utf-8",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/discovery",
      "robotsStanzas": []
    },
    {
      "id": "robots-referenced-404",
      "title": "Broken sitemap reference in robots.txt",
      "summary": "A robots.txt Sitemap line pointing at this path, which returns 404 instead of XML.",
      "route": "/tests/sitemaps/fixtures/robots-referenced-404.xml",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 404,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:robots-referenced-404:missing"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/discovery",
      "robotsStanzas": [
        {
          "userAgent": "*",
          "rules": [],
          "sitemapRefs": [
            "/tests/sitemaps/fixtures/robots-referenced-404.xml"
          ]
        }
      ]
    },
    {
      "id": "sitemap-target-valid-200",
      "title": "Shared 200 sitemap target",
      "summary": "The healthy 200 page that several fixture sitemaps list.",
      "route": "/tests/sitemaps/targets/valid-200",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:sitemap-target-valid-200:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/discovery",
      "robotsStanzas": []
    },
    {
      "id": "gzip-sitemap",
      "title": "Gzipped sitemap file",
      "summary": "A gzipped single-URL urlset served as application/gzip with no Content-Encoding header.",
      "route": "/tests/sitemaps/fixtures/gzip-sitemap.xml.gz",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "application/gzip",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/limits-and-encoding",
      "robotsStanzas": []
    },
    {
      "id": "url-404",
      "title": "Sitemap listing a 404 URL",
      "summary": "A valid single-URL sitemap whose loc returns 404.",
      "route": "/tests/sitemaps/fixtures/url-404.xml",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/xml; charset=utf-8",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "NotFoundSitemapUrls"
      ],
      "contentRef": "sitemaps/referenced-url-status",
      "robotsStanzas": []
    },
    {
      "id": "url-301",
      "title": "Sitemap listing a redirecting URL",
      "summary": "A valid single-URL sitemap whose loc 301-redirects to the shared 200 target.",
      "route": "/tests/sitemaps/fixtures/url-301.xml",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/xml; charset=utf-8",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "RedirectedSitemapUrls"
      ],
      "contentRef": "sitemaps/referenced-url-status",
      "robotsStanzas": []
    },
    {
      "id": "url-410",
      "title": "Sitemap listing a 410 URL",
      "summary": "A valid single-URL sitemap whose loc returns 410 Gone.",
      "route": "/tests/sitemaps/fixtures/url-410.xml",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/xml; charset=utf-8",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "NotFoundSitemapUrls"
      ],
      "contentRef": "sitemaps/referenced-url-status",
      "robotsStanzas": []
    },
    {
      "id": "non-canonical-url",
      "title": "Sitemap listing a non-canonical URL",
      "summary": "A valid single-URL sitemap whose loc canonicalises to a different page.",
      "route": "/tests/sitemaps/fixtures/non-canonical-url.xml",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/xml; charset=utf-8",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "CanonicalizedSitemapUrls"
      ],
      "contentRef": "sitemaps/referenced-url-status",
      "robotsStanzas": []
    },
    {
      "id": "noindex-url",
      "title": "Sitemap listing a noindex URL",
      "summary": "A valid single-URL sitemap whose loc carries a meta robots noindex.",
      "route": "/tests/sitemaps/fixtures/noindex-url.xml",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/xml; charset=utf-8",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "NoindexedSitemapUrls"
      ],
      "contentRef": "sitemaps/referenced-url-status",
      "robotsStanzas": []
    },
    {
      "id": "sitemap-target-404",
      "title": "Missing sitemap target",
      "summary": "The 404 page listed by the url-404 fixture sitemap.",
      "route": "/tests/sitemaps/targets/missing",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 404,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sitemap-target-404:missing"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/referenced-url-status",
      "robotsStanzas": []
    },
    {
      "id": "sitemap-target-301",
      "title": "Redirecting sitemap target",
      "summary": "The single-hop 301 listed by the url-301 fixture sitemap.",
      "route": "/tests/sitemaps/targets/redirect-301",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 301,
        "expectedHeaders": [],
        "expectedLocation": "/tests/sitemaps/targets/valid-200",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/referenced-url-status",
      "robotsStanzas": []
    },
    {
      "id": "sitemap-target-410",
      "title": "Gone sitemap target",
      "summary": "The 410 page listed by the url-410 fixture sitemap.",
      "route": "/tests/sitemaps/targets/gone",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 410,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sitemap-target-410:gone"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/referenced-url-status",
      "robotsStanzas": []
    },
    {
      "id": "sitemap-target-non-canonical",
      "title": "Non-canonical sitemap target",
      "summary": "A 200 page whose canonical points at a different URL than the sitemap lists.",
      "route": "/tests/sitemaps/targets/non-canonical",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:sitemap-target-non-canonical:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/tests/sitemaps/targets/canonical",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/referenced-url-status",
      "robotsStanzas": []
    },
    {
      "id": "sitemap-target-canonical",
      "title": "Canonical sitemap target",
      "summary": "The self-canonical destination of the non-canonical sitemap target.",
      "route": "/tests/sitemaps/targets/canonical",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:sitemap-target-canonical:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/tests/sitemaps/targets/canonical",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/referenced-url-status",
      "robotsStanzas": []
    },
    {
      "id": "sitemap-target-noindex",
      "title": "Noindex sitemap target",
      "summary": "A 200 page carrying a meta robots noindex while listed in a sitemap.",
      "route": "/tests/sitemaps/targets/noindex",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:sitemap-target-noindex:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "meta-robots",
            "value": "noindex",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/referenced-url-status",
      "robotsStanzas": []
    },
    {
      "id": "sitemap-index",
      "title": "Sitemap index",
      "summary": "A valid sitemapindex referencing exactly two child fixture sitemaps.",
      "route": "/tests/sitemaps/fixtures/sitemap-index.xml",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/xml; charset=utf-8",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/sitemap-index",
      "robotsStanzas": []
    },
    {
      "id": "sitemap-target-index-a",
      "title": "Index child A target",
      "summary": "The page discovered via the index to child-a chain.",
      "route": "/tests/sitemaps/targets/index-a",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:sitemap-target-index-a:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/sitemap-index",
      "robotsStanzas": []
    },
    {
      "id": "sitemap-target-index-b",
      "title": "Index child B target",
      "summary": "The page discovered via the index to child-b chain.",
      "route": "/tests/sitemaps/targets/index-b",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:sitemap-target-index-b:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/sitemap-index",
      "robotsStanzas": []
    },
    {
      "id": "image-sitemap",
      "title": "Image extension sitemap",
      "summary": "A urlset using the Google image 1.1 extension to associate one image with one page.",
      "route": "/tests/sitemaps/fixtures/image-sitemap.xml",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/xml; charset=utf-8",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/extension-sitemaps",
      "robotsStanzas": []
    },
    {
      "id": "video-sitemap",
      "title": "Video extension sitemap",
      "summary": "A urlset using the Google video 1.1 extension with title, description, thumbnail, and content URLs.",
      "route": "/tests/sitemaps/fixtures/video-sitemap.xml",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/xml; charset=utf-8",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/extension-sitemaps",
      "robotsStanzas": []
    },
    {
      "id": "news-sitemap",
      "title": "News extension sitemap",
      "summary": "A urlset using the Google news 0.9 extension with a frozen publication date.",
      "route": "/tests/sitemaps/fixtures/news-sitemap.xml",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/xml; charset=utf-8",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/extension-sitemaps",
      "robotsStanzas": []
    },
    {
      "id": "hreflang-sitemap",
      "title": "Hreflang sitemap",
      "summary": "A urlset carrying reciprocal en/de xhtml:link alternates for two pages.",
      "route": "/tests/sitemaps/fixtures/hreflang-sitemap.xml",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/xml; charset=utf-8",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/extension-sitemaps",
      "robotsStanzas": []
    },
    {
      "id": "sitemap-target-image-page",
      "title": "Image sitemap target page",
      "summary": "The landing page embedding the committed sample image.",
      "route": "/tests/sitemaps/targets/image-page",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:sitemap-target-image-page:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/extension-sitemaps",
      "robotsStanzas": []
    },
    {
      "id": "sitemap-target-video-page",
      "title": "Video sitemap target page",
      "summary": "The landing page for the video sitemap entry.",
      "route": "/tests/sitemaps/targets/video-page",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:sitemap-target-video-page:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/extension-sitemaps",
      "robotsStanzas": []
    },
    {
      "id": "sitemap-target-news-article",
      "title": "News sitemap article page",
      "summary": "The article page listed by the news sitemap.",
      "route": "/tests/sitemaps/targets/news-article",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:sitemap-target-news-article:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/extension-sitemaps",
      "robotsStanzas": []
    },
    {
      "id": "sitemap-target-hreflang-en",
      "title": "Hreflang English target",
      "summary": "The English member of the reciprocal hreflang pair.",
      "route": "/tests/sitemaps/targets/hreflang-en",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:sitemap-target-hreflang-en:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/extension-sitemaps",
      "robotsStanzas": []
    },
    {
      "id": "sitemap-target-hreflang-de",
      "title": "Hreflang German target",
      "summary": "The German member of the reciprocal hreflang pair.",
      "route": "/tests/sitemaps/targets/hreflang-de",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:sitemap-target-hreflang-de:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/extension-sitemaps",
      "robotsStanzas": []
    },
    {
      "id": "sitemap-asset-image",
      "title": "Sample sitemap image asset",
      "summary": "The committed 1x1 PNG referenced by the image and video sitemaps.",
      "route": "/tests/sitemaps/assets/sample-image.png",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "image/png",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/extension-sitemaps",
      "robotsStanzas": []
    },
    {
      "id": "sitemap-asset-video",
      "title": "Sample sitemap video asset",
      "summary": "The committed one-second MP4 clip referenced by the video sitemap.",
      "route": "/tests/sitemaps/assets/sample-video.mp4",
      "method": "GET",
      "group": "sitemaps",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "video/mp4",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "sitemaps/extension-sitemaps",
      "robotsStanzas": []
    },
    {
      "id": "hidden-display-none-link",
      "title": "Hidden link — display:none",
      "summary": "A page carrying a single anchor with inline style display:none, pointing at a target reachable only through it.",
      "route": "/tests/spider-traps/hidden-links/display-none",
      "method": "GET",
      "group": "spider-traps",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:hidden-display-none-link:entry"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/spider-traps/hidden-links/targets/display-none",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "spider-traps/hidden-links",
      "robotsStanzas": []
    },
    {
      "id": "hidden-visibility-hidden-link",
      "title": "Hidden link — visibility:hidden",
      "summary": "A page carrying a single anchor with inline style visibility:hidden, pointing at a target reachable only through it.",
      "route": "/tests/spider-traps/hidden-links/visibility-hidden",
      "method": "GET",
      "group": "spider-traps",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:hidden-visibility-hidden-link:entry"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/spider-traps/hidden-links/targets/visibility-hidden",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "spider-traps/hidden-links",
      "robotsStanzas": []
    },
    {
      "id": "hidden-white-on-white-link",
      "title": "Hidden link — white on white",
      "summary": "A page carrying a single anchor with inline style color:#fff;background-color:#fff, pointing at a target reachable only through it.",
      "route": "/tests/spider-traps/hidden-links/white-on-white",
      "method": "GET",
      "group": "spider-traps",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:hidden-white-on-white-link:entry"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/spider-traps/hidden-links/targets/white-on-white",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "spider-traps/hidden-links",
      "robotsStanzas": []
    },
    {
      "id": "noscript-only-link",
      "title": "Hidden link — noscript only",
      "summary": "A page carrying a single anchor present only inside a noscript element, pointing at a target reachable only through it.",
      "route": "/tests/spider-traps/hidden-links/noscript-only",
      "method": "GET",
      "group": "spider-traps",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:noscript-only-link:entry"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/spider-traps/hidden-links/targets/noscript-only",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "spider-traps/hidden-links",
      "robotsStanzas": []
    },
    {
      "id": "auth-cookie-setter",
      "title": "Session cookie setter",
      "summary": "Sets the fixture session cookie and links to the cookie-gated content page.",
      "route": "/tests/auth/cookie-setter",
      "method": "GET",
      "group": "auth-access-control",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Set-Cookie",
            "value": "sb_fixture_session=granted; Path=/tests/auth/; HttpOnly"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:auth-cookie-setter:set"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/auth/cookie-gated-content",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "auth-access-control/cookies-and-sessions",
      "robotsStanzas": []
    },
    {
      "id": "auth-403-forbidden",
      "title": "HTTP 403 forbidden without challenge",
      "summary": "A plain 403 with no WWW-Authenticate header, distinguishing forbidden-without-challenge from the 401 fixtures.",
      "route": "/tests/auth/403-forbidden",
      "method": "GET",
      "group": "auth-access-control",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 403,
        "expectedHeaders": [
          {
            "name": "WWW-Authenticate",
            "absent": true
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:auth-403-forbidden:forbidden"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "auth-access-control/basic-auth",
      "robotsStanzas": []
    },
    {
      "id": "auth-login-form-visible",
      "title": "Visible login form",
      "summary": "An indexable 200 login page with a POST form; the POST handler is a stub that always re-renders the form.",
      "route": "/tests/auth/login-form-visible",
      "method": "GET",
      "group": "auth-access-control",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:auth-login-form-visible:form",
          "<form method=\"post\""
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "auth-access-control/login-surface",
      "robotsStanzas": []
    },
    {
      "id": "auth-redirect-to-login",
      "title": "Redirect to login",
      "summary": "Unconditionally bounces to the visible login form — the classic protected-page-to-login pattern without a session.",
      "route": "/tests/auth/redirect-to-login",
      "method": "GET",
      "group": "auth-access-control",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 302,
        "expectedHeaders": [],
        "expectedLocation": "/tests/auth/login-form-visible",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "auth-access-control/login-surface",
      "robotsStanzas": []
    },
    {
      "id": "auth-robots-accessible-login",
      "title": "Robots-accessible login form",
      "summary": "The robots-allowed, sitemap-listed login form variant intended for broad discovery.",
      "route": "/tests/auth/robots-accessible-login",
      "method": "GET",
      "group": "auth-access-control",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:auth-robots-accessible-login:form",
          "<form method=\"post\""
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "auth-access-control/login-surface",
      "robotsStanzas": [
        {
          "userAgent": "*",
          "rules": [
            {
              "directive": "allow",
              "path": "/tests/auth/robots-accessible-login"
            }
          ],
          "sitemapRefs": []
        }
      ]
    },
    {
      "id": "auth-noindex-login-page",
      "title": "Noindexed login form",
      "summary": "A fetchable 200 login form carrying a meta robots noindex directive.",
      "route": "/tests/auth/noindex-login-page",
      "method": "GET",
      "group": "auth-access-control",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:auth-noindex-login-page:form",
          "<form method=\"post\""
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "meta-robots",
            "value": "noindex",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "auth-access-control/login-surface",
      "robotsStanzas": []
    },
    {
      "id": "auth-ip-based-profile-reference",
      "title": "IP-based access control reference",
      "summary": "A documentation page pointing at the fingerprinting profile; contains no IP or fingerprint logic of its own.",
      "route": "/tests/auth/ip-based-profile-reference",
      "method": "GET",
      "group": "auth-access-control",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:auth-ip-based-profile-reference:reference"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "auth-access-control/ip-based-access",
      "robotsStanzas": []
    },
    {
      "id": "pagination-page-1",
      "title": "Pagination classic series — page 1 of 5",
      "summary": "Page 1 of a five-page anchor-linked series with ten items, a next anchor, no prev anchor, and no canonical.",
      "route": "/tests/pagination/classic/page-1",
      "method": "GET",
      "group": "pagination",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:pagination-page-1:page"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/pagination/classic/page-2",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "pagination/classic-series",
      "robotsStanzas": []
    },
    {
      "id": "pagination-page-2",
      "title": "Pagination classic series — page 2 of 5",
      "summary": "Page 2 of the classic series with prev and next anchors to pages 1 and 3.",
      "route": "/tests/pagination/classic/page-2",
      "method": "GET",
      "group": "pagination",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:pagination-page-2:page"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/pagination/classic/page-1",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/classic/page-3",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "pagination/classic-series",
      "robotsStanzas": []
    },
    {
      "id": "pagination-page-3",
      "title": "Pagination classic series — page 3 of 5",
      "summary": "Page 3 of the classic series with prev and next anchors to pages 2 and 4.",
      "route": "/tests/pagination/classic/page-3",
      "method": "GET",
      "group": "pagination",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:pagination-page-3:page"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/pagination/classic/page-2",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/classic/page-4",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "pagination/classic-series",
      "robotsStanzas": []
    },
    {
      "id": "pagination-rel-next-prev",
      "title": "Pagination rel-next/prev series — page 1 of 5",
      "summary": "Page 1 of a five-page series whose head declares a rel-next link only, alongside the visible anchors.",
      "route": "/tests/pagination/rel/page-1",
      "method": "GET",
      "group": "pagination",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:pagination-rel-next-prev:page"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "rel-next",
            "value": "/tests/pagination/rel/page-2",
            "source": "raw"
          }
        ],
        "expectedLinks": [
          {
            "href": "/tests/pagination/rel/page-2",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "pagination/canonical-and-rel-variants",
      "robotsStanzas": []
    },
    {
      "id": "pagination-self-canonical",
      "title": "Pagination self-canonical series — page 1 of 5",
      "summary": "Page 1 of a five-page series in which every page declares its own absolute URL as canonical.",
      "route": "/tests/pagination/self-canonical/page-1",
      "method": "GET",
      "group": "pagination",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:pagination-self-canonical:page"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/tests/pagination/self-canonical/page-1",
            "source": "raw"
          }
        ],
        "expectedLinks": [
          {
            "href": "/tests/pagination/self-canonical/page-2",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "pagination/canonical-and-rel-variants",
      "robotsStanzas": []
    },
    {
      "id": "pagination-all-canonical-page-1",
      "title": "Pagination canonical-to-page-1 series — page 1 of 5",
      "summary": "Page 1 of a five-page series in which the deeper pages all canonicalise to page 1; page 1 is self-canonical.",
      "route": "/tests/pagination/all-canonical-page-1/page-1",
      "method": "GET",
      "group": "pagination",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:pagination-all-canonical-page-1:page"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/tests/pagination/all-canonical-page-1/page-1",
            "source": "raw"
          }
        ],
        "expectedLinks": [
          {
            "href": "/tests/pagination/all-canonical-page-1/page-2",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "pagination/canonical-and-rel-variants",
      "robotsStanzas": []
    },
    {
      "id": "pagination-sitemap-only-page-1",
      "title": "Pagination sitemap-only series — page 1 of 3",
      "summary": "Page 1 of a three-page series whose final page is discoverable only via the pagination scenario sitemap.",
      "route": "/tests/pagination/sitemap-only/page-1",
      "method": "GET",
      "group": "pagination",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:pagination-sitemap-only-page-1:page"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/pagination/sitemap-only/page-2",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "pagination/sitemap-only-and-noindex",
      "robotsStanzas": []
    },
    {
      "id": "pagination-sitemap-only-page",
      "title": "Pagination sitemap-only series — page 3 of 3",
      "summary": "Final page of the sitemap-only series, listed in the pagination scenario sitemap and linked from nowhere.",
      "route": "/tests/pagination/sitemap-only/page-3",
      "method": "GET",
      "group": "pagination",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "scenario-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:pagination-sitemap-only-page:page",
          "sb-fixture:pagination-sitemap-only:final"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/pagination/sitemap-only/page-2",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "pagination/sitemap-only-and-noindex",
      "robotsStanzas": []
    },
    {
      "id": "pagination-noindex-page-1",
      "title": "Pagination noindex series — page 1 of 3",
      "summary": "Page 1 of a three-page series whose middle page is noindexed; page 1 carries no robots meta.",
      "route": "/tests/pagination/noindex/page-1",
      "method": "GET",
      "group": "pagination",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:pagination-noindex-page-1:page"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/pagination/noindex/page-2",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "pagination/sitemap-only-and-noindex",
      "robotsStanzas": []
    },
    {
      "id": "pagination-noindex-page",
      "title": "Pagination noindex series — page 2 of 3",
      "summary": "Page 2 of the noindex series carrying a meta robots noindex while its anchors stay followable.",
      "route": "/tests/pagination/noindex/page-2",
      "method": "GET",
      "group": "pagination",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:pagination-noindex-page:page"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "meta-robots",
            "value": "noindex",
            "source": "raw"
          }
        ],
        "expectedLinks": [
          {
            "href": "/tests/pagination/noindex/page-1",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/noindex/page-3",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "pagination/sitemap-only-and-noindex",
      "robotsStanzas": []
    },
    {
      "id": "pagination-empty-final-page-1",
      "title": "Pagination empty-final series — page 1 of 4",
      "summary": "Page 1 of a four-page series whose final page serves 200 with zero items.",
      "route": "/tests/pagination/empty-final/page-1",
      "method": "GET",
      "group": "pagination",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:pagination-empty-final-page-1:page"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/pagination/empty-final/page-2",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "pagination/boundaries-and-duplicates",
      "robotsStanzas": []
    },
    {
      "id": "pagination-empty-final-page",
      "title": "Pagination empty-final series — page 4 of 4",
      "summary": "Final page of the empty-final series: a 200 HTML page with zero items, the empty marker, and a prev anchor only.",
      "route": "/tests/pagination/empty-final/page-4",
      "method": "GET",
      "group": "pagination",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:pagination-empty-final-page:page",
          "sb-fixture:pagination-empty-final:final",
          "sb-fixture:pagination-empty-final-page:empty"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/pagination/empty-final/page-3",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "pagination/boundaries-and-duplicates",
      "robotsStanzas": []
    },
    {
      "id": "pagination-duplicate-page-content",
      "title": "Pagination duplicate-content series — page 1 of 5",
      "summary": "Page 1 of a five-page series in which pages 2 and 3 share a byte-identical item-list block.",
      "route": "/tests/pagination/duplicate/page-1",
      "method": "GET",
      "group": "pagination",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:pagination-duplicate-page-content:page"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/pagination/duplicate/page-2",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "pagination/boundaries-and-duplicates",
      "robotsStanzas": []
    },
    {
      "id": "pagination-infinite-scroll-url-updates",
      "title": "Pagination — infinite scroll with URL updates",
      "summary": "Scrolling near the bottom appends a ten-item batch and pushState-updates the URL to ?batch={n}, hard-capped at five batches.",
      "route": "/tests/pagination/infinite-scroll-url-updates",
      "method": "GET",
      "group": "pagination",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:pagination-infinite-scroll-url-updates:page"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:pagination-infinite-scroll-url-updates:end"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "pagination/client-side-loading",
      "robotsStanzas": []
    },
    {
      "id": "pagination-infinite-scroll-no-url-updates",
      "title": "Pagination — infinite scroll without URL updates",
      "summary": "Scrolling near the bottom appends a ten-item batch while the URL never changes, hard-capped at five batches.",
      "route": "/tests/pagination/infinite-scroll-no-url-updates",
      "method": "GET",
      "group": "pagination",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:pagination-infinite-scroll-no-url-updates:page"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:pagination-infinite-scroll-no-url-updates:end"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "pagination/client-side-loading",
      "robotsStanzas": []
    },
    {
      "id": "pagination-load-more-button",
      "title": "Pagination — load-more button",
      "summary": "A button appends a ten-item batch per click up to five batches in total; the button is removed after the last batch.",
      "route": "/tests/pagination/load-more-button",
      "method": "GET",
      "group": "pagination",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:pagination-load-more-button:page"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:pagination-load-more-button:end"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "pagination/client-side-loading",
      "robotsStanzas": []
    },
    {
      "id": "pagination-large-range-boundary",
      "title": "Pagination large-range boundary hub",
      "summary": "One page rendering numbered anchors 1 to 50 into the parameterised large-range endpoint; 50 is the hard cap.",
      "route": "/tests/pagination/large-range",
      "method": "GET",
      "group": "pagination",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:pagination-large-range-boundary:page"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/pagination/large-range/page/1",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/2",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/3",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/4",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/5",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/6",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/7",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/8",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/9",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/10",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/11",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/12",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/13",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/14",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/15",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/16",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/17",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/18",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/19",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/20",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/21",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/22",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/23",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/24",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/25",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/26",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/27",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/28",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/29",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/30",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/31",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/32",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/33",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/34",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/35",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/36",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/37",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/38",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/39",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/40",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/41",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/42",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/43",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/44",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/45",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/46",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/47",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/48",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/49",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/pagination/large-range/page/50",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "pagination/boundaries-and-duplicates",
      "robotsStanzas": []
    },
    {
      "id": "resource-pdf-basic",
      "title": "PDF resource — basic",
      "summary": "A committed one-page PDF whose page text carries the fixture marker, served with no robots directives.",
      "route": "/tests/non-html/resource-pdf-basic.pdf",
      "method": "GET",
      "group": "non-html-resources",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "X-Robots-Tag",
            "absent": true
          },
          {
            "name": "Content-Length",
            "value": "466"
          }
        ],
        "expectedContentType": "application/pdf",
        "bodyMarkers": [
          "%PDF-1.4",
          "sb-fixture:resource-pdf-basic:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "non-html-resources/documents",
      "robotsStanzas": []
    },
    {
      "id": "resource-pdf-x-robots-noindex",
      "title": "PDF resource — X-Robots-Tag noindex",
      "summary": "An endpoint serving the committed basic-PDF bytes with an added X-Robots-Tag noindex header.",
      "route": "/tests/non-html/resource-pdf-x-robots-noindex.pdf",
      "method": "GET",
      "group": "non-html-resources",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "X-Robots-Tag",
            "value": "noindex"
          },
          {
            "name": "Content-Length",
            "value": "466"
          }
        ],
        "expectedContentType": "application/pdf",
        "bodyMarkers": [
          "%PDF-1.4",
          "sb-fixture:resource-pdf-basic:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "x-robots-tag",
            "value": "noindex",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "non-html-resources/documents",
      "robotsStanzas": []
    },
    {
      "id": "resource-redirect-to-pdf",
      "title": "Redirect to a PDF resource",
      "summary": "A 302 whose single hop lands on the committed basic PDF rather than an HTML page.",
      "route": "/tests/non-html/resource-redirect-to-pdf",
      "method": "GET",
      "group": "non-html-resources",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 302,
        "expectedHeaders": [],
        "expectedLocation": "/tests/non-html/resource-pdf-basic.pdf",
        "expectedFinalUrl": "/tests/non-html/resource-pdf-basic.pdf",
        "expectedFinalStatus": 200,
        "maxFollowCount": 1,
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "non-html-resources/documents",
      "robotsStanzas": []
    },
    {
      "id": "resource-image-png",
      "title": "PNG image resource",
      "summary": "A committed 64x64 PNG under 1 KB whose fixture marker lives in a tEXt chunk, discoverable only via the embedding page.",
      "route": "/tests/non-html/resource-image-png.png",
      "method": "GET",
      "group": "non-html-resources",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "698"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:resource-image-png:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "non-html-resources/images",
      "robotsStanzas": []
    },
    {
      "id": "resource-image-linked-from-html",
      "title": "Image embedded from HTML",
      "summary": "An HTML page embedding the committed PNG via an img element with alt text.",
      "route": "/tests/non-html/resource-image-linked-from-html",
      "method": "GET",
      "group": "non-html-resources",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:resource-image-linked-from-html:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "non-html-resources/images",
      "robotsStanzas": []
    },
    {
      "id": "resource-text-plain",
      "title": "Plain text resource",
      "summary": "A committed UTF-8 text file carrying the fixture marker on its own line.",
      "route": "/tests/non-html/resource-text-plain.txt",
      "method": "GET",
      "group": "non-html-resources",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "78"
          }
        ],
        "expectedContentType": "text/plain; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:resource-text-plain:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "non-html-resources/data-formats",
      "robotsStanzas": []
    },
    {
      "id": "resource-csv",
      "title": "CSV resource",
      "summary": "A committed CSV of one header row and two data rows, one data cell carrying the fixture marker.",
      "route": "/tests/non-html/resource-csv.csv",
      "method": "GET",
      "group": "non-html-resources",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "76"
          }
        ],
        "expectedContentType": "text/csv",
        "bodyMarkers": [
          "sb-fixture:resource-csv:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "non-html-resources/data-formats",
      "robotsStanzas": []
    },
    {
      "id": "resource-json",
      "title": "JSON resource",
      "summary": "A committed JSON document whose body is exactly one object with a single fixture property.",
      "route": "/tests/non-html/resource-json.json",
      "method": "GET",
      "group": "non-html-resources",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "43"
          }
        ],
        "expectedContentType": "application/json",
        "bodyMarkers": [
          "sb-fixture:resource-json:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "non-html-resources/data-formats",
      "robotsStanzas": []
    },
    {
      "id": "resource-xml",
      "title": "Generic XML resource",
      "summary": "A committed XML document with a single root element carrying the fixture marker attribute, neither a feed nor a sitemap.",
      "route": "/tests/non-html/resource-xml.xml",
      "method": "GET",
      "group": "non-html-resources",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "91"
          }
        ],
        "expectedContentType": "application/xml",
        "bodyMarkers": [
          "sb-fixture:resource-xml:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "non-html-resources/data-formats",
      "robotsStanzas": []
    },
    {
      "id": "resource-rss",
      "title": "RSS 2.0 feed",
      "summary": "A minimal valid RSS 2.0 feed whose two item links are absolute URLs to the registered feed-item target pages.",
      "route": "/tests/non-html/resource-rss.xml",
      "method": "GET",
      "group": "non-html-resources",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "application/rss+xml",
        "bodyMarkers": [
          "sb-fixture:resource-rss:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "non-html-resources/feeds",
      "robotsStanzas": []
    },
    {
      "id": "resource-atom",
      "title": "Atom feed",
      "summary": "A minimal valid Atom feed whose two entry links are absolute URLs to the same feed-item target pages as the RSS variant.",
      "route": "/tests/non-html/resource-atom.xml",
      "method": "GET",
      "group": "non-html-resources",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "application/atom+xml",
        "bodyMarkers": [
          "sb-fixture:resource-atom:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "non-html-resources/feeds",
      "robotsStanzas": []
    },
    {
      "id": "resource-feed-item-one",
      "title": "Feed item target — one",
      "summary": "A plain HTML page reachable only via a feed link or the manifest, proving feed-based discovery.",
      "route": "/tests/non-html/feed-items/one",
      "method": "GET",
      "group": "non-html-resources",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:resource-feed-item-one:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "non-html-resources/feeds",
      "robotsStanzas": []
    },
    {
      "id": "resource-feed-item-two",
      "title": "Feed item target — two",
      "summary": "The second plain HTML feed-item target page, excluded from every sitemap like the first.",
      "route": "/tests/non-html/feed-items/two",
      "method": "GET",
      "group": "non-html-resources",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:resource-feed-item-two:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "non-html-resources/feeds",
      "robotsStanzas": []
    },
    {
      "id": "resource-unknown-mime",
      "title": "Unknown MIME type",
      "summary": "A small text body served with the unregistered content type application/x-sitebulb-fixture.",
      "route": "/tests/non-html/resource-unknown-mime",
      "method": "GET",
      "group": "non-html-resources",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "application/x-sitebulb-fixture",
        "bodyMarkers": [
          "sb-fixture:resource-unknown-mime:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "non-html-resources/delivery-edge-cases",
      "robotsStanzas": []
    },
    {
      "id": "resource-wrong-content-type",
      "title": "Wrong content type",
      "summary": "The committed PNG bytes served with Content-Type text/html, so the declared type and the actual bytes deliberately disagree.",
      "route": "/tests/non-html/resource-wrong-content-type",
      "method": "GET",
      "group": "non-html-resources",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "698"
          }
        ],
        "expectedContentType": "text/html",
        "bodyMarkers": [
          "sb-fixture:resource-image-png:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "non-html-resources/delivery-edge-cases",
      "robotsStanzas": []
    },
    {
      "id": "resource-download-content-disposition",
      "title": "Download attachment disposition",
      "summary": "A plain-text body served with Content-Disposition attachment and an explicit download filename.",
      "route": "/tests/non-html/resource-download-content-disposition",
      "method": "GET",
      "group": "non-html-resources",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Disposition",
            "value": "attachment; filename=\"sb-fixture-download.txt\""
          }
        ],
        "expectedContentType": "text/plain; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:resource-download-content-disposition:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "non-html-resources/delivery-edge-cases",
      "robotsStanzas": []
    },
    {
      "id": "resource-range-request-file",
      "title": "Range request file",
      "summary": "A generated 1,048,576-byte octet-stream supporting partial content: 206 for valid ranges and 416 beyond EOF.",
      "route": "/tests/non-html/resource-range-request-file.bin",
      "method": "GET",
      "group": "non-html-resources",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Accept-Ranges",
            "value": "bytes"
          },
          {
            "name": "Content-Length",
            "value": "1048576"
          }
        ],
        "expectedContentType": "application/octet-stream",
        "bodyMarkers": [
          "sb-fixture:resource-range-request-file:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "non-html-resources/delivery-edge-cases",
      "robotsStanzas": []
    },
    {
      "id": "resource-404-file-reference",
      "title": "Broken resource references",
      "summary": "An HTML page referencing one missing image and one missing stylesheet, both registered 404 targets.",
      "route": "/tests/non-html/resource-404-file-reference",
      "method": "GET",
      "group": "non-html-resources",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:resource-404-file-reference:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "BrokenResources"
      ],
      "contentRef": "non-html-resources/broken-references",
      "robotsStanzas": []
    },
    {
      "id": "resource-404-missing-image",
      "title": "Missing image target",
      "summary": "A deliberately missing image URL registered so the broken reference is a validated 404 fixture.",
      "route": "/tests/non-html/missing/sb-fixture-missing.png",
      "method": "GET",
      "group": "non-html-resources",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 404,
        "expectedHeaders": [],
        "expectedContentType": "text/plain; charset=utf-8",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "ResourceNotFoundUrls"
      ],
      "contentRef": "non-html-resources/broken-references",
      "robotsStanzas": []
    },
    {
      "id": "resource-404-missing-stylesheet",
      "title": "Missing stylesheet target",
      "summary": "A deliberately missing stylesheet URL registered so the broken reference is a validated 404 fixture.",
      "route": "/tests/non-html/missing/sb-fixture-missing.css",
      "method": "GET",
      "group": "non-html-resources",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 404,
        "expectedHeaders": [],
        "expectedContentType": "text/plain; charset=utf-8",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "ResourceNotFoundUrls"
      ],
      "contentRef": "non-html-resources/broken-references",
      "robotsStanzas": []
    },
    {
      "id": "sd-article-valid",
      "title": "Article — fully valid",
      "summary": "Article with every recommended property, three image ratios, one Person author.",
      "route": "/tests/structured-data/features/article/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-article-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/article",
      "robotsStanzas": []
    },
    {
      "id": "sd-article-valid-minimal",
      "title": "Article — bare type only",
      "summary": "Bare Article with @type only; Google defines no required properties for Article.",
      "route": "/tests/structured-data/features/article/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-article-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/article",
      "robotsStanzas": []
    },
    {
      "id": "sd-article-valid-newsarticle",
      "title": "NewsArticle — fully valid subtype",
      "summary": "NewsArticle subtype, fully populated, two authors (Person + Organization).",
      "route": "/tests/structured-data/features/article/valid-newsarticle",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-article-valid-newsarticle:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/article",
      "robotsStanzas": []
    },
    {
      "id": "sd-article-missing-headline",
      "title": "Article — missing headline",
      "summary": "Valid Article payload with the recommended headline absent.",
      "route": "/tests/structured-data/features/article/missing-headline",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-article-missing-headline:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/article",
      "robotsStanzas": []
    },
    {
      "id": "sd-article-invalid-datepublished",
      "title": "Article — invalid datePublished",
      "summary": "Valid Article payload with a datePublished that does not parse as ISO 8601.",
      "route": "/tests/structured-data/features/article/invalid-datepublished",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-article-invalid-datepublished:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/article",
      "robotsStanzas": []
    },
    {
      "id": "sd-article-author-string",
      "title": "Article — author as plain string",
      "summary": "Valid Article payload whose author is a plain string instead of a typed object.",
      "route": "/tests/structured-data/features/article/author-string",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-article-author-string:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/article",
      "robotsStanzas": []
    },
    {
      "id": "sd-article-image-malformed-url",
      "title": "Article — malformed image URL",
      "summary": "Valid Article payload whose first image entry is a malformed URL.",
      "route": "/tests/structured-data/features/article/image-malformed-url",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-article-image-malformed-url:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/article",
      "robotsStanzas": []
    },
    {
      "id": "sd-breadcrumb-valid",
      "title": "Breadcrumb — fully valid trail",
      "summary": "Three-item trail where every ListItem carries position, name and item.",
      "route": "/tests/structured-data/features/breadcrumb/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-breadcrumb-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/breadcrumb",
      "robotsStanzas": []
    },
    {
      "id": "sd-breadcrumb-valid-minimal",
      "title": "Breadcrumb — final item omits item",
      "summary": "Same trail but the final ListItem omits item, exercising the documented relaxation.",
      "route": "/tests/structured-data/features/breadcrumb/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-breadcrumb-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/breadcrumb",
      "robotsStanzas": []
    },
    {
      "id": "sd-breadcrumb-valid-multiple-trails",
      "title": "Breadcrumb — two independent trails",
      "summary": "Two independent BreadcrumbList objects on one page, each fully valid.",
      "route": "/tests/structured-data/features/breadcrumb/valid-multiple-trails",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-breadcrumb-valid-multiple-trails:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/breadcrumb",
      "robotsStanzas": []
    },
    {
      "id": "sd-breadcrumb-missing-name",
      "title": "Breadcrumb — missing name",
      "summary": "Valid trail except the second ListItem lacks its required name.",
      "route": "/tests/structured-data/features/breadcrumb/missing-name",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-breadcrumb-missing-name:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/breadcrumb",
      "robotsStanzas": []
    },
    {
      "id": "sd-breadcrumb-malformed-item-url",
      "title": "Breadcrumb — malformed item URL",
      "summary": "Valid trail except the second ListItem carries a malformed item URL.",
      "route": "/tests/structured-data/features/breadcrumb/malformed-item-url",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-breadcrumb-malformed-item-url:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/breadcrumb",
      "robotsStanzas": []
    },
    {
      "id": "sd-breadcrumb-position-string",
      "title": "Breadcrumb — position as string",
      "summary": "Valid trail except the second position is a string where an integer is required.",
      "route": "/tests/structured-data/features/breadcrumb/position-string",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-breadcrumb-position-string:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/breadcrumb",
      "robotsStanzas": []
    },
    {
      "id": "sd-breadcrumb-single-item",
      "title": "Breadcrumb — single item trail",
      "summary": "BreadcrumbList whose itemListElement holds only one ListItem, below the two-item minimum.",
      "route": "/tests/structured-data/features/breadcrumb/single-item",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-breadcrumb-single-item:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/breadcrumb",
      "robotsStanzas": []
    },
    {
      "id": "sd-breadcrumb-position-gap",
      "title": "Breadcrumb — position gap",
      "summary": "Valid trail except the third position jumps to 4, leaving a sequence gap.",
      "route": "/tests/structured-data/features/breadcrumb/position-gap",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-breadcrumb-position-gap:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/breadcrumb",
      "robotsStanzas": []
    },
    {
      "id": "sd-carousel-valid",
      "title": "Carousel — all-in-one Recipe list",
      "summary": "All-in-one ItemList: three ListItems with nested Recipe items and anchored same-page URLs.",
      "route": "/tests/structured-data/features/carousel/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-carousel-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/carousel",
      "robotsStanzas": []
    },
    {
      "id": "sd-carousel-valid-minimal",
      "title": "Carousel — summary page list",
      "summary": "Summary-page mode: three ListItems with only position and url, linking to the detail routes.",
      "route": "/tests/structured-data/features/carousel/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-carousel-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/carousel",
      "robotsStanzas": []
    },
    {
      "id": "sd-carousel-detail-1",
      "title": "Carousel — Recipe detail page 1",
      "summary": "Recipe detail page backing summary item 1; valid Recipe markup.",
      "route": "/tests/structured-data/features/carousel/detail-1",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-carousel-detail-1:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/carousel",
      "robotsStanzas": []
    },
    {
      "id": "sd-carousel-detail-2",
      "title": "Carousel — Recipe detail page 2",
      "summary": "Recipe detail page backing summary item 2; valid Recipe markup.",
      "route": "/tests/structured-data/features/carousel/detail-2",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-carousel-detail-2:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/carousel",
      "robotsStanzas": []
    },
    {
      "id": "sd-carousel-detail-3",
      "title": "Carousel — Recipe detail page 3",
      "summary": "Recipe detail page backing summary item 3; valid Recipe markup.",
      "route": "/tests/structured-data/features/carousel/detail-3",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-carousel-detail-3:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/carousel",
      "robotsStanzas": []
    },
    {
      "id": "sd-carousel-missing-position",
      "title": "Carousel — missing position",
      "summary": "All-in-one list whose second ListItem lacks its required position.",
      "route": "/tests/structured-data/features/carousel/missing-position",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-carousel-missing-position:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/carousel",
      "robotsStanzas": []
    },
    {
      "id": "sd-carousel-malformed-url",
      "title": "Carousel — malformed item URL",
      "summary": "All-in-one list whose second nested Recipe carries a malformed url.",
      "route": "/tests/structured-data/features/carousel/malformed-url",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-carousel-malformed-url:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/carousel",
      "robotsStanzas": []
    },
    {
      "id": "sd-carousel-item-string",
      "title": "Carousel — item as plain string",
      "summary": "All-in-one list whose second item is a plain string instead of a typed object.",
      "route": "/tests/structured-data/features/carousel/item-string",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-carousel-item-string:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/carousel",
      "robotsStanzas": []
    },
    {
      "id": "sd-carousel-mixed-types",
      "title": "Carousel — mixed item types",
      "summary": "All-in-one list where a Movie sits among Recipe items, breaking type homogeneity.",
      "route": "/tests/structured-data/features/carousel/mixed-types",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-carousel-mixed-types:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/carousel",
      "robotsStanzas": []
    },
    {
      "id": "sd-carousel-single-item",
      "title": "Carousel — single item list",
      "summary": "All-in-one list holding only one ListItem, below the two-item minimum.",
      "route": "/tests/structured-data/features/carousel/single-item",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-carousel-single-item:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/carousel",
      "robotsStanzas": []
    },
    {
      "id": "sd-course-list-valid",
      "title": "Course List — fully valid",
      "summary": "ItemList of 3 courses, all required + recommended properties.",
      "route": "/tests/structured-data/features/course-list/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-course-list-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/course-list",
      "robotsStanzas": []
    },
    {
      "id": "sd-course-list-valid-minimal",
      "title": "Course List — required only",
      "summary": "Same 3 courses, required properties only (no provider).",
      "route": "/tests/structured-data/features/course-list/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-course-list-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/course-list",
      "robotsStanzas": []
    },
    {
      "id": "sd-course-list-missing-description",
      "title": "Course List — missing description",
      "summary": "Valid list except the second course lacks its required description.",
      "route": "/tests/structured-data/features/course-list/missing-description",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-course-list-missing-description:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/course-list",
      "robotsStanzas": []
    },
    {
      "id": "sd-course-list-invalid-url",
      "title": "Course List — malformed course URL",
      "summary": "Valid list except the second course URL carries a malformed scheme.",
      "route": "/tests/structured-data/features/course-list/invalid-url",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-course-list-invalid-url:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/course-list",
      "robotsStanzas": []
    },
    {
      "id": "sd-course-list-position-wrong-type",
      "title": "Course List — position as string",
      "summary": "Valid list except the second ListItem position is a string, not an integer.",
      "route": "/tests/structured-data/features/course-list/position-wrong-type",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-course-list-position-wrong-type:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/course-list",
      "robotsStanzas": []
    },
    {
      "id": "sd-course-list-too-few-items",
      "title": "Course List — too few courses",
      "summary": "Only two courses in the list, below the three-course minimum.",
      "route": "/tests/structured-data/features/course-list/too-few-items",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-course-list-too-few-items:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/course-list",
      "robotsStanzas": []
    },
    {
      "id": "sd-course-list-duplicate-url",
      "title": "Course List — duplicate course URL",
      "summary": "Valid list except the second course reuses the first course URL.",
      "route": "/tests/structured-data/features/course-list/duplicate-url",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-course-list-duplicate-url:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/course-list",
      "robotsStanzas": []
    },
    {
      "id": "sd-dataset-valid",
      "title": "Dataset — fully valid",
      "summary": "Dataset with all required + recommended properties, one CSV distribution.",
      "route": "/tests/structured-data/features/dataset/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-dataset-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/dataset",
      "robotsStanzas": []
    },
    {
      "id": "sd-dataset-valid-minimal",
      "title": "Dataset — required only",
      "summary": "Dataset carrying only the required name and description.",
      "route": "/tests/structured-data/features/dataset/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-dataset-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/dataset",
      "robotsStanzas": []
    },
    {
      "id": "sd-dataset-missing-name",
      "title": "Dataset — missing name",
      "summary": "Fully populated Dataset with the required name removed.",
      "route": "/tests/structured-data/features/dataset/missing-name",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-dataset-missing-name:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/dataset",
      "robotsStanzas": []
    },
    {
      "id": "sd-dataset-description-too-short",
      "title": "Dataset — description too short",
      "summary": "Fully populated Dataset whose description is 14 characters, below the 50-character minimum.",
      "route": "/tests/structured-data/features/dataset/description-too-short",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-dataset-description-too-short:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/dataset",
      "robotsStanzas": []
    },
    {
      "id": "sd-dataset-invalid-temporalcoverage",
      "title": "Dataset — invalid temporalCoverage",
      "summary": "Fully populated Dataset whose temporalCoverage is prose rather than ISO 8601.",
      "route": "/tests/structured-data/features/dataset/invalid-temporalcoverage",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-dataset-invalid-temporalcoverage:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/dataset",
      "robotsStanzas": []
    },
    {
      "id": "sd-dataset-distribution-wrong-type",
      "title": "Dataset — distribution as plain string",
      "summary": "Fully populated Dataset whose distribution is a string where a DataDownload object is expected.",
      "route": "/tests/structured-data/features/dataset/distribution-wrong-type",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-dataset-distribution-wrong-type:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/dataset",
      "robotsStanzas": []
    },
    {
      "id": "sd-dataset-invalid-download-url",
      "title": "Dataset — malformed download URL",
      "summary": "Fully populated Dataset whose distribution contentUrl carries a malformed scheme.",
      "route": "/tests/structured-data/features/dataset/invalid-download-url",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-dataset-invalid-download-url:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/dataset",
      "robotsStanzas": []
    },
    {
      "id": "sd-discussion-forum-valid",
      "title": "Discussion forum: valid",
      "summary": "Full thread: posting with all required and recommended properties, two comments, one nested reply.",
      "route": "/tests/structured-data/features/discussion-forum/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-discussion-forum-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/discussion-forum",
      "robotsStanzas": []
    },
    {
      "id": "sd-discussion-forum-valid-minimal",
      "title": "Discussion forum: valid minimal",
      "summary": "Posting with `author.name`, `datePublished`, `text` only.",
      "route": "/tests/structured-data/features/discussion-forum/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-discussion-forum-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/discussion-forum",
      "robotsStanzas": []
    },
    {
      "id": "sd-discussion-forum-missing-author",
      "title": "Discussion forum: missing author",
      "summary": "Posting lacks required `author`.",
      "route": "/tests/structured-data/features/discussion-forum/missing-author",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-discussion-forum-missing-author:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/discussion-forum",
      "robotsStanzas": []
    },
    {
      "id": "sd-discussion-forum-invalid-datepublished",
      "title": "Discussion forum: invalid datePublished",
      "summary": "`datePublished` is `05/06/2026 14:30`, not ISO 8601.",
      "route": "/tests/structured-data/features/discussion-forum/invalid-datepublished",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-discussion-forum-invalid-datepublished:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/discussion-forum",
      "robotsStanzas": []
    },
    {
      "id": "sd-discussion-forum-missing-content",
      "title": "Discussion forum: missing content",
      "summary": "Posting has no `text`, `image`, or `video`.",
      "route": "/tests/structured-data/features/discussion-forum/missing-content",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-discussion-forum-missing-content:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/discussion-forum",
      "robotsStanzas": []
    },
    {
      "id": "sd-discussion-forum-comment-wrong-type",
      "title": "Discussion forum: comment wrong type",
      "summary": "`comment` is a plain string instead of Comment object(s).",
      "route": "/tests/structured-data/features/discussion-forum/comment-wrong-type",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-discussion-forum-comment-wrong-type:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/discussion-forum",
      "robotsStanzas": []
    },
    {
      "id": "sd-discussion-forum-invalid-interactiontype",
      "title": "Discussion forum: invalid interactionType",
      "summary": "`interactionStatistic` uses unsupported `https://schema.org/UpvoteAction`.",
      "route": "/tests/structured-data/features/discussion-forum/invalid-interactiontype",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-discussion-forum-invalid-interactiontype:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/discussion-forum",
      "robotsStanzas": []
    },
    {
      "id": "sd-education-qa-valid",
      "title": "Education Q&A: valid",
      "summary": "Full `Quiz` with `about`, `educationalAlignment` (subject + level) and two complete flashcard `Question`s.",
      "route": "/tests/structured-data/features/education-qa/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-education-qa-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/education-qa",
      "robotsStanzas": []
    },
    {
      "id": "sd-education-qa-valid-minimal",
      "title": "Education Q&A: valid minimal",
      "summary": "Required-only `Quiz` (`hasPart` questions with `eduQuestionType`, `text`, `acceptedAnswer`); no `about`, no `educationalAlignment`.",
      "route": "/tests/structured-data/features/education-qa/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-education-qa-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/education-qa",
      "robotsStanzas": []
    },
    {
      "id": "sd-education-qa-missing-acceptedanswer",
      "title": "Education Q&A: missing acceptedAnswer",
      "summary": "First `Question` has no `acceptedAnswer`.",
      "route": "/tests/structured-data/features/education-qa/missing-acceptedanswer",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-education-qa-missing-acceptedanswer:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/education-qa",
      "robotsStanzas": []
    },
    {
      "id": "sd-education-qa-bad-eduquestiontype",
      "title": "Education Q&A: bad eduQuestionType",
      "summary": "First `Question` declares `eduQuestionType: \"MultipleChoice\"`.",
      "route": "/tests/structured-data/features/education-qa/bad-eduquestiontype",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-education-qa-bad-eduquestiontype:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/education-qa",
      "robotsStanzas": []
    },
    {
      "id": "sd-education-qa-wrong-type-acceptedanswer",
      "title": "Education Q&A: wrong type acceptedAnswer",
      "summary": "First `Question.acceptedAnswer` is a plain string instead of an `Answer` object.",
      "route": "/tests/structured-data/features/education-qa/wrong-type-acceptedanswer",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-education-qa-wrong-type-acceptedanswer:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/education-qa",
      "robotsStanzas": []
    },
    {
      "id": "sd-education-qa-multiple-acceptedanswers",
      "title": "Education Q&A: multiple acceptedAnswers",
      "summary": "First `Question` carries an array of two `Answer` objects in `acceptedAnswer`.",
      "route": "/tests/structured-data/features/education-qa/multiple-acceptedanswers",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-education-qa-multiple-acceptedanswers:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/education-qa",
      "robotsStanzas": []
    },
    {
      "id": "sd-employer-aggregate-rating-valid",
      "title": "Employer aggregate rating: valid",
      "summary": "Full entity: `itemReviewed` Organization with `name` + `sameAs`, `ratingValue`, both `ratingCount` and `reviewCount`, explicit `bestRating`/`worstRating`.",
      "route": "/tests/structured-data/features/employer-aggregate-rating/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-employer-aggregate-rating-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/employer-aggregate-rating",
      "robotsStanzas": []
    },
    {
      "id": "sd-employer-aggregate-rating-valid-minimal",
      "title": "Employer aggregate rating: valid minimal",
      "summary": "Required-only: `itemReviewed` (name only), `ratingValue`, `ratingCount`.",
      "route": "/tests/structured-data/features/employer-aggregate-rating/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-employer-aggregate-rating-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/employer-aggregate-rating",
      "robotsStanzas": []
    },
    {
      "id": "sd-employer-aggregate-rating-missing-itemreviewed",
      "title": "Employer aggregate rating: missing itemReviewed",
      "summary": "`itemReviewed` removed entirely.",
      "route": "/tests/structured-data/features/employer-aggregate-rating/missing-itemreviewed",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-employer-aggregate-rating-missing-itemreviewed:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/employer-aggregate-rating",
      "robotsStanzas": []
    },
    {
      "id": "sd-employer-aggregate-rating-missing-count",
      "title": "Employer aggregate rating: missing count",
      "summary": "Both `ratingCount` and `reviewCount` removed.",
      "route": "/tests/structured-data/features/employer-aggregate-rating/missing-count",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-employer-aggregate-rating-missing-count:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/employer-aggregate-rating",
      "robotsStanzas": []
    },
    {
      "id": "sd-employer-aggregate-rating-bad-ratingvalue",
      "title": "Employer aggregate rating: bad ratingValue",
      "summary": "`ratingValue` is the word `\"excellent\"` — not a number, fraction, or percentage.",
      "route": "/tests/structured-data/features/employer-aggregate-rating/bad-ratingvalue",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-employer-aggregate-rating-bad-ratingvalue:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/employer-aggregate-rating",
      "robotsStanzas": []
    },
    {
      "id": "sd-employer-aggregate-rating-wrong-type-itemreviewed",
      "title": "Employer aggregate rating: wrong type itemReviewed",
      "summary": "`itemReviewed` is a plain string instead of an `Organization` object.",
      "route": "/tests/structured-data/features/employer-aggregate-rating/wrong-type-itemreviewed",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-employer-aggregate-rating-wrong-type-itemreviewed:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/employer-aggregate-rating",
      "robotsStanzas": []
    },
    {
      "id": "sd-employer-aggregate-rating-out-of-bounds",
      "title": "Employer aggregate rating: out of bounds",
      "summary": "`ratingValue` of `6.3` against the declared 1–5 scale.",
      "route": "/tests/structured-data/features/employer-aggregate-rating/out-of-bounds",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-employer-aggregate-rating-out-of-bounds:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/employer-aggregate-rating",
      "robotsStanzas": []
    },
    {
      "id": "sd-event-valid",
      "title": "Event: valid",
      "summary": "Full `Event`: all required plus `description`, `endDate`, `eventStatus`, three `image` URLs (16x9/4x3/1x1), `offers`, `performer`, `organizer`, `location.name`.",
      "route": "/tests/structured-data/features/event/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-event-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/event",
      "robotsStanzas": []
    },
    {
      "id": "sd-event-valid-minimal",
      "title": "Event: valid minimal",
      "summary": "Required-only: `name`, `startDate`, `location` with full `PostalAddress`.",
      "route": "/tests/structured-data/features/event/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-event-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/event",
      "robotsStanzas": []
    },
    {
      "id": "sd-event-missing-startdate",
      "title": "Event: missing startDate",
      "summary": "`startDate` removed.",
      "route": "/tests/structured-data/features/event/missing-startdate",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-event-missing-startdate:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/event",
      "robotsStanzas": []
    },
    {
      "id": "sd-event-bad-startdate",
      "title": "Event: bad startDate",
      "summary": "`startDate` is `\"18th September 2026, 7:30pm\"` — not ISO-8601.",
      "route": "/tests/structured-data/features/event/bad-startdate",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-event-bad-startdate:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/event",
      "robotsStanzas": []
    },
    {
      "id": "sd-event-wrong-type-location",
      "title": "Event: wrong type location",
      "summary": "`location` is a plain string instead of a `Place` object.",
      "route": "/tests/structured-data/features/event/wrong-type-location",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-event-wrong-type-location:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/event",
      "robotsStanzas": []
    },
    {
      "id": "sd-event-enddate-before-startdate",
      "title": "Event: endDate before startDate",
      "summary": "`endDate` is the evening before `startDate`.",
      "route": "/tests/structured-data/features/event/enddate-before-startdate",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-event-enddate-before-startdate:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/event",
      "robotsStanzas": []
    },
    {
      "id": "sd-event-bad-availability",
      "title": "Event: bad availability",
      "summary": "`offers.availability` is `https://schema.org/Available` — not in {`InStock`, `SoldOut`, `PreOrder`}.",
      "route": "/tests/structured-data/features/event/bad-availability",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-event-bad-availability:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/event",
      "robotsStanzas": []
    },
    {
      "id": "sd-event-rescheduled-missing-previousstartdate",
      "title": "Event: rescheduled missing previousStartDate",
      "summary": "`eventStatus` set to `EventRescheduled` with no `previousStartDate`.",
      "route": "/tests/structured-data/features/event/rescheduled-missing-previousstartdate",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-event-rescheduled-missing-previousstartdate:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/event",
      "robotsStanzas": []
    },
    {
      "id": "sd-faq-valid",
      "title": "FAQ: valid",
      "summary": "Three-question `FAQPage`, answers using allowed HTML.",
      "route": "/tests/structured-data/features/faq/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-faq-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/faq",
      "robotsStanzas": []
    },
    {
      "id": "sd-faq-valid-minimal",
      "title": "FAQ: valid minimal",
      "summary": "Single-question `FAQPage`, plain-text answer.",
      "route": "/tests/structured-data/features/faq/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-faq-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/faq",
      "robotsStanzas": []
    },
    {
      "id": "sd-faq-missing-mainentity",
      "title": "FAQ: missing mainEntity",
      "summary": "`FAQPage` node with no `mainEntity`.",
      "route": "/tests/structured-data/features/faq/missing-mainentity",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-faq-missing-mainentity:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/faq",
      "robotsStanzas": []
    },
    {
      "id": "sd-faq-missing-acceptedanswer",
      "title": "FAQ: missing acceptedAnswer",
      "summary": "First `Question` lacks `acceptedAnswer`.",
      "route": "/tests/structured-data/features/faq/missing-acceptedanswer",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-faq-missing-acceptedanswer:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/faq",
      "robotsStanzas": []
    },
    {
      "id": "sd-faq-wrong-answer-type",
      "title": "FAQ: wrong answer type",
      "summary": "First `acceptedAnswer` is a plain string instead of an `Answer` object.",
      "route": "/tests/structured-data/features/faq/wrong-answer-type",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-faq-wrong-answer-type:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/faq",
      "robotsStanzas": []
    },
    {
      "id": "sd-faq-bad-question-type",
      "title": "FAQ: bad question type",
      "summary": "First `mainEntity` item typed `FAQItem` instead of `Question`.",
      "route": "/tests/structured-data/features/faq/bad-question-type",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-faq-bad-question-type:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/faq",
      "robotsStanzas": []
    },
    {
      "id": "sd-image-metadata-valid",
      "title": "Image Metadata: valid",
      "summary": "Full `ImageObject`: `contentUrl` plus all five credit/licensing properties (`license`, `acquireLicensePage`, `creator`, `creditText`, `copyrightNotice`).",
      "route": "/tests/structured-data/features/image-metadata/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-image-metadata-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/image-metadata",
      "robotsStanzas": []
    },
    {
      "id": "sd-image-metadata-valid-minimal",
      "title": "Image Metadata: valid minimal",
      "summary": "Required-only: `contentUrl` plus `creditText` satisfying the one-of group.",
      "route": "/tests/structured-data/features/image-metadata/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-image-metadata-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/image-metadata",
      "robotsStanzas": []
    },
    {
      "id": "sd-image-metadata-missing-contenturl",
      "title": "Image Metadata: missing contentUrl",
      "summary": "Required `contentUrl` omitted.",
      "route": "/tests/structured-data/features/image-metadata/missing-contenturl",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-image-metadata-missing-contenturl:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/image-metadata",
      "robotsStanzas": []
    },
    {
      "id": "sd-image-metadata-missing-all-credit",
      "title": "Image Metadata: missing all credit",
      "summary": "`contentUrl` only; none of `creator`/`creditText`/`copyrightNotice`/`license` present.",
      "route": "/tests/structured-data/features/image-metadata/missing-all-credit",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-image-metadata-missing-all-credit:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/image-metadata",
      "robotsStanzas": []
    },
    {
      "id": "sd-image-metadata-invalid-license-url",
      "title": "Image Metadata: invalid license URL",
      "summary": "`license` holds free text instead of a URL.",
      "route": "/tests/structured-data/features/image-metadata/invalid-license-url",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-image-metadata-invalid-license-url:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/image-metadata",
      "robotsStanzas": []
    },
    {
      "id": "sd-image-metadata-wrong-creator-type",
      "title": "Image Metadata: wrong creator type",
      "summary": "`creator` is a plain string instead of a `Person`/`Organization` object.",
      "route": "/tests/structured-data/features/image-metadata/wrong-creator-type",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-image-metadata-wrong-creator-type:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/image-metadata",
      "robotsStanzas": []
    },
    {
      "id": "sd-job-posting-valid",
      "title": "Job Posting: valid",
      "summary": "On-site role with all required + recommended properties: full address, salary range, enum employment type, far-future `validThrough`, identifier, `directApply`.",
      "route": "/tests/structured-data/features/job-posting/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-job-posting-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/job-posting",
      "robotsStanzas": []
    },
    {
      "id": "sd-job-posting-valid-minimal",
      "title": "Job Posting: valid minimal",
      "summary": "Required-only on-site role: `title`, `datePosted`, `description`, `hiringOrganization`, full `jobLocation`.",
      "route": "/tests/structured-data/features/job-posting/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-job-posting-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/job-posting",
      "robotsStanzas": []
    },
    {
      "id": "sd-job-posting-valid-remote",
      "title": "Job Posting: valid remote",
      "summary": "100% remote role: `jobLocationType: \"TELECOMMUTE\"` plus `applicantLocationRequirements`, no `jobLocation`.",
      "route": "/tests/structured-data/features/job-posting/valid-remote",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-job-posting-valid-remote:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/job-posting",
      "robotsStanzas": []
    },
    {
      "id": "sd-job-posting-missing-title",
      "title": "Job Posting: missing title",
      "summary": "Required `title` omitted.",
      "route": "/tests/structured-data/features/job-posting/missing-title",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-job-posting-missing-title:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/job-posting",
      "robotsStanzas": []
    },
    {
      "id": "sd-job-posting-bad-dateposted",
      "title": "Job Posting: bad datePosted",
      "summary": "`datePosted` is `09/06/2026` — not ISO 8601.",
      "route": "/tests/structured-data/features/job-posting/bad-dateposted",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-job-posting-bad-dateposted:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/job-posting",
      "robotsStanzas": []
    },
    {
      "id": "sd-job-posting-wrong-hiringorganization-type",
      "title": "Job Posting: wrong hiringOrganization type",
      "summary": "`hiringOrganization` is a plain string instead of an `Organization` object.",
      "route": "/tests/structured-data/features/job-posting/wrong-hiringorganization-type",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-job-posting-wrong-hiringorganization-type:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/job-posting",
      "robotsStanzas": []
    },
    {
      "id": "sd-job-posting-bad-employmenttype",
      "title": "Job Posting: bad employmentType",
      "summary": "`employmentType` is `Full-Time` — not in the case-sensitive enum.",
      "route": "/tests/structured-data/features/job-posting/bad-employmenttype",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-job-posting-bad-employmenttype:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/job-posting",
      "robotsStanzas": []
    },
    {
      "id": "sd-job-posting-validthrough-past",
      "title": "Job Posting: validThrough in the past",
      "summary": "`validThrough` is `2020-01-01` — before `datePosted` and in the past.",
      "route": "/tests/structured-data/features/job-posting/validthrough-past",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-job-posting-validthrough-past:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/job-posting",
      "robotsStanzas": []
    },
    {
      "id": "sd-job-posting-missing-joblocation",
      "title": "Job Posting: missing jobLocation",
      "summary": "Non-remote posting with `jobLocation` removed — no `jobLocationType`, no `applicantLocationRequirements`.",
      "route": "/tests/structured-data/features/job-posting/missing-joblocation",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-job-posting-missing-joblocation:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/job-posting",
      "robotsStanzas": []
    },
    {
      "id": "sd-job-posting-remote-missing-applicantlocation",
      "title": "Job Posting: remote missing applicantLocationRequirements",
      "summary": "TELECOMMUTE posting with `applicantLocationRequirements` removed and no `jobLocation`.",
      "route": "/tests/structured-data/features/job-posting/remote-missing-applicantlocation",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-job-posting-remote-missing-applicantlocation:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/job-posting",
      "robotsStanzas": []
    },
    {
      "id": "sd-local-business-valid",
      "title": "Local Business: valid",
      "summary": "Full `Restaurant`: all required + recommended properties, carousel-grade image set, late-night and closed-day opening hours, nested department.",
      "route": "/tests/structured-data/features/local-business/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-local-business-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/local-business",
      "robotsStanzas": []
    },
    {
      "id": "sd-local-business-valid-minimal",
      "title": "Local Business: valid minimal",
      "summary": "`LocalBusiness` with only the required `name` and `address`.",
      "route": "/tests/structured-data/features/local-business/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-local-business-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/local-business",
      "robotsStanzas": []
    },
    {
      "id": "sd-local-business-missing-address",
      "title": "Local Business: missing address",
      "summary": "Valid payload with the required `address` property removed.",
      "route": "/tests/structured-data/features/local-business/missing-address",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-local-business-missing-address:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/local-business",
      "robotsStanzas": []
    },
    {
      "id": "sd-local-business-geo-out-of-range",
      "title": "Local Business: geo out of range",
      "summary": "Valid payload with `geo.latitude` set to `153.38113` — outside -90..90.",
      "route": "/tests/structured-data/features/local-business/geo-out-of-range",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-local-business-geo-out-of-range:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/local-business",
      "robotsStanzas": []
    },
    {
      "id": "sd-local-business-address-string",
      "title": "Local Business: address as plain string",
      "summary": "Valid payload with `address` as a plain string instead of a `PostalAddress` object.",
      "route": "/tests/structured-data/features/local-business/address-string",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-local-business-address-string:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/local-business",
      "robotsStanzas": []
    },
    {
      "id": "sd-local-business-bad-opening-hours",
      "title": "Local Business: bad opening hours",
      "summary": "Valid payload with one `opens` value as `\"11:30 AM\"` instead of `hh:mm:ss`.",
      "route": "/tests/structured-data/features/local-business/bad-opening-hours",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-local-business-bad-opening-hours:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/local-business",
      "robotsStanzas": []
    },
    {
      "id": "sd-local-business-pricerange-too-long",
      "title": "Local Business: priceRange too long",
      "summary": "Valid payload with a 119-character `priceRange` value — the limit is under 100 characters.",
      "route": "/tests/structured-data/features/local-business/pricerange-too-long",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-local-business-pricerange-too-long:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/local-business",
      "robotsStanzas": []
    },
    {
      "id": "sd-math-solver-valid",
      "title": "Math Solver: valid",
      "summary": "Full `[\"MathSolver\", \"LearningResource\"]` payload with all required + recommended properties and `learningResourceType: \"Math Solver\"`.",
      "route": "/tests/structured-data/features/math-solver/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-math-solver-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/math-solver",
      "robotsStanzas": []
    },
    {
      "id": "sd-math-solver-valid-minimal",
      "title": "Math Solver: valid minimal",
      "summary": "Required-only `MathSolver`: `url`, `usageInfo`, and a `SolveMathAction` with `target` + `mathExpression-input`.",
      "route": "/tests/structured-data/features/math-solver/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-math-solver-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/math-solver",
      "robotsStanzas": []
    },
    {
      "id": "sd-math-solver-missing-usageinfo",
      "title": "Math Solver: missing usageInfo",
      "summary": "Valid payload with the required `usageInfo` property removed.",
      "route": "/tests/structured-data/features/math-solver/missing-usageinfo",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-math-solver-missing-usageinfo:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/math-solver",
      "robotsStanzas": []
    },
    {
      "id": "sd-math-solver-bad-target-url",
      "title": "Math Solver: bad target URL",
      "summary": "Valid payload with `potentialAction.target` as a relative URL instead of a fully-qualified URL.",
      "route": "/tests/structured-data/features/math-solver/bad-target-url",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-math-solver-bad-target-url:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/math-solver",
      "robotsStanzas": []
    },
    {
      "id": "sd-math-solver-potentialaction-string",
      "title": "Math Solver: potentialAction as plain string",
      "summary": "Valid payload with `potentialAction` as a plain URL string instead of a `SolveMathAction` object.",
      "route": "/tests/structured-data/features/math-solver/potentialaction-string",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-math-solver-potentialaction-string:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/math-solver",
      "robotsStanzas": []
    },
    {
      "id": "sd-math-solver-bad-eduquestiontype",
      "title": "Math Solver: bad eduQuestionType",
      "summary": "Valid payload with `eduQuestionType` containing `\"Quantum Mechanics\"` in place of `\"Derivative\"`.",
      "route": "/tests/structured-data/features/math-solver/bad-eduquestiontype",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-math-solver-bad-eduquestiontype:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/math-solver",
      "robotsStanzas": []
    },
    {
      "id": "sd-movie-valid",
      "title": "Movie: valid",
      "summary": "All-in-one `ItemList` of two `Movie` items, each with all required + recommended properties and 6:9 poster images.",
      "route": "/tests/structured-data/features/movie/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-movie-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/movie",
      "robotsStanzas": []
    },
    {
      "id": "sd-movie-valid-minimal",
      "title": "Movie: valid minimal",
      "summary": "Same two-item `ItemList` with required properties only: `position`, `item.name`, `item.url`, `item.image`.",
      "route": "/tests/structured-data/features/movie/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-movie-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/movie",
      "robotsStanzas": []
    },
    {
      "id": "sd-movie-missing-image",
      "title": "Movie: missing image",
      "summary": "Valid payload with the required `image` property removed from the first movie.",
      "route": "/tests/structured-data/features/movie/missing-image",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-movie-missing-image:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/movie",
      "robotsStanzas": []
    },
    {
      "id": "sd-movie-bad-datecreated",
      "title": "Movie: bad dateCreated",
      "summary": "Valid payload with the first movie's `dateCreated` set to `\"13-45-2026\"` — not valid ISO-8601.",
      "route": "/tests/structured-data/features/movie/bad-datecreated",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-movie-bad-datecreated:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/movie",
      "robotsStanzas": []
    },
    {
      "id": "sd-movie-director-string",
      "title": "Movie: director as plain string",
      "summary": "Valid payload with the first movie's `director` as a plain string instead of a `Person` object.",
      "route": "/tests/structured-data/features/movie/director-string",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-movie-director-string:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/movie",
      "robotsStanzas": []
    },
    {
      "id": "sd-movie-standalone",
      "title": "Movie: standalone (no ItemList)",
      "summary": "The first `Movie` from the valid payload published standalone, with no `ItemList` wrapper.",
      "route": "/tests/structured-data/features/movie/standalone",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-movie-standalone:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/movie",
      "robotsStanzas": []
    },
    {
      "id": "sd-movie-duplicate-position",
      "title": "Movie: duplicate position",
      "summary": "Valid payload with both `ListItem` elements declaring `position: 1`.",
      "route": "/tests/structured-data/features/movie/duplicate-position",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-movie-duplicate-position:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/movie",
      "robotsStanzas": []
    },
    {
      "id": "sd-organization-valid",
      "title": "Organization: valid",
      "summary": "Full `Organization`: name, legal identity, 600x600 logo, address, contactPoint, sameAs, foundingDate, numberOfEmployees, and all identifier properties.",
      "route": "/tests/structured-data/features/organization/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-organization-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/organization",
      "robotsStanzas": []
    },
    {
      "id": "sd-organization-valid-minimal",
      "title": "Organization: valid minimal",
      "summary": "Minimal useful entity: `name` + `url` only; Google requires no Organization properties.",
      "route": "/tests/structured-data/features/organization/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-organization-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/organization",
      "robotsStanzas": []
    },
    {
      "id": "sd-organization-missing-name",
      "title": "Organization: missing name",
      "summary": "`name` removed; Google lists no required Organization properties, so this must warn, not error.",
      "route": "/tests/structured-data/features/organization/missing-name",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-organization-missing-name:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/organization",
      "robotsStanzas": []
    },
    {
      "id": "sd-organization-invalid-country-code",
      "title": "Organization: invalid country code",
      "summary": "`addressCountry` is `\"United Kingdom\"` instead of the two-letter ISO 3166-1 alpha-2 code `GB`.",
      "route": "/tests/structured-data/features/organization/invalid-country-code",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-organization-invalid-country-code:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/organization",
      "robotsStanzas": []
    },
    {
      "id": "sd-organization-contactpoint-wrong-type",
      "title": "Organization: contactPoint wrong type",
      "summary": "`contactPoint` is a bare string instead of a `ContactPoint` object.",
      "route": "/tests/structured-data/features/organization/contactpoint-wrong-type",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-organization-contactpoint-wrong-type:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/organization",
      "robotsStanzas": []
    },
    {
      "id": "sd-organization-logo-too-small",
      "title": "Organization: logo too small",
      "summary": "`logo` references a 64x64px image, below the 112x112px minimum.",
      "route": "/tests/structured-data/features/organization/logo-too-small",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-organization-logo-too-small:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/organization",
      "robotsStanzas": []
    },
    {
      "id": "sd-organization-malformed-iso6523",
      "title": "Organization: malformed iso6523Code",
      "summary": "`iso6523Code` lacks the colon separating the ICD prefix from the identifier.",
      "route": "/tests/structured-data/features/organization/malformed-iso6523",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-organization-malformed-iso6523:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/organization",
      "robotsStanzas": []
    },
    {
      "id": "sd-product-snippet-valid",
      "title": "Product: snippet valid",
      "summary": "Review/rating-based product snippet: name, three image ratios, brand, sku, mpn, description, review with pros and cons, aggregateRating, Offer.",
      "route": "/tests/structured-data/features/product/snippet-valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-product-snippet-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/product",
      "robotsStanzas": []
    },
    {
      "id": "sd-product-merchant-valid",
      "title": "Product: merchant valid",
      "summary": "Offer-based merchant listing: name, three image ratios, brand, sku, description, Offer with price, ISO 4217 currency, availability, itemCondition, priceValidUntil, url, shippingDetails, hasMerchantReturnPolicy.",
      "route": "/tests/structured-data/features/product/merchant-valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-product-merchant-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/product",
      "robotsStanzas": []
    },
    {
      "id": "sd-product-valid-minimal",
      "title": "Product: valid minimal",
      "summary": "Snippet minimum only: `name` plus an `aggregateRating` from the review/rating/offers one-of group.",
      "route": "/tests/structured-data/features/product/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-product-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/product",
      "robotsStanzas": []
    },
    {
      "id": "sd-product-missing-name",
      "title": "Product: missing name",
      "summary": "Merchant-valid payload with required `name` removed.",
      "route": "/tests/structured-data/features/product/missing-name",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-product-missing-name:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/product",
      "robotsStanzas": []
    },
    {
      "id": "sd-product-invalid-price",
      "title": "Product: invalid price",
      "summary": "`price` is `\"£89.99\"` — a currency symbol in a numeric field.",
      "route": "/tests/structured-data/features/product/invalid-price",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-product-invalid-price:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/product",
      "robotsStanzas": []
    },
    {
      "id": "sd-product-invalid-currency",
      "title": "Product: invalid currency",
      "summary": "`priceCurrency` is `\"POUNDS\"` — not a three-letter ISO 4217 code.",
      "route": "/tests/structured-data/features/product/invalid-currency",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-product-invalid-currency:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/product",
      "robotsStanzas": []
    },
    {
      "id": "sd-product-bad-availability-enum",
      "title": "Product: bad availability enum",
      "summary": "`availability` is `https://schema.org/Available` — not an `ItemAvailability` member.",
      "route": "/tests/structured-data/features/product/bad-availability-enum",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-product-bad-availability-enum:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/product",
      "robotsStanzas": []
    },
    {
      "id": "sd-product-offers-wrong-type",
      "title": "Product: offers wrong type",
      "summary": "`offers` is the string `\"89.99 GBP\"` instead of an `Offer` object.",
      "route": "/tests/structured-data/features/product/offers-wrong-type",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-product-offers-wrong-type:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/product",
      "robotsStanzas": []
    },
    {
      "id": "sd-product-no-signal",
      "title": "Product: no snippet signal",
      "summary": "A Product with neither `offers` nor `review` nor `aggregateRating`.",
      "route": "/tests/structured-data/features/product/no-signal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-product-no-signal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/product",
      "robotsStanzas": []
    },
    {
      "id": "sd-product-rating-out-of-bounds",
      "title": "Product: rating out of bounds",
      "summary": "`aggregateRating.ratingValue` is `6` with a declared `bestRating` of 5.",
      "route": "/tests/structured-data/features/product/rating-out-of-bounds",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-product-rating-out-of-bounds:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/product",
      "robotsStanzas": []
    },
    {
      "id": "sd-profile-page-valid",
      "title": "Profile Page: valid",
      "summary": "Full `ProfilePage`: dateCreated, dateModified, and a Person mainEntity with name, alternateName, identifier, description, image, sameAs, and both interaction statistic kinds.",
      "route": "/tests/structured-data/features/profile-page/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-profile-page-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/profile-page",
      "robotsStanzas": []
    },
    {
      "id": "sd-profile-page-valid-minimal",
      "title": "Profile Page: valid minimal",
      "summary": "Required-only: `ProfilePage` with a Person `mainEntity` carrying `name` only.",
      "route": "/tests/structured-data/features/profile-page/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-profile-page-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/profile-page",
      "robotsStanzas": []
    },
    {
      "id": "sd-profile-page-missing-mainentity",
      "title": "Profile Page: missing mainEntity",
      "summary": "Required `mainEntity` removed.",
      "route": "/tests/structured-data/features/profile-page/missing-mainentity",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-profile-page-missing-mainentity:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/profile-page",
      "robotsStanzas": []
    },
    {
      "id": "sd-profile-page-invalid-datecreated",
      "title": "Profile Page: invalid dateCreated",
      "summary": "`dateCreated` is `\"23/12/2024 12:34pm\"` — not ISO 8601.",
      "route": "/tests/structured-data/features/profile-page/invalid-datecreated",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-profile-page-invalid-datecreated:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/profile-page",
      "robotsStanzas": []
    },
    {
      "id": "sd-profile-page-mainentity-wrong-type",
      "title": "Profile Page: mainEntity wrong type",
      "summary": "`mainEntity` is a plain string instead of a `Person`/`Organization` object.",
      "route": "/tests/structured-data/features/profile-page/mainentity-wrong-type",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-profile-page-mainentity-wrong-type:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/profile-page",
      "robotsStanzas": []
    },
    {
      "id": "sd-profile-page-missing-name",
      "title": "Profile Page: mainEntity missing name",
      "summary": "Person `mainEntity` without `name` and without an `alternateName` fallback.",
      "route": "/tests/structured-data/features/profile-page/missing-name",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-profile-page-missing-name:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/profile-page",
      "robotsStanzas": []
    },
    {
      "id": "sd-qa-page-valid",
      "title": "Q&A Page: valid",
      "summary": "Full `QAPage`: one Question with all required and recommended properties, one acceptedAnswer and two suggestedAnswers (answerCount 3).",
      "route": "/tests/structured-data/features/qa-page/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-qa-page-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/qa-page",
      "robotsStanzas": []
    },
    {
      "id": "sd-qa-page-valid-minimal",
      "title": "Q&A Page: valid minimal",
      "summary": "Required-only: Question with `name`, `answerCount`, and one suggestedAnswer carrying `text` only.",
      "route": "/tests/structured-data/features/qa-page/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-qa-page-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/qa-page",
      "robotsStanzas": []
    },
    {
      "id": "sd-qa-page-missing-answercount",
      "title": "Q&A Page: missing answerCount",
      "summary": "Required `answerCount` removed from the Question.",
      "route": "/tests/structured-data/features/qa-page/missing-answercount",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-qa-page-missing-answercount:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/qa-page",
      "robotsStanzas": []
    },
    {
      "id": "sd-qa-page-invalid-datepublished",
      "title": "Q&A Page: invalid datePublished",
      "summary": "Question `datePublished` is `\"02/11/2025 9:15am\"` — not ISO 8601.",
      "route": "/tests/structured-data/features/qa-page/invalid-datepublished",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-qa-page-invalid-datepublished:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/qa-page",
      "robotsStanzas": []
    },
    {
      "id": "sd-qa-page-answer-wrong-type",
      "title": "Q&A Page: answer wrong type",
      "summary": "`acceptedAnswer` is a plain string instead of an `Answer` object.",
      "route": "/tests/structured-data/features/qa-page/answer-wrong-type",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-qa-page-answer-wrong-type:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/qa-page",
      "robotsStanzas": []
    },
    {
      "id": "sd-qa-page-multiple-questions",
      "title": "Q&A Page: multiple questions",
      "summary": "`mainEntity` is an array of two Question objects; QAPage allows exactly one Question per page.",
      "route": "/tests/structured-data/features/qa-page/multiple-questions",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-qa-page-multiple-questions:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/qa-page",
      "robotsStanzas": []
    },
    {
      "id": "sd-qa-page-answer-missing-text",
      "title": "Q&A Page: answer missing text",
      "summary": "The acceptedAnswer's required `text` removed.",
      "route": "/tests/structured-data/features/qa-page/answer-missing-text",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-qa-page-answer-missing-text:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/qa-page",
      "robotsStanzas": []
    },
    {
      "id": "sd-qa-page-negative-upvotecount",
      "title": "Q&A Page: negative upvoteCount",
      "summary": "Question `upvoteCount` is `-4`; it must be a non-negative aggregate integer.",
      "route": "/tests/structured-data/features/qa-page/negative-upvotecount",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-qa-page-negative-upvotecount:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/qa-page",
      "robotsStanzas": []
    },
    {
      "id": "sd-recipe-valid",
      "title": "Recipe: valid",
      "summary": "Full `Recipe`: all required plus recommended properties, HowToStep instructions, nutrition with yield, paired prep/cook times, aggregateRating, VideoObject.",
      "route": "/tests/structured-data/features/recipe/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-recipe-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/recipe",
      "robotsStanzas": []
    },
    {
      "id": "sd-recipe-valid-minimal",
      "title": "Recipe: valid minimal",
      "summary": "Required-only: `name` + `image`.",
      "route": "/tests/structured-data/features/recipe/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-recipe-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/recipe",
      "robotsStanzas": []
    },
    {
      "id": "sd-recipe-valid-text-instructions",
      "title": "Recipe: valid text instructions",
      "summary": "`recipeInstructions` is a single plain-text block — the documented Text shape Google auto-splits; must not be flagged.",
      "route": "/tests/structured-data/features/recipe/valid-text-instructions",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-recipe-valid-text-instructions:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/recipe",
      "robotsStanzas": []
    },
    {
      "id": "sd-recipe-valid-itemlist",
      "title": "Recipe: valid carousel ItemList",
      "summary": "Carousel summary page: `ItemList` of ListItems with sequential positions and unique recipe URLs.",
      "route": "/tests/structured-data/features/recipe/valid-itemlist",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-recipe-valid-itemlist:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/recipe",
      "robotsStanzas": []
    },
    {
      "id": "sd-recipe-missing-image",
      "title": "Recipe: missing image",
      "summary": "Required `image` removed.",
      "route": "/tests/structured-data/features/recipe/missing-image",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-recipe-missing-image:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/recipe",
      "robotsStanzas": []
    },
    {
      "id": "sd-recipe-invalid-cooktime",
      "title": "Recipe: invalid cookTime",
      "summary": "`cookTime` is `\"45 minutes\"` — not an ISO 8601 duration.",
      "route": "/tests/structured-data/features/recipe/invalid-cooktime",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-recipe-invalid-cooktime:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/recipe",
      "robotsStanzas": []
    },
    {
      "id": "sd-recipe-nutrition-wrong-type",
      "title": "Recipe: nutrition wrong type",
      "summary": "`nutrition` is a plain string instead of a `NutritionInformation` object.",
      "route": "/tests/structured-data/features/recipe/nutrition-wrong-type",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-recipe-nutrition-wrong-type:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/recipe",
      "robotsStanzas": []
    },
    {
      "id": "sd-recipe-rating-out-of-bounds",
      "title": "Recipe: rating out of bounds",
      "summary": "`aggregateRating.ratingValue` is `\"6\"`, outside the default 1-5 bounds (no bestRating override).",
      "route": "/tests/structured-data/features/recipe/rating-out-of-bounds",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-recipe-rating-out-of-bounds:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/recipe",
      "robotsStanzas": []
    },
    {
      "id": "sd-recipe-cooktime-without-preptime",
      "title": "Recipe: cookTime without prepTime",
      "summary": "`prepTime` removed while `cookTime` remains, violating the documented pairing rule.",
      "route": "/tests/structured-data/features/recipe/cooktime-without-preptime",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-recipe-cooktime-without-preptime:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/recipe",
      "robotsStanzas": []
    },
    {
      "id": "sd-review-snippet-valid",
      "title": "Review Snippet: valid",
      "summary": "`Product` with fully populated nested `Review` and `AggregateRating` (all required + recommended properties).",
      "route": "/tests/structured-data/features/review-snippet/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-review-snippet-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/review-snippet",
      "robotsStanzas": []
    },
    {
      "id": "sd-review-snippet-valid-minimal",
      "title": "Review Snippet: valid minimal",
      "summary": "`Product` with nested `Review` carrying required properties only — no `datePublished`, no explicit `bestRating`/`worstRating`, no `AggregateRating`.",
      "route": "/tests/structured-data/features/review-snippet/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-review-snippet-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/review-snippet",
      "robotsStanzas": []
    },
    {
      "id": "sd-review-snippet-missing-author",
      "title": "Review Snippet: missing author",
      "summary": "Full valid payload with `Review.author` removed.",
      "route": "/tests/structured-data/features/review-snippet/missing-author",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-review-snippet-missing-author:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/review-snippet",
      "robotsStanzas": []
    },
    {
      "id": "sd-review-snippet-rating-out-of-bounds",
      "title": "Review Snippet: rating out of bounds",
      "summary": "`reviewRating.ratingValue` of 6 against an explicit `bestRating` of 5.",
      "route": "/tests/structured-data/features/review-snippet/rating-out-of-bounds",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-review-snippet-rating-out-of-bounds:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/review-snippet",
      "robotsStanzas": []
    },
    {
      "id": "sd-review-snippet-wrong-type-reviewrating",
      "title": "Review Snippet: wrong type reviewRating",
      "summary": "`reviewRating` supplied as the string `\"4.5\"` instead of a `Rating` object.",
      "route": "/tests/structured-data/features/review-snippet/wrong-type-reviewrating",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-review-snippet-wrong-type-reviewrating:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/review-snippet",
      "robotsStanzas": []
    },
    {
      "id": "sd-review-snippet-aggregate-missing-count",
      "title": "Review Snippet: aggregate missing count",
      "summary": "`AggregateRating` with neither `ratingCount` nor `reviewCount`.",
      "route": "/tests/structured-data/features/review-snippet/aggregate-missing-count",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-review-snippet-aggregate-missing-count:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/review-snippet",
      "robotsStanzas": []
    },
    {
      "id": "sd-review-snippet-self-serving",
      "title": "Review Snippet: self-serving",
      "summary": "The page's own `LocalBusiness` entity carries an `aggregateRating` about itself.",
      "route": "/tests/structured-data/features/review-snippet/self-serving",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-review-snippet-self-serving:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/review-snippet",
      "robotsStanzas": []
    },
    {
      "id": "sd-review-snippet-unsupported-itemreviewed",
      "title": "Review Snippet: unsupported itemReviewed",
      "summary": "Standalone `Review` whose `itemReviewed` is a `Person` — not a supported review-snippet type.",
      "route": "/tests/structured-data/features/review-snippet/unsupported-itemreviewed",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-review-snippet-unsupported-itemreviewed:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/review-snippet",
      "robotsStanzas": []
    },
    {
      "id": "sd-software-app-valid",
      "title": "Software App: valid",
      "summary": "`SoftwareApplication` with all required + recommended properties: `offers`, `aggregateRating`, `review`, `applicationCategory`, `operatingSystem`.",
      "route": "/tests/structured-data/features/software-app/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-software-app-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/software-app",
      "robotsStanzas": []
    },
    {
      "id": "sd-software-app-valid-minimal",
      "title": "Software App: valid minimal",
      "summary": "Required-only: `name`, free `offers` (`price: 0`), `aggregateRating`; no `applicationCategory` or `operatingSystem`.",
      "route": "/tests/structured-data/features/software-app/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-software-app-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/software-app",
      "robotsStanzas": []
    },
    {
      "id": "sd-software-app-missing-name",
      "title": "Software App: missing name",
      "summary": "Full valid payload with `name` removed.",
      "route": "/tests/structured-data/features/software-app/missing-name",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-software-app-missing-name:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/software-app",
      "robotsStanzas": []
    },
    {
      "id": "sd-software-app-missing-offers-price",
      "title": "Software App: missing offers price",
      "summary": "`Offer` present but without `price`.",
      "route": "/tests/structured-data/features/software-app/missing-offers-price",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-software-app-missing-offers-price:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/software-app",
      "robotsStanzas": []
    },
    {
      "id": "sd-software-app-no-rating-or-review",
      "title": "Software App: no rating or review",
      "summary": "Neither `aggregateRating` nor `review` present.",
      "route": "/tests/structured-data/features/software-app/no-rating-or-review",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-software-app-no-rating-or-review:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/software-app",
      "robotsStanzas": []
    },
    {
      "id": "sd-software-app-rating-out-of-bounds",
      "title": "Software App: rating out of bounds",
      "summary": "`aggregateRating.ratingValue` of 5.6 against an explicit `bestRating` of 5.",
      "route": "/tests/structured-data/features/software-app/rating-out-of-bounds",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-software-app-rating-out-of-bounds:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/software-app",
      "robotsStanzas": []
    },
    {
      "id": "sd-software-app-wrong-type-offers",
      "title": "Software App: wrong type offers",
      "summary": "`offers` supplied as the string `\"USD 1.99\"` instead of an `Offer` object.",
      "route": "/tests/structured-data/features/software-app/wrong-type-offers",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-software-app-wrong-type-offers:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/software-app",
      "robotsStanzas": []
    },
    {
      "id": "sd-software-app-invalid-category",
      "title": "Software App: invalid category",
      "summary": "`applicationCategory` set to `\"CookingApplication\"`, not in Google's supported list.",
      "route": "/tests/structured-data/features/software-app/invalid-category",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-software-app-invalid-category:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/software-app",
      "robotsStanzas": []
    },
    {
      "id": "sd-speakable-valid",
      "title": "Speakable: valid",
      "summary": "News-style `Article` with `speakable` using `cssSelector` targeting headline + summary elements.",
      "route": "/tests/structured-data/features/speakable/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-speakable-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/speakable",
      "robotsStanzas": []
    },
    {
      "id": "sd-speakable-valid-xpath",
      "title": "Speakable: valid xpath",
      "summary": "Same article with `speakable` using `xpath` locators instead of `cssSelector`.",
      "route": "/tests/structured-data/features/speakable/valid-xpath",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-speakable-valid-xpath:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/speakable",
      "robotsStanzas": []
    },
    {
      "id": "sd-speakable-missing-selector",
      "title": "Speakable: missing selector",
      "summary": "`SpeakableSpecification` with neither `cssSelector` nor `xpath`.",
      "route": "/tests/structured-data/features/speakable/missing-selector",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-speakable-missing-selector:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/speakable",
      "robotsStanzas": []
    },
    {
      "id": "sd-speakable-empty-selector",
      "title": "Speakable: empty selector",
      "summary": "`cssSelector` present but an empty array.",
      "route": "/tests/structured-data/features/speakable/empty-selector",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-speakable-empty-selector:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/speakable",
      "robotsStanzas": []
    },
    {
      "id": "sd-speakable-wrong-type-speakable",
      "title": "Speakable: wrong type speakable",
      "summary": "`speakable` supplied as the bare string `\".speakable-headline\"` instead of a `SpeakableSpecification` object.",
      "route": "/tests/structured-data/features/speakable/wrong-type-speakable",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-speakable-wrong-type-speakable:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/speakable",
      "robotsStanzas": []
    },
    {
      "id": "sd-speakable-both-selectors",
      "title": "Speakable: both selectors",
      "summary": "`cssSelector` and `xpath` combined in one `SpeakableSpecification`.",
      "route": "/tests/structured-data/features/speakable/both-selectors",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-speakable-both-selectors:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/speakable",
      "robotsStanzas": []
    },
    {
      "id": "sd-speakable-selector-no-match",
      "title": "Speakable: selector no match",
      "summary": "`cssSelector` includes `.speakable-missing`, which matches nothing in the served HTML.",
      "route": "/tests/structured-data/features/speakable/selector-no-match",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-speakable-selector-no-match:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/speakable",
      "robotsStanzas": []
    },
    {
      "id": "sd-paywalled-content-valid",
      "title": "Paywalled Content: valid",
      "summary": "`NewsArticle` with `isAccessibleForFree: false` and one `hasPart` `WebPageElement` using the `.paywall` class selector.",
      "route": "/tests/structured-data/features/paywalled-content/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-paywalled-content-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/paywalled-content",
      "robotsStanzas": []
    },
    {
      "id": "sd-paywalled-content-valid-minimal",
      "title": "Paywalled Content: valid minimal",
      "summary": "Required-only: `isAccessibleForFree: false`, no `hasPart`.",
      "route": "/tests/structured-data/features/paywalled-content/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-paywalled-content-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/paywalled-content",
      "robotsStanzas": []
    },
    {
      "id": "sd-paywalled-content-valid-multi-section",
      "title": "Paywalled Content: valid multi-section",
      "summary": "`hasPart` array with two `WebPageElement` entries (`.section1`, `.section2`), non-nested gated sections.",
      "route": "/tests/structured-data/features/paywalled-content/valid-multi-section",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-paywalled-content-valid-multi-section:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/paywalled-content",
      "robotsStanzas": []
    },
    {
      "id": "sd-paywalled-content-missing-isaccessibleforfree",
      "title": "Paywalled Content: missing isAccessibleForFree",
      "summary": "Identical to valid but top-level `isAccessibleForFree` removed.",
      "route": "/tests/structured-data/features/paywalled-content/missing-isaccessibleforfree",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-paywalled-content-missing-isaccessibleforfree:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/paywalled-content",
      "robotsStanzas": []
    },
    {
      "id": "sd-paywalled-content-invalid-cssselector",
      "title": "Paywalled Content: invalid cssSelector",
      "summary": "Identical to valid but `cssSelector` is the ID selector `#paywall`.",
      "route": "/tests/structured-data/features/paywalled-content/invalid-cssselector",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-paywalled-content-invalid-cssselector:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/paywalled-content",
      "robotsStanzas": []
    },
    {
      "id": "sd-paywalled-content-wrong-type-haspart",
      "title": "Paywalled Content: wrong type hasPart",
      "summary": "Identical to valid but `hasPart` is the string `\".paywall\"` instead of a `WebPageElement` object.",
      "route": "/tests/structured-data/features/paywalled-content/wrong-type-haspart",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-paywalled-content-wrong-type-haspart:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/paywalled-content",
      "robotsStanzas": []
    },
    {
      "id": "sd-paywalled-content-selector-no-match",
      "title": "Paywalled Content: selector no match",
      "summary": "Identical to valid but `cssSelector` is `.premium-content`, which matches no element in the page HTML.",
      "route": "/tests/structured-data/features/paywalled-content/selector-no-match",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-paywalled-content-selector-no-match:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/paywalled-content",
      "robotsStanzas": []
    },
    {
      "id": "sd-vacation-rental-valid",
      "title": "Vacation Rental: valid",
      "summary": "Full `VacationRental` with all required and recommended properties: accommodation detail, address, ratings, reviews, eight images.",
      "route": "/tests/structured-data/features/vacation-rental/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-vacation-rental-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/vacation-rental",
      "robotsStanzas": []
    },
    {
      "id": "sd-vacation-rental-valid-minimal",
      "title": "Vacation Rental: valid minimal",
      "summary": "Required-only: `containsPlace` with `occupancy`, `identifier`, eight images, `latitude`, `longitude`, `name`.",
      "route": "/tests/structured-data/features/vacation-rental/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-vacation-rental-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/vacation-rental",
      "robotsStanzas": []
    },
    {
      "id": "sd-vacation-rental-missing-identifier",
      "title": "Vacation Rental: missing identifier",
      "summary": "Minimal payload with `identifier` removed.",
      "route": "/tests/structured-data/features/vacation-rental/missing-identifier",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-vacation-rental-missing-identifier:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/vacation-rental",
      "robotsStanzas": []
    },
    {
      "id": "sd-vacation-rental-invalid-checkintime",
      "title": "Vacation Rental: invalid checkinTime",
      "summary": "Minimal payload plus `checkinTime: \"6pm\"` (not ISO 8601).",
      "route": "/tests/structured-data/features/vacation-rental/invalid-checkintime",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-vacation-rental-invalid-checkintime:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/vacation-rental",
      "robotsStanzas": []
    },
    {
      "id": "sd-vacation-rental-wrong-type-occupancy",
      "title": "Vacation Rental: wrong type occupancy",
      "summary": "Minimal payload with `occupancy` as the bare integer 4 instead of a `QuantitativeValue` object.",
      "route": "/tests/structured-data/features/vacation-rental/wrong-type-occupancy",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-vacation-rental-wrong-type-occupancy:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/vacation-rental",
      "robotsStanzas": []
    },
    {
      "id": "sd-vacation-rental-too-few-images",
      "title": "Vacation Rental: too few images",
      "summary": "Minimal payload with only 3 images (Google requires a minimum of 8).",
      "route": "/tests/structured-data/features/vacation-rental/too-few-images",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-vacation-rental-too-few-images:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/vacation-rental",
      "robotsStanzas": []
    },
    {
      "id": "sd-vacation-rental-low-precision-coords",
      "title": "Vacation Rental: low precision coords",
      "summary": "Minimal payload with `latitude: 51.5`, `longitude: -0.1` (fewer than 5 decimal places).",
      "route": "/tests/structured-data/features/vacation-rental/low-precision-coords",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-vacation-rental-low-precision-coords:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/vacation-rental",
      "robotsStanzas": []
    },
    {
      "id": "sd-video-valid",
      "title": "Video: valid",
      "summary": "Full `VideoObject` with all required and recommended properties (`regionsAllowed` chosen over `ineligibleRegion`).",
      "route": "/tests/structured-data/features/video/valid",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-video-valid:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/video",
      "robotsStanzas": []
    },
    {
      "id": "sd-video-valid-minimal",
      "title": "Video: valid minimal",
      "summary": "Required-only: `name`, `thumbnailUrl`, `uploadDate` (deliberately timezone-less, which the doc permits).",
      "route": "/tests/structured-data/features/video/valid-minimal",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-video-valid-minimal:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/video",
      "robotsStanzas": []
    },
    {
      "id": "sd-video-valid-clips",
      "title": "Video: valid clips",
      "summary": "Full `VideoObject` plus two `Clip` entries in `hasPart` with unique start offsets and deep-link URLs.",
      "route": "/tests/structured-data/features/video/valid-clips",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-video-valid-clips:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/video",
      "robotsStanzas": []
    },
    {
      "id": "sd-video-valid-seektoaction",
      "title": "Video: valid SeekToAction",
      "summary": "Full `VideoObject` plus a `SeekToAction` `potentialAction` with the `{seek_to_second_number}` URL template.",
      "route": "/tests/structured-data/features/video/valid-seektoaction",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-video-valid-seektoaction:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/video",
      "robotsStanzas": []
    },
    {
      "id": "sd-video-valid-live",
      "title": "Video: valid live",
      "summary": "Full `VideoObject` plus a `BroadcastEvent` in `publication` (`isLiveBroadcast: true`, start and end dates).",
      "route": "/tests/structured-data/features/video/valid-live",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-video-valid-live:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/video",
      "robotsStanzas": []
    },
    {
      "id": "sd-video-missing-thumbnailurl",
      "title": "Video: missing thumbnailUrl",
      "summary": "Valid payload with required `thumbnailUrl` removed.",
      "route": "/tests/structured-data/features/video/missing-thumbnailurl",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-video-missing-thumbnailurl:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/video",
      "robotsStanzas": []
    },
    {
      "id": "sd-video-invalid-duration",
      "title": "Video: invalid duration",
      "summary": "Valid payload with `duration: \"1:30\"` (not ISO 8601).",
      "route": "/tests/structured-data/features/video/invalid-duration",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-video-invalid-duration:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/video",
      "robotsStanzas": []
    },
    {
      "id": "sd-video-wrong-type-interactionstatistic",
      "title": "Video: wrong type interactionStatistic",
      "summary": "`interactionStatistic` supplied as the bare number 5647018 instead of an `InteractionCounter` object.",
      "route": "/tests/structured-data/features/video/wrong-type-interactionstatistic",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-video-wrong-type-interactionstatistic:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/video",
      "robotsStanzas": []
    },
    {
      "id": "sd-video-clip-duplicate-start",
      "title": "Video: clip duplicate start",
      "summary": "Clips payload where both clips share `startOffset: 30` (start times must be unique per page).",
      "route": "/tests/structured-data/features/video/clip-duplicate-start",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-video-clip-duplicate-start:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/video",
      "robotsStanzas": []
    },
    {
      "id": "sd-video-clip-offset-order",
      "title": "Video: clip offset order",
      "summary": "Clips payload where the first clip has `endOffset: 20` with `startOffset: 30`.",
      "route": "/tests/structured-data/features/video/clip-offset-order",
      "method": "GET",
      "group": "structured-data-features",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:sd-video-clip-offset-order:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "structured-data-features/video",
      "robotsStanzas": []
    },
    {
      "id": "cluster-a-en",
      "title": "Hreflang cluster A — English",
      "summary": "The English member of a five-page reciprocal cluster declaring all alternates (hreflang en) via head link elements.",
      "route": "/tests/international/cluster-a/en",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:cluster-a-en:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/es",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/x-default",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-hreflang/cluster-a-head-links",
      "robotsStanzas": []
    },
    {
      "id": "cluster-a-de",
      "title": "Hreflang cluster A — Deutsch",
      "summary": "The German member of a five-page reciprocal cluster declaring all alternates (hreflang de) via head link elements.",
      "route": "/tests/international/cluster-a/de",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:cluster-a-de:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/es",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/x-default",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-hreflang/cluster-a-head-links",
      "robotsStanzas": []
    },
    {
      "id": "cluster-a-fr",
      "title": "Hreflang cluster A — Français",
      "summary": "The French member of a five-page reciprocal cluster declaring all alternates (hreflang fr) via head link elements.",
      "route": "/tests/international/cluster-a/fr",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:cluster-a-fr:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/es",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/x-default",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-hreflang/cluster-a-head-links",
      "robotsStanzas": []
    },
    {
      "id": "cluster-a-es",
      "title": "Hreflang cluster A — Español",
      "summary": "The Spanish member of a five-page reciprocal cluster declaring all alternates (hreflang es) via head link elements.",
      "route": "/tests/international/cluster-a/es",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:cluster-a-es:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/es",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/x-default",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-hreflang/cluster-a-head-links",
      "robotsStanzas": []
    },
    {
      "id": "cluster-a-x-default",
      "title": "Hreflang cluster A — language selector",
      "summary": "The language-selector member of a five-page reciprocal cluster declaring all alternates (hreflang x-default) via head link elements.",
      "route": "/tests/international/cluster-a/x-default",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:cluster-a-x-default:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/es",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-a/x-default",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-hreflang/cluster-a-head-links",
      "robotsStanzas": []
    },
    {
      "id": "http-link-hreflang",
      "title": "Hreflang cluster B — English (Link header)",
      "summary": "The English member of a two-page reciprocal cluster whose alternates are declared only via the HTTP Link response header.",
      "route": "/tests/international/cluster-b/en",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "value": "<https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-b/en>; rel=\"alternate\"; hreflang=\"en\", <https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-b/de>; rel=\"alternate\"; hreflang=\"de\""
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-link-hreflang:raw"
        ],
        "absentBodyMarkers": [
          "rel=\"alternate\""
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-b/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-b/de",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-hreflang/cluster-b-link-headers",
      "robotsStanzas": []
    },
    {
      "id": "http-link-hreflang-de",
      "title": "Hreflang cluster B — Deutsch (Link header)",
      "summary": "The German member of a two-page reciprocal cluster whose alternates are declared only via the HTTP Link response header.",
      "route": "/tests/international/cluster-b/de",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "value": "<https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-b/en>; rel=\"alternate\"; hreflang=\"en\", <https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-b/de>; rel=\"alternate\"; hreflang=\"de\""
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:http-link-hreflang-de:raw"
        ],
        "absentBodyMarkers": [
          "rel=\"alternate\""
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-b/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-b/de",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-hreflang/cluster-b-link-headers",
      "robotsStanzas": []
    },
    {
      "id": "xml-sitemap-hreflang-en",
      "title": "Hreflang cluster C — English (sitemap channel)",
      "summary": "The English member of a two-page cluster whose alternates exist only as xhtml:link entries in the cluster C fixture sitemap.",
      "route": "/tests/international/cluster-c/en",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "scenario-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:xml-sitemap-hreflang-en:raw"
        ],
        "absentBodyMarkers": [
          "rel=\"alternate\""
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-hreflang/cluster-c-sitemap-alternates",
      "robotsStanzas": []
    },
    {
      "id": "xml-sitemap-hreflang-de",
      "title": "Hreflang cluster C — Deutsch (sitemap channel)",
      "summary": "The German member of a two-page cluster whose alternates exist only as xhtml:link entries in the cluster C fixture sitemap.",
      "route": "/tests/international/cluster-c/de",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "scenario-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:xml-sitemap-hreflang-de:raw"
        ],
        "absentBodyMarkers": [
          "rel=\"alternate\""
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-hreflang/cluster-c-sitemap-alternates",
      "robotsStanzas": []
    },
    {
      "id": "xml-sitemap-hreflang",
      "title": "Hreflang cluster C — xhtml:link fixture sitemap",
      "summary": "The XML sitemap that is the only channel declaring the reciprocal en/de alternates for the cluster C pages.",
      "route": "/tests/international/cluster-c/sitemap.xml",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "application/xml",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-c/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/tests/international/cluster-c/de",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-hreflang/cluster-c-sitemap-alternates",
      "robotsStanzas": [
        {
          "userAgent": "*",
          "rules": [],
          "sitemapRefs": [
            "/tests/international/cluster-c/sitemap.xml"
          ]
        }
      ]
    },
    {
      "id": "missing-reciprocal-a",
      "title": "Hreflang broken — missing reciprocal, declaring side",
      "summary": "An English page declaring itself and a German alternate that never declares it back.",
      "route": "/tests/international/broken/missing-reciprocal/a",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:missing-reciprocal-a:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/tests/international/broken/missing-reciprocal/a",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/tests/international/broken/missing-reciprocal/b",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "MissingReciprocalHreflangAnnotations"
      ],
      "contentRef": "international-hreflang/broken-variants",
      "robotsStanzas": []
    },
    {
      "id": "missing-reciprocal-b",
      "title": "Hreflang broken — missing reciprocal, silent side",
      "summary": "The German page that declares only itself, deliberately omitting the return link to its English counterpart.",
      "route": "/tests/international/broken/missing-reciprocal/b",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:missing-reciprocal-b:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/tests/international/broken/missing-reciprocal/b",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-hreflang/broken-variants",
      "robotsStanzas": []
    },
    {
      "id": "hreflang-target-404",
      "title": "Hreflang broken — alternate target returns 404",
      "summary": "An English page declaring a German alternate whose URL returns HTTP 404.",
      "route": "/tests/international/broken/target-404/en",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:hreflang-target-404:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/tests/international/broken/target-404/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/tests/international/broken/target-404/de",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "OutgoingBrokenHreflangUrls"
      ],
      "contentRef": "international-hreflang/broken-variants",
      "robotsStanzas": []
    },
    {
      "id": "hreflang-target-404-de",
      "title": "Hreflang broken — the missing German alternate",
      "summary": "The declared German alternate that deliberately answers 404.",
      "route": "/tests/international/broken/target-404/de",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 404,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:hreflang-target-404-de:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-hreflang/broken-variants",
      "robotsStanzas": []
    },
    {
      "id": "hreflang-target-301",
      "title": "Hreflang broken — alternate target redirects",
      "summary": "An English page declaring a German alternate whose URL answers a 301 redirect.",
      "route": "/tests/international/broken/target-301/en",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:hreflang-target-301:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/tests/international/broken/target-301/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/tests/international/broken/target-301/de",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "OutgoingRedirectHreflangUrls"
      ],
      "contentRef": "international-hreflang/broken-variants",
      "robotsStanzas": []
    },
    {
      "id": "hreflang-target-301-de-final",
      "title": "Hreflang broken — the redirect destination",
      "summary": "The German page the redirecting alternate lands on; it declares no alternates of its own.",
      "route": "/tests/international/broken/target-301/de-final",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:hreflang-target-301-de-final:raw"
        ],
        "absentBodyMarkers": [
          "rel=\"alternate\""
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-hreflang/broken-variants",
      "robotsStanzas": []
    },
    {
      "id": "invalid-language-code",
      "title": "Hreflang broken — invalid language codes",
      "summary": "An English page declaring a valid en alternate plus the invalid hreflang values en-UK and english.",
      "route": "/tests/international/broken/invalid-language-code",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:invalid-language-code:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/tests/international/broken/invalid-language-code",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-UK|https://crawler-test-site.uk.sitebulb.com/tests/international/broken/invalid-language-code",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "english|https://crawler-test-site.uk.sitebulb.com/tests/international/broken/invalid-language-code",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "InvalidOutgoingHreflangAnnotations"
      ],
      "contentRef": "international-hreflang/broken-variants",
      "robotsStanzas": []
    },
    {
      "id": "multiple-x-default",
      "title": "Hreflang broken — multiple x-default declarations",
      "summary": "An English page declaring two x-default entries with different hrefs alongside its valid self-reference.",
      "route": "/tests/international/broken/multiple-x-default",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:multiple-x-default:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/tests/international/broken/multiple-x-default",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/tests/international/broken/multiple-x-default",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/tests/international/broken/multiple-x-default/alternate",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "MixedXDefaultAndHreflang",
        "UrlsWithDuplicateOutgoingHreflangAnnotations"
      ],
      "contentRef": "international-hreflang/broken-variants",
      "robotsStanzas": []
    },
    {
      "id": "multiple-x-default-alternate",
      "title": "Hreflang broken — the second x-default target",
      "summary": "The reachable second x-default target; it deliberately declares no alternates back.",
      "route": "/tests/international/broken/multiple-x-default/alternate",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:multiple-x-default-alternate:raw"
        ],
        "absentBodyMarkers": [
          "rel=\"alternate\""
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-hreflang/broken-variants",
      "robotsStanzas": []
    },
    {
      "id": "html-lang-content-language-conflict",
      "title": "Hreflang broken — html lang vs Content-Language conflict",
      "summary": "A page whose html lang attribute says en while the Content-Language response header says de.",
      "route": "/tests/international/broken/lang-conflict",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Language",
            "value": "de"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:html-lang-content-language-conflict:raw"
        ],
        "absentBodyMarkers": [
          "rel=\"alternate\""
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-hreflang/broken-variants",
      "robotsStanzas": []
    },
    {
      "id": "mixed-locale-canonical",
      "title": "Hreflang broken — German page canonicalised to English",
      "summary": "A German page in a reciprocal en/de pair whose canonical nominates the English page instead of itself.",
      "route": "/tests/international/broken/mixed-locale-canonical/de",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:mixed-locale-canonical:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/tests/international/broken/mixed-locale-canonical/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/tests/international/broken/mixed-locale-canonical/de",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/tests/international/broken/mixed-locale-canonical/en",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "CanonicalizedUrlsWithHreflangAnnotations"
      ],
      "contentRef": "international-hreflang/broken-variants",
      "robotsStanzas": []
    },
    {
      "id": "mixed-locale-canonical-en",
      "title": "Hreflang broken — the self-canonical English counterpart",
      "summary": "The English counterpart with the same reciprocal pair and a self-referencing canonical; it anchors the conflict on the German side.",
      "route": "/tests/international/broken/mixed-locale-canonical/en",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:mixed-locale-canonical-en:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/tests/international/broken/mixed-locale-canonical/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/tests/international/broken/mixed-locale-canonical/de",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/tests/international/broken/mixed-locale-canonical/en",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-hreflang/broken-variants",
      "robotsStanzas": []
    },
    {
      "id": "rtl-arabic-page",
      "title": "RTL fixture — Arabic",
      "summary": "A standalone right-to-left document with html lang ar, dir rtl, and a native-script Arabic paragraph.",
      "route": "/tests/international/rtl/arabic",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:rtl-arabic-page:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-hreflang/rtl-pages",
      "robotsStanzas": []
    },
    {
      "id": "rtl-hebrew-page",
      "title": "RTL fixture — Hebrew",
      "summary": "A standalone right-to-left document with html lang he, dir rtl, and a native-script Hebrew paragraph.",
      "route": "/tests/international/rtl/hebrew",
      "method": "GET",
      "group": "international-hreflang",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:rtl-hebrew-page:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-hreflang/rtl-pages",
      "robotsStanzas": []
    },
    {
      "id": "intl-altona-selector",
      "title": "Altona Travel — Choose your language",
      "summary": "Language selector for the Altona Travel micro-site; serves as the homepage cluster x-default.",
      "route": "/intl/altona",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-altona-selector:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/altona",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/altona/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/altona/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/altona/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/altona/es",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/intl/altona",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/altona",
      "robotsStanzas": []
    },
    {
      "id": "intl-altona-en-home",
      "title": "Altona Travel — Travel guides",
      "summary": "English home of the Altona Travel micro-site; member of the homepage hreflang cluster.",
      "route": "/intl/altona/en",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-altona-en-home:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/altona/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/altona/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/altona/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/altona/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/altona/es",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/intl/altona",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/altona",
      "robotsStanzas": []
    },
    {
      "id": "intl-altona-de-home",
      "title": "Altona Travel — Reiseführer",
      "summary": "Deutsch home of the Altona Travel micro-site; member of the homepage hreflang cluster.",
      "route": "/intl/altona/de",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-altona-de-home:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/altona/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/altona/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/altona/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/altona/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/altona/es",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/intl/altona",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/altona",
      "robotsStanzas": []
    },
    {
      "id": "intl-altona-fr-home",
      "title": "Altona Travel — Guides de voyage",
      "summary": "Français home of the Altona Travel micro-site; member of the homepage hreflang cluster.",
      "route": "/intl/altona/fr",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-altona-fr-home:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/altona/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/altona/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/altona/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/altona/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/altona/es",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/intl/altona",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/altona",
      "robotsStanzas": []
    },
    {
      "id": "intl-altona-es-home",
      "title": "Altona Travel — Guías de viaje",
      "summary": "Español home of the Altona Travel micro-site; member of the homepage hreflang cluster.",
      "route": "/intl/altona/es",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-altona-es-home:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/altona/es",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/altona/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/altona/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/altona/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/altona/es",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/intl/altona",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/altona",
      "robotsStanzas": []
    },
    {
      "id": "intl-altona-en-guide-coast",
      "title": "Coast path guide",
      "summary": "English guide-coast page of the Altona Travel micro-site; member of the guide-coast hreflang cluster.",
      "route": "/intl/altona/en/guide-coast",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-altona-en-guide-coast:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/altona/en/guide-coast",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/altona/en/guide-coast",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/altona/de/guide-coast",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/altona/fr/guide-coast",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/altona/es/guide-coast",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/altona",
      "robotsStanzas": []
    },
    {
      "id": "intl-altona-de-guide-coast",
      "title": "Küstenweg-Führer",
      "summary": "Deutsch guide-coast page of the Altona Travel micro-site; member of the guide-coast hreflang cluster.",
      "route": "/intl/altona/de/guide-coast",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-altona-de-guide-coast:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/altona/de/guide-coast",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/altona/en/guide-coast",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/altona/de/guide-coast",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/altona/fr/guide-coast",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/altona/es/guide-coast",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/altona",
      "robotsStanzas": []
    },
    {
      "id": "intl-altona-fr-guide-coast",
      "title": "Guide du sentier côtier",
      "summary": "Français guide-coast page of the Altona Travel micro-site; member of the guide-coast hreflang cluster.",
      "route": "/intl/altona/fr/guide-coast",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-altona-fr-guide-coast:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/altona/fr/guide-coast",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/altona/en/guide-coast",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/altona/de/guide-coast",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/altona/fr/guide-coast",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/altona/es/guide-coast",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/altona",
      "robotsStanzas": []
    },
    {
      "id": "intl-altona-es-guide-coast",
      "title": "Guía del sendero costero",
      "summary": "Español guide-coast page of the Altona Travel micro-site; member of the guide-coast hreflang cluster.",
      "route": "/intl/altona/es/guide-coast",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-altona-es-guide-coast:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/altona/es/guide-coast",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/altona/en/guide-coast",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/altona/de/guide-coast",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/altona/fr/guide-coast",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/altona/es/guide-coast",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/altona",
      "robotsStanzas": []
    },
    {
      "id": "intl-altona-en-guide-mountains",
      "title": "Mountain valleys guide",
      "summary": "English guide-mountains page of the Altona Travel micro-site; member of the guide-mountains hreflang cluster.",
      "route": "/intl/altona/en/guide-mountains",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-altona-en-guide-mountains:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/altona/en/guide-mountains",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/altona/en/guide-mountains",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/altona/de/guide-mountains",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/altona/fr/guide-mountains",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/altona/es/guide-mountains",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/altona",
      "robotsStanzas": []
    },
    {
      "id": "intl-altona-de-guide-mountains",
      "title": "Bergtäler-Führer",
      "summary": "Deutsch guide-mountains page of the Altona Travel micro-site; member of the guide-mountains hreflang cluster.",
      "route": "/intl/altona/de/guide-mountains",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-altona-de-guide-mountains:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/altona/de/guide-mountains",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/altona/en/guide-mountains",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/altona/de/guide-mountains",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/altona/fr/guide-mountains",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/altona/es/guide-mountains",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/altona",
      "robotsStanzas": []
    },
    {
      "id": "intl-altona-fr-guide-mountains",
      "title": "Guide des hautes vallées",
      "summary": "Français guide-mountains page of the Altona Travel micro-site; member of the guide-mountains hreflang cluster.",
      "route": "/intl/altona/fr/guide-mountains",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-altona-fr-guide-mountains:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/altona/fr/guide-mountains",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/altona/en/guide-mountains",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/altona/de/guide-mountains",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/altona/fr/guide-mountains",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/altona/es/guide-mountains",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/altona",
      "robotsStanzas": []
    },
    {
      "id": "intl-altona-es-guide-mountains",
      "title": "Guía de los valles de montaña",
      "summary": "Español guide-mountains page of the Altona Travel micro-site; member of the guide-mountains hreflang cluster.",
      "route": "/intl/altona/es/guide-mountains",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-altona-es-guide-mountains:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/altona/es/guide-mountains",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/altona/en/guide-mountains",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/altona/de/guide-mountains",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/altona/fr/guide-mountains",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/altona/es/guide-mountains",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/altona",
      "robotsStanzas": []
    },
    {
      "id": "intl-altona-en-about",
      "title": "About Altona Travel",
      "summary": "English about page of the Altona Travel micro-site; member of the about hreflang cluster.",
      "route": "/intl/altona/en/about",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-altona-en-about:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/altona/en/about",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/altona/en/about",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/altona/de/about",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/altona/fr/about",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/altona/es/about",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/altona",
      "robotsStanzas": []
    },
    {
      "id": "intl-altona-de-about",
      "title": "Über Altona Travel",
      "summary": "Deutsch about page of the Altona Travel micro-site; member of the about hreflang cluster.",
      "route": "/intl/altona/de/about",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-altona-de-about:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/altona/de/about",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/altona/en/about",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/altona/de/about",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/altona/fr/about",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/altona/es/about",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/altona",
      "robotsStanzas": []
    },
    {
      "id": "intl-altona-fr-about",
      "title": "À propos d'Altona Travel",
      "summary": "Français about page of the Altona Travel micro-site; member of the about hreflang cluster.",
      "route": "/intl/altona/fr/about",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-altona-fr-about:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/altona/fr/about",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/altona/en/about",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/altona/de/about",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/altona/fr/about",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/altona/es/about",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/altona",
      "robotsStanzas": []
    },
    {
      "id": "intl-altona-es-about",
      "title": "Sobre Altona Travel",
      "summary": "Español about page of the Altona Travel micro-site; member of the about hreflang cluster.",
      "route": "/intl/altona/es/about",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-altona-es-about:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/altona/es/about",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/altona/en/about",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/altona/de/about",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/altona/fr/about",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/altona/es/about",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/altona",
      "robotsStanzas": []
    },
    {
      "id": "intl-altona-en-contact",
      "title": "Contact the editors",
      "summary": "English contact page of the Altona Travel micro-site; member of the contact hreflang cluster.",
      "route": "/intl/altona/en/contact",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-altona-en-contact:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/altona/en/contact",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/altona/en/contact",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/altona/de/contact",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/altona/fr/contact",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/altona/es/contact",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/altona",
      "robotsStanzas": []
    },
    {
      "id": "intl-altona-de-contact",
      "title": "Kontakt zur Redaktion",
      "summary": "Deutsch contact page of the Altona Travel micro-site; member of the contact hreflang cluster.",
      "route": "/intl/altona/de/contact",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-altona-de-contact:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/altona/de/contact",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/altona/en/contact",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/altona/de/contact",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/altona/fr/contact",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/altona/es/contact",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/altona",
      "robotsStanzas": []
    },
    {
      "id": "intl-altona-fr-contact",
      "title": "Contacter la rédaction",
      "summary": "Français contact page of the Altona Travel micro-site; member of the contact hreflang cluster.",
      "route": "/intl/altona/fr/contact",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-altona-fr-contact:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/altona/fr/contact",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/altona/en/contact",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/altona/de/contact",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/altona/fr/contact",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/altona/es/contact",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/altona",
      "robotsStanzas": []
    },
    {
      "id": "intl-altona-es-contact",
      "title": "Contacto con la redacción",
      "summary": "Español contact page of the Altona Travel micro-site; member of the contact hreflang cluster.",
      "route": "/intl/altona/es/contact",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-altona-es-contact:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/altona/es/contact",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/altona/en/contact",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/altona/de/contact",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/altona/fr/contact",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/altona/es/contact",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/altona",
      "robotsStanzas": []
    },
    {
      "id": "intl-baltic-en-home",
      "title": "Baltic (en) — Baltic API documentation",
      "summary": "The English home page of the Baltic API Docs micro-site; hreflang declared only via the HTTP Link header.",
      "route": "/intl/baltic/en",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "value": "<https://crawler-test-site.uk.sitebulb.com/intl/baltic/en>; rel=\"alternate\"; hreflang=\"en\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/de>; rel=\"alternate\"; hreflang=\"de\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr>; rel=\"alternate\"; hreflang=\"fr\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/en>; rel=\"alternate\"; hreflang=\"x-default\""
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-baltic-en-home:raw"
        ],
        "absentBodyMarkers": [
          "<link rel=\"alternate\""
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/baltic/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/baltic/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/intl/baltic/en",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpHeaderHreflangAnnotations"
      ],
      "contentRef": "international-sites/baltic",
      "robotsStanzas": []
    },
    {
      "id": "intl-baltic-de-home",
      "title": "Baltic (de) — Baltic API Dokumentation",
      "summary": "The German home page of the Baltic API Docs micro-site; hreflang declared only via the HTTP Link header.",
      "route": "/intl/baltic/de",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "value": "<https://crawler-test-site.uk.sitebulb.com/intl/baltic/en>; rel=\"alternate\"; hreflang=\"en\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/de>; rel=\"alternate\"; hreflang=\"de\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr>; rel=\"alternate\"; hreflang=\"fr\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/en>; rel=\"alternate\"; hreflang=\"x-default\""
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-baltic-de-home:raw"
        ],
        "absentBodyMarkers": [
          "<link rel=\"alternate\""
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/baltic/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/baltic/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/intl/baltic/en",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpHeaderHreflangAnnotations"
      ],
      "contentRef": "international-sites/baltic",
      "robotsStanzas": []
    },
    {
      "id": "intl-baltic-fr-home",
      "title": "Baltic (fr) — Documentation de l'API Baltic",
      "summary": "The French home page of the Baltic API Docs micro-site; hreflang declared only via the HTTP Link header.",
      "route": "/intl/baltic/fr",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "value": "<https://crawler-test-site.uk.sitebulb.com/intl/baltic/en>; rel=\"alternate\"; hreflang=\"en\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/de>; rel=\"alternate\"; hreflang=\"de\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr>; rel=\"alternate\"; hreflang=\"fr\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/en>; rel=\"alternate\"; hreflang=\"x-default\""
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-baltic-fr-home:raw"
        ],
        "absentBodyMarkers": [
          "<link rel=\"alternate\""
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/baltic/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/baltic/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/intl/baltic/en",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpHeaderHreflangAnnotations"
      ],
      "contentRef": "international-sites/baltic",
      "robotsStanzas": []
    },
    {
      "id": "intl-baltic-en-install",
      "title": "Baltic (en) — Installing the Baltic client",
      "summary": "The English install page of the Baltic API Docs micro-site; hreflang declared only via the HTTP Link header.",
      "route": "/intl/baltic/en/install",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "value": "<https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/install>; rel=\"alternate\"; hreflang=\"en\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/install>; rel=\"alternate\"; hreflang=\"de\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/install>; rel=\"alternate\"; hreflang=\"fr\""
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-baltic-en-install:raw"
        ],
        "absentBodyMarkers": [
          "<link rel=\"alternate\""
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/install",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/install",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/install",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpHeaderHreflangAnnotations"
      ],
      "contentRef": "international-sites/baltic",
      "robotsStanzas": []
    },
    {
      "id": "intl-baltic-de-install",
      "title": "Baltic (de) — Installation des Baltic-Clients",
      "summary": "The German install page of the Baltic API Docs micro-site; hreflang declared only via the HTTP Link header.",
      "route": "/intl/baltic/de/install",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "value": "<https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/install>; rel=\"alternate\"; hreflang=\"en\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/install>; rel=\"alternate\"; hreflang=\"de\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/install>; rel=\"alternate\"; hreflang=\"fr\""
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-baltic-de-install:raw"
        ],
        "absentBodyMarkers": [
          "<link rel=\"alternate\""
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/install",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/install",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/install",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpHeaderHreflangAnnotations"
      ],
      "contentRef": "international-sites/baltic",
      "robotsStanzas": []
    },
    {
      "id": "intl-baltic-fr-install",
      "title": "Baltic (fr) — Installation du client Baltic",
      "summary": "The French install page of the Baltic API Docs micro-site; hreflang declared only via the HTTP Link header.",
      "route": "/intl/baltic/fr/install",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "value": "<https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/install>; rel=\"alternate\"; hreflang=\"en\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/install>; rel=\"alternate\"; hreflang=\"de\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/install>; rel=\"alternate\"; hreflang=\"fr\""
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-baltic-fr-install:raw"
        ],
        "absentBodyMarkers": [
          "<link rel=\"alternate\""
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/install",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/install",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/install",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpHeaderHreflangAnnotations"
      ],
      "contentRef": "international-sites/baltic",
      "robotsStanzas": []
    },
    {
      "id": "intl-baltic-en-authentication",
      "title": "Baltic (en) — Authenticating with the Baltic API",
      "summary": "The English authentication page of the Baltic API Docs micro-site; hreflang declared only via the HTTP Link header.",
      "route": "/intl/baltic/en/authentication",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "value": "<https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/authentication>; rel=\"alternate\"; hreflang=\"en\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/authentication>; rel=\"alternate\"; hreflang=\"de\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/authentication>; rel=\"alternate\"; hreflang=\"fr\""
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-baltic-en-authentication:raw"
        ],
        "absentBodyMarkers": [
          "<link rel=\"alternate\""
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/authentication",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/authentication",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/authentication",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpHeaderHreflangAnnotations"
      ],
      "contentRef": "international-sites/baltic",
      "robotsStanzas": []
    },
    {
      "id": "intl-baltic-de-authentication",
      "title": "Baltic (de) — Authentifizierung bei der Baltic API",
      "summary": "The German authentication page of the Baltic API Docs micro-site; hreflang declared only via the HTTP Link header.",
      "route": "/intl/baltic/de/authentication",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "value": "<https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/authentication>; rel=\"alternate\"; hreflang=\"en\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/authentication>; rel=\"alternate\"; hreflang=\"de\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/authentication>; rel=\"alternate\"; hreflang=\"fr\""
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-baltic-de-authentication:raw"
        ],
        "absentBodyMarkers": [
          "<link rel=\"alternate\""
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/authentication",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/authentication",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/authentication",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpHeaderHreflangAnnotations"
      ],
      "contentRef": "international-sites/baltic",
      "robotsStanzas": []
    },
    {
      "id": "intl-baltic-fr-authentication",
      "title": "Baltic (fr) — Authentification auprès de l'API Baltic",
      "summary": "The French authentication page of the Baltic API Docs micro-site; hreflang declared only via the HTTP Link header.",
      "route": "/intl/baltic/fr/authentication",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "value": "<https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/authentication>; rel=\"alternate\"; hreflang=\"en\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/authentication>; rel=\"alternate\"; hreflang=\"de\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/authentication>; rel=\"alternate\"; hreflang=\"fr\""
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-baltic-fr-authentication:raw"
        ],
        "absentBodyMarkers": [
          "<link rel=\"alternate\""
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/authentication",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/authentication",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/authentication",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpHeaderHreflangAnnotations"
      ],
      "contentRef": "international-sites/baltic",
      "robotsStanzas": []
    },
    {
      "id": "intl-baltic-en-errors",
      "title": "Baltic (en) — Baltic API error reference",
      "summary": "The English errors page of the Baltic API Docs micro-site; hreflang declared only via the HTTP Link header.",
      "route": "/intl/baltic/en/errors",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "value": "<https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/errors>; rel=\"alternate\"; hreflang=\"en\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/errors>; rel=\"alternate\"; hreflang=\"de\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/errors>; rel=\"alternate\"; hreflang=\"fr\""
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-baltic-en-errors:raw"
        ],
        "absentBodyMarkers": [
          "<link rel=\"alternate\""
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/errors",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/errors",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/errors",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpHeaderHreflangAnnotations"
      ],
      "contentRef": "international-sites/baltic",
      "robotsStanzas": []
    },
    {
      "id": "intl-baltic-de-errors",
      "title": "Baltic (de) — Baltic API Fehlerreferenz",
      "summary": "The German errors page of the Baltic API Docs micro-site; hreflang declared only via the HTTP Link header.",
      "route": "/intl/baltic/de/errors",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "value": "<https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/errors>; rel=\"alternate\"; hreflang=\"en\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/errors>; rel=\"alternate\"; hreflang=\"de\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/errors>; rel=\"alternate\"; hreflang=\"fr\""
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-baltic-de-errors:raw"
        ],
        "absentBodyMarkers": [
          "<link rel=\"alternate\""
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/errors",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/errors",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/errors",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpHeaderHreflangAnnotations"
      ],
      "contentRef": "international-sites/baltic",
      "robotsStanzas": []
    },
    {
      "id": "intl-baltic-fr-errors",
      "title": "Baltic (fr) — Référence des erreurs de l'API Baltic",
      "summary": "The French errors page of the Baltic API Docs micro-site; hreflang declared only via the HTTP Link header.",
      "route": "/intl/baltic/fr/errors",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "value": "<https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/errors>; rel=\"alternate\"; hreflang=\"en\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/errors>; rel=\"alternate\"; hreflang=\"de\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/errors>; rel=\"alternate\"; hreflang=\"fr\""
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-baltic-fr-errors:raw"
        ],
        "absentBodyMarkers": [
          "<link rel=\"alternate\""
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/errors",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/errors",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/errors",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpHeaderHreflangAnnotations"
      ],
      "contentRef": "international-sites/baltic",
      "robotsStanzas": []
    },
    {
      "id": "intl-baltic-en-reference-pdf",
      "title": "Baltic (en) — localized endpoint reference PDF",
      "summary": "The English endpoint-reference PDF of the Baltic API Docs micro-site; hreflang annotations exist solely in the HTTP Link header.",
      "route": "/intl/baltic/en/reference.pdf",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "value": "<https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/reference.pdf>; rel=\"alternate\"; hreflang=\"en\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/reference.pdf>; rel=\"alternate\"; hreflang=\"de\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/reference.pdf>; rel=\"alternate\"; hreflang=\"fr\""
          },
          {
            "name": "Content-Length",
            "value": "596"
          }
        ],
        "expectedContentType": "application/pdf",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/reference.pdf",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/reference.pdf",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/reference.pdf",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpHeaderHreflangAnnotations"
      ],
      "contentRef": "international-sites/baltic",
      "robotsStanzas": []
    },
    {
      "id": "intl-baltic-de-reference-pdf",
      "title": "Baltic (de) — localized endpoint reference PDF",
      "summary": "The German endpoint-reference PDF of the Baltic API Docs micro-site; hreflang annotations exist solely in the HTTP Link header.",
      "route": "/intl/baltic/de/reference.pdf",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "value": "<https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/reference.pdf>; rel=\"alternate\"; hreflang=\"en\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/reference.pdf>; rel=\"alternate\"; hreflang=\"de\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/reference.pdf>; rel=\"alternate\"; hreflang=\"fr\""
          },
          {
            "name": "Content-Length",
            "value": "597"
          }
        ],
        "expectedContentType": "application/pdf",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/reference.pdf",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/reference.pdf",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/reference.pdf",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpHeaderHreflangAnnotations"
      ],
      "contentRef": "international-sites/baltic",
      "robotsStanzas": []
    },
    {
      "id": "intl-baltic-fr-reference-pdf",
      "title": "Baltic (fr) — localized endpoint reference PDF",
      "summary": "The French endpoint-reference PDF of the Baltic API Docs micro-site; hreflang annotations exist solely in the HTTP Link header.",
      "route": "/intl/baltic/fr/reference.pdf",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "value": "<https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/reference.pdf>; rel=\"alternate\"; hreflang=\"en\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/reference.pdf>; rel=\"alternate\"; hreflang=\"de\", <https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/reference.pdf>; rel=\"alternate\"; hreflang=\"fr\""
          },
          {
            "name": "Content-Length",
            "value": "634"
          }
        ],
        "expectedContentType": "application/pdf",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/baltic/en/reference.pdf",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/baltic/de/reference.pdf",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/baltic/fr/reference.pdf",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpHeaderHreflangAnnotations"
      ],
      "contentRef": "international-sites/baltic",
      "robotsStanzas": []
    },
    {
      "id": "intl-corsica-en-gb-home",
      "title": "Corsica Outdoor UK — Camping and Hiking Kit",
      "summary": "Corsica Outdoor en-GB home page; its hreflang cluster is declared only in the site-local XML sitemap.",
      "route": "/intl/corsica/en-gb",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "absent": true
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-corsica-en-gb-home:raw"
        ],
        "absentBodyMarkers": [
          "rel=\"alternate\"",
          "hreflang"
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-GB|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-US|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-us",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de-DE|https://crawler-test-site.uk.sitebulb.com/intl/corsica/de-de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpXmlSitemapHreflangAnnotations",
        "UrlsXDefaultHreflangAnnotations"
      ],
      "contentRef": "international-sites/corsica",
      "robotsStanzas": []
    },
    {
      "id": "intl-corsica-en-gb-tents",
      "title": "Tents — Corsica Outdoor UK",
      "summary": "Corsica Outdoor en-GB tents page; its hreflang cluster is declared only in the site-local XML sitemap.",
      "route": "/intl/corsica/en-gb/tents",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "absent": true
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-corsica-en-gb-tents:raw"
        ],
        "absentBodyMarkers": [
          "rel=\"alternate\"",
          "hreflang"
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb/tents",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-GB|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb/tents",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-US|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-us/tents",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de-DE|https://crawler-test-site.uk.sitebulb.com/intl/corsica/de-de/tents",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb/tents",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpXmlSitemapHreflangAnnotations",
        "UrlsXDefaultHreflangAnnotations"
      ],
      "contentRef": "international-sites/corsica",
      "robotsStanzas": []
    },
    {
      "id": "intl-corsica-en-gb-alpine-tent",
      "title": "Alpine Tent — Corsica Outdoor UK",
      "summary": "Corsica Outdoor en-GB alpine-tent page; its hreflang cluster is declared only in the site-local XML sitemap.",
      "route": "/intl/corsica/en-gb/tents/alpine-tent",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "absent": true
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-corsica-en-gb-alpine-tent:raw"
        ],
        "absentBodyMarkers": [
          "rel=\"alternate\"",
          "hreflang"
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb/tents/alpine-tent",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-GB|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb/tents/alpine-tent",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-US|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-us/tents/alpine-tent",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de-DE|https://crawler-test-site.uk.sitebulb.com/intl/corsica/de-de/tents/alpine-tent",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb/tents/alpine-tent",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpXmlSitemapHreflangAnnotations",
        "UrlsXDefaultHreflangAnnotations"
      ],
      "contentRef": "international-sites/corsica",
      "robotsStanzas": []
    },
    {
      "id": "intl-corsica-en-gb-trail-pack",
      "title": "Trail Pack — Corsica Outdoor UK",
      "summary": "Corsica Outdoor en-GB trail-pack page; its hreflang cluster is declared only in the site-local XML sitemap.",
      "route": "/intl/corsica/en-gb/tents/trail-pack",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "absent": true
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-corsica-en-gb-trail-pack:raw"
        ],
        "absentBodyMarkers": [
          "rel=\"alternate\"",
          "hreflang"
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb/tents/trail-pack",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-GB|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb/tents/trail-pack",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-US|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-us/tents/trail-pack",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de-DE|https://crawler-test-site.uk.sitebulb.com/intl/corsica/de-de/tents/trail-pack",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb/tents/trail-pack",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpXmlSitemapHreflangAnnotations",
        "UrlsXDefaultHreflangAnnotations"
      ],
      "contentRef": "international-sites/corsica",
      "robotsStanzas": []
    },
    {
      "id": "intl-corsica-en-us-home",
      "title": "Corsica Outdoor US — Camping and Hiking Gear",
      "summary": "Corsica Outdoor en-US home page; its hreflang cluster is declared only in the site-local XML sitemap.",
      "route": "/intl/corsica/en-us",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "absent": true
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-corsica-en-us-home:raw"
        ],
        "absentBodyMarkers": [
          "rel=\"alternate\"",
          "hreflang"
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-us",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-GB|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-US|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-us",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de-DE|https://crawler-test-site.uk.sitebulb.com/intl/corsica/de-de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpXmlSitemapHreflangAnnotations",
        "UrlsXDefaultHreflangAnnotations"
      ],
      "contentRef": "international-sites/corsica",
      "robotsStanzas": []
    },
    {
      "id": "intl-corsica-en-us-tents",
      "title": "Tents — Corsica Outdoor US",
      "summary": "Corsica Outdoor en-US tents page; its hreflang cluster is declared only in the site-local XML sitemap.",
      "route": "/intl/corsica/en-us/tents",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "absent": true
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-corsica-en-us-tents:raw"
        ],
        "absentBodyMarkers": [
          "rel=\"alternate\"",
          "hreflang"
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-us/tents",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-GB|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb/tents",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-US|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-us/tents",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de-DE|https://crawler-test-site.uk.sitebulb.com/intl/corsica/de-de/tents",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb/tents",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpXmlSitemapHreflangAnnotations",
        "UrlsXDefaultHreflangAnnotations"
      ],
      "contentRef": "international-sites/corsica",
      "robotsStanzas": []
    },
    {
      "id": "intl-corsica-en-us-alpine-tent",
      "title": "Alpine Tent — Corsica Outdoor US",
      "summary": "Corsica Outdoor en-US alpine-tent page; its hreflang cluster is declared only in the site-local XML sitemap.",
      "route": "/intl/corsica/en-us/tents/alpine-tent",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "absent": true
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-corsica-en-us-alpine-tent:raw"
        ],
        "absentBodyMarkers": [
          "rel=\"alternate\"",
          "hreflang"
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-us/tents/alpine-tent",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-GB|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb/tents/alpine-tent",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-US|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-us/tents/alpine-tent",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de-DE|https://crawler-test-site.uk.sitebulb.com/intl/corsica/de-de/tents/alpine-tent",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb/tents/alpine-tent",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpXmlSitemapHreflangAnnotations",
        "UrlsXDefaultHreflangAnnotations"
      ],
      "contentRef": "international-sites/corsica",
      "robotsStanzas": []
    },
    {
      "id": "intl-corsica-en-us-trail-pack",
      "title": "Trail Pack — Corsica Outdoor US",
      "summary": "Corsica Outdoor en-US trail-pack page; its hreflang cluster is declared only in the site-local XML sitemap.",
      "route": "/intl/corsica/en-us/tents/trail-pack",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "absent": true
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-corsica-en-us-trail-pack:raw"
        ],
        "absentBodyMarkers": [
          "rel=\"alternate\"",
          "hreflang"
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-us/tents/trail-pack",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-GB|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb/tents/trail-pack",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-US|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-us/tents/trail-pack",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de-DE|https://crawler-test-site.uk.sitebulb.com/intl/corsica/de-de/tents/trail-pack",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb/tents/trail-pack",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpXmlSitemapHreflangAnnotations",
        "UrlsXDefaultHreflangAnnotations"
      ],
      "contentRef": "international-sites/corsica",
      "robotsStanzas": []
    },
    {
      "id": "intl-corsica-de-de-home",
      "title": "Corsica Outdoor DE — Ausrüstung für Camping und Wandern",
      "summary": "Corsica Outdoor de-DE home page; its hreflang cluster is declared only in the site-local XML sitemap.",
      "route": "/intl/corsica/de-de",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "absent": true
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-corsica-de-de-home:raw"
        ],
        "absentBodyMarkers": [
          "rel=\"alternate\"",
          "hreflang"
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/corsica/de-de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-GB|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-US|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-us",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de-DE|https://crawler-test-site.uk.sitebulb.com/intl/corsica/de-de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpXmlSitemapHreflangAnnotations",
        "UrlsXDefaultHreflangAnnotations"
      ],
      "contentRef": "international-sites/corsica",
      "robotsStanzas": []
    },
    {
      "id": "intl-corsica-de-de-tents",
      "title": "Zelte — Corsica Outdoor DE",
      "summary": "Corsica Outdoor de-DE tents page; its hreflang cluster is declared only in the site-local XML sitemap.",
      "route": "/intl/corsica/de-de/tents",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "absent": true
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-corsica-de-de-tents:raw"
        ],
        "absentBodyMarkers": [
          "rel=\"alternate\"",
          "hreflang"
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/corsica/de-de/tents",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-GB|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb/tents",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-US|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-us/tents",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de-DE|https://crawler-test-site.uk.sitebulb.com/intl/corsica/de-de/tents",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb/tents",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpXmlSitemapHreflangAnnotations",
        "UrlsXDefaultHreflangAnnotations"
      ],
      "contentRef": "international-sites/corsica",
      "robotsStanzas": []
    },
    {
      "id": "intl-corsica-de-de-alpine-tent",
      "title": "Alpinzelt — Corsica Outdoor DE",
      "summary": "Corsica Outdoor de-DE alpine-tent page; its hreflang cluster is declared only in the site-local XML sitemap.",
      "route": "/intl/corsica/de-de/tents/alpine-tent",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "absent": true
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-corsica-de-de-alpine-tent:raw"
        ],
        "absentBodyMarkers": [
          "rel=\"alternate\"",
          "hreflang"
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/corsica/de-de/tents/alpine-tent",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-GB|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb/tents/alpine-tent",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-US|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-us/tents/alpine-tent",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de-DE|https://crawler-test-site.uk.sitebulb.com/intl/corsica/de-de/tents/alpine-tent",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb/tents/alpine-tent",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpXmlSitemapHreflangAnnotations",
        "UrlsXDefaultHreflangAnnotations"
      ],
      "contentRef": "international-sites/corsica",
      "robotsStanzas": []
    },
    {
      "id": "intl-corsica-de-de-trail-pack",
      "title": "Trekkingrucksack — Corsica Outdoor DE",
      "summary": "Corsica Outdoor de-DE trail-pack page; its hreflang cluster is declared only in the site-local XML sitemap.",
      "route": "/intl/corsica/de-de/tents/trail-pack",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Link",
            "absent": true
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-corsica-de-de-trail-pack:raw"
        ],
        "absentBodyMarkers": [
          "rel=\"alternate\"",
          "hreflang"
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/corsica/de-de/tents/trail-pack",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-GB|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb/tents/trail-pack",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-US|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-us/tents/trail-pack",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de-DE|https://crawler-test-site.uk.sitebulb.com/intl/corsica/de-de/tents/trail-pack",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/intl/corsica/en-gb/tents/trail-pack",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangAnnotations",
        "UrlsWithHttpXmlSitemapHreflangAnnotations",
        "UrlsXDefaultHreflangAnnotations"
      ],
      "contentRef": "international-sites/corsica",
      "robotsStanzas": []
    },
    {
      "id": "intl-darwin-en-home",
      "title": "Darwin Journal — Climate news",
      "summary": "The English home of the Darwin Journal micro-site; correct 4-way reciprocal home cluster.",
      "route": "/intl/darwin/en",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-darwin-en-home:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/darwin/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/darwin/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/darwin/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "it|https://crawler-test-site.uk.sitebulb.com/intl/darwin/it",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/darwin",
      "robotsStanzas": []
    },
    {
      "id": "intl-darwin-de-home",
      "title": "Darwin Journal — Klimanachrichten",
      "summary": "The German home of the Darwin Journal micro-site; correct 4-way reciprocal home cluster.",
      "route": "/intl/darwin/de",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-darwin-de-home:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/darwin/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/darwin/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/darwin/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "it|https://crawler-test-site.uk.sitebulb.com/intl/darwin/it",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/darwin",
      "robotsStanzas": []
    },
    {
      "id": "intl-darwin-fr-home",
      "title": "Darwin Journal — Actualités du climat",
      "summary": "The French home of the Darwin Journal micro-site; correct 4-way reciprocal home cluster.",
      "route": "/intl/darwin/fr",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-darwin-fr-home:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/darwin/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/darwin/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/darwin/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "it|https://crawler-test-site.uk.sitebulb.com/intl/darwin/it",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/darwin",
      "robotsStanzas": []
    },
    {
      "id": "intl-darwin-it-home",
      "title": "Darwin Journal — Notizie sul clima",
      "summary": "The Italian home of the Darwin Journal micro-site; correct 4-way reciprocal home cluster.",
      "route": "/intl/darwin/it",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-darwin-it-home:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/darwin/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/darwin/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/darwin/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "it|https://crawler-test-site.uk.sitebulb.com/intl/darwin/it",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/darwin",
      "robotsStanzas": []
    },
    {
      "id": "intl-darwin-glacier-en",
      "title": "Glacier melt accelerates across the Alps",
      "summary": "English article declaring an en/fr pair whose French side never declares back.",
      "route": "/intl/darwin/en/glacier-melt",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-darwin-glacier-en:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/darwin/en/glacier-melt",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/darwin/fr/fonte-des-glaciers",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "MissingReciprocalHreflangAnnotations"
      ],
      "contentRef": "international-sites/darwin",
      "robotsStanzas": []
    },
    {
      "id": "intl-darwin-glacier-fr",
      "title": "La fonte des glaciers s’accélère dans les Alpes",
      "summary": "French article that declares only itself, omitting the English side of the glacier pair.",
      "route": "/intl/darwin/fr/fonte-des-glaciers",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-darwin-glacier-fr:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/darwin/fr/fonte-des-glaciers",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "MissingReciprocalHreflangAnnotations"
      ],
      "contentRef": "international-sites/darwin",
      "robotsStanzas": []
    },
    {
      "id": "intl-darwin-volcano-en",
      "title": "Volcano watch: new vents under observation",
      "summary": "English article whose declared German alternate returns HTTP 404.",
      "route": "/intl/darwin/en/volcano-watch",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-darwin-volcano-en:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/darwin/en/volcano-watch",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/darwin/de/vulkan-beobachtung",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "OutgoingBrokenHreflangUrls"
      ],
      "contentRef": "international-sites/darwin",
      "robotsStanzas": []
    },
    {
      "id": "intl-darwin-volcano-de",
      "title": "Vulkan-Beobachtung — Seite nicht gefunden",
      "summary": "The 404 German target nominated by the volcano article hreflang declaration.",
      "route": "/intl/darwin/de/vulkan-beobachtung",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 404,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-darwin-volcano-de:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/darwin",
      "robotsStanzas": []
    },
    {
      "id": "intl-darwin-rivers-en",
      "title": "Rivers rising after record rainfall",
      "summary": "English article whose declared German alternate answers with a 301 redirect.",
      "route": "/intl/darwin/en/rivers-rising",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-darwin-rivers-en:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/darwin/en/rivers-rising",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/darwin/de/fluesse-steigen",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "OutgoingRedirectHreflangUrls"
      ],
      "contentRef": "international-sites/darwin",
      "robotsStanzas": []
    },
    {
      "id": "intl-darwin-rivers-de-final",
      "title": "Flüsse steigen nach Rekordregen",
      "summary": "The 200 landing page of the rivers redirect; declares no annotations (documented fallout).",
      "route": "/intl/darwin/de/fluesse-steigen-neu",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-darwin-rivers-de-final:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/darwin",
      "robotsStanzas": []
    },
    {
      "id": "intl-darwin-deserts-en",
      "title": "Desert spread threatens grasslands",
      "summary": "English article whose declared German alternate canonicalises away to a v2 URL.",
      "route": "/intl/darwin/en/desert-spread",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-darwin-deserts-en:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/darwin/en/desert-spread",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/darwin/de/wuesten-wachsen",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "HasCanonicalOutgoingHreflang"
      ],
      "contentRef": "international-sites/darwin",
      "robotsStanzas": []
    },
    {
      "id": "intl-darwin-deserts-de",
      "title": "Wüsten wachsen und bedrohen Weideland",
      "summary": "German target that declares the reciprocal en/de pair but canonicalises to its v2 URL.",
      "route": "/intl/darwin/de/wuesten-wachsen",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-darwin-deserts-de:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/darwin/en/desert-spread",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/darwin/de/wuesten-wachsen",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/darwin/de/wuesten-wachsen-v2",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "CanonicalizedUrlsWithHreflangAnnotations"
      ],
      "contentRef": "international-sites/darwin",
      "robotsStanzas": []
    },
    {
      "id": "intl-darwin-deserts-de-v2",
      "title": "Wüsten wachsen — aktualisierte Ausgabe",
      "summary": "The self-canonical v2 article the deserts target canonicalises to; declares nothing (documented fallout).",
      "route": "/intl/darwin/de/wuesten-wachsen-v2",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-darwin-deserts-de-v2:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/darwin",
      "robotsStanzas": []
    },
    {
      "id": "intl-darwin-oceans-en",
      "title": "Ocean heat reaches new highs",
      "summary": "English article whose declared French alternate carries meta robots noindex.",
      "route": "/intl/darwin/en/ocean-heat",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-darwin-oceans-en:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/darwin/en/ocean-heat",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/darwin/fr/chaleur-oceans",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "HasNoindexedOutgoingHreflang"
      ],
      "contentRef": "international-sites/darwin",
      "robotsStanzas": []
    },
    {
      "id": "intl-darwin-oceans-fr",
      "title": "La chaleur des océans atteint des records",
      "summary": "Noindexed French target that declares the reciprocal en/fr pair.",
      "route": "/intl/darwin/fr/chaleur-oceans",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-darwin-oceans-fr:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/darwin/en/ocean-heat",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/darwin/fr/chaleur-oceans",
            "source": "raw"
          },
          {
            "kind": "meta-robots",
            "value": "noindex",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "NoindexedUrlsWithHreflangAnnotations"
      ],
      "contentRef": "international-sites/darwin",
      "robotsStanzas": []
    },
    {
      "id": "intl-darwin-forests-en",
      "title": "Forest loss continues in the tropics",
      "summary": "English article whose declared German alternate sits on a robots-disallowed path.",
      "route": "/intl/darwin/en/forest-loss",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-darwin-forests-en:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/darwin/en/forest-loss",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/darwin/blocked/wald-verlust",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "HasDisallowedOutgoingHreflang"
      ],
      "contentRef": "international-sites/darwin",
      "robotsStanzas": []
    },
    {
      "id": "intl-darwin-forests-de",
      "title": "Waldverlust setzt sich in den Tropen fort",
      "summary": "Robots-disallowed German target that declares the reciprocal en/de pair; contributes the blocked stanza.",
      "route": "/intl/darwin/blocked/wald-verlust",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-darwin-forests-de:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/darwin/en/forest-loss",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/darwin/blocked/wald-verlust",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "DisallowedUrlsWithHreflangAnnotations"
      ],
      "contentRef": "international-sites/darwin",
      "robotsStanzas": [
        {
          "userAgent": "*",
          "rules": [
            {
              "directive": "disallow",
              "path": "/intl/darwin/blocked/"
            }
          ],
          "sitemapRefs": []
        }
      ]
    },
    {
      "id": "intl-darwin-islands-it",
      "title": "Isole remote di fronte al cambiamento climatico",
      "summary": "Indexable Italian article in an annotated section that carries no hreflang annotations at all.",
      "route": "/intl/darwin/it/isole-remote",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-darwin-islands-it:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsMissingHreflangAnnotations"
      ],
      "contentRef": "international-sites/darwin",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-en-home",
      "title": "Echo App — team messaging that keeps every market in sync",
      "summary": "Echo en home: correct reciprocal en/de pair with the German home; links every fault page on the site.",
      "route": "/intl/echo",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-en-home:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/echo",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/echo/de",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-de-home",
      "title": "Echo App — Team-Messaging, das jeden Markt synchron hält",
      "summary": "Echo de home: the correct German counterpart of the en home, completing the control cluster.",
      "route": "/intl/echo/de",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-de-home:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/echo",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/echo/de",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/de",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-invalid-codes",
      "title": "Echo App — supported languages",
      "summary": "Self-referencing hreflang set that declares en plus the invalid values en-UK and english.",
      "route": "/intl/echo/invalid-codes",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-invalid-codes:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/echo/invalid-codes",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-UK|https://crawler-test-site.uk.sitebulb.com/intl/echo/invalid-codes",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "english|https://crawler-test-site.uk.sitebulb.com/intl/echo/invalid-codes",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/invalid-codes",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "InvalidOutgoingHreflangAnnotations"
      ],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-invalid-pair-a",
      "title": "Echo App — regional rollouts, side A",
      "summary": "Declares en for itself and the invalid code zz-AA toward its pair page.",
      "route": "/intl/echo/invalid-pair/a",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-invalid-pair-a:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/echo/invalid-pair/a",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "zz-AA|https://crawler-test-site.uk.sitebulb.com/intl/echo/invalid-pair/b",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/invalid-pair/a",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "InvalidOutgoingHreflangAnnotations",
        "InvalidIncomingHreflangAnnotations"
      ],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-invalid-pair-b",
      "title": "Echo App — regional rollouts, side B",
      "summary": "Self-references under the invalid code zz-AA and points en back at its pair page, structurally reciprocal.",
      "route": "/intl/echo/invalid-pair/b",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-invalid-pair-b:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "zz-AA|https://crawler-test-site.uk.sitebulb.com/intl/echo/invalid-pair/b",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/echo/invalid-pair/a",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/invalid-pair/b",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "InvalidOutgoingHreflangAnnotations",
        "InvalidIncomingHreflangAnnotations"
      ],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-dup-url",
      "title": "Echo App — one destination for two markets",
      "summary": "Declares the same German target URL under both fr and de; the fr edge has no return tag.",
      "route": "/intl/echo/dup-url",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-dup-url:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/echo/dup-url",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/echo/dup-url/ziel",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/echo/dup-url/ziel",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/dup-url",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "ContainsDuplicateOutgoingHreflangUrls",
        "MissingReciprocalHreflangAnnotations"
      ],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-dup-url-target",
      "title": "Echo App — Ihre Zielseite für den deutschen Markt",
      "summary": "German target page that reciprocates only the de edge of the duplicate-URL declaration.",
      "route": "/intl/echo/dup-url/ziel",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-dup-url-target:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/echo/dup-url/ziel",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/echo/dup-url",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/dup-url/ziel",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-dup-lang",
      "title": "Echo App — choose your French edition",
      "summary": "Declares fr twice, once per French URL, alongside its own en self-reference.",
      "route": "/intl/echo/dup-lang",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-dup-lang:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/echo/dup-lang",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/echo/dup-lang/fr-un",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/echo/dup-lang/fr-deux",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/dup-lang",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithDuplicateOutgoingHreflangAnnotations"
      ],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-dup-lang-fr-1",
      "title": "Echo App — édition française, bulletin concis",
      "summary": "First French edition; fully reciprocal with the duplicate-language page.",
      "route": "/intl/echo/dup-lang/fr-un",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-dup-lang-fr-1:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/echo/dup-lang/fr-un",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/echo/dup-lang",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/dup-lang/fr-un",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-dup-lang-fr-2",
      "title": "Echo App — édition française, récit complet",
      "summary": "Second French edition; fully reciprocal with the duplicate-language page.",
      "route": "/intl/echo/dup-lang/fr-deux",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-dup-lang-fr-2:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/echo/dup-lang/fr-deux",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/echo/dup-lang",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/dup-lang/fr-deux",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-conflict-target",
      "title": "Echo App — Funktionsvergleich für Ihr Team",
      "summary": "German page that receives de from ref-a and fr from ref-b, creating conflicting incoming annotations.",
      "route": "/intl/echo/conflict/target",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-conflict-target:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/echo/conflict/target",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/echo/conflict/ref-a",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/conflict/target",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithDuplicateIncomingHreflangAnnotations"
      ],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-conflict-ref-a",
      "title": "Echo App — feature comparison, referrer A",
      "summary": "Declares de toward the conflict target and is fully reciprocal with it.",
      "route": "/intl/echo/conflict/ref-a",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-conflict-ref-a:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/echo/conflict/ref-a",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/echo/conflict/target",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/conflict/ref-a",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-conflict-ref-b",
      "title": "Echo App — feature comparison, referrer B",
      "summary": "Declares fr toward the conflict target, conflicting with ref-a and lacking a return tag.",
      "route": "/intl/echo/conflict/ref-b",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-conflict-ref-b:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/echo/conflict/ref-b",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/echo/conflict/target",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/conflict/ref-b",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "MissingReciprocalHreflangAnnotations"
      ],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-multi-self",
      "title": "Echo App — pricing for the United Kingdom",
      "summary": "Self-references twice, under en and en-GB.",
      "route": "/intl/echo/multi-self",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-multi-self:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/echo/multi-self",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-GB|https://crawler-test-site.uk.sitebulb.com/intl/echo/multi-self",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/multi-self",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlHasMultipleSelfReferencesHreflangAnnotations"
      ],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-relative",
      "title": "Echo App — integrations that meet you where you work",
      "summary": "Both hreflang hrefs are root-relative instead of absolute.",
      "route": "/intl/echo/relative",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-relative:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|/intl/echo/relative",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|/intl/echo/relative/de",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/relative",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithRelativeHreflangUrls"
      ],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-relative-de",
      "title": "Echo App — Integrationen für Ihren Arbeitsalltag",
      "summary": "German counterpart that declares correct absolute hrefs back at the relative page.",
      "route": "/intl/echo/relative/de",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-relative-de:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/echo/relative/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/echo/relative",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/relative/de",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-anchor-attr",
      "title": "Echo App — switch languages without losing your thread",
      "summary": "Carries zero head alternates; its body language switcher puts hreflang on an anchor tag.",
      "route": "/intl/echo/anchor-attr",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-anchor-attr:raw",
          "<a hreflang=\"de\" href=\"/intl/echo/de\">Deutsch</a>"
        ],
        "absentBodyMarkers": [
          "<link rel=\"alternate\""
        ],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/anchor-attr",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsContainingUnsupportedHreflangTags",
        "UrlsMissingHreflangAnnotations"
      ],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-no-html-lang",
      "title": "Echo App — changelog",
      "summary": "The html element carries no lang attribute and the page has no hreflang annotations.",
      "route": "/intl/echo/no-html-lang",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-no-html-lang:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/no-html-lang",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsMissingHtmlLang",
        "UrlsMissingHreflangAnnotations"
      ],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-invalid-html-lang",
      "title": "Echo App — join the beta programme",
      "summary": "The html lang attribute is the invalid value xx-XX and the page has no hreflang annotations.",
      "route": "/intl/echo/invalid-html-lang",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-invalid-html-lang:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/invalid-html-lang",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithInvalidHtmlLang",
        "UrlsMissingHreflangAnnotations"
      ],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-hreflang-no-lang-en",
      "title": "Echo App — security built for regulated teams",
      "summary": "Valid reciprocal en/de pair member whose html element carries no lang attribute.",
      "route": "/intl/echo/hreflang-no-lang/en",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-hreflang-no-lang-en:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/echo/hreflang-no-lang/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/echo/hreflang-no-lang/de",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/hreflang-no-lang/en",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangMissingHtmlLanguage",
        "UrlsMissingHtmlLang"
      ],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-hreflang-no-lang-de",
      "title": "Echo App — Sicherheit für regulierte Teams",
      "summary": "German counterpart of the pair, also without an html lang attribute.",
      "route": "/intl/echo/hreflang-no-lang/de",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-hreflang-no-lang-de:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/echo/hreflang-no-lang/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/echo/hreflang-no-lang/de",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/hreflang-no-lang/de",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangMissingHtmlLanguage",
        "UrlsMissingHtmlLang"
      ],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-lang-mismatch",
      "title": "Echo App — Lösungen für große Unternehmen",
      "summary": "German page with html lang de whose only hreflang declaration is an en self-reference.",
      "route": "/intl/echo/lang-mismatch",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-lang-mismatch:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/echo/lang-mismatch",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/lang-mismatch",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHreflangHtmlLanguageMismatchs"
      ],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-no-canonical-en",
      "title": "Echo App — take your channels mobile",
      "summary": "Valid reciprocal en/de pair member served without a rel=canonical declaration.",
      "route": "/intl/echo/no-canonical/en",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-no-canonical-en:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/echo/no-canonical/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/echo/no-canonical/de",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "HreflangUrlMissingCanonical"
      ],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-no-canonical-de",
      "title": "Echo App — Ihre Kanäle für unterwegs",
      "summary": "German counterpart of the missing-canonical pair, served with a normal self-canonical.",
      "route": "/intl/echo/no-canonical/de",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-no-canonical-de:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/echo/no-canonical/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/echo/no-canonical/de",
            "source": "raw"
          },
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/no-canonical/de",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-echo-unannotated",
      "title": "Echo App — about the company",
      "summary": "Plain indexable English page in the site navigation with no hreflang annotations.",
      "route": "/intl/echo/unannotated",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-echo-unannotated:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "canonical-html",
            "value": "https://crawler-test-site.uk.sitebulb.com/intl/echo/unannotated",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsMissingHreflangAnnotations"
      ],
      "contentRef": "international-sites/echo",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-en-home",
      "title": "Fuji Kitchen — Japanese Home Cooking",
      "summary": "The Fuji Kitchen entry page; correct reciprocal en/ja head-link pair and links to every edge-case page.",
      "route": "/intl/fuji/en",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-en-home:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ja|https://crawler-test-site.uk.sitebulb.com/intl/fuji/ja",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-ja-home",
      "title": "フジキッチン — 日本の家庭料理",
      "summary": "The Japanese homepage; the reciprocal partner of the en entry page.",
      "route": "/intl/fuji/ja",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-ja-home:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ja|https://crawler-test-site.uk.sitebulb.com/intl/fuji/ja",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-dual-consistent-en",
      "title": "Miso Soup — Fuji Kitchen",
      "summary": "Declares the identical en/ja set in both head links and the HTTP Link header; consistent sets, multiple channels.",
      "route": "/intl/fuji/dual-consistent/en",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "link",
            "valuePattern": "^<https://crawler-test-site\\.uk\\.sitebulb\\.com/intl/fuji/dual-consistent/en>; rel=\"alternate\"; hreflang=\"en\", <https://crawler-test-site\\.uk\\.sitebulb\\.com/intl/fuji/dual-consistent/ja>; rel=\"alternate\"; hreflang=\"ja\"$"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-dual-consistent-en:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/dual-consistent/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ja|https://crawler-test-site.uk.sitebulb.com/intl/fuji/dual-consistent/ja",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithMultipleHreflangTypes"
      ],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-dual-consistent-ja",
      "title": "味噌汁 — フジキッチン",
      "summary": "The Japanese member of the dual-channel consistent cluster; head links and Link header carry the same set.",
      "route": "/intl/fuji/dual-consistent/ja",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "link",
            "valuePattern": "^<https://crawler-test-site\\.uk\\.sitebulb\\.com/intl/fuji/dual-consistent/en>; rel=\"alternate\"; hreflang=\"en\", <https://crawler-test-site\\.uk\\.sitebulb\\.com/intl/fuji/dual-consistent/ja>; rel=\"alternate\"; hreflang=\"ja\"$"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-dual-consistent-ja:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/dual-consistent/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ja|https://crawler-test-site.uk.sitebulb.com/intl/fuji/dual-consistent/ja",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithMultipleHreflangTypes"
      ],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-dual-conflict",
      "title": "Shoyu Ramen — Fuji Kitchen",
      "summary": "Head links and the Link header agree on en but map fr to two different URLs — the deliberate cross-channel duplicate.",
      "route": "/intl/fuji/dual-conflict",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "link",
            "valuePattern": "^<https://crawler-test-site\\.uk\\.sitebulb\\.com/intl/fuji/dual-conflict>; rel=\"alternate\"; hreflang=\"en\", <https://crawler-test-site\\.uk\\.sitebulb\\.com/intl/fuji/dual-conflict/fr-entete>; rel=\"alternate\"; hreflang=\"fr\"$"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-dual-conflict:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/dual-conflict",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/fuji/dual-conflict/fr-tete",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/fuji/dual-conflict/fr-entete",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithMultipleHreflangTypes",
        "UrlsWithDuplicateOutgoingHreflangAnnotations"
      ],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-conflict-fr-head",
      "title": "Ramen shoyu — Fuji Kitchen",
      "summary": "Reciprocates the head-channel fr edge of the dual-conflict page via head links.",
      "route": "/intl/fuji/dual-conflict/fr-tete",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-conflict-fr-head:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/fuji/dual-conflict/fr-tete",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/dual-conflict",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-conflict-fr-header",
      "title": "Ramen shoyu (entête) — Fuji Kitchen",
      "summary": "Reciprocates the header-channel fr edge of the dual-conflict page via head links.",
      "route": "/intl/fuji/dual-conflict/fr-entete",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-conflict-fr-header:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/fuji/dual-conflict/fr-entete",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/dual-conflict",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-sitemap-head-en",
      "title": "Tempura — Fuji Kitchen",
      "summary": "Declares the identical en/ja set in head links and in the site-local sitemap xhtml:link entries.",
      "route": "/intl/fuji/sitemap-head/en",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-sitemap-head-en:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/sitemap-head/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ja|https://crawler-test-site.uk.sitebulb.com/intl/fuji/sitemap-head/ja",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithMultipleHreflangTypes"
      ],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-sitemap-head-ja",
      "title": "天ぷら — フジキッチン",
      "summary": "The Japanese member of the head-plus-sitemap dual-channel cluster.",
      "route": "/intl/fuji/sitemap-head/ja",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-sitemap-head-ja:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/sitemap-head/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ja|https://crawler-test-site.uk.sitebulb.com/intl/fuji/sitemap-head/ja",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithMultipleHreflangTypes"
      ],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-script-en",
      "title": "Japanese Fried Rice — Fuji Kitchen",
      "summary": "The en member of the script-subtag cluster pairing zh-Hans and zh-Hant; valid codes, zero expected issues.",
      "route": "/intl/fuji/script/en",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-script-en:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/script/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "zh-Hans|https://crawler-test-site.uk.sitebulb.com/intl/fuji/script/zh-hans",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "zh-Hant|https://crawler-test-site.uk.sitebulb.com/intl/fuji/script/zh-hant",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-script-zh-hans",
      "title": "日式炒饭 — 富士厨房",
      "summary": "Simplified Chinese member of the script-subtag cluster; html lang zh-Hans.",
      "route": "/intl/fuji/script/zh-hans",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-script-zh-hans:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/script/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "zh-Hans|https://crawler-test-site.uk.sitebulb.com/intl/fuji/script/zh-hans",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "zh-Hant|https://crawler-test-site.uk.sitebulb.com/intl/fuji/script/zh-hant",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-script-zh-hant",
      "title": "日式炒飯 — 富士廚房",
      "summary": "Traditional Chinese member of the script-subtag cluster; html lang zh-Hant.",
      "route": "/intl/fuji/script/zh-hant",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-script-zh-hant:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/script/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "zh-Hans|https://crawler-test-site.uk.sitebulb.com/intl/fuji/script/zh-hans",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "zh-Hant|https://crawler-test-site.uk.sitebulb.com/intl/fuji/script/zh-hant",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-rtl-en",
      "title": "Katsu Curry — Fuji Kitchen",
      "summary": "The en member of the correct en/ar pair whose Arabic counterpart is an RTL document.",
      "route": "/intl/fuji/rtl/en",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-rtl-en:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/rtl/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ar|https://crawler-test-site.uk.sitebulb.com/intl/fuji/rtl/ar",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-rtl-ar",
      "title": "كاتسو كاري — مطبخ فوجي",
      "summary": "Arabic RTL member of the reciprocal pair; html lang ar with dir rtl and genuinely Arabic content.",
      "route": "/intl/fuji/rtl/ar",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-rtl-ar:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/rtl/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ar|https://crawler-test-site.uk.sitebulb.com/intl/fuji/rtl/ar",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-external",
      "title": "Sushi Rolls — Fuji Kitchen",
      "summary": "Declares en (self) plus a de alternate on the external domain https://example.com/ — the documented hreflang exit.",
      "route": "/intl/fuji/external",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": true,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-external:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/external",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://example.com/",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "ExternalHreflangUrls"
      ],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-mixed-xd-en",
      "title": "Gyoza — Fuji Kitchen",
      "summary": "The en/fr pair member that carries both the en annotation and the x-default annotation pointing at itself.",
      "route": "/intl/fuji/mixed-xd/en",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-mixed-xd-en:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/mixed-xd/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/fuji/mixed-xd/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/intl/fuji/mixed-xd/en",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "MixedXDefaultAndHreflang"
      ],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-mixed-xd-fr",
      "title": "Gyoza — Fuji Kitchen (FR)",
      "summary": "The French counterpart; declares the same set, including x-default pointing at the en URL.",
      "route": "/intl/fuji/mixed-xd/fr",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-mixed-xd-fr:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/mixed-xd/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/fuji/mixed-xd/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "x-default|https://crawler-test-site.uk.sitebulb.com/intl/fuji/mixed-xd/en",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "MixedXDefaultAndHreflang"
      ],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-casing-a",
      "title": "Okonomiyaki — Fuji Kitchen (UK)",
      "summary": "Declares its own value with non-canonical casing EN-GB; the pair must unify into one valid cluster.",
      "route": "/intl/fuji/casing/a",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-casing-a:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "EN-GB|https://crawler-test-site.uk.sitebulb.com/intl/fuji/casing/a",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-US|https://crawler-test-site.uk.sitebulb.com/intl/fuji/casing/b",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-casing-b",
      "title": "Okonomiyaki — Fuji Kitchen (US)",
      "summary": "Refers to its partner with the lowercase-region value en-gb; case-insensitive values, zero invalid-code issues.",
      "route": "/intl/fuji/casing/b",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-casing-b:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en-gb|https://crawler-test-site.uk.sitebulb.com/intl/fuji/casing/a",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "en-US|https://crawler-test-site.uk.sitebulb.com/intl/fuji/casing/b",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-large-en",
      "title": "Matcha Cookies — Fuji Kitchen",
      "summary": "The en member of the ten-locale fully reciprocal large cluster; ten head-link annotations, zero expected issues.",
      "route": "/intl/fuji/large/en",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-large-en:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/es",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "it|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/it",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "pt-BR|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/pt-br",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ja|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/ja",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ko|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/ko",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "pl|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/pl",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "nl|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/nl",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-large-de",
      "title": "Matcha-Kekse — Fuji Kitchen",
      "summary": "The de member of the ten-locale fully reciprocal large cluster; ten head-link annotations, zero expected issues.",
      "route": "/intl/fuji/large/de",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-large-de:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/es",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "it|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/it",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "pt-BR|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/pt-br",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ja|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/ja",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ko|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/ko",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "pl|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/pl",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "nl|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/nl",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-large-fr",
      "title": "Biscuits au matcha — Fuji Kitchen",
      "summary": "The fr member of the ten-locale fully reciprocal large cluster; ten head-link annotations, zero expected issues.",
      "route": "/intl/fuji/large/fr",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-large-fr:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/es",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "it|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/it",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "pt-BR|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/pt-br",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ja|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/ja",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ko|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/ko",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "pl|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/pl",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "nl|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/nl",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-large-es",
      "title": "Galletas de matcha — Fuji Kitchen",
      "summary": "The es member of the ten-locale fully reciprocal large cluster; ten head-link annotations, zero expected issues.",
      "route": "/intl/fuji/large/es",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-large-es:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/es",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "it|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/it",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "pt-BR|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/pt-br",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ja|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/ja",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ko|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/ko",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "pl|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/pl",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "nl|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/nl",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-large-it",
      "title": "Biscotti al matcha — Fuji Kitchen",
      "summary": "The it member of the ten-locale fully reciprocal large cluster; ten head-link annotations, zero expected issues.",
      "route": "/intl/fuji/large/it",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-large-it:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/es",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "it|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/it",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "pt-BR|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/pt-br",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ja|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/ja",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ko|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/ko",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "pl|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/pl",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "nl|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/nl",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-large-pt-br",
      "title": "Biscoitos de matcha — Fuji Kitchen",
      "summary": "The pt-BR member of the ten-locale fully reciprocal large cluster; ten head-link annotations, zero expected issues.",
      "route": "/intl/fuji/large/pt-br",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-large-pt-br:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/es",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "it|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/it",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "pt-BR|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/pt-br",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ja|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/ja",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ko|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/ko",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "pl|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/pl",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "nl|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/nl",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-large-ja",
      "title": "抹茶クッキー — フジキッチン",
      "summary": "The ja member of the ten-locale fully reciprocal large cluster; ten head-link annotations, zero expected issues.",
      "route": "/intl/fuji/large/ja",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-large-ja:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/es",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "it|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/it",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "pt-BR|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/pt-br",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ja|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/ja",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ko|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/ko",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "pl|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/pl",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "nl|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/nl",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-large-ko",
      "title": "말차 쿠키 — 후지 키친",
      "summary": "The ko member of the ten-locale fully reciprocal large cluster; ten head-link annotations, zero expected issues.",
      "route": "/intl/fuji/large/ko",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-large-ko:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/es",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "it|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/it",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "pt-BR|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/pt-br",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ja|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/ja",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ko|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/ko",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "pl|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/pl",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "nl|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/nl",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-large-pl",
      "title": "Ciasteczka matcha — Fuji Kitchen",
      "summary": "The pl member of the ten-locale fully reciprocal large cluster; ten head-link annotations, zero expected issues.",
      "route": "/intl/fuji/large/pl",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-large-pl:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/es",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "it|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/it",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "pt-BR|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/pt-br",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ja|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/ja",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ko|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/ko",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "pl|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/pl",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "nl|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/nl",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "intl-fuji-large-nl",
      "title": "Matchakoekjes — Fuji Kitchen",
      "summary": "The nl member of the ten-locale fully reciprocal large cluster; ten head-link annotations, zero expected issues.",
      "route": "/intl/fuji/large/nl",
      "method": "GET",
      "group": "international-sites",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:intl-fuji-large-nl:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "hreflang",
            "value": "en|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/en",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "de|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/de",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "fr|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/fr",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "es|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/es",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "it|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/it",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "pt-BR|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/pt-br",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ja|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/ja",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "ko|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/ko",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "pl|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/pl",
            "source": "raw"
          },
          {
            "kind": "hreflang",
            "value": "nl|https://crawler-test-site.uk.sitebulb.com/intl/fuji/large/nl",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "international-sites/fuji",
      "robotsStanzas": []
    },
    {
      "id": "ai-robots-gptbot",
      "title": "AI robots blocked target — GPTBot",
      "summary": "A 200 target page whose path the generated robots.txt disallows for the GPTBot user-agent token only.",
      "route": "/tests/ai-modern-crawlers/blocked/gptbot",
      "method": "GET",
      "group": "ai-modern-crawlers",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:ai-robots-gptbot:blocked-target"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "ai-modern-crawlers/per-bot-robots",
      "robotsStanzas": [
        {
          "userAgent": "GPTBot",
          "rules": [
            {
              "directive": "disallow",
              "path": "/tests/ai-modern-crawlers/blocked/gptbot"
            }
          ],
          "sitemapRefs": []
        }
      ]
    },
    {
      "id": "ai-robots-chatgpt-user",
      "title": "AI robots blocked target — ChatGPT-User",
      "summary": "A 200 target page whose path the generated robots.txt disallows for the ChatGPT-User user-agent token only.",
      "route": "/tests/ai-modern-crawlers/blocked/chatgpt-user",
      "method": "GET",
      "group": "ai-modern-crawlers",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:ai-robots-chatgpt-user:blocked-target"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "ai-modern-crawlers/per-bot-robots",
      "robotsStanzas": [
        {
          "userAgent": "ChatGPT-User",
          "rules": [
            {
              "directive": "disallow",
              "path": "/tests/ai-modern-crawlers/blocked/chatgpt-user"
            }
          ],
          "sitemapRefs": []
        }
      ]
    },
    {
      "id": "ai-robots-claudebot",
      "title": "AI robots blocked target — ClaudeBot",
      "summary": "A 200 target page whose path the generated robots.txt disallows for the ClaudeBot user-agent token only.",
      "route": "/tests/ai-modern-crawlers/blocked/claudebot",
      "method": "GET",
      "group": "ai-modern-crawlers",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:ai-robots-claudebot:blocked-target"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "ai-modern-crawlers/per-bot-robots",
      "robotsStanzas": [
        {
          "userAgent": "ClaudeBot",
          "rules": [
            {
              "directive": "disallow",
              "path": "/tests/ai-modern-crawlers/blocked/claudebot"
            }
          ],
          "sitemapRefs": []
        }
      ]
    },
    {
      "id": "ai-robots-claude-web",
      "title": "AI robots blocked target — Claude-Web",
      "summary": "A 200 target page whose path the generated robots.txt disallows for the Claude-Web user-agent token only.",
      "route": "/tests/ai-modern-crawlers/blocked/claude-web",
      "method": "GET",
      "group": "ai-modern-crawlers",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:ai-robots-claude-web:blocked-target"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "ai-modern-crawlers/per-bot-robots",
      "robotsStanzas": [
        {
          "userAgent": "Claude-Web",
          "rules": [
            {
              "directive": "disallow",
              "path": "/tests/ai-modern-crawlers/blocked/claude-web"
            }
          ],
          "sitemapRefs": []
        }
      ]
    },
    {
      "id": "ai-robots-amazonbot",
      "title": "AI robots blocked target — Amazonbot",
      "summary": "A 200 target page whose path the generated robots.txt disallows for the Amazonbot user-agent token only.",
      "route": "/tests/ai-modern-crawlers/blocked/amazonbot",
      "method": "GET",
      "group": "ai-modern-crawlers",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:ai-robots-amazonbot:blocked-target"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "ai-modern-crawlers/per-bot-robots",
      "robotsStanzas": [
        {
          "userAgent": "Amazonbot",
          "rules": [
            {
              "directive": "disallow",
              "path": "/tests/ai-modern-crawlers/blocked/amazonbot"
            }
          ],
          "sitemapRefs": []
        }
      ]
    },
    {
      "id": "ai-robots-google-extended",
      "title": "AI robots blocked target — Google-Extended",
      "summary": "A 200 target page whose path the generated robots.txt disallows for the Google-Extended user-agent token only.",
      "route": "/tests/ai-modern-crawlers/blocked/google-extended",
      "method": "GET",
      "group": "ai-modern-crawlers",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:ai-robots-google-extended:blocked-target"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "ai-modern-crawlers/per-bot-robots",
      "robotsStanzas": [
        {
          "userAgent": "Google-Extended",
          "rules": [
            {
              "directive": "disallow",
              "path": "/tests/ai-modern-crawlers/blocked/google-extended"
            }
          ],
          "sitemapRefs": []
        }
      ]
    },
    {
      "id": "ai-robots-oai-searchbot",
      "title": "AI robots blocked target — OAI-SearchBot",
      "summary": "A 200 target page whose path the generated robots.txt disallows for the OAI-SearchBot user-agent token only.",
      "route": "/tests/ai-modern-crawlers/blocked/oai-searchbot",
      "method": "GET",
      "group": "ai-modern-crawlers",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:ai-robots-oai-searchbot:blocked-target"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "ai-modern-crawlers/per-bot-robots",
      "robotsStanzas": [
        {
          "userAgent": "OAI-SearchBot",
          "rules": [
            {
              "directive": "disallow",
              "path": "/tests/ai-modern-crawlers/blocked/oai-searchbot"
            }
          ],
          "sitemapRefs": []
        }
      ]
    },
    {
      "id": "ai-robots-perplexitybot",
      "title": "AI robots blocked target — PerplexityBot",
      "summary": "A 200 target page whose path the generated robots.txt disallows for the PerplexityBot user-agent token only.",
      "route": "/tests/ai-modern-crawlers/blocked/perplexitybot",
      "method": "GET",
      "group": "ai-modern-crawlers",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:ai-robots-perplexitybot:blocked-target"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "ai-modern-crawlers/per-bot-robots",
      "robotsStanzas": [
        {
          "userAgent": "PerplexityBot",
          "rules": [
            {
              "directive": "disallow",
              "path": "/tests/ai-modern-crawlers/blocked/perplexitybot"
            }
          ],
          "sitemapRefs": []
        }
      ]
    },
    {
      "id": "ai-robots-cohere-ai",
      "title": "AI robots blocked target — cohere-ai",
      "summary": "A 200 target page whose path the generated robots.txt disallows for the cohere-ai user-agent token only.",
      "route": "/tests/ai-modern-crawlers/blocked/cohere-ai",
      "method": "GET",
      "group": "ai-modern-crawlers",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:ai-robots-cohere-ai:blocked-target"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "ai-modern-crawlers/per-bot-robots",
      "robotsStanzas": [
        {
          "userAgent": "cohere-ai",
          "rules": [
            {
              "directive": "disallow",
              "path": "/tests/ai-modern-crawlers/blocked/cohere-ai"
            }
          ],
          "sitemapRefs": []
        }
      ]
    },
    {
      "id": "ai-meta-noai-gptbot",
      "title": "Bot-scoped meta robots — GPTBot noindex",
      "summary": "A 200 page carrying a meta robots directive scoped to the GPTBot agent name.",
      "route": "/tests/ai-modern-crawlers/directives/meta-gptbot-noindex",
      "method": "GET",
      "group": "ai-modern-crawlers",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:ai-meta-noai-gptbot:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "meta-robots",
            "value": "GPTBot: noindex",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "ai-modern-crawlers/bot-scoped-directives",
      "robotsStanzas": []
    },
    {
      "id": "ai-xrobots-claudebot",
      "title": "Bot-scoped X-Robots-Tag — ClaudeBot noindex",
      "summary": "A 200 response whose X-Robots-Tag header scopes noindex to the ClaudeBot agent.",
      "route": "/tests/ai-modern-crawlers/directives/xrobots-claudebot-noindex",
      "method": "GET",
      "group": "ai-modern-crawlers",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "X-Robots-Tag",
            "value": "ClaudeBot: noindex"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:ai-xrobots-claudebot:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [
          {
            "kind": "x-robots-tag",
            "value": "ClaudeBot: noindex",
            "source": "raw"
          }
        ],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "ai-modern-crawlers/bot-scoped-directives",
      "robotsStanzas": []
    },
    {
      "id": "ai-llms-valid",
      "title": "llms.txt — valid",
      "summary": "The llms-valid origin serving a well-formed llms.txt with H1 title, blockquote summary, and a Docs section with two links.",
      "route": "/llms.txt",
      "method": "GET",
      "group": "ai-modern-crawlers",
      "profile": "llms-valid",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/plain",
        "bodyMarkers": [
          "## Docs"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "contentRef": "ai-modern-crawlers/llms-txt",
      "robotsStanzas": []
    },
    {
      "id": "ai-llms-optional-section",
      "title": "llms.txt — optional section",
      "summary": "The llms-optional origin serving a valid llms.txt that adds an Optional section of lower-priority links.",
      "route": "/llms.txt",
      "method": "GET",
      "group": "ai-modern-crawlers",
      "profile": "llms-optional",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/plain",
        "bodyMarkers": [
          "## Docs",
          "## Optional"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "contentRef": "ai-modern-crawlers/llms-txt",
      "robotsStanzas": []
    },
    {
      "id": "ai-llms-missing",
      "title": "llms.txt — missing",
      "summary": "The llms-missing origin returning a genuine 404 for its root llms.txt.",
      "route": "/llms.txt",
      "method": "GET",
      "group": "ai-modern-crawlers",
      "profile": "llms-missing",
      "implementationType": "supporting-profile",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 404,
        "expectedHeaders": [],
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "contentRef": "ai-modern-crawlers/llms-txt",
      "robotsStanzas": []
    },
    {
      "id": "ai-js-gated-content",
      "title": "JavaScript-gated article content",
      "summary": "The raw HTML carries only the raw marker; the article content and rendered marker are inserted by an inline script after load.",
      "route": "/tests/ai-modern-crawlers/rendering/js-gated",
      "method": "GET",
      "group": "ai-modern-crawlers",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:ai-js-gated-content:raw"
        ],
        "absentBodyMarkers": [
          "sb-fixture:ai-js-gated-content:rendered"
        ],
        "renderedMarkers": [
          "sb-fixture:ai-js-gated-content:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "ai-modern-crawlers/js-vs-ssr",
      "robotsStanzas": []
    },
    {
      "id": "ai-ssr-equivalent-control",
      "title": "Server-rendered equivalent control",
      "summary": "The same article content as the JS-gated fixture, served in raw HTML so the comparison pair is complete.",
      "route": "/tests/ai-modern-crawlers/rendering/ssr-equivalent",
      "method": "GET",
      "group": "ai-modern-crawlers",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:ai-ssr-equivalent-control:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "ai-modern-crawlers/js-vs-ssr",
      "robotsStanzas": []
    },
    {
      "id": "ai-js-execution-detection",
      "title": "JavaScript execution detection reference",
      "summary": "A documentation page cross-referencing the group 07 JavaScript-execution proof fixtures rather than duplicating them.",
      "route": "/tests/ai-modern-crawlers/rendering/js-execution-detection",
      "method": "GET",
      "group": "ai-modern-crawlers",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:ai-js-execution-detection:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "/tests/javascript/proof/body-text-only-js",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/javascript/proof/links-only-js",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "ai-modern-crawlers/js-vs-ssr",
      "robotsStanzas": []
    },
    {
      "id": "ai-bot-specific-content-marker",
      "title": "Bot-specific content marker",
      "summary": "An endpoint whose marker names the AI bot identity the server matched in the User-Agent, or generic otherwise.",
      "route": "/tests/ai-modern-crawlers/bot-marker",
      "method": "GET",
      "group": "ai-modern-crawlers",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Vary",
            "value": "User-Agent"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:ai-bot-specific-content-marker:generic"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "ai-modern-crawlers/bot-specific-content",
      "robotsStanzas": []
    },
    {
      "id": "ai-training-disallow-reference",
      "title": "Training-control disallow reference",
      "summary": "Explains the Google-Extended-disallowed-but-Googlebot-allowed contrast created by the per-bot stanzas in this group.",
      "route": "/tests/ai-modern-crawlers/policies/training-disallow",
      "method": "GET",
      "group": "ai-modern-crawlers",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:ai-training-disallow-reference:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "ai-modern-crawlers/policy-patterns",
      "robotsStanzas": []
    },
    {
      "id": "ai-search-bot-allow-reference",
      "title": "Search-bot allow reference",
      "summary": "Explains the OAI-SearchBot-allowed-but-GPTBot-disallowed contrast created by the per-bot stanzas in this group.",
      "route": "/tests/ai-modern-crawlers/policies/search-bot-allow",
      "method": "GET",
      "group": "ai-modern-crawlers",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:ai-search-bot-allow-reference:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "ai-modern-crawlers/policy-patterns",
      "robotsStanzas": []
    },
    {
      "id": "exotic-iframe-sandbox",
      "title": "Sandboxed same-origin iframe",
      "summary": "A page embedding a same-origin iframe whose bare sandbox attribute omits allow-scripts.",
      "route": "/tests/exotic-advanced-tests/iframes/sandbox",
      "method": "GET",
      "group": "exotic-advanced-tests",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:exotic-iframe-sandbox:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "exotic-advanced-tests/iframes-and-framesets",
      "robotsStanzas": []
    },
    {
      "id": "exotic-frameset-legacy",
      "title": "Legacy HTML4 frameset",
      "summary": "A frameset document with no body element and two frame src targets.",
      "route": "/tests/exotic-advanced-tests/frameset/legacy",
      "method": "GET",
      "group": "exotic-advanced-tests",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:exotic-frameset-legacy:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "exotic-advanced-tests/iframes-and-framesets",
      "robotsStanzas": []
    },
    {
      "id": "exotic-method-head",
      "title": "HTTP method resource — HEAD",
      "summary": "HEAD returns 200 with the exact GET headers and Content-Length but an empty body.",
      "route": "/tests/exotic-advanced-tests/methods/resource",
      "method": "HEAD",
      "group": "exotic-advanced-tests",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "251"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "exotic-advanced-tests/http-methods",
      "robotsStanzas": []
    },
    {
      "id": "exotic-method-options",
      "title": "HTTP method resource — OPTIONS",
      "summary": "OPTIONS returns 204 with the advertised method set and no body.",
      "route": "/tests/exotic-advanced-tests/methods/resource",
      "method": "OPTIONS",
      "group": "exotic-advanced-tests",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 204,
        "expectedHeaders": [
          {
            "name": "Allow",
            "value": "GET, HEAD, OPTIONS"
          }
        ],
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "exotic-advanced-tests/http-methods",
      "robotsStanzas": []
    },
    {
      "id": "exotic-method-put-405",
      "title": "HTTP method resource — PUT 405",
      "summary": "PUT returns 405 Method Not Allowed with the advertised method set.",
      "route": "/tests/exotic-advanced-tests/methods/resource",
      "method": "PUT",
      "group": "exotic-advanced-tests",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 405,
        "expectedHeaders": [
          {
            "name": "Allow",
            "value": "GET, HEAD, OPTIONS"
          }
        ],
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "exotic-advanced-tests/http-methods",
      "robotsStanzas": []
    },
    {
      "id": "exotic-method-delete-405",
      "title": "HTTP method resource — DELETE 405",
      "summary": "DELETE returns 405 Method Not Allowed with the advertised method set.",
      "route": "/tests/exotic-advanced-tests/methods/resource",
      "method": "DELETE",
      "group": "exotic-advanced-tests",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 405,
        "expectedHeaders": [
          {
            "name": "Allow",
            "value": "GET, HEAD, OPTIONS"
          }
        ],
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "exotic-advanced-tests/http-methods",
      "robotsStanzas": []
    },
    {
      "id": "exotic-method-patch-405",
      "title": "HTTP method resource — PATCH 405",
      "summary": "PATCH returns 405 Method Not Allowed with the advertised method set.",
      "route": "/tests/exotic-advanced-tests/methods/resource",
      "method": "PATCH",
      "group": "exotic-advanced-tests",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 405,
        "expectedHeaders": [
          {
            "name": "Allow",
            "value": "GET, HEAD, OPTIONS"
          }
        ],
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "exotic-advanced-tests/http-methods",
      "robotsStanzas": []
    },
    {
      "id": "exotic-custom-elements",
      "title": "Custom element with shadow content",
      "summary": "The raw HTML carries only the undefined custom tag and the raw marker; the rendered marker exists only in shadow content.",
      "route": "/tests/exotic-advanced-tests/web-components/custom-elements",
      "method": "GET",
      "group": "exotic-advanced-tests",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:exotic-custom-elements:raw"
        ],
        "absentBodyMarkers": [
          "sb-fixture:exotic-custom-elements:rendered"
        ],
        "renderedMarkers": [
          "sb-fixture:exotic-custom-elements:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "exotic-advanced-tests/web-components",
      "robotsStanzas": []
    },
    {
      "id": "exotic-parser-stress-nested",
      "title": "Parser stress — deep nesting",
      "summary": "512 balanced nested div elements with the full-depth marker at the bottom.",
      "route": "/tests/exotic-advanced-tests/parser/nested",
      "method": "GET",
      "group": "exotic-advanced-tests",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "bodyMarkers": [
          "sb-fixture:exotic-parser-stress-nested:full-depth"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "exotic-advanced-tests/parser-stress",
      "robotsStanzas": []
    },
    {
      "id": "images-missing-alt-page",
      "title": "Images missing alt text",
      "summary": "Embeds the same PNG twice: once via a plain img with no alt attribute, once via srcset with an empty alt.",
      "route": "/tests/images/missing-alt",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:images-missing-alt-page:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "ImagesWithoutAltText"
      ],
      "contentRef": "images/alt-text",
      "robotsStanzas": []
    },
    {
      "id": "images-linked-missing-alt-page",
      "title": "Linked image missing alt text",
      "summary": "An anchor whose only content is an alt-less image, so the missing alt also removes the link anchor text.",
      "route": "/tests/images/linked-missing-alt",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:images-linked-missing-alt-page:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "ImagesWithoutAltText"
      ],
      "contentRef": "images/alt-text",
      "robotsStanzas": []
    },
    {
      "id": "images-decorative-alt-page",
      "title": "Decorative image with empty alt",
      "summary": "Correct decorative markup (alt=\"\" with role=\"presentation\") that the empty-alt predicate still flags.",
      "route": "/tests/images/decorative-alt",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:images-decorative-alt-page:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "ImagesWithoutAltText"
      ],
      "contentRef": "images/alt-text",
      "robotsStanzas": []
    },
    {
      "id": "images-missing-dimensions",
      "title": "Image without declared dimensions",
      "summary": "Embeds an 800x533 image with alt text but no width, height, or CSS sizing.",
      "route": "/tests/images/missing-dimensions",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:images-missing-dimensions:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "ImagesWithoutDimensions"
      ],
      "contentRef": "images/dimensions-and-scaling",
      "robotsStanzas": []
    },
    {
      "id": "images-scaled",
      "title": "Browser-scaled image",
      "summary": "A 1600x1067 image rendered inside a 200px container, discarding almost all downloaded pixels.",
      "route": "/tests/images/scaled",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:images-scaled:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "ProperlySizeImages",
        "UrlsWithScaledImages"
      ],
      "contentRef": "images/dimensions-and-scaling",
      "robotsStanzas": []
    },
    {
      "id": "images-encoding-q100",
      "title": "Inefficiently encoded image — large saving",
      "summary": "Embeds the largest fixture photo at natural size, the anchor case for recompression and next-gen savings.",
      "route": "/tests/images/encoding-q100",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:images-encoding-q100:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "EfficientlyEncodeImages",
        "ServeImagesInNextGenFormats"
      ],
      "contentRef": "images/encoding-quality",
      "robotsStanzas": []
    },
    {
      "id": "images-encoding-q92",
      "title": "Inefficiently encoded image — moderate saving",
      "summary": "Embeds the moderate-saving fixture photo at natural size, bracketing the encoding threshold from above.",
      "route": "/tests/images/encoding-q92",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:images-encoding-q92:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "EfficientlyEncodeImages"
      ],
      "contentRef": "images/encoding-quality",
      "robotsStanzas": []
    },
    {
      "id": "images-nextgen-png",
      "title": "Photographic truecolour PNG",
      "summary": "Embeds a photographic-class PNG, the canonical WebP/AVIF-would-win case.",
      "route": "/tests/images/nextgen-png",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:images-nextgen-png:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "ServeImagesInNextGenFormats"
      ],
      "contentRef": "images/next-gen-formats",
      "robotsStanzas": []
    },
    {
      "id": "images-animated-gif",
      "title": "Animated GIF over the video threshold",
      "summary": "Embeds the animation as a GIF image over the 102,400-byte video-format threshold.",
      "route": "/tests/images/animated-gif",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:images-animated-gif:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UseVideoFormatsForAnimatedContent"
      ],
      "contentRef": "images/animated-content",
      "robotsStanzas": []
    },
    {
      "id": "images-animated-video",
      "title": "Animation delivered as video",
      "summary": "The recommended replacement: the same animation delivered via an autoplaying, looping, muted MP4 video.",
      "route": "/tests/images/animated-video",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:images-animated-video:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "images/animated-content",
      "robotsStanzas": []
    },
    {
      "id": "images-hidden",
      "title": "Hidden eager image",
      "summary": "An eager image inside a display:none wrapper, followed by a deliberate ~200 ms long task.",
      "route": "/tests/images/hidden",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:images-hidden:raw"
        ],
        "absentBodyMarkers": [
          "sb-fixture:images-hidden:rendered"
        ],
        "renderedMarkers": [
          "sb-fixture:images-hidden:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithHiddenImages",
        "DeferOffscreenImages"
      ],
      "contentRef": "images/hidden-and-offscreen",
      "robotsStanzas": []
    },
    {
      "id": "images-offscreen",
      "title": "Offscreen eager image",
      "summary": "A 3,000px spacer pushes an eager image fully below the fold, followed by the same deliberate long task.",
      "route": "/tests/images/offscreen",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:images-offscreen:raw"
        ],
        "absentBodyMarkers": [
          "sb-fixture:images-offscreen:rendered"
        ],
        "renderedMarkers": [
          "sb-fixture:images-offscreen:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UrlsWithOffScreenImages",
        "DeferOffscreenImages"
      ],
      "contentRef": "images/hidden-and-offscreen",
      "robotsStanzas": []
    },
    {
      "id": "images-favicon-missing",
      "title": "Favicon link to a 404 target",
      "summary": "Declares a rel=\"icon\" link pointing at a registered 404 favicon target.",
      "route": "/tests/images/favicon-missing",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:images-favicon-missing:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "images/favicons",
      "robotsStanzas": []
    },
    {
      "id": "images-favicon-wrong-content-type",
      "title": "Favicon with a mismatched content type",
      "summary": "Declares a rel=\"icon\" link whose target serves image bytes under Content-Type text/plain.",
      "route": "/tests/images/favicon-wrong-content-type",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:images-favicon-wrong-content-type:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "images/favicons",
      "robotsStanzas": []
    },
    {
      "id": "images-favicon-multi-size",
      "title": "Multiple sized icon links",
      "summary": "Declares 16x16 and 32x32 icons plus a 180x180 apple-touch-icon.",
      "route": "/tests/images/favicon-multi-size",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:images-favicon-multi-size:raw"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "images/favicons",
      "robotsStanzas": []
    },
    {
      "id": "images-missing-alt-asset",
      "title": "Alt-less image asset",
      "summary": "A deterministic generated 64x64 image served as image/png with its fixture marker in a tEXt chunk.",
      "route": "/tests/images/assets/missing-alt.png",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "4290"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:images-missing-alt-asset:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "ImagesMissingAltText"
      ],
      "contentRef": "images/alt-text",
      "robotsStanzas": []
    },
    {
      "id": "images-linked-missing-alt-asset",
      "title": "Linked alt-less image asset",
      "summary": "A deterministic generated 64x64 image served as image/png with its fixture marker in a tEXt chunk.",
      "route": "/tests/images/assets/linked-missing-alt.png",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "4297"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:images-linked-missing-alt-asset:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "ImagesMissingAltText"
      ],
      "contentRef": "images/alt-text",
      "robotsStanzas": []
    },
    {
      "id": "images-decorative-alt-asset",
      "title": "Decorative image asset",
      "summary": "A deterministic generated 64x64 image served as image/png with its fixture marker in a tEXt chunk.",
      "route": "/tests/images/assets/decorative-alt.png",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "4293"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:images-decorative-alt-asset:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "ImagesMissingAltText"
      ],
      "contentRef": "images/alt-text",
      "robotsStanzas": []
    },
    {
      "id": "images-missing-dimensions-asset",
      "title": "Undeclared-dimensions image asset",
      "summary": "A deterministic generated 800x533 image served as image/jpeg with its fixture marker in a tEXt chunk.",
      "route": "/tests/images/assets/no-dimensions.jpg",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "427100"
          }
        ],
        "expectedContentType": "image/jpeg",
        "bodyMarkers": [
          "sb-fixture:images-missing-dimensions-asset:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "images/dimensions-and-scaling",
      "robotsStanzas": []
    },
    {
      "id": "images-scaled-asset",
      "title": "Scaled 1600x1067 image asset",
      "summary": "A deterministic generated 1600x1067 image served as image/jpeg with its fixture marker in a tEXt chunk.",
      "route": "/tests/images/assets/scaled-1600.jpg",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "1708522"
          }
        ],
        "expectedContentType": "image/jpeg",
        "bodyMarkers": [
          "sb-fixture:images-scaled-asset:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "images/dimensions-and-scaling",
      "robotsStanzas": []
    },
    {
      "id": "images-encoding-q100-asset",
      "title": "Large-saving photo asset",
      "summary": "A deterministic generated 1200x800 image served as image/jpeg with its fixture marker in a tEXt chunk.",
      "route": "/tests/images/assets/photo-q100.jpg",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "961002"
          }
        ],
        "expectedContentType": "image/jpeg",
        "bodyMarkers": [
          "sb-fixture:images-encoding-q100-asset:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "ImageSizeTooBig",
        "UnoptimizedImages",
        "ResourcesEfficientlyEncodeImages",
        "ResourcesServeImagesInNextGenFormats"
      ],
      "contentRef": "images/encoding-quality",
      "robotsStanzas": []
    },
    {
      "id": "images-encoding-q92-asset",
      "title": "Moderate-saving photo asset",
      "summary": "A deterministic generated 800x533 image served as image/jpeg with its fixture marker in a tEXt chunk.",
      "route": "/tests/images/assets/photo-q92.jpg",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "427094"
          }
        ],
        "expectedContentType": "image/jpeg",
        "bodyMarkers": [
          "sb-fixture:images-encoding-q92-asset:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "ResourcesEfficientlyEncodeImages"
      ],
      "contentRef": "images/encoding-quality",
      "robotsStanzas": []
    },
    {
      "id": "images-nextgen-png-asset",
      "title": "Photographic PNG asset",
      "summary": "A deterministic generated 800x533 image served as image/png with its fixture marker in a tEXt chunk.",
      "route": "/tests/images/assets/photo.png",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "427093"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:images-nextgen-png-asset:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "ResourcesServeImagesInNextGenFormats",
        "ImageSizeTooBig"
      ],
      "contentRef": "images/next-gen-formats",
      "robotsStanzas": []
    },
    {
      "id": "images-animated-gif-asset",
      "title": "Animated GIF asset",
      "summary": "A deterministic generated 480x270 image served as image/gif with its fixture marker in a tEXt chunk.",
      "route": "/tests/images/assets/animation.gif",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "130006"
          }
        ],
        "expectedContentType": "image/gif",
        "bodyMarkers": [
          "sb-fixture:images-animated-gif-asset:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "ResourcesUseVideoFormatsForAnimatedContent",
        "ImageSizeTooBig"
      ],
      "contentRef": "images/animated-content",
      "robotsStanzas": []
    },
    {
      "id": "images-animated-video-asset",
      "title": "MP4 video asset",
      "summary": "A deterministic generated 480x270 image served as video/mp4 with its fixture marker in a tEXt chunk.",
      "route": "/tests/images/assets/animation.mp4",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "130008"
          }
        ],
        "expectedContentType": "video/mp4",
        "bodyMarkers": [
          "sb-fixture:images-animated-video-asset:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "images/animated-content",
      "robotsStanzas": []
    },
    {
      "id": "images-hidden-asset",
      "title": "Hidden image asset",
      "summary": "A deterministic generated 800x533 image served as image/jpeg with its fixture marker in a tEXt chunk.",
      "route": "/tests/images/assets/hidden.jpg",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "427088"
          }
        ],
        "expectedContentType": "image/jpeg",
        "bodyMarkers": [
          "sb-fixture:images-hidden-asset:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "images/hidden-and-offscreen",
      "robotsStanzas": []
    },
    {
      "id": "images-offscreen-asset",
      "title": "Offscreen image asset",
      "summary": "A deterministic generated 800x533 image served as image/jpeg with its fixture marker in a tEXt chunk.",
      "route": "/tests/images/assets/offscreen.jpg",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "427091"
          }
        ],
        "expectedContentType": "image/jpeg",
        "bodyMarkers": [
          "sb-fixture:images-offscreen-asset:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "images/hidden-and-offscreen",
      "robotsStanzas": []
    },
    {
      "id": "images-favicon-16",
      "title": "16x16 favicon asset",
      "summary": "A deterministic generated 16x16 image served as image/png with its fixture marker in a tEXt chunk.",
      "route": "/tests/images/assets/favicon-16.png",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "395"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:images-favicon-16:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "images/favicons",
      "robotsStanzas": []
    },
    {
      "id": "images-favicon-32",
      "title": "32x32 favicon asset",
      "summary": "A deterministic generated 32x32 image served as image/png with its fixture marker in a tEXt chunk.",
      "route": "/tests/images/assets/favicon-32.png",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "1179"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:images-favicon-32:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "images/favicons",
      "robotsStanzas": []
    },
    {
      "id": "images-favicon-180",
      "title": "180x180 apple-touch icon asset",
      "summary": "A deterministic generated 180x180 image served as image/png with its fixture marker in a tEXt chunk.",
      "route": "/tests/images/assets/apple-touch-180.png",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "32704"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:images-favicon-180:served"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "images/favicons",
      "robotsStanzas": []
    },
    {
      "id": "images-favicon-missing-target",
      "title": "Missing favicon target",
      "summary": "A deliberately missing favicon URL registered so the broken icon reference is a validated 404 fixture.",
      "route": "/tests/images/favicon/missing.ico",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 404,
        "expectedHeaders": [],
        "expectedContentType": "text/plain; charset=utf-8",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "images/favicons",
      "robotsStanzas": []
    },
    {
      "id": "images-favicon-wrong-content-type-icon",
      "title": "Wrong-content-type icon",
      "summary": "Image bytes served as Content-Type text/plain, so the declared type and actual bytes deliberately disagree.",
      "route": "/tests/images/favicon/wrong-type.ico",
      "method": "GET",
      "group": "images",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "340"
          }
        ],
        "expectedContentType": "text/plain",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "images/favicons",
      "robotsStanzas": []
    },
    {
      "id": "asset-unminified-page",
      "title": "Unminified page",
      "summary": "Pretty-printed HTML linking one unminified stylesheet and one unminified script.",
      "route": "/tests/asset-weight/unminified",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-unminified-page:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "MinifyCss",
        "MinifyJavaScript",
        "HtmlNotMinified"
      ],
      "contentRef": "asset-weight/minification",
      "robotsStanzas": []
    },
    {
      "id": "asset-unminified-css",
      "title": "Unminified stylesheet (UTF-16LE)",
      "summary": "A UTF-16LE stylesheet with BOM, comments, blank lines, and four-space indentation, exactly 8,192 bytes.",
      "route": "/tests/asset-weight/assets/unminified.css",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "8192"
          }
        ],
        "expectedContentType": "text/css; charset=utf-16le",
        "bodyMarkers": [
          "sb-fixture:asset-unminified-css:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "CssNotMinified",
        "MinifyCssResources"
      ],
      "contentRef": "asset-weight/minification",
      "robotsStanzas": []
    },
    {
      "id": "asset-unminified-js",
      "title": "Unminified script (UTF-16LE)",
      "summary": "A UTF-16LE script with BOM, comments, blank lines, and four-space indentation, exactly 8,192 bytes.",
      "route": "/tests/asset-weight/assets/unminified.js",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "8192"
          }
        ],
        "expectedContentType": "text/javascript; charset=utf-16le",
        "bodyMarkers": [
          "sb-fixture:asset-unminified-js:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "JsNotMinified",
        "MinifyJsResource"
      ],
      "contentRef": "asset-weight/minification",
      "robotsStanzas": []
    },
    {
      "id": "asset-large-stylesheet-page",
      "title": "Large stylesheet page",
      "summary": "Links one minified stylesheet over the 14.5 KB large-stylesheet threshold.",
      "route": "/tests/asset-weight/large-stylesheet",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-large-stylesheet-page:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-large-css",
      "title": "Large stylesheet",
      "summary": "A committed minified UTF-8 stylesheet of exactly 20,480 bytes, over the 14.5 KB threshold.",
      "route": "/tests/asset-weight/assets/large.css",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "20480"
          },
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "text/css",
        "bodyMarkers": [
          "sb-fixture:asset-large-css:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [
        "LargeStyleSheet"
      ],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-duplicate-page",
      "title": "Duplicate query-variant resources",
      "summary": "Loads the same stylesheet and script under two query-string variants each.",
      "route": "/tests/asset-weight/duplicate",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-duplicate-page:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/duplication",
      "robotsStanzas": []
    },
    {
      "id": "asset-dup-css-v1",
      "title": "Duplicate stylesheet variant v1",
      "summary": "A 256-byte minified stylesheet served byte-identically regardless of the query string.",
      "route": "/tests/asset-weight/assets/dup.css?v=1",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "256"
          }
        ],
        "expectedContentType": "text/css; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-dup-css:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "DuplicateCssResources"
      ],
      "contentRef": "asset-weight/duplication",
      "robotsStanzas": []
    },
    {
      "id": "asset-dup-css-v2",
      "title": "Duplicate stylesheet variant v2",
      "summary": "A 256-byte minified stylesheet served byte-identically regardless of the query string.",
      "route": "/tests/asset-weight/assets/dup.css?v=2",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "256"
          }
        ],
        "expectedContentType": "text/css; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-dup-css:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "DuplicateCssResources"
      ],
      "contentRef": "asset-weight/duplication",
      "robotsStanzas": []
    },
    {
      "id": "asset-dup-js-v1",
      "title": "Duplicate script variant v1",
      "summary": "A 256-byte minified script served byte-identically regardless of the query string.",
      "route": "/tests/asset-weight/assets/dup.js?v=1",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "256"
          }
        ],
        "expectedContentType": "text/javascript; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-dup-js:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "DuplicateJsResources"
      ],
      "contentRef": "asset-weight/duplication",
      "robotsStanzas": []
    },
    {
      "id": "asset-dup-js-v2",
      "title": "Duplicate script variant v2",
      "summary": "A 256-byte minified script served byte-identically regardless of the query string.",
      "route": "/tests/asset-weight/assets/dup.js?v=2",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "256"
          }
        ],
        "expectedContentType": "text/javascript; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-dup-js:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "DuplicateJsResources"
      ],
      "contentRef": "asset-weight/duplication",
      "robotsStanzas": []
    },
    {
      "id": "asset-identical-page",
      "title": "Identical resources at different URLs",
      "summary": "Loads byte-identical stylesheet and script bodies from URLs whose paths differ beyond the query string.",
      "route": "/tests/asset-weight/identical",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-identical-page:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "IdenticalCssResources",
        "IdenticalJsResources"
      ],
      "contentRef": "asset-weight/duplication",
      "robotsStanzas": []
    },
    {
      "id": "asset-identical-css-a",
      "title": "Identical stylesheet a",
      "summary": "A committed 256-byte minified stylesheet byte-identical to its sibling copy.",
      "route": "/tests/asset-weight/assets/identical-a.css",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "256"
          }
        ],
        "expectedContentType": "text/css",
        "bodyMarkers": [
          "sb-fixture:asset-identical-css:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/duplication",
      "robotsStanzas": []
    },
    {
      "id": "asset-identical-css-b",
      "title": "Identical stylesheet b",
      "summary": "A committed 256-byte minified stylesheet byte-identical to its sibling copy.",
      "route": "/tests/asset-weight/assets/identical-b.css",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "256"
          }
        ],
        "expectedContentType": "text/css",
        "bodyMarkers": [
          "sb-fixture:asset-identical-css:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/duplication",
      "robotsStanzas": []
    },
    {
      "id": "asset-identical-js-a",
      "title": "Identical script a",
      "summary": "A committed 256-byte minified script byte-identical to its sibling copy.",
      "route": "/tests/asset-weight/assets/identical-a.js",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "256"
          }
        ],
        "expectedContentType": "text/javascript",
        "bodyMarkers": [
          "sb-fixture:asset-identical-js:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/duplication",
      "robotsStanzas": []
    },
    {
      "id": "asset-identical-js-b",
      "title": "Identical script b",
      "summary": "A committed 256-byte minified script byte-identical to its sibling copy.",
      "route": "/tests/asset-weight/assets/identical-b.js",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "256"
          }
        ],
        "expectedContentType": "text/javascript",
        "bodyMarkers": [
          "sb-fixture:asset-identical-js:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/duplication",
      "robotsStanzas": []
    },
    {
      "id": "asset-combined-css-page",
      "title": "Combined CSS weight page",
      "summary": "Links three bulk stylesheets whose combined weight of 583,680 bytes exceeds the 500 KB budget.",
      "route": "/tests/asset-weight/combined-css",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-combined-css-page:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [
        "TotalCombinedCssSizeTooBig"
      ],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-bulk-css-1",
      "title": "Bulk stylesheet 1",
      "summary": "A generated deterministic minified stylesheet of exactly 194,560 bytes with its own content seed.",
      "route": "/tests/asset-weight/assets/bulk-1.css",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "194560"
          },
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "text/css; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-bulk-css-1:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [
        "LargeStyleSheet"
      ],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-bulk-css-2",
      "title": "Bulk stylesheet 2",
      "summary": "A generated deterministic minified stylesheet of exactly 194,560 bytes with its own content seed.",
      "route": "/tests/asset-weight/assets/bulk-2.css",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "194560"
          },
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "text/css; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-bulk-css-2:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [
        "LargeStyleSheet"
      ],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-bulk-css-3",
      "title": "Bulk stylesheet 3",
      "summary": "A generated deterministic minified stylesheet of exactly 194,560 bytes with its own content seed.",
      "route": "/tests/asset-weight/assets/bulk-3.css",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "194560"
          },
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "text/css; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-bulk-css-3:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [
        "LargeStyleSheet"
      ],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-combined-js-page",
      "title": "Combined JS weight page",
      "summary": "Loads two deferred bundles whose combined weight of 573,440 bytes exceeds the 500 KB budget.",
      "route": "/tests/asset-weight/combined-js",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-combined-js-page:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [
        "TotalCombinedJsSizeTooBig"
      ],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-bundle-js-1",
      "title": "Bundle script 1",
      "summary": "A generated deterministic minified script of exactly 286,720 bytes with its own content seed.",
      "route": "/tests/asset-weight/assets/bundle-1.js",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "286720"
          },
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "text/javascript; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-bundle-js-1:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-bundle-js-2",
      "title": "Bundle script 2",
      "summary": "A generated deterministic minified script of exactly 286,720 bytes with its own content seed.",
      "route": "/tests/asset-weight/assets/bundle-2.js",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "286720"
          },
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "text/javascript; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-bundle-js-2:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-combined-images-page",
      "title": "Combined image weight page",
      "summary": "Embeds eleven images whose combined weight of 1,081,344 bytes exceeds the 1,000 KB budget.",
      "route": "/tests/asset-weight/combined-images",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-combined-images-page:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [
        "TotalCombinedImageSizeTooBig"
      ],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-image-01",
      "title": "Weight payload image 01",
      "summary": "A generated image of exactly 98,304 bytes, deliberately under the 100 KB per-image threshold.",
      "route": "/tests/asset-weight/assets/image-01.jpg",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "98304"
          },
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "image/jpeg",
        "bodyMarkers": [
          "sb-fixture:asset-image-01:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-image-02",
      "title": "Weight payload image 02",
      "summary": "A generated image of exactly 98,304 bytes, deliberately under the 100 KB per-image threshold.",
      "route": "/tests/asset-weight/assets/image-02.jpg",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "98304"
          },
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "image/jpeg",
        "bodyMarkers": [
          "sb-fixture:asset-image-02:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-image-03",
      "title": "Weight payload image 03",
      "summary": "A generated image of exactly 98,304 bytes, deliberately under the 100 KB per-image threshold.",
      "route": "/tests/asset-weight/assets/image-03.jpg",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "98304"
          },
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "image/jpeg",
        "bodyMarkers": [
          "sb-fixture:asset-image-03:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-image-04",
      "title": "Weight payload image 04",
      "summary": "A generated image of exactly 98,304 bytes, deliberately under the 100 KB per-image threshold.",
      "route": "/tests/asset-weight/assets/image-04.jpg",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "98304"
          },
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "image/jpeg",
        "bodyMarkers": [
          "sb-fixture:asset-image-04:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-image-05",
      "title": "Weight payload image 05",
      "summary": "A generated image of exactly 98,304 bytes, deliberately under the 100 KB per-image threshold.",
      "route": "/tests/asset-weight/assets/image-05.jpg",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "98304"
          },
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "image/jpeg",
        "bodyMarkers": [
          "sb-fixture:asset-image-05:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-image-06",
      "title": "Weight payload image 06",
      "summary": "A generated image of exactly 98,304 bytes, deliberately under the 100 KB per-image threshold.",
      "route": "/tests/asset-weight/assets/image-06.jpg",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "98304"
          },
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "image/jpeg",
        "bodyMarkers": [
          "sb-fixture:asset-image-06:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-image-07",
      "title": "Weight payload image 07",
      "summary": "A generated image of exactly 98,304 bytes, deliberately under the 100 KB per-image threshold.",
      "route": "/tests/asset-weight/assets/image-07.jpg",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "98304"
          },
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "image/jpeg",
        "bodyMarkers": [
          "sb-fixture:asset-image-07:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-image-08",
      "title": "Weight payload image 08",
      "summary": "A generated image of exactly 98,304 bytes, deliberately under the 100 KB per-image threshold.",
      "route": "/tests/asset-weight/assets/image-08.jpg",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "98304"
          },
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "image/jpeg",
        "bodyMarkers": [
          "sb-fixture:asset-image-08:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-image-09",
      "title": "Weight payload image 09",
      "summary": "A generated image of exactly 98,304 bytes, deliberately under the 100 KB per-image threshold.",
      "route": "/tests/asset-weight/assets/image-09.jpg",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "98304"
          },
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "image/jpeg",
        "bodyMarkers": [
          "sb-fixture:asset-image-09:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-image-10",
      "title": "Weight payload image 10",
      "summary": "A generated image of exactly 98,304 bytes, deliberately under the 100 KB per-image threshold.",
      "route": "/tests/asset-weight/assets/image-10.jpg",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "98304"
          },
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "image/jpeg",
        "bodyMarkers": [
          "sb-fixture:asset-image-10:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-image-11",
      "title": "Weight payload image 11",
      "summary": "A generated image of exactly 98,304 bytes, deliberately under the 100 KB per-image threshold.",
      "route": "/tests/asset-weight/assets/image-11.jpg",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "98304"
          },
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "image/jpeg",
        "bodyMarkers": [
          "sb-fixture:asset-image-11:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-combined-fonts-page",
      "title": "Combined webfont weight page",
      "summary": "Renders five paragraphs in five distinct font families whose combined weight of 245,760 bytes exceeds the 200 KB budget.",
      "route": "/tests/asset-weight/combined-fonts",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-combined-fonts-page:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [
        "TotalCombinedFontSizeTooBig"
      ],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-fonts-css",
      "title": "Webfont stylesheet",
      "summary": "A committed minified stylesheet declaring five @font-face rules, each with font-display swap.",
      "route": "/tests/asset-weight/assets/fonts.css",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "655"
          }
        ],
        "expectedContentType": "text/css",
        "bodyMarkers": [
          "sb-fixture:asset-fonts-css:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-font-1",
      "title": "Webfont 1",
      "summary": "A generated deterministic binary of exactly 49,152 bytes, deliberately under the 50 KB per-font threshold.",
      "route": "/tests/asset-weight/assets/font-1.woff2",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "49152"
          },
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "font/woff2",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-font-2",
      "title": "Webfont 2",
      "summary": "A generated deterministic binary of exactly 49,152 bytes, deliberately under the 50 KB per-font threshold.",
      "route": "/tests/asset-weight/assets/font-2.woff2",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "49152"
          },
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "font/woff2",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-font-3",
      "title": "Webfont 3",
      "summary": "A generated deterministic binary of exactly 49,152 bytes, deliberately under the 50 KB per-font threshold.",
      "route": "/tests/asset-weight/assets/font-3.woff2",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "49152"
          },
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "font/woff2",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-font-4",
      "title": "Webfont 4",
      "summary": "A generated deterministic binary of exactly 49,152 bytes, deliberately under the 50 KB per-font threshold.",
      "route": "/tests/asset-weight/assets/font-4.woff2",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "49152"
          },
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "font/woff2",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-font-5",
      "title": "Webfont 5",
      "summary": "A generated deterministic binary of exactly 49,152 bytes, deliberately under the 50 KB per-font threshold.",
      "route": "/tests/asset-weight/assets/font-5.woff2",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "49152"
          },
          {
            "name": "Content-Encoding",
            "absent": true
          }
        ],
        "expectedContentType": "font/woff2",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/combined-size-budgets",
      "robotsStanzas": []
    },
    {
      "id": "asset-many-requests-page",
      "title": "Many same-origin requests page",
      "summary": "References 36 distinct same-origin subresources: 30 tile images and 6 deferred no-op scripts.",
      "route": "/tests/asset-weight/many-requests",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-many-requests-page:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "TooManyRequestsPerDomain"
      ],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-01",
      "title": "Request-count tile 01",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-01.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-01:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-02",
      "title": "Request-count tile 02",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-02.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-02:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-03",
      "title": "Request-count tile 03",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-03.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-03:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-04",
      "title": "Request-count tile 04",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-04.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-04:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-05",
      "title": "Request-count tile 05",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-05.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-05:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-06",
      "title": "Request-count tile 06",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-06.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-06:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-07",
      "title": "Request-count tile 07",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-07.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-07:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-08",
      "title": "Request-count tile 08",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-08.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-08:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-09",
      "title": "Request-count tile 09",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-09.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-09:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-10",
      "title": "Request-count tile 10",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-10.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-10:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-11",
      "title": "Request-count tile 11",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-11.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-11:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-12",
      "title": "Request-count tile 12",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-12.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-12:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-13",
      "title": "Request-count tile 13",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-13.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-13:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-14",
      "title": "Request-count tile 14",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-14.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-14:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-15",
      "title": "Request-count tile 15",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-15.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-15:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-16",
      "title": "Request-count tile 16",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-16.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-16:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-17",
      "title": "Request-count tile 17",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-17.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-17:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-18",
      "title": "Request-count tile 18",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-18.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-18:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-19",
      "title": "Request-count tile 19",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-19.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-19:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-20",
      "title": "Request-count tile 20",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-20.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-20:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-21",
      "title": "Request-count tile 21",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-21.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-21:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-22",
      "title": "Request-count tile 22",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-22.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-22:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-23",
      "title": "Request-count tile 23",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-23.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-23:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-24",
      "title": "Request-count tile 24",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-24.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-24:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-25",
      "title": "Request-count tile 25",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-25.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-25:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-26",
      "title": "Request-count tile 26",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-26.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-26:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-27",
      "title": "Request-count tile 27",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-27.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-27:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-28",
      "title": "Request-count tile 28",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-28.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-28:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-29",
      "title": "Request-count tile 29",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-29.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-29:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-tile-30",
      "title": "Request-count tile 30",
      "summary": "A tiny generated 8x8 tile image, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/tile-30.png",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "189"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:asset-tile-30:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-noop-1",
      "title": "Request-count no-op script 1",
      "summary": "A one-line generated no-op script, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/noop-1.js",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "40"
          }
        ],
        "expectedContentType": "text/javascript; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-noop-1:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-noop-2",
      "title": "Request-count no-op script 2",
      "summary": "A one-line generated no-op script, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/noop-2.js",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "40"
          }
        ],
        "expectedContentType": "text/javascript; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-noop-2:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-noop-3",
      "title": "Request-count no-op script 3",
      "summary": "A one-line generated no-op script, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/noop-3.js",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "40"
          }
        ],
        "expectedContentType": "text/javascript; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-noop-3:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-noop-4",
      "title": "Request-count no-op script 4",
      "summary": "A one-line generated no-op script, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/noop-4.js",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "40"
          }
        ],
        "expectedContentType": "text/javascript; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-noop-4:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-noop-5",
      "title": "Request-count no-op script 5",
      "summary": "A one-line generated no-op script, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/noop-5.js",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "40"
          }
        ],
        "expectedContentType": "text/javascript; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-noop-5:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "asset-noop-6",
      "title": "Request-count no-op script 6",
      "summary": "A one-line generated no-op script, discoverable only through the many-requests page.",
      "route": "/tests/asset-weight/assets/noop-6.js",
      "method": "GET",
      "group": "asset-weight",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "40"
          }
        ],
        "expectedContentType": "text/javascript; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:asset-noop-6:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "asset-weight/request-count",
      "robotsStanzas": []
    },
    {
      "id": "loading-render-blocking",
      "title": "Render-blocking head resources",
      "summary": "Head loads a synchronous 200ms-delayed script then a 200ms-delayed stylesheet, with no inline critical CSS anywhere.",
      "route": "/tests/loading/head/render-blocking",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:loading-render-blocking:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "EliminateRenderBlockingResources",
        "LoadsCriticalCssInHead",
        "StyleSheetsLoadedBeforeJavascript"
      ],
      "contentRef": "loading/render-blocking",
      "robotsStanzas": []
    },
    {
      "id": "loading-critical-css-late",
      "title": "Critical CSS present but after stylesheet links",
      "summary": "The head links an external stylesheet first and only then carries its inline critical style block; no head scripts.",
      "route": "/tests/loading/head/critical-css-late",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:loading-critical-css-late:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "LoadsCriticalCssInHeadFirst"
      ],
      "contentRef": "loading/render-blocking",
      "robotsStanzas": []
    },
    {
      "id": "loading-sync-scripts",
      "title": "Too many synchronous head scripts",
      "summary": "The head loads five synchronous scripts with no async or defer; each asset is 64 bytes so only the sync count fires.",
      "route": "/tests/loading/head/sync-scripts",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:loading-sync-scripts:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "TooManySynchronousJavascriptRequests"
      ],
      "contentRef": "loading/script-ordering",
      "robotsStanzas": []
    },
    {
      "id": "loading-spof-external",
      "title": "Single point of failure — external head script",
      "summary": "The head synchronously loads a third-party script from example.com with no async, defer, integrity, or crossorigin.",
      "route": "/tests/loading/head/spof-external",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": true,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:loading-spof-external:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "SinglePointOfFailures"
      ],
      "contentRef": "loading/single-point-of-failure",
      "robotsStanzas": []
    },
    {
      "id": "loading-spof-delayed-origin",
      "title": "Single point of failure — delayed cross-origin script",
      "summary": "The head synchronously loads a script from the protocol-edge origin that answers only after a fixed 5s delay.",
      "route": "/tests/loading/head/spof-delayed-origin",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:loading-spof-delayed-origin:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:loading-spof-delayed-origin:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "contentRef": "loading/single-point-of-failure",
      "robotsStanzas": []
    },
    {
      "id": "loading-print-stylesheet",
      "title": "Print stylesheet download",
      "summary": "The head links a media=\"print\" stylesheet after an inline-first style block, so only the print signal is present.",
      "route": "/tests/loading/head/print-stylesheet",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:loading-print-stylesheet:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "loading/print-stylesheets",
      "robotsStanzas": []
    },
    {
      "id": "loading-webfonts-too-many",
      "title": "Too many webfonts",
      "summary": "Links a stylesheet declaring six font-display:swap font faces, each applied to visible text so all six fonts download.",
      "route": "/tests/loading/fonts/too-many",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:loading-webfonts-too-many:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "TooManyWebfonts"
      ],
      "contentRef": "loading/webfonts",
      "robotsStanzas": []
    },
    {
      "id": "loading-webfont-overweight",
      "title": "Overweight webfont",
      "summary": "Links a stylesheet declaring one font-display:swap font face whose file is exactly 61,440 bytes, above the 50KB threshold.",
      "route": "/tests/loading/fonts/overweight",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:loading-webfont-overweight:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "OverWeightedWebfonts"
      ],
      "contentRef": "loading/webfonts",
      "robotsStanzas": []
    },
    {
      "id": "loading-webfont-foit",
      "title": "Webfont with no font-display",
      "summary": "Links a stylesheet whose single font face omits font-display entirely, so text is invisible during the default block period.",
      "route": "/tests/loading/fonts/foit",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:loading-webfont-foit:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "EnsureTextRemainsVisibleDuringWebFontLoad"
      ],
      "contentRef": "loading/webfonts",
      "robotsStanzas": []
    },
    {
      "id": "loading-unused-css",
      "title": "Unused CSS via Chrome coverage",
      "summary": "Links a committed 20,480-byte stylesheet where 20 rules match page classes and 180 rules match nothing, ~90% unused.",
      "route": "/tests/loading/coverage/unused-css",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:loading-unused-css:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UnusedCSS"
      ],
      "contentRef": "loading/unused-code",
      "robotsStanzas": []
    },
    {
      "id": "loading-unused-js",
      "title": "Unused JavaScript via Chrome coverage",
      "summary": "Defers a committed 20,480-byte script whose init path runs and writes the rendered marker while 40 functions stay dead.",
      "route": "/tests/loading/coverage/unused-js",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:loading-unused-js:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:loading-unused-js:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "UnusedJavaScript"
      ],
      "contentRef": "loading/unused-code",
      "robotsStanzas": []
    },
    {
      "id": "loading-asset-blocking-js",
      "title": "Delayed blocking script asset",
      "summary": "Serves 1,024 bytes of minified JavaScript after a fixed 200ms delay, under the 2,048-byte unused-code floor.",
      "route": "/tests/loading/assets/blocking.js",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "1024"
          }
        ],
        "expectedContentType": "text/javascript; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:loading-asset-blocking-js:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "loading/render-blocking",
      "robotsStanzas": []
    },
    {
      "id": "loading-asset-blocking-css",
      "title": "Delayed blocking stylesheet asset",
      "summary": "Serves 1,024 bytes of minified CSS after a fixed 200ms delay, under the 2,048-byte unused-code floor.",
      "route": "/tests/loading/assets/blocking.css",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "1024"
          }
        ],
        "expectedContentType": "text/css; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:loading-asset-blocking-css:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "loading/render-blocking",
      "robotsStanzas": []
    },
    {
      "id": "loading-asset-late-css",
      "title": "Late critical CSS stylesheet asset",
      "summary": "Committed 512-byte minified stylesheet whose rules the critical-css-late page uses; too small to trip any size or coverage hint.",
      "route": "/tests/loading/assets/late.css",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "512"
          }
        ],
        "expectedContentType": "text/css",
        "bodyMarkers": [
          "sb-fixture:loading-asset-late-css:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "loading/render-blocking",
      "robotsStanzas": []
    },
    {
      "id": "loading-asset-sync-js-1",
      "title": "Synchronous script asset 1 of 5",
      "summary": "Committed 64-byte one-line script with distinct numbered content so duplicate-resource families never match it.",
      "route": "/tests/loading/assets/sync-1.js",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "64"
          }
        ],
        "expectedContentType": "text/javascript",
        "bodyMarkers": [
          "sb-fixture:loading-asset-sync-js-1:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "loading/script-ordering",
      "robotsStanzas": []
    },
    {
      "id": "loading-asset-sync-js-2",
      "title": "Synchronous script asset 2 of 5",
      "summary": "Committed 64-byte one-line script with distinct numbered content so duplicate-resource families never match it.",
      "route": "/tests/loading/assets/sync-2.js",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "64"
          }
        ],
        "expectedContentType": "text/javascript",
        "bodyMarkers": [
          "sb-fixture:loading-asset-sync-js-2:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "loading/script-ordering",
      "robotsStanzas": []
    },
    {
      "id": "loading-asset-sync-js-3",
      "title": "Synchronous script asset 3 of 5",
      "summary": "Committed 64-byte one-line script with distinct numbered content so duplicate-resource families never match it.",
      "route": "/tests/loading/assets/sync-3.js",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "64"
          }
        ],
        "expectedContentType": "text/javascript",
        "bodyMarkers": [
          "sb-fixture:loading-asset-sync-js-3:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "loading/script-ordering",
      "robotsStanzas": []
    },
    {
      "id": "loading-asset-sync-js-4",
      "title": "Synchronous script asset 4 of 5",
      "summary": "Committed 64-byte one-line script with distinct numbered content so duplicate-resource families never match it.",
      "route": "/tests/loading/assets/sync-4.js",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "64"
          }
        ],
        "expectedContentType": "text/javascript",
        "bodyMarkers": [
          "sb-fixture:loading-asset-sync-js-4:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "loading/script-ordering",
      "robotsStanzas": []
    },
    {
      "id": "loading-asset-sync-js-5",
      "title": "Synchronous script asset 5 of 5",
      "summary": "Committed 64-byte one-line script with distinct numbered content so duplicate-resource families never match it.",
      "route": "/tests/loading/assets/sync-5.js",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "64"
          }
        ],
        "expectedContentType": "text/javascript",
        "bodyMarkers": [
          "sb-fixture:loading-asset-sync-js-5:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "loading/script-ordering",
      "robotsStanzas": []
    },
    {
      "id": "loading-asset-print-css",
      "title": "Print-only stylesheet asset",
      "summary": "Committed 512-byte print-only stylesheet; the PrintStyleSheets hint is recorded on this CSS resource with IsPrint = true.",
      "route": "/tests/loading/assets/print.css",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "512"
          }
        ],
        "expectedContentType": "text/css",
        "bodyMarkers": [
          "sb-fixture:loading-asset-print-css:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "PrintStyleSheets"
      ],
      "contentRef": "loading/print-stylesheets",
      "robotsStanzas": []
    },
    {
      "id": "loading-asset-fonts-many-css",
      "title": "Six-webfont stylesheet asset",
      "summary": "Committed minified CSS declaring six font-display:swap font faces plus six class rules; passes the font-display check.",
      "route": "/tests/loading/assets/fonts/many.css",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "1140"
          }
        ],
        "expectedContentType": "text/css",
        "bodyMarkers": [
          "sb-fixture:loading-asset-fonts-many-css:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "loading/webfonts",
      "robotsStanzas": []
    },
    {
      "id": "loading-asset-font-many-1",
      "title": "Webfont asset 1 of 6",
      "summary": "Committed TrueType font of exactly 24,576 bytes with distinct per-family content.",
      "route": "/tests/loading/assets/fonts/many-1.ttf",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "24576"
          }
        ],
        "expectedContentType": "font/ttf",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "loading/webfonts",
      "robotsStanzas": []
    },
    {
      "id": "loading-asset-font-many-2",
      "title": "Webfont asset 2 of 6",
      "summary": "Committed TrueType font of exactly 24,576 bytes with distinct per-family content.",
      "route": "/tests/loading/assets/fonts/many-2.ttf",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "24576"
          }
        ],
        "expectedContentType": "font/ttf",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "loading/webfonts",
      "robotsStanzas": []
    },
    {
      "id": "loading-asset-font-many-3",
      "title": "Webfont asset 3 of 6",
      "summary": "Committed TrueType font of exactly 24,576 bytes with distinct per-family content.",
      "route": "/tests/loading/assets/fonts/many-3.ttf",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "24576"
          }
        ],
        "expectedContentType": "font/ttf",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "loading/webfonts",
      "robotsStanzas": []
    },
    {
      "id": "loading-asset-font-many-4",
      "title": "Webfont asset 4 of 6",
      "summary": "Committed TrueType font of exactly 24,576 bytes with distinct per-family content.",
      "route": "/tests/loading/assets/fonts/many-4.ttf",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "24576"
          }
        ],
        "expectedContentType": "font/ttf",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "loading/webfonts",
      "robotsStanzas": []
    },
    {
      "id": "loading-asset-font-many-5",
      "title": "Webfont asset 5 of 6",
      "summary": "Committed TrueType font of exactly 24,576 bytes with distinct per-family content.",
      "route": "/tests/loading/assets/fonts/many-5.ttf",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "24576"
          }
        ],
        "expectedContentType": "font/ttf",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "loading/webfonts",
      "robotsStanzas": []
    },
    {
      "id": "loading-asset-font-many-6",
      "title": "Webfont asset 6 of 6",
      "summary": "Committed TrueType font of exactly 24,576 bytes with distinct per-family content.",
      "route": "/tests/loading/assets/fonts/many-6.ttf",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "24576"
          }
        ],
        "expectedContentType": "font/ttf",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "loading/webfonts",
      "robotsStanzas": []
    },
    {
      "id": "loading-asset-fonts-overweight-css",
      "title": "Overweight-webfont stylesheet asset",
      "summary": "Committed minified CSS declaring one font-display:swap font face plus one class rule.",
      "route": "/tests/loading/assets/fonts/overweight.css",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "254"
          }
        ],
        "expectedContentType": "text/css",
        "bodyMarkers": [
          "sb-fixture:loading-asset-fonts-overweight-css:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "loading/webfonts",
      "robotsStanzas": []
    },
    {
      "id": "loading-asset-font-overweight",
      "title": "Overweight webfont asset",
      "summary": "Committed TrueType font of exactly 61,440 bytes (60KB), above the 50KB per-font threshold.",
      "route": "/tests/loading/assets/fonts/overweight.ttf",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "61440"
          }
        ],
        "expectedContentType": "font/ttf",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "loading/webfonts",
      "robotsStanzas": []
    },
    {
      "id": "loading-asset-fonts-foit-css",
      "title": "FOIT stylesheet asset",
      "summary": "Committed minified CSS declaring one font face with no font-display descriptor plus one class rule.",
      "route": "/tests/loading/assets/fonts/foit.css",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "206"
          }
        ],
        "expectedContentType": "text/css",
        "bodyMarkers": [
          "sb-fixture:loading-asset-fonts-foit-css:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "loading/webfonts",
      "robotsStanzas": []
    },
    {
      "id": "loading-asset-font-foit",
      "title": "FOIT webfont asset",
      "summary": "Committed TrueType font of exactly 24,576 bytes for the no-font-display fixture.",
      "route": "/tests/loading/assets/fonts/foit.ttf",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "24576"
          }
        ],
        "expectedContentType": "font/ttf",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "loading/webfonts",
      "robotsStanzas": []
    },
    {
      "id": "loading-asset-unused-css",
      "title": "Unused-CSS coverage bundle asset",
      "summary": "Committed 20,480-byte minified stylesheet: 20 used rules and 180 rules targeting classes that appear nowhere.",
      "route": "/tests/loading/assets/unused-bulk.css",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "20480"
          }
        ],
        "expectedContentType": "text/css",
        "bodyMarkers": [
          "sb-fixture:loading-asset-unused-css:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "loading/unused-code",
      "robotsStanzas": []
    },
    {
      "id": "loading-asset-unused-js",
      "title": "Unused-JavaScript coverage bundle asset",
      "summary": "Committed 20,480-byte minified script: one invoked init function and 40 dead functions.",
      "route": "/tests/loading/assets/unused-bulk.js",
      "method": "GET",
      "group": "loading",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "20480"
          }
        ],
        "expectedContentType": "text/javascript",
        "bodyMarkers": [
          "sb-fixture:loading-asset-unused-js:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "loading/unused-code",
      "robotsStanzas": []
    },
    {
      "id": "a11y-color-contrast",
      "title": "Colour contrast violations",
      "summary": "Text at roughly 2.85:1 contrast, AA-passing but AAA-failing text, and a link distinguished by colour alone.",
      "route": "/tests/accessibility/color-contrast",
      "method": "GET",
      "group": "accessibility",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:a11y-color-contrast:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "AccessibilityUrls"
      ],
      "contentRef": "accessibility/colour-and-text",
      "robotsStanzas": []
    },
    {
      "id": "a11y-presentational-markup",
      "title": "Presentational and obsolete markup",
      "summary": "A bold paragraph styled as a heading, forced letter spacing, an orientation lock, hidden content, blink, and marquee.",
      "route": "/tests/accessibility/presentational-markup",
      "method": "GET",
      "group": "accessibility",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:a11y-presentational-markup:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "accessibility/colour-and-text",
      "robotsStanzas": []
    },
    {
      "id": "a11y-form-labels",
      "title": "Form labelling violations",
      "summary": "One form with eight differently mislabelled controls, from a bare text input to a mismatched accessible name.",
      "route": "/tests/accessibility/form-labels",
      "method": "GET",
      "group": "accessibility",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:a11y-form-labels:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "accessibility/forms",
      "robotsStanzas": []
    },
    {
      "id": "a11y-aria-validity",
      "title": "ARIA validity violations",
      "summary": "Seven elements carrying disallowed, missing, misspelled, invalid, or conflicting ARIA attributes and roles.",
      "route": "/tests/accessibility/aria-validity",
      "method": "GET",
      "group": "accessibility",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:a11y-aria-validity:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "accessibility/aria",
      "robotsStanzas": []
    },
    {
      "id": "a11y-aria-names",
      "title": "ARIA accessible name violations",
      "summary": "Eight unnamed ARIA widgets, each carrying its required state attributes so only the name rule fires.",
      "route": "/tests/accessibility/aria-names",
      "method": "GET",
      "group": "accessibility",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:a11y-aria-names:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "accessibility/aria",
      "robotsStanzas": []
    },
    {
      "id": "a11y-aria-structure",
      "title": "ARIA structure and hidden content violations",
      "summary": "Broken parent and child role requirements, nested interactives, unreachable scroll regions, and hidden focusable content.",
      "route": "/tests/accessibility/aria-structure",
      "method": "GET",
      "group": "accessibility",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:a11y-aria-structure:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "accessibility/aria",
      "robotsStanzas": []
    },
    {
      "id": "a11y-aria-hidden-body",
      "title": "Body hidden from assistive technology",
      "summary": "A fully compliant scaffold whose body carries aria-hidden, suppressing the whole accessibility tree.",
      "route": "/tests/accessibility/aria-hidden-body",
      "method": "GET",
      "group": "accessibility",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:a11y-aria-hidden-body:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "accessibility/aria",
      "robotsStanzas": []
    },
    {
      "id": "a11y-landmarks-missing",
      "title": "Landmarks and headings missing",
      "summary": "A valid document whose content sits in plain divs with no landmarks, no headings, and no skip link.",
      "route": "/tests/accessibility/landmarks-missing",
      "method": "GET",
      "group": "accessibility",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:a11y-landmarks-missing:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "accessibility/document-structure",
      "robotsStanzas": []
    },
    {
      "id": "a11y-landmarks-structure",
      "title": "Landmark structure violations",
      "summary": "Duplicate and nested banner, contentinfo, main, and complementary landmarks plus two indistinguishable navs.",
      "route": "/tests/accessibility/landmarks-structure",
      "method": "GET",
      "group": "accessibility",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:a11y-landmarks-structure:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "accessibility/document-structure",
      "robotsStanzas": []
    },
    {
      "id": "a11y-headings",
      "title": "Heading order violations",
      "summary": "An h1 followed directly by an h4, then an empty h2.",
      "route": "/tests/accessibility/headings",
      "method": "GET",
      "group": "accessibility",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:a11y-headings:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "accessibility/document-structure",
      "robotsStanzas": []
    },
    {
      "id": "a11y-duplicate-ids",
      "title": "Duplicate id violations",
      "summary": "Duplicate ids on plain elements, on focusable elements, and on a target referenced by ARIA.",
      "route": "/tests/accessibility/duplicate-ids",
      "method": "GET",
      "group": "accessibility",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:a11y-duplicate-ids:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "accessibility/document-structure",
      "robotsStanzas": []
    },
    {
      "id": "a11y-link-button-names",
      "title": "Link and button name violations",
      "summary": "A nameless link, a nameless button, and two identical \"Read more\" links pointing at different pages.",
      "route": "/tests/accessibility/link-button-names",
      "method": "GET",
      "group": "accessibility",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:a11y-link-button-names:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "accessibility/names-and-graphics",
      "robotsStanzas": []
    },
    {
      "id": "a11y-images",
      "title": "Image and graphic violations",
      "summary": "Missing alt text, redundant alt text, unnamed graphics, an altless image-map area, and a server-side map.",
      "route": "/tests/accessibility/images",
      "method": "GET",
      "group": "accessibility",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:a11y-images:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "accessibility/names-and-graphics",
      "robotsStanzas": []
    },
    {
      "id": "a11y-media",
      "title": "Media caption and autoplay violations",
      "summary": "Audio and video elements without caption tracks, plus an autoplaying audio element without controls.",
      "route": "/tests/accessibility/media",
      "method": "GET",
      "group": "accessibility",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:a11y-media:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "accessibility/media-frames-and-meta",
      "robotsStanzas": []
    },
    {
      "id": "a11y-tables",
      "title": "Table semantics violations",
      "summary": "Seven small single-fault tables covering header, scope, caption, and association rules.",
      "route": "/tests/accessibility/tables",
      "method": "GET",
      "group": "accessibility",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:a11y-tables:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "accessibility/tables-and-lists",
      "robotsStanzas": []
    },
    {
      "id": "a11y-lists",
      "title": "List structure violations",
      "summary": "A ul with a div child, an orphan li, a dl containing a p, and dt and dd pairs outside any dl.",
      "route": "/tests/accessibility/lists",
      "method": "GET",
      "group": "accessibility",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:a11y-lists:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "accessibility/tables-and-lists",
      "robotsStanzas": []
    },
    {
      "id": "a11y-doc-metadata",
      "title": "Document metadata violations",
      "summary": "No html lang attribute, no title element, and a span with an invalid lang attribute.",
      "route": "/tests/accessibility/doc-metadata",
      "method": "GET",
      "group": "accessibility",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:a11y-doc-metadata:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "accessibility/document-structure",
      "robotsStanzas": []
    },
    {
      "id": "a11y-doc-lang-invalid",
      "title": "Invalid document language",
      "summary": "A fully compliant scaffold whose html lang attribute is the invalid value xx1.",
      "route": "/tests/accessibility/doc-lang-invalid",
      "method": "GET",
      "group": "accessibility",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:a11y-doc-lang-invalid:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "accessibility/document-structure",
      "robotsStanzas": []
    },
    {
      "id": "a11y-doc-lang-mismatch",
      "title": "Mismatched lang and xml lang",
      "summary": "A compliant scaffold declaring lang=\"en\" and xml:lang=\"fr\" on the html element.",
      "route": "/tests/accessibility/doc-lang-mismatch",
      "method": "GET",
      "group": "accessibility",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:a11y-doc-lang-mismatch:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "accessibility/document-structure",
      "robotsStanzas": []
    },
    {
      "id": "a11y-meta-directives",
      "title": "Meta refresh and viewport violations",
      "summary": "A 71,100 second meta refresh plus a viewport that disables user scaling and caps zoom below five.",
      "route": "/tests/accessibility/meta-directives",
      "method": "GET",
      "group": "accessibility",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:a11y-meta-directives:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "accessibility/media-frames-and-meta",
      "robotsStanzas": []
    },
    {
      "id": "a11y-frames",
      "title": "Frame title and focus violations",
      "summary": "An untitled iframe, two iframes sharing a title, and a focusable-content iframe removed from the tab order.",
      "route": "/tests/accessibility/frames",
      "method": "GET",
      "group": "accessibility",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:a11y-frames:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "accessibility/media-frames-and-meta",
      "robotsStanzas": []
    },
    {
      "id": "a11y-keyboard-focus",
      "title": "Keyboard and focus violations",
      "summary": "A positive tabindex, duplicated access keys, a broken skip link, and two undersized touch targets.",
      "route": "/tests/accessibility/keyboard-focus",
      "method": "GET",
      "group": "accessibility",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:a11y-keyboard-focus:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "accessibility/keyboard",
      "robotsStanzas": []
    },
    {
      "id": "vitals-baseline-fast",
      "title": "Web vitals calibration baseline",
      "summary": "Minimal page with inline critical CSS only, no external resources, and a trivial inline script setting the rendered marker.",
      "route": "/tests/web-vitals/baseline-fast",
      "method": "GET",
      "group": "web-vitals",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:vitals-baseline-fast:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:vitals-baseline-fast:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "web-vitals/baseline",
      "robotsStanzas": []
    },
    {
      "id": "vitals-cls-late-banner",
      "title": "Layout shift — late-injected banner",
      "summary": "Renders immediately with 120vh of content; a fixed 2,000ms timer injects a 192px banner as the first body child.",
      "route": "/tests/web-vitals/cls-late-banner",
      "method": "GET",
      "group": "web-vitals",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:vitals-cls-late-banner:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:vitals-cls-late-banner:shifted"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "web-vitals/layout-shift",
      "robotsStanzas": []
    },
    {
      "id": "vitals-lcp-late-hero",
      "title": "LCP — late-injected hero image",
      "summary": "Paints quickly with small text; a fixed 4,000ms timer injects the hero image into a pre-reserved container.",
      "route": "/tests/web-vitals/lcp-late-hero",
      "method": "GET",
      "group": "web-vitals",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:vitals-lcp-late-hero:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:vitals-lcp-late-hero:hero-loaded"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "web-vitals/largest-contentful-paint",
      "robotsStanzas": []
    },
    {
      "id": "vitals-tbt-long-tasks",
      "title": "TBT — three bounded long tasks",
      "summary": "After a fixed 1,000ms, runs exactly three 300ms wall-clock busy loops separated by 100ms yields, once only.",
      "route": "/tests/web-vitals/tbt-long-tasks",
      "method": "GET",
      "group": "web-vitals",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:vitals-tbt-long-tasks:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:vitals-tbt-long-tasks:tasks-done"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "web-vitals/main-thread-blocking",
      "robotsStanzas": []
    },
    {
      "id": "vitals-budget-document",
      "title": "Performance budget — document bucket",
      "summary": "The page itself is the heavy resource: over 1MiB of visible repeated HTML text with no external resources.",
      "route": "/tests/web-vitals/budget/document",
      "method": "GET",
      "group": "web-vitals",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:vitals-budget-document:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "web-vitals/performance-budgets",
      "robotsStanzas": []
    },
    {
      "id": "vitals-budget-script",
      "title": "Performance budget — script bucket",
      "summary": "Small page loading the 1MiB committed script via a plain script tag; the heavy script sets the rendered marker.",
      "route": "/tests/web-vitals/budget/script",
      "method": "GET",
      "group": "web-vitals",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:vitals-budget-script:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:vitals-budget-script:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "web-vitals/performance-budgets",
      "robotsStanzas": []
    },
    {
      "id": "vitals-budget-stylesheet",
      "title": "Performance budget — stylesheet bucket",
      "summary": "Small page loading the 1MiB committed stylesheet via a link tag; one rule from the sheet is used by the page.",
      "route": "/tests/web-vitals/budget/stylesheet",
      "method": "GET",
      "group": "web-vitals",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:vitals-budget-stylesheet:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "web-vitals/performance-budgets",
      "robotsStanzas": []
    },
    {
      "id": "vitals-budget-image",
      "title": "Performance budget — image bucket",
      "summary": "Small page embedding the ~2MiB image via an img element with explicit width and height.",
      "route": "/tests/web-vitals/budget/image",
      "method": "GET",
      "group": "web-vitals",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:vitals-budget-image:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "web-vitals/performance-budgets",
      "robotsStanzas": []
    },
    {
      "id": "vitals-budget-media",
      "title": "Performance budget — media bucket",
      "summary": "Small page embedding the 2MiB MP4 via video preload=\"auto\" muted, with no autoplay.",
      "route": "/tests/web-vitals/budget/media",
      "method": "GET",
      "group": "web-vitals",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:vitals-budget-media:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "web-vitals/performance-budgets",
      "robotsStanzas": []
    },
    {
      "id": "vitals-budget-font",
      "title": "Performance budget — font bucket",
      "summary": "Small page whose font-face rule loads the 1MiB committed font, with visible text using that family so it downloads.",
      "route": "/tests/web-vitals/budget/font",
      "method": "GET",
      "group": "web-vitals",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:vitals-budget-font:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "web-vitals/performance-budgets",
      "robotsStanzas": []
    },
    {
      "id": "vitals-budget-third-party",
      "title": "Performance budget — third-party bucket",
      "summary": "Small page loading the heavy script from the host-subdomain profile origin via an absolute configuration-derived URL.",
      "route": "/tests/web-vitals/budget/third-party",
      "method": "GET",
      "group": "web-vitals",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:vitals-budget-third-party:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin",
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "web-vitals/performance-budgets",
      "robotsStanzas": []
    },
    {
      "id": "vitals-lcp-hero-image",
      "title": "LCP hero image asset",
      "summary": "Deterministic 1600x900 PNG generated by the shared PNG helper; fetched as the LCP element of vitals-lcp-late-hero.",
      "route": "/tests/web-vitals/assets/vitals-lcp-hero-image.png",
      "method": "GET",
      "group": "web-vitals",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "1441073"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "web-vitals/largest-contentful-paint",
      "robotsStanzas": []
    },
    {
      "id": "vitals-asset-script-heavy",
      "title": "Heavy script asset",
      "summary": "Committed 1,048,576-byte valid JavaScript: one large string constant plus a function that sets the budget-script rendered marker.",
      "route": "/tests/web-vitals/assets/vitals-asset-script-heavy.js",
      "method": "GET",
      "group": "web-vitals",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "1048576"
          }
        ],
        "expectedContentType": "text/javascript",
        "bodyMarkers": [
          "sb-fixture:vitals-asset-script-heavy:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "web-vitals/performance-budgets",
      "robotsStanzas": []
    },
    {
      "id": "vitals-asset-stylesheet-heavy",
      "title": "Heavy stylesheet asset",
      "summary": "Committed 1,048,576-byte valid CSS: numbered padding rules plus the one rule the embedding page uses.",
      "route": "/tests/web-vitals/assets/vitals-asset-stylesheet-heavy.css",
      "method": "GET",
      "group": "web-vitals",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "1048576"
          }
        ],
        "expectedContentType": "text/css",
        "bodyMarkers": [
          "sb-fixture:vitals-asset-stylesheet-heavy:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "web-vitals/performance-budgets",
      "robotsStanzas": []
    },
    {
      "id": "vitals-asset-image-heavy",
      "title": "Heavy image asset",
      "summary": "Deterministic 1448x1448 PNG (~2MiB, stored-deflate so transferred bytes match resource bytes) generated by the shared PNG helper.",
      "route": "/tests/web-vitals/assets/vitals-asset-image-heavy.png",
      "method": "GET",
      "group": "web-vitals",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "2098380"
          }
        ],
        "expectedContentType": "image/png",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "web-vitals/performance-budgets",
      "robotsStanzas": []
    },
    {
      "id": "vitals-asset-media-heavy",
      "title": "Heavy media asset",
      "summary": "Committed 2,097,152-byte MP4: the sample video plus a deterministic top-level free box pad.",
      "route": "/tests/web-vitals/assets/vitals-asset-media-heavy.mp4",
      "method": "GET",
      "group": "web-vitals",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "2097152"
          }
        ],
        "expectedContentType": "video/mp4",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "web-vitals/performance-budgets",
      "robotsStanzas": []
    },
    {
      "id": "vitals-asset-font-heavy",
      "title": "Heavy font asset",
      "summary": "Committed 1,048,576-byte TrueType font (uncompressed container, so on-disk size is wire size).",
      "route": "/tests/web-vitals/assets/vitals-asset-font-heavy.ttf",
      "method": "GET",
      "group": "web-vitals",
      "profile": "primary",
      "implementationType": "static-resource",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "1048576"
          }
        ],
        "expectedContentType": "font/ttf",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "web-vitals/performance-budgets",
      "robotsStanzas": []
    },
    {
      "id": "vitals-asset-third-party-heavy",
      "title": "Heavy third-party script asset",
      "summary": "The heavy script content served by the host-subdomain profile so the embedding page crosses an origin.",
      "route": "/tests/web-vitals/assets/vitals-asset-third-party-heavy.js",
      "method": "GET",
      "group": "web-vitals",
      "profile": "host-subdomain",
      "implementationType": "supporting-profile",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "never",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Content-Length",
            "value": "1048576"
          }
        ],
        "expectedContentType": "text/javascript",
        "bodyMarkers": [],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin",
        "compression-control"
      ],
      "sitebulbHintIds": [],
      "contentRef": "web-vitals/performance-budgets",
      "robotsStanzas": []
    },
    {
      "id": "tech-wordpress",
      "title": "Technology signals — WordPress",
      "summary": "Emits the WordPress generator meta tag plus /wp-content/ stylesheet and script URLs (meta, script-src, and html signals).",
      "route": "/tests/tech-fingerprints/tech-wordpress",
      "method": "GET",
      "group": "tech-fingerprints",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:tech-wordpress:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "tech-fingerprints/technology-pages",
      "robotsStanzas": []
    },
    {
      "id": "tech-drupal",
      "title": "Technology signals — Drupal (header only)",
      "summary": "Emits the X-Generator response header with no Drupal markup, scripts, or JS globals.",
      "route": "/tests/tech-fingerprints/tech-drupal",
      "method": "GET",
      "group": "tech-fingerprints",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "X-Generator",
            "value": "Drupal 10 (https://www.drupal.org)"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:tech-drupal:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "tech-fingerprints/technology-pages",
      "robotsStanzas": []
    },
    {
      "id": "tech-nextjs",
      "title": "Technology signals — Next.js (header only)",
      "summary": "Emits the X-Powered-By response header with no __NEXT_DATA__ global.",
      "route": "/tests/tech-fingerprints/tech-nextjs",
      "method": "GET",
      "group": "tech-fingerprints",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "X-Powered-By",
            "value": "Next.js 14.2.3"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:tech-nextjs:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "tech-fingerprints/technology-pages",
      "robotsStanzas": []
    },
    {
      "id": "tech-react",
      "title": "Technology signals — React (JS global only)",
      "summary": "An inline script sets window.React.version after render; a non-rendering crawl sees no React evidence in the DOM.",
      "route": "/tests/tech-fingerprints/tech-react",
      "method": "GET",
      "group": "tech-fingerprints",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:tech-react:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [
          "sb-fixture:tech-react:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "tech-fingerprints/technology-pages",
      "robotsStanzas": []
    },
    {
      "id": "tech-squarespace",
      "title": "Technology signals — Squarespace (HTML comment only)",
      "summary": "Carries the literal Squarespace HTML comment with no Squarespace header or JS global.",
      "route": "/tests/tech-fingerprints/tech-squarespace",
      "method": "GET",
      "group": "tech-fingerprints",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:tech-squarespace:body",
          "<!-- This is Squarespace. -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "tech-fingerprints/technology-pages",
      "robotsStanzas": []
    },
    {
      "id": "tech-laravel",
      "title": "Technology signals — Laravel (cookie only)",
      "summary": "Sets exactly one laravel_session cookie; the cookie name is the only Laravel signal.",
      "route": "/tests/tech-fingerprints/tech-laravel",
      "method": "GET",
      "group": "tech-fingerprints",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Set-Cookie",
            "valuePattern": "^laravel_session="
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:tech-laravel:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "tech-fingerprints/technology-pages",
      "robotsStanzas": []
    },
    {
      "id": "tech-jquery",
      "title": "Technology signals — jQuery (script src only)",
      "summary": "References a versioned jquery-3.7.1.min.js stub whose filename is the only jQuery signal; no jQuery global exists.",
      "route": "/tests/tech-fingerprints/tech-jquery",
      "method": "GET",
      "group": "tech-fingerprints",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:tech-jquery:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "tech-fingerprints/technology-pages",
      "robotsStanzas": []
    },
    {
      "id": "tech-gatsby",
      "title": "Technology signals — Gatsby",
      "summary": "Carries the ___gatsby root div and the Gatsby generator meta tag (html and meta signals).",
      "route": "/tests/tech-fingerprints/tech-gatsby",
      "method": "GET",
      "group": "tech-fingerprints",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:tech-gatsby:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "tech-fingerprints/technology-pages",
      "robotsStanzas": []
    },
    {
      "id": "cdnwaf-cloudflare",
      "title": "CDN/WAF signatures — Cloudflare",
      "summary": "A 200 page carrying the CF-Ray, CF-Cache-Status, and Server: cloudflare signature headers.",
      "route": "/tests/tech-fingerprints/cdn-waf/cloudflare",
      "method": "GET",
      "group": "tech-fingerprints",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "CF-Ray",
            "value": "0000sbfixture000-LHR"
          },
          {
            "name": "CF-Cache-Status",
            "value": "DYNAMIC"
          },
          {
            "name": "Server",
            "value": "cloudflare"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:cdnwaf-cloudflare:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "tech-fingerprints/cdn-waf-signatures",
      "robotsStanzas": []
    },
    {
      "id": "cdnwaf-fastly",
      "title": "CDN/WAF signatures — Fastly",
      "summary": "A 200 page carrying the X-Served-By and X-Fastly-Request-Id signature headers.",
      "route": "/tests/tech-fingerprints/cdn-waf/fastly",
      "method": "GET",
      "group": "tech-fingerprints",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "X-Served-By",
            "value": "cache-lhr-sbfixture-LHR"
          },
          {
            "name": "X-Fastly-Request-Id",
            "value": "sbfixture0000000000000000000000000000000000"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:cdnwaf-fastly:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "tech-fingerprints/cdn-waf-signatures",
      "robotsStanzas": []
    },
    {
      "id": "cdnwaf-cloudfront",
      "title": "CDN/WAF signatures — Amazon CloudFront",
      "summary": "A 200 page carrying the X-Amz-Cf-Id and X-Amz-Cf-Pop signature headers.",
      "route": "/tests/tech-fingerprints/cdn-waf/cloudfront",
      "method": "GET",
      "group": "tech-fingerprints",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "X-Amz-Cf-Id",
            "value": "sbfixture-cloudfront-request-id=="
          },
          {
            "name": "X-Amz-Cf-Pop",
            "value": "LHR62-C1"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:cdnwaf-cloudfront:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "tech-fingerprints/cdn-waf-signatures",
      "robotsStanzas": []
    },
    {
      "id": "cdnwaf-akamai",
      "title": "CDN/WAF signatures — Akamai",
      "summary": "A 200 page carrying X-Akamai-Transformed, Akamai-Origin-Hop, and Server: AkamaiGHost so all three detection paths fire.",
      "route": "/tests/tech-fingerprints/cdn-waf/akamai",
      "method": "GET",
      "group": "tech-fingerprints",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "X-Akamai-Transformed",
            "value": "9 - 0 pmb=mRUM,1"
          },
          {
            "name": "Akamai-Origin-Hop",
            "value": "1"
          },
          {
            "name": "Server",
            "value": "AkamaiGHost"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:cdnwaf-akamai:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "tech-fingerprints/cdn-waf-signatures",
      "robotsStanzas": []
    },
    {
      "id": "cdnwaf-imperva",
      "title": "CDN/WAF signatures — Imperva",
      "summary": "A 200 page carrying X-Iinfo, X-CDN: Incapsula, and both visid_incap_ and incap_ses_ cookies.",
      "route": "/tests/tech-fingerprints/cdn-waf/imperva",
      "method": "GET",
      "group": "tech-fingerprints",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "X-Iinfo",
            "value": "13-00000000-0 0NNN RT(0 0) q(0 -1 -1 0) r(0 -1)"
          },
          {
            "name": "X-CDN",
            "value": "Incapsula"
          },
          {
            "name": "Set-Cookie",
            "valuePattern": "^visid_incap_"
          },
          {
            "name": "Set-Cookie",
            "valuePattern": "^incap_ses_"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:cdnwaf-imperva:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "tech-fingerprints/cdn-waf-signatures",
      "robotsStanzas": []
    },
    {
      "id": "cdnwaf-datadome",
      "title": "CDN/WAF signatures — DataDome",
      "summary": "A 200 page carrying the X-DataDome header and the datadome cookie.",
      "route": "/tests/tech-fingerprints/cdn-waf/datadome",
      "method": "GET",
      "group": "tech-fingerprints",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "X-DataDome",
            "value": "protected"
          },
          {
            "name": "Set-Cookie",
            "valuePattern": "^datadome="
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:cdnwaf-datadome:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "tech-fingerprints/cdn-waf-signatures",
      "robotsStanzas": []
    },
    {
      "id": "cdnwaf-f5-big-ip",
      "title": "CDN/WAF signatures — F5 BIG-IP",
      "summary": "A 200 page carrying Server: BigIP plus BIGipServer-prefixed and TS-regex cookies so all three detection paths fire.",
      "route": "/tests/tech-fingerprints/cdn-waf/f5-big-ip",
      "method": "GET",
      "group": "tech-fingerprints",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "Server",
            "value": "BigIP"
          },
          {
            "name": "Set-Cookie",
            "valuePattern": "^BIGipServer"
          },
          {
            "name": "Set-Cookie",
            "valuePattern": "^TS[0-9a-fA-F]+="
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:cdnwaf-f5-big-ip:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "tech-fingerprints/cdn-waf-signatures",
      "robotsStanzas": []
    },
    {
      "id": "cdnwaf-multi-provider",
      "title": "CDN/WAF signatures — multiple providers",
      "summary": "A 200 page carrying both CF-Ray and X-Served-By, proving the provider flags combine rather than overwrite.",
      "route": "/tests/tech-fingerprints/cdn-waf/multi-provider",
      "method": "GET",
      "group": "tech-fingerprints",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [
          {
            "name": "CF-Ray",
            "value": "0000sbfixture000-LHR"
          },
          {
            "name": "X-Served-By",
            "value": "cache-lhr-sbfixture-LHR"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:cdnwaf-multi-provider:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "tech-fingerprints/cdn-waf-signatures",
      "robotsStanzas": []
    },
    {
      "id": "cdnwaf-cloudflare-block-403",
      "title": "CDN/WAF signatures — Cloudflare 403 challenge",
      "summary": "A 403 page carrying CF-Ray, cf-mitigated: challenge, and Server: cloudflare to exercise the WAF-block logging path.",
      "route": "/tests/tech-fingerprints/cdn-waf/cloudflare-block-403",
      "method": "GET",
      "group": "tech-fingerprints",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "moderate",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 403,
        "expectedHeaders": [
          {
            "name": "CF-Ray",
            "value": "0000sbfixture403-LHR"
          },
          {
            "name": "cf-mitigated",
            "value": "challenge"
          },
          {
            "name": "Server",
            "value": "cloudflare"
          }
        ],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:cdnwaf-cloudflare-block-403:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "tech-fingerprints/cdn-waf-signatures",
      "robotsStanzas": []
    },
    {
      "id": "extract-product-page",
      "title": "Extraction target — product page",
      "summary": "Frozen product values: four price formats, a SKU, an availability flag, and a seven-word description.",
      "route": "/tests/extraction/extract-product-page",
      "method": "GET",
      "group": "custom-extraction-search",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:extract-product-page:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "custom-extraction-search/extraction-targets",
      "robotsStanzas": []
    },
    {
      "id": "extract-contact-page",
      "title": "Extraction target — contact page",
      "summary": "Frozen contact values: two emails, UK and US phone numbers, and ISO and UK-format dates.",
      "route": "/tests/extraction/extract-contact-page",
      "method": "GET",
      "group": "custom-extraction-search",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:extract-contact-page:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "custom-extraction-search/extraction-targets",
      "robotsStanzas": []
    },
    {
      "id": "extract-table-page",
      "title": "Extraction target — data table",
      "summary": "One table with exactly 4 header cells, 6 body rows, and 24 body cells; first-column names are frozen.",
      "route": "/tests/extraction/extract-table-page",
      "method": "GET",
      "group": "custom-extraction-search",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:extract-table-page:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "custom-extraction-search/extraction-targets",
      "robotsStanzas": []
    },
    {
      "id": "extract-attribute-page",
      "title": "Extraction target — attribute-borne data",
      "summary": "Frozen values carried in data attributes, a head meta content attribute, and a link href.",
      "route": "/tests/extraction/extract-attribute-page",
      "method": "GET",
      "group": "custom-extraction-search",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:extract-attribute-page:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "custom-extraction-search/extraction-targets",
      "robotsStanzas": []
    },
    {
      "id": "extract-repeated-elements",
      "title": "Extraction target — repeated elements",
      "summary": "Exactly 12 li.sb-item elements, item-01 through item-12 in order, and no other li on the page.",
      "route": "/tests/extraction/extract-repeated-elements",
      "method": "GET",
      "group": "custom-extraction-search",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:extract-repeated-elements:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "custom-extraction-search/extraction-targets",
      "robotsStanzas": []
    },
    {
      "id": "extract-regex-edge",
      "title": "Extraction target — regex edge cases",
      "summary": "Regex-hostile frozen values: a versioned token with a decoy, literal regex special characters, multi-line text, and a case-sensitivity pair.",
      "route": "/tests/extraction/extract-regex-edge",
      "method": "GET",
      "group": "custom-extraction-search",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:extract-regex-edge:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "custom-extraction-search/extraction-targets",
      "robotsStanzas": []
    },
    {
      "id": "extract-empty-target",
      "title": "Extraction target — empty selector",
      "summary": "Documents the no-match path: the sb-absent class genuinely appears on no element anywhere in the markup.",
      "route": "/tests/extraction/extract-empty-target",
      "method": "GET",
      "group": "custom-extraction-search",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:extract-empty-target:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "custom-extraction-search/extraction-targets",
      "robotsStanzas": []
    },
    {
      "id": "extract-rendered-only",
      "title": "Extraction target — rendered-only values",
      "summary": "Price and SKU containers ship empty in the raw HTML; an inline script fills them only after JavaScript execution.",
      "route": "/tests/extraction/extract-rendered-only",
      "method": "GET",
      "group": "custom-extraction-search",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:extract-rendered-only:raw"
        ],
        "absentBodyMarkers": [
          "sb-fixture:extract-rendered-only:rendered"
        ],
        "renderedMarkers": [
          "sb-fixture:extract-rendered-only:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "custom-extraction-search/extraction-targets",
      "robotsStanzas": []
    },
    {
      "id": "search-keyword-frequency",
      "title": "Search target — keyword frequency",
      "summary": "Body text carries one invented token exactly 7 times and a second exactly 3 times, always as whole words.",
      "route": "/tests/extraction/search-keyword-frequency",
      "method": "GET",
      "group": "custom-extraction-search",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:search-keyword-frequency:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "custom-extraction-search/search-targets",
      "robotsStanzas": []
    },
    {
      "id": "search-word-boundary",
      "title": "Search target — word boundaries",
      "summary": "A whole word appears exactly 4 times alongside superstring traps that word-boundary matching must not count.",
      "route": "/tests/extraction/search-word-boundary",
      "method": "GET",
      "group": "custom-extraction-search",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:search-word-boundary:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "custom-extraction-search/search-targets",
      "robotsStanzas": []
    },
    {
      "id": "search-case-variants",
      "title": "Search target — case variants",
      "summary": "One token in three casings: mixed twice, lower twice, upper once, for the IgnoreCase pair.",
      "route": "/tests/extraction/search-case-variants",
      "method": "GET",
      "group": "custom-extraction-search",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:search-case-variants:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "custom-extraction-search/search-targets",
      "robotsStanzas": []
    },
    {
      "id": "search-german-locale",
      "title": "Search target — German locale",
      "summary": "UTF-8 German page with umlaut and sharp-s tokens that freeze character-level case folding behaviour.",
      "route": "/tests/extraction/search-german-locale",
      "method": "GET",
      "group": "custom-extraction-search",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:search-german-locale:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "custom-extraction-search/search-targets",
      "robotsStanzas": []
    },
    {
      "id": "search-selector-scope",
      "title": "Search target — selector scope",
      "summary": "One token placed with exact scope counts: once in the head title, three times in the body, one of those inside an anchor.",
      "route": "/tests/extraction/search-selector-scope",
      "method": "GET",
      "group": "custom-extraction-search",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:search-selector-scope:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "custom-extraction-search/search-targets",
      "robotsStanzas": []
    },
    {
      "id": "search-negative-term",
      "title": "Search target — negative term",
      "summary": "A counted token appears exactly 4 times next to a single negative-trigger token that suppresses the count.",
      "route": "/tests/extraction/search-negative-term",
      "method": "GET",
      "group": "custom-extraction-search",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:search-negative-term:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "custom-extraction-search/search-targets",
      "robotsStanzas": []
    },
    {
      "id": "snippet-global-state",
      "title": "Snippet target — frozen JS global",
      "summary": "An inline script freezes window.sbFixture with a known id, version, items array, and nested ratio.",
      "route": "/tests/extraction/snippet-global-state",
      "method": "GET",
      "group": "custom-extraction-search",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:snippet-global-state:raw"
        ],
        "absentBodyMarkers": [
          "sb-fixture:snippet-global-state:rendered"
        ],
        "renderedMarkers": [
          "sb-fixture:snippet-global-state:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "custom-extraction-search/snippet-targets",
      "robotsStanzas": []
    },
    {
      "id": "snippet-dom-counts",
      "title": "Snippet target — static DOM counts",
      "summary": "A server-rendered DOM with exactly 9 nodes of one class, of which exactly 4 carry a modifier class.",
      "route": "/tests/extraction/snippet-dom-counts",
      "method": "GET",
      "group": "custom-extraction-search",
      "profile": "primary",
      "implementationType": "astro-page",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:snippet-dom-counts:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "custom-extraction-search/snippet-targets",
      "robotsStanzas": []
    },
    {
      "id": "snippet-timing-state",
      "title": "Snippet target — load-event timing",
      "summary": "A head script sets a global immediately and rewrites it in the window load handler, proving snippet timing is honoured.",
      "route": "/tests/extraction/snippet-timing-state",
      "method": "GET",
      "group": "custom-extraction-search",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:snippet-timing-state:raw"
        ],
        "absentBodyMarkers": [
          "sb-fixture:snippet-timing-state:rendered"
        ],
        "renderedMarkers": [
          "sb-fixture:snippet-timing-state:rendered"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "custom-extraction-search/snippet-targets",
      "robotsStanzas": []
    },
    {
      "id": "quality-word-count-120",
      "title": "Word count calibration page at one twenty",
      "summary": "Committed copy of exactly 120 content words, h1 included, in paragraphs only.",
      "route": "/tests/content-quality/word-count/exact-120",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:quality-word-count-120:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "content-quality/word-counts",
      "robotsStanzas": []
    },
    {
      "id": "quality-word-count-750",
      "title": "Word count calibration page at seven fifty",
      "summary": "Committed copy of exactly 750 content words, landing mid-band in the 501 to 900 bin.",
      "route": "/tests/content-quality/word-count/exact-750",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:quality-word-count-750:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "WordCount900"
      ],
      "contentRef": "content-quality/word-counts",
      "robotsStanzas": []
    },
    {
      "id": "quality-word-count-1200",
      "title": "Word count calibration page at twelve hundred",
      "summary": "Committed copy of exactly 1,200 content words, above the 501 to 900 bin.",
      "route": "/tests/content-quality/word-count/exact-1200",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:quality-word-count-1200:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "content-quality/word-counts",
      "robotsStanzas": []
    },
    {
      "id": "quality-readability-very-easy",
      "title": "A very easy reading page with short plain words",
      "summary": "Short, mostly monosyllabic sentences designed for a Flesch-Kincaid score of 100 or higher.",
      "route": "/tests/content-quality/readability/very-easy",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:quality-readability-very-easy:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "content-quality/readability-and-sentiment",
      "robotsStanzas": []
    },
    {
      "id": "quality-readability-very-difficult",
      "title": "A very difficult reading page with long words",
      "summary": "Sentences of thirty plus polysyllabic words designed for a Flesch-Kincaid score of 10 or lower.",
      "route": "/tests/content-quality/readability/very-difficult",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:quality-readability-very-difficult:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "content-quality/readability-and-sentiment",
      "robotsStanzas": []
    },
    {
      "id": "quality-sentiment-positive",
      "title": "A strongly positive review of the harbour cafe",
      "summary": "Committed copy seeding AFINN-listed positive words to a designed sentiment sum above +120.",
      "route": "/tests/content-quality/sentiment/strongly-positive",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:quality-sentiment-positive:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "content-quality/readability-and-sentiment",
      "robotsStanzas": []
    },
    {
      "id": "quality-sentiment-negative",
      "title": "A strongly negative review of the station diner",
      "summary": "Committed copy seeding AFINN-listed negative words to a designed sentiment sum below -120.",
      "route": "/tests/content-quality/sentiment/strongly-negative",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:quality-sentiment-negative:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "content-quality/readability-and-sentiment",
      "robotsStanzas": []
    },
    {
      "id": "quality-template-page-a",
      "title": "Template subtraction sibling page A of four",
      "summary": "Shared 150-word nav and aside template with exactly 200 words of pottery main content.",
      "route": "/tests/content-quality/template/page-a",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:quality-template-page-a:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "content-quality/template-subtraction",
      "robotsStanzas": []
    },
    {
      "id": "quality-template-page-b",
      "title": "Template subtraction sibling page B of four",
      "summary": "Shared 150-word nav and aside template with exactly 300 words of weaving main content.",
      "route": "/tests/content-quality/template/page-b",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:quality-template-page-b:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "content-quality/template-subtraction",
      "robotsStanzas": []
    },
    {
      "id": "quality-template-page-c",
      "title": "Template subtraction sibling page C of four",
      "summary": "Shared 150-word nav and aside template with exactly 400 words of beekeeping main content.",
      "route": "/tests/content-quality/template/page-c",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:quality-template-page-c:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "content-quality/template-subtraction",
      "robotsStanzas": []
    },
    {
      "id": "quality-template-page-d",
      "title": "Template subtraction sibling page D of four",
      "summary": "Shared 150-word nav and aside template with exactly 500 words of printmaking main content.",
      "route": "/tests/content-quality/template/page-d",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:quality-template-page-d:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "content-quality/template-subtraction",
      "robotsStanzas": []
    },
    {
      "id": "quality-rendered-word-divergence",
      "title": "Rendered word divergence calibration fixture",
      "summary": "Raw body of exactly 150 content words; an inline script appends two paragraphs totalling exactly 100 more.",
      "route": "/tests/content-quality/rendered/word-divergence",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "browser-fixture",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:quality-rendered-word-divergence:body -->"
        ],
        "absentBodyMarkers": [
          "sb-fixture:quality-rendered-word-divergence:rendered"
        ],
        "renderedMarkers": [
          "<!-- sb-fixture:quality-rendered-word-divergence:rendered -->"
        ],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "content-quality/rendered-divergence",
      "robotsStanzas": []
    },
    {
      "id": "spelling-en-gb",
      "title": "Booking a stay we can accomodate without any fuss",
      "summary": "English (en-GB) page seeding five misspellings across title, description, h1, and body, plus an alt-text negative probe.",
      "route": "/tests/content-quality/spelling/en-gb",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:spelling-en-gb:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "SpellingErrors"
      ],
      "contentRef": "content-quality/spelling",
      "robotsStanzas": []
    },
    {
      "id": "spelling-de",
      "title": "Unser Intresse an guter Handwerksarbeit nimmt zu",
      "summary": "German page seeding five misspellings checked against the de dictionary.",
      "route": "/tests/content-quality/spelling/de",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:spelling-de:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "SpellingErrors"
      ],
      "contentRef": "content-quality/spelling",
      "robotsStanzas": []
    },
    {
      "id": "spelling-fr",
      "title": "Un apartement lumineux au bord de la vieille ville",
      "summary": "French page seeding five misspellings checked against the fr dictionary.",
      "route": "/tests/content-quality/spelling/fr",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:spelling-fr:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "SpellingErrors"
      ],
      "contentRef": "content-quality/spelling",
      "robotsStanzas": []
    },
    {
      "id": "spelling-es",
      "title": "Un exelente comienzo para nuestro nuevo proyecto",
      "summary": "Spanish page seeding five non-word misspellings checked against the es dictionary.",
      "route": "/tests/content-quality/spelling/es",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:spelling-es:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "SpellingErrors"
      ],
      "contentRef": "content-quality/spelling",
      "robotsStanzas": []
    },
    {
      "id": "spelling-it",
      "title": "Una efficenza sorprendente nel nostro laboratorio",
      "summary": "Italian page seeding five misspellings checked against the it dictionary.",
      "route": "/tests/content-quality/spelling/it",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:spelling-it:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "SpellingErrors"
      ],
      "contentRef": "content-quality/spelling",
      "robotsStanzas": []
    },
    {
      "id": "spelling-nl",
      "title": "Een acommodatie met uitzicht over de oude haven",
      "summary": "Dutch page seeding five misspellings checked against the nl dictionary.",
      "route": "/tests/content-quality/spelling/nl",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:spelling-nl:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "SpellingErrors"
      ],
      "contentRef": "content-quality/spelling",
      "robotsStanzas": []
    },
    {
      "id": "spelling-pt",
      "title": "Uma excessão notável entre as casas antigas da vila",
      "summary": "Portuguese page seeding five misspellings checked against the pt dictionary.",
      "route": "/tests/content-quality/spelling/pt",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:spelling-pt:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "SpellingErrors"
      ],
      "contentRef": "content-quality/spelling",
      "robotsStanzas": []
    },
    {
      "id": "spelling-ru",
      "title": "Симпотичный домик у самого края соснового леса",
      "summary": "Russian page seeding five Cyrillic misspellings checked against the ru dictionary.",
      "route": "/tests/content-quality/spelling/ru",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:spelling-ru:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "SpellingErrors"
      ],
      "contentRef": "content-quality/spelling",
      "robotsStanzas": []
    },
    {
      "id": "spelling-dictionary-fallback",
      "title": "Die Entwiklung unserer kleinen Tischlerei geht weiter",
      "summary": "German page declared as de-DE, which has no exact dictionary, proving base-language fallback to de.",
      "route": "/tests/content-quality/spelling/dictionary-fallback",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:spelling-dictionary-fallback:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "SpellingErrors"
      ],
      "contentRef": "content-quality/spelling",
      "robotsStanzas": []
    },
    {
      "id": "spelling-custom-dictionary-trap",
      "title": "A field guide to auditing one page at a time",
      "summary": "English page whose only spelling errors are five invented brand-like words, flipping to zero once they enter the custom dictionary.",
      "route": "/tests/content-quality/spelling/custom-dictionary-trap",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:spelling-custom-dictionary-trap:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "SpellingErrors"
      ],
      "contentRef": "content-quality/spelling",
      "robotsStanzas": []
    },
    {
      "id": "similarity-base",
      "title": "Similarity gradient base copy with garden notes",
      "summary": "The 20-paragraph, 1,000-word reference copy for the near-duplicate similarity gradient.",
      "route": "/tests/content-quality/similarity/base",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:similarity-base:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "NearDuplicate"
      ],
      "contentRef": "content-quality/similarity-gradient",
      "robotsStanzas": []
    },
    {
      "id": "similarity-variant-95",
      "title": "Similarity gradient variant at ninety five percent",
      "summary": "Base copy with paragraph 20 replaced; design-target similarity to base of roughly 95 percent.",
      "route": "/tests/content-quality/similarity/variant-95",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:similarity-variant-95:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "NearDuplicate"
      ],
      "contentRef": "content-quality/similarity-gradient",
      "robotsStanzas": []
    },
    {
      "id": "similarity-variant-85",
      "title": "Similarity gradient variant at eighty five percent",
      "summary": "Base copy with paragraphs 18 to 20 replaced; design-target similarity to base of roughly 85 percent.",
      "route": "/tests/content-quality/similarity/variant-85",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:similarity-variant-85:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [
        "NearDuplicate"
      ],
      "contentRef": "content-quality/similarity-gradient",
      "robotsStanzas": []
    },
    {
      "id": "similarity-variant-70",
      "title": "Similarity gradient variant at seventy percent",
      "summary": "Base copy with paragraphs 15 to 20 replaced; the boundary probe for the default similarity threshold.",
      "route": "/tests/content-quality/similarity/variant-70",
      "method": "GET",
      "group": "content-quality",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "<!-- sb-fixture:similarity-variant-70:body -->"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "content-quality/similarity-gradient",
      "robotsStanzas": []
    },
    {
      "id": "scope-subdomain-link",
      "title": "Subdomain scope link",
      "summary": "A page whose single anchor points at a sibling-subdomain page, so subdomain scope classification is observable.",
      "route": "/tests/scope/subdomain-link",
      "method": "GET",
      "group": "crawl-scope",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:scope-subdomain-link:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "https://cross-origin.crawler-test-site.uk.sitebulb.com/tests/scope/subdomain-target",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "contentRef": "crawl-scope/subdomain-scope",
      "robotsStanzas": []
    },
    {
      "id": "scope-subdomain-target",
      "title": "Subdomain scope target",
      "summary": "The sibling-subdomain page the scope link points at, with one anchor back into primary scope.",
      "route": "/tests/scope/subdomain-target",
      "method": "GET",
      "group": "crawl-scope",
      "profile": "host-subdomain",
      "implementationType": "supporting-profile",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:scope-subdomain-target:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "https://crawler-test-site.uk.sitebulb.com/tests/scope/subdomain-link",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "contentRef": "crawl-scope/subdomain-scope",
      "robotsStanzas": []
    },
    {
      "id": "scope-external-link",
      "title": "External link scope",
      "summary": "A page whose single anchor is the shared external target constant, so external classification is observable.",
      "route": "/tests/scope/external-link",
      "method": "GET",
      "group": "crawl-scope",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": true,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:scope-external-link:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "https://example.com/",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "crawl-scope/external-links",
      "robotsStanzas": []
    },
    {
      "id": "scope-cdn-embedded-resources",
      "title": "CDN-hosted first-party resources",
      "summary": "A page embedding a stylesheet, a script, and an image served from the CDN-style asset host.",
      "route": "/tests/scope/cdn-embedded-resources",
      "method": "GET",
      "group": "crawl-scope",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:scope-cdn-embedded-resources:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "contentRef": "crawl-scope/cdn-resources",
      "robotsStanzas": []
    },
    {
      "id": "scope-cdn-asset-stylesheet",
      "title": "CDN asset — stylesheet",
      "summary": "The committed CSS file the CDN embedding page references, served from the asset host.",
      "route": "/tests/scope/cdn/styles.css",
      "method": "GET",
      "group": "crawl-scope",
      "profile": "cdn-assets",
      "implementationType": "supporting-profile",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/css",
        "bodyMarkers": [
          "sb-fixture:scope-cdn-asset-stylesheet:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "contentRef": "crawl-scope/cdn-resources",
      "robotsStanzas": []
    },
    {
      "id": "scope-cdn-asset-script",
      "title": "CDN asset — script",
      "summary": "The committed no-op JavaScript file the CDN embedding page references, served from the asset host.",
      "route": "/tests/scope/cdn/script.js",
      "method": "GET",
      "group": "crawl-scope",
      "profile": "cdn-assets",
      "implementationType": "supporting-profile",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/javascript",
        "bodyMarkers": [
          "sb-fixture:scope-cdn-asset-script:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "contentRef": "crawl-scope/cdn-resources",
      "robotsStanzas": []
    },
    {
      "id": "scope-cdn-asset-image",
      "title": "CDN asset — image",
      "summary": "The committed 64x64 PNG the CDN embedding page references, with its marker in a tEXt chunk.",
      "route": "/tests/scope/cdn/image.png",
      "method": "GET",
      "group": "crawl-scope",
      "profile": "cdn-assets",
      "implementationType": "supporting-profile",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:scope-cdn-asset-image:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "contentRef": "crawl-scope/cdn-resources",
      "robotsStanzas": []
    },
    {
      "id": "scope-tracking-stub-page",
      "title": "Third-party tracking stubs",
      "summary": "A page embedding a self-labelled analytics script stub and a 1x1 pixel stub from the tracking-stub host.",
      "route": "/tests/scope/tracking-stub-page",
      "method": "GET",
      "group": "crawl-scope",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:scope-tracking-stub-page:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "contentRef": "crawl-scope/tracking-stubs",
      "robotsStanzas": []
    },
    {
      "id": "scope-tracking-analytics-script",
      "title": "Tracking stub — analytics script",
      "summary": "The committed no-op analytics script stub, served from the tracking-stub host; performs no tracking.",
      "route": "/tests/scope/tracking/analytics.js",
      "method": "GET",
      "group": "crawl-scope",
      "profile": "tracking-stub",
      "implementationType": "supporting-profile",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/javascript",
        "bodyMarkers": [
          "sb-fixture:scope-tracking-analytics-script:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "contentRef": "crawl-scope/tracking-stubs",
      "robotsStanzas": []
    },
    {
      "id": "scope-tracking-beacon-pixel",
      "title": "Tracking stub — beacon pixel",
      "summary": "The committed 1x1 PNG pixel stub, served from the tracking-stub host, with its marker in a tEXt chunk.",
      "route": "/tests/scope/tracking/collect.png",
      "method": "GET",
      "group": "crawl-scope",
      "profile": "tracking-stub",
      "implementationType": "supporting-profile",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "image/png",
        "bodyMarkers": [
          "sb-fixture:scope-tracking-beacon-pixel:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "contentRef": "crawl-scope/tracking-stubs",
      "robotsStanzas": []
    },
    {
      "id": "scope-protocol-port-variants",
      "title": "Scheme and default-port scope variants",
      "summary": "A page whose three anchors are the plain, explicit-:443, and http:// variants of one primary-host path.",
      "route": "/tests/scope/protocol-port-variants",
      "method": "GET",
      "group": "crawl-scope",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "default-sitemap",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:scope-protocol-port-variants:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "https://crawler-test-site.uk.sitebulb.com/tests/scope/protocol-variants-target",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "https://crawler-test-site.uk.sitebulb.com:443/tests/scope/protocol-variants-target",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "http://crawler-test-site.uk.sitebulb.com/tests/scope/protocol-variants-target",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "crawl-scope/scheme-and-port-scope",
      "robotsStanzas": []
    },
    {
      "id": "scope-protocol-variants-target",
      "title": "Scheme and port variants target",
      "summary": "The stable primary-host page the scheme and default-port variant anchors all resolve to.",
      "route": "/tests/scope/protocol-variants-target",
      "method": "GET",
      "group": "crawl-scope",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "target",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": true,
      "directEntryOnly": false,
      "external": false,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:scope-protocol-variants-target:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": []
      },
      "environmentCapabilities": [],
      "sitebulbHintIds": [],
      "contentRef": "crawl-scope/scheme-and-port-scope",
      "robotsStanzas": []
    },
    {
      "id": "scope-audit-all",
      "title": "One-stop scope audit page",
      "summary": "A page whose five anchors cover every scope class in this group: subdomain, external, CDN, tracking, and protocol variants.",
      "route": "/tests/scope/audit-all",
      "method": "GET",
      "group": "crawl-scope",
      "profile": "primary",
      "implementationType": "astro-endpoint",
      "routeClass": "entry",
      "risk": "safe",
      "sitemapPolicy": "safe-manifest-only",
      "includeInNavigation": false,
      "directEntryOnly": false,
      "external": true,
      "expectation": {
        "expectedStatus": 200,
        "expectedHeaders": [],
        "expectedContentType": "text/html; charset=utf-8",
        "bodyMarkers": [
          "sb-fixture:scope-audit-all:body"
        ],
        "absentBodyMarkers": [],
        "renderedMarkers": [],
        "absentRenderedMarkers": [],
        "expectedDirectives": [],
        "expectedLinks": [
          {
            "href": "https://cross-origin.crawler-test-site.uk.sitebulb.com/tests/scope/subdomain-target",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "https://example.com/",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/scope/cdn-embedded-resources",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/scope/tracking-stub-page",
            "source": "raw",
            "discoverable": true
          },
          {
            "href": "/tests/scope/protocol-port-variants",
            "source": "raw",
            "discoverable": true
          }
        ]
      },
      "environmentCapabilities": [
        "multi-origin"
      ],
      "sitebulbHintIds": [],
      "robotsStanzas": []
    }
  ]
}