{
  "engagements": [
    {
      "date": "2026-10-02",
      "schema": "engagement-v1",
      "hash": "bdeb0a7f37ff6392ea103d1b2de40a3db32003a96fd44cc27b5861723490e12e",
      "algo": "sha256(canonical_json(classement_complet_J) + nonce)",
      "publie_le": "2026-10-05T20:58Z",
      "nonce_revele_le": "2026-10-10T09:34Z",
      "calcule_le": "2026-10-02T22:49Z",
      "note": "Engagement du classement complet avant la clôture du jour — vérification publique : sha256(json_canonique(classement) + nonce) == hash, révélé le lendemain. Ce hash scelle le classement à la date de gel ; il ne prouve ni le rang futur ni aucun résultat — seule la mesure réelle du forward test le peut.",
      "nonce": "d157719eaec962f38716415c779ea867",
      "nonce_source": "reveles/2026-10-02.json",
      "gel_le": "2026-10-02T22:49Z",
      "fenetre_deviation": "gel-avant-fenetre-publication-retardee-recuperation-batch",
      "statut_probatoire": "tardive"
    },
    {
      "date": "2026-10-03",
      "schema": "engagement-v1",
      "hash": "59c25a162cc75a9e677c4230305fc5e3b7bcfca7d664dfd3af9b6202b1b2dd18",
      "algo": "sha256(canonical_json(classement_complet_J) + nonce)",
      "publie_le": "2026-10-04T08:00Z",
      "nonce_revele_le": "2026-10-10T09:34Z",
      "calcule_le": "2026-10-03T08:00Z",
      "note": "Engagement du classement complet avant la clôture du jour — vérification publique : sha256(json_canonique(classement) + nonce) == hash, révélé le lendemain. Ce hash scelle le classement à la date de gel ; il ne prouve ni le rang futur ni aucun résultat — seule la mesure réelle du forward test le peut.",
      "nonce": "f06e99c86cf13d12743be2348295bbea",
      "nonce_source": "reveles/2026-10-03.json",
      "gel_le": "2026-10-03T08:00Z",
      "fenetre_deviation": "gel-avant-fenetre-publication-retardee-recuperation-batch",
      "statut_probatoire": "tardive"
    },
    {
      "date": "2026-10-04",
      "schema": "engagement-v1",
      "hash": "087847d29543beca8087e818a51ed68c1cbec2cc9583a8b72fcd2728116c9ba5",
      "algo": "sha256(canonical_json(classement_complet_J) + nonce)",
      "publie_le": "2026-10-03T08:00Z",
      "nonce_revele_le": "2026-10-10T09:34Z",
      "calcule_le": "2026-10-04T08:00Z",
      "note": "Engagement du classement complet avant la clôture du jour — vérification publique : sha256(json_canonique(classement) + nonce) == hash, révélé le lendemain. Ce hash scelle le classement à la date de gel ; il ne prouve ni le rang futur ni aucun résultat — seule la mesure réelle du forward test le peut.",
      "nonce": "a7b5e94b2c14fc49456d270993d93715",
      "nonce_source": "reveles/2026-10-04.json",
      "gel_le": "2026-10-04T08:00Z",
      "statut_probatoire": "non_démontrable"
    },
    {
      "date": "2026-10-05",
      "schema": "engagement-v1",
      "hash": "9a0ec3e7d9d3337b71bcee30734096dbf7ca1250dccbef15419e617019200284",
      "algo": "sha256(canonical_json(classement_complet_J) + nonce)",
      "publie_le": null,
      "nonce_revele_le": "2026-10-10T09:34Z",
      "calcule_le": "2026-10-05T20:58Z",
      "note": "Engagement du classement complet avant la clôture du jour — vérification publique : sha256(json_canonique(classement) + nonce) == hash, révélé le lendemain. Ce hash scelle le classement à la date de gel ; il ne prouve ni le rang futur ni aucun résultat — seule la mesure réelle du forward test le peut.",
      "nonce": "558e0405a0c6da844de4380489690b3b",
      "nonce_source": "reveles/2026-10-05.json",
      "gel_le": "2026-10-05T20:58Z",
      "statut_probatoire": "tardive"
    },
    {
      "date": "2026-10-06",
      "schema": "engagement-v1",
      "hash": "4c95ecc7b7a0718b3b374644c54c67e74a80e96d9e990cf6d5db128269f2cda9",
      "algo": "sha256(canonical_json(classement_complet_J) + nonce)",
      "publie_le": "2026-10-06T18:46Z",
      "nonce_revele_le": "2026-10-10T09:34Z",
      "calcule_le": "2026-10-06T08:00Z",
      "note": "Engagement du classement complet avant la clôture du jour — vérification publique : sha256(json_canonique(classement) + nonce) == hash, révélé le lendemain. Ce hash scelle le classement à la date de gel ; il ne prouve ni le rang futur ni aucun résultat — seule la mesure réelle du forward test le peut.",
      "nonce": "eccf59f795f46cfd88e173566e0b2c66",
      "nonce_source": "reveles/2026-10-06.json",
      "gel_le": "2026-10-06T08:00Z",
      "statut_probatoire": "vérifiée"
    },
    {
      "date": "2026-10-07",
      "schema": "engagement-v1",
      "hash": "d99b3c0032c8e17960bf3fb630636c2f94f840834b57f434d3fea66512557eb1",
      "algo": "sha256(canonical_json(classement_complet_J) + nonce)",
      "publie_le": null,
      "nonce_revele_le": "2026-10-10T09:34Z",
      "calcule_le": "2026-10-07T08:00Z",
      "note": "Engagement du classement complet avant la clôture du jour — vérification publique : sha256(json_canonique(classement) + nonce) == hash, révélé le lendemain. Ce hash scelle le classement à la date de gel ; il ne prouve ni le rang futur ni aucun résultat — seule la mesure réelle du forward test le peut.",
      "nonce": "888b18e2e36ad09036b30e07b5cafb29",
      "nonce_source": "reveles/2026-10-07.json",
      "gel_le": "2026-10-07T08:00Z",
      "statut_probatoire": "non_démontrable"
    },
    {
      "date": "2026-10-08",
      "schema": "engagement-v1",
      "hash": "05cf14ee9e772c22624caf10aa94d1b3e0460020a0118eea17d015c3fa46b823",
      "algo": "sha256(canonical_json(classement_complet_J) + nonce)",
      "publie_le": null,
      "nonce_revele_le": "2026-10-10T09:34Z",
      "calcule_le": "2026-10-08T08:00Z",
      "note": "Engagement du classement complet avant la clôture du jour — vérification publique : sha256(json_canonique(classement) + nonce) == hash, révélé le lendemain. Ce hash scelle le classement à la date de gel ; il ne prouve ni le rang futur ni aucun résultat — seule la mesure réelle du forward test le peut.",
      "nonce": "4dd2bbd95b42315d83ca0f35b01b0c9d",
      "nonce_source": "reveles/2026-10-08.json",
      "gel_le": "2026-10-08T08:00Z",
      "statut_probatoire": "non_démontrable"
    },
    {
      "date": "2026-10-09",
      "schema": "engagement-v1",
      "hash": "70b4a97d4bf43a974b2c8cb81399cc3e59be656a07de954dd10eb4b4e84ac785",
      "algo": "sha256(canonical_json(classement_complet_J) + nonce)",
      "publie_le": null,
      "nonce_revele_le": "2026-10-10T09:34Z",
      "calcule_le": "2026-10-09T08:00Z",
      "note": "Engagement du classement complet avant la clôture du jour — vérification publique : sha256(json_canonique(classement) + nonce) == hash, révélé le lendemain. Ce hash scelle le classement à la date de gel ; il ne prouve ni le rang futur ni aucun résultat — seule la mesure réelle du forward test le peut.",
      "nonce": "3eed59a14524b1e8193445a30feace53",
      "nonce_source": "reveles/2026-10-09.json",
      "gel_le": "2026-10-09T08:00Z",
      "statut_probatoire": "non_démontrable"
    },
    {
      "date": "2026-10-10",
      "schema": "engagement-v1",
      "hash": "c24d973727226f8503aba9a2dc50c5a682b25efc80b34f6bf1084cceaa5f2bd0",
      "algo": "sha256(canonical_json(classement_complet_J) + nonce)",
      "publie_le": "2026-10-10T08:01Z",
      "nonce_revele_le": null,
      "calcule_le": "2026-10-10T08:00Z",
      "note": "Engagement du classement complet avant la clôture du jour — vérification publique : sha256(json_canonique(classement) + nonce) == hash, révélé le lendemain. Ce hash scelle le classement à la date de gel ; il ne prouve ni le rang futur ni aucun résultat — seule la mesure réelle du forward test le peut.",
      "nonce": null,
      "nonce_source": null,
      "gel_le": "2026-10-10T08:00Z",
      "statut_probatoire": null
    }
  ],
  "note": "Registre public et permanent : chaque engagement est scellé avant la clôture du jour qu'il engage (gel_le). Le champ statut_probatoire qualifie la preuve de publication, sans ambiguïté : « vérifiée » = attestation complète et publication dans la fenêtre mesurée (publie_le antérieur à la clôture, lendemain 00h00Z) ; « tardive » = publication effective après la clôture — la règle B n'admet alors une ligne QUE si une déviation documentée (fenetre_deviation : gel avant la fenêtre, fiche 17) l'accompagne, et aucune ligne B sans déviation ; « non_démontrable » = publication jamais poussée ou attestation absente ou incohérente — aucune ligne B ; null = pas de qualification. Les horodatages proviennent d'événements attestés (attestations.json), jamais de métadonnées de fichier."
}