{
  "schema": "calendar-platform/consumer-manifest",
  "version": "consumer-manifest.v2",
  "countryCode": "FR",
  "consumerCoreProtocolVersion": "calendar-consumer-core.v1",
  "consumerCoreReleaseVersion": "1.0.0",
  "consumerCoreSourceChecksum": "51d6b91f1a56656e2c065cf998cc3574b632d1154ffc21297003ee174674f452",
  "consumerContractVersion": "calendar-consumer-contract.v2",
  "consumerCompatibilityVersion": "consumer-compatibility.v1",
  "consumerCompatibilityChecksum": "5667a5c6aba6160772dbeab30cab2f5c76067140815fd71a3b4e606a044a8d96",
  "runtimeApiVersion": "datasets.v1",
  "build": {
    "buildId": "89e3036f83e2c70cbb9324c84e5b4330bc62e59c"
  },
  "compatibilityProjection": {
    "consumerCompatibilityVersion": "consumer-compatibility.v1",
    "countryCode": "FR",
    "consumerContractVersion": "calendar-consumer-contract.v2",
    "runtimeApiVersion": "datasets.v1",
    "minimumConsumerCoreVersion": "calendar-consumer-core.v1",
    "datasetBindings": [
      {
        "datasetKind": "public-holidays",
        "requirement": "REQUIRED",
        "scopeSemantics": "REGION_SCOPED",
        "intervalEntries": false
      },
      {
        "datasetKind": "school-holidays",
        "requirement": "REQUIRED",
        "scopeSemantics": "ORGANISER_SCOPED",
        "intervalEntries": true
      }
    ],
    "routes": [
      {
        "routeId": "home",
        "locale": "fr-FR",
        "localizedPath": "/",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "today",
        "locale": "fr-FR",
        "localizedPath": "/ephemeride",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "calendar.index",
        "locale": "fr-FR",
        "localizedPath": "/calendrier",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "calendar.year",
        "locale": "fr-FR",
        "localizedPath": "/calendrier/:annee",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "calendar.month",
        "locale": "fr-FR",
        "localizedPath": "/calendrier/:annee/:mois",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "holidays.index",
        "locale": "fr-FR",
        "localizedPath": "/jours-feries",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "holidays.year",
        "locale": "fr-FR",
        "localizedPath": "/jours-feries/:annee",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "holidays.region.year",
        "locale": "fr-FR",
        "localizedPath": "/jours-feries/:annee/:perimetre",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "schoolbreaks.index",
        "locale": "fr-FR",
        "localizedPath": "/vacances-scolaires",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "schoolbreaks.region.index",
        "locale": "fr-FR",
        "localizedPath": "/vacances-scolaires/:zone",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "schoolbreaks.region.year",
        "locale": "fr-FR",
        "localizedPath": "/vacances-scolaires/:zone/:annee",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "week.index",
        "locale": "fr-FR",
        "localizedPath": "/numero-de-semaine",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "week.detail",
        "locale": "fr-FR",
        "localizedPath": "/semaine/:annee/:numero",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "print.index",
        "locale": "fr-FR",
        "localizedPath": "/calendrier-a-imprimer",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "print.year",
        "locale": "fr-FR",
        "localizedPath": "/calendrier-a-imprimer/:annee",
        "indexingPolicy": "CANONICALIZED",
        "isCanonical": false
      },
      {
        "routeId": "print.month",
        "locale": "fr-FR",
        "localizedPath": "/calendrier-a-imprimer/:annee/:mois",
        "indexingPolicy": "CANONICALIZED",
        "isCanonical": false
      },
      {
        "routeId": "tools.index",
        "locale": "fr-FR",
        "localizedPath": "/outils",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "tools.businessDays",
        "locale": "fr-FR",
        "localizedPath": "/jours-ouvres",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "tools.dayCounter",
        "locale": "fr-FR",
        "localizedPath": "/nombre-de-jours",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "tools.dateCalculator",
        "locale": "fr-FR",
        "localizedPath": "/calcul-date",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "sources",
        "locale": "fr-FR",
        "localizedPath": "/sources",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "legal.privacy",
        "locale": "fr-FR",
        "localizedPath": "/confidentialite",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "legal.cookies",
        "locale": "fr-FR",
        "localizedPath": "/cookies",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "legal.terms",
        "locale": "fr-FR",
        "localizedPath": "/conditions",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "legal.imprint",
        "locale": "fr-FR",
        "localizedPath": "/mentions-legales",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "bridgedays.index",
        "locale": "fr-FR",
        "localizedPath": "/ponts",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      },
      {
        "routeId": "bridgedays.year",
        "locale": "fr-FR",
        "localizedPath": "/ponts/:annee",
        "indexingPolicy": "INDEXABLE",
        "isCanonical": true
      }
    ],
    "locales": [
      {
        "locale": "fr-FR",
        "isPrimary": true,
        "pathPrefix": null,
        "direction": "ltr",
        "script": "Latn",
        "numberingSystem": "latn"
      }
    ],
    "calendar": {
      "canonicalCalendar": "gregorian",
      "primaryDisplayCalendar": "gregorian",
      "weekScheme": "ISO_8601",
      "weekNumbering": "ISO_8601",
      "weekStart": 1,
      "weekendDays": [
        6,
        0
      ]
    },
    "safety": {
      "canonicalHost": null,
      "hostApproved": false,
      "indexingState": "NOINDEX"
    }
  },
  "consumer": {
    "id": "calendrier-clair",
    "brand": "Calendrier Clair",
    "tagline": "Le calendrier, en clair.",
    "lovableProjectId": "62197386-3b44-4b51-862b-af6f23b21ace",
    "observedCommit": "89e3036f83e2c70cbb9324c84e5b4330bc62e59c",
    "locale": "fr-FR",
    "country": "FR",
    "lifecycle": "PUBLISHED_PRODUCTION",
    "indexing": "INDEX_PRODUCTION_HOST_ONLY_FAIL_CLOSED",
    "observedHost": "https://calendrierclair.fr",
    "intendedDomain": "calendrierclair.fr",
    "domainState": "PUBLISHED_AND_SERVING_ON_CALENDRIERCLAIR_FR",
    "hostOwnershipAsserted": false,
    "hostApproved": false,
    "canonicalBaseUrl": null,
    "repository": null
  },
  "connection": {
    "state": "CONNECTED",
    "frDataState": "SNAPSHOTS_ACTIVE_COUNTRY_NOT_LIVE",
    "canonicalApiBaseUrl": "https://calendify-your-world.lovable.app",
    "apiBaseUrlOverride": "VITE_CALENDAR_PLATFORM_API_BASE_URL",
    "wireContracts": [
      "datasets.v1",
      "calendar-scope-resolver.v1"
    ],
    "requestStyle": "CORS_SIMPLE_GET_NO_CUSTOM_HEADERS"
  },
  "compatibilityIdentity": {
    "version": "consumer-compatibility.v1",
    "origin": "CONSUMER_DECLARED_PROJECTION",
    "note": "Computed by this consumer from its declared consumer-compatibility.v1 projection with the platform's canonical canonical-JSON + SHA-256 algorithm. Calendar Platform has not issued an FR compatibility identity to this consumer; no checksum is invented or copied. A mismatch must be read as CONTRACT_DRIFT to reconcile, never as a claim of platform approval.",
    "platformIssuedChecksum": null,
    "platformIssuedChecksumReason": "NOT_ISSUED_BY_PLATFORM"
  },
  "capabilities": {
    "requested": [
      {
        "dataset": "public-holidays",
        "regionPattern": "fr.hol:*",
        "required": true,
        "status": "ACTIVE"
      },
      {
        "dataset": "school-holidays",
        "regionPattern": "fr.zone:*",
        "required": true,
        "status": "ACTIVE"
      },
      {
        "dataset": "bridge-days",
        "regionPattern": "fr.hol:*",
        "required": false,
        "status": "PLANNED_NOT_ENABLED",
        "currentRefusal": "PACK_NOT_SUPPORTED",
        "semantics": "DERIVED_SUGGESTION",
        "assumption": "MON_FRI_WORK_WEEK",
        "renderedSeparatelyFromStatutoryHolidays": true
      },
      {
        "endpoint": "scopes/resolve",
        "country": "FR",
        "aliasTypes": [
          "POSTAL_CODE"
        ],
        "locationKeyType": "INSEE",
        "bindings": [
          "HOLIDAY_JURISDICTION",
          "ACADEMY",
          "SCHOOL_ZONE"
        ],
        "required": false,
        "status": "ACTIVE",
        "artifact": "fr-scope-resolver-v2"
      }
    ],
    "declined": [
      {
        "dataset": "name-days",
        "reason": "RIGHTS_UNRESOLVED",
        "status": "NOT_SUPPORTED_BY_CONSUMER",
        "note": "Saint du jour is disabled in v1: no route, no placeholder, no fallback list."
      }
    ]
  },
  "snapshots": {
    "fr": {
      "activeSnapshotCount": 2,
      "observedAt": "2026-09-02",
      "observed": {
        "public-holidays": {
          "snapshotId": "a18f1717-b657-47a9-bd1d-bf48f93048fc",
          "snapshotChecksum": "2a18becdae3a497869585c24077914d6f734d3f0a164d46afe187e3f0b7b8e87",
          "coverage": {
            "start": "2006-01-01",
            "end": "2031-12-26"
          },
          "servedScopeCount": 13
        },
        "school-holidays": {
          "snapshotId": "25a52f66-e1a0-46d1-97a6-7a7cec6055ea",
          "snapshotChecksum": "e4809701bd39d6453c45691d167b37a82ef65eb87b7dbbca9fe8a3d2f99d182a",
          "coverage": {
            "start": "2025-09-13",
            "end": "2027-08-24"
          },
          "servedScopeCount": 11
        }
      },
      "perResponseProvenanceTrusted": true
    }
  },
  "refusalHandling": {
    "NO_ACTIVE_SNAPSHOT": "CALM_NOT_YET_PUBLISHED_STATE",
    "SCOPE_REQUIRED": "CONSUMER_DEFECT_NO_QUERY_WIDENING",
    "SCOPE_NOT_SERVED": "EXPLICIT_UNKNOWN",
    "PROVIDER_OUT_OF_COVERAGE": "EXPLICIT_UNKNOWN_WITH_SINGLE_NARROWING_RETRY",
    "REGION_REQUIRED": "CONSUMER_DEFECT_NO_QUERY_WIDENING",
    "INVALID_REGION": "CONSUMER_DEFECT_NO_QUERY_WIDENING",
    "INVALID_RANGE": "CONSUMER_DEFECT_NO_QUERY_WIDENING",
    "RANGE_REQUIRED": "CONSUMER_DEFECT_NO_QUERY_WIDENING",
    "PACK_NOT_SUPPORTED": "CAPABILITY_DISABLED_HONEST_STATE",
    "CAPABILITY_NOT_ENABLED": "CAPABILITY_DISABLED_HONEST_STATE",
    "RUNTIME_DATA_UNAVAILABLE": "TRANSIENT_UNAVAILABLE_BOUNDED_RETRY",
    "RESOLVER_UNAVAILABLE": "RESOLVER_UNAVAILABLE_NO_SCOPE_GUESS",
    "RESOLVER_INTEGRITY_FAILURE": "RESOLVER_UNAVAILABLE_NO_SCOPE_GUESS",
    "MALFORMED_OR_UNVERIFIED_SUCCESS": "FAIL_CLOSED_NOTHING_RENDERED",
    "AMBIGUOUS": "PRESENT_ALL_CANDIDATES_FOR_USER_CHOICE"
  },
  "integrityCommitments": {
    "noUpstreamOfficialSourceCalls": true,
    "noEmbeddedCalendarFacts": true,
    "noScopeDefaulting": true,
    "noNationalHolidayFlattening": true,
    "goodFridayOnlyWhereServed": true,
    "schoolHolidaySemanticsPreserved": "DEPART_AFTER_CLASS_START_RETURN_MORNING_END",
    "metropolitanZonesNotAppliedToCorseOrOverseas": true,
    "explicitUnknownForUnservedSchoolTerritories": [
      "Wallis-et-Futuna",
      "Nouvelle-Calédonie"
    ],
    "verifiedSuccessRequired": true,
    "rangeNarrowingOnlyNeverScopeWidening": true
  }
}
