[
  {
    "name": "consistent",
    "pages": [
      {
        "url": "https://example.com/en/service/",
        "status": 200,
        "canonical": "https://example.com/en/service/",
        "alternates": {
          "en": "https://example.com/en/service/",
          "fr": "https://example.com/fr/service/"
        }
      },
      {
        "url": "https://example.com/fr/service/",
        "status": 200,
        "canonical": "https://example.com/fr/service/",
        "alternates": {
          "en": "https://example.com/en/service/",
          "fr": "https://example.com/fr/service/"
        }
      }
    ],
    "expected": []
  },
  {
    "name": "cross-language-canonical",
    "pages": [
      {
        "url": "https://example.com/en/service/",
        "status": 200,
        "canonical": "https://example.com/en/service/",
        "alternates": {
          "en": "https://example.com/en/service/",
          "fr": "https://example.com/fr/service/"
        }
      },
      {
        "url": "https://example.com/fr/service/",
        "status": 200,
        "canonical": "https://example.com/en/service/",
        "alternates": {
          "en": "https://example.com/en/service/",
          "fr": "https://example.com/fr/service/"
        }
      }
    ],
    "expected": [
      "canonical mismatch: https://example.com/fr/service/"
    ]
  },
  {
    "name": "missing-return",
    "pages": [
      {
        "url": "https://example.com/en/service/",
        "status": 200,
        "canonical": "https://example.com/en/service/",
        "alternates": {
          "en": "https://example.com/en/service/",
          "fr": "https://example.com/fr/service/"
        }
      },
      {
        "url": "https://example.com/fr/service/",
        "status": 200,
        "canonical": "https://example.com/fr/service/",
        "alternates": {
          "fr": "https://example.com/fr/service/"
        }
      }
    ],
    "expected": [
      "missing alternate en: https://example.com/fr/service/"
    ]
  },
  {
    "name": "redirect",
    "pages": [
      {
        "url": "https://example.com/en/service/",
        "status": 200,
        "canonical": "https://example.com/en/service/",
        "alternates": {
          "en": "https://example.com/en/service/",
          "fr": "https://example.com/fr/service/"
        }
      },
      {
        "url": "https://example.com/fr/service/",
        "status": 302,
        "canonical": "https://example.com/fr/service/",
        "alternates": {
          "en": "https://example.com/en/service/",
          "fr": "https://example.com/fr/service/"
        }
      }
    ],
    "expected": [
      "not directly available: https://example.com/fr/service/"
    ]
  }
]