{
  "schemaVersion": "1.0.0",
  "versions": {
    "app": "1.0.0",
    "engine": "1.0.0",
    "method": "1.0.0",
    "report": "1.0.0",
    "docs": "2026-10-04"
  },
  "profile": {
    "schemaVersion": "1.0",
    "id": "journal-demo",
    "version": "1.0.0",
    "language": "fr",
    "timezone": "Europe/Paris",
    "referenceDate": "2026-10-15",
    "marker": "article[data-template=\"journal-v1\"]",
    "pageUrl": {
      "selector": "link[rel=\"canonical\"]",
      "attribute": "href"
    },
    "rules": [
      {
        "expected": true,
        "scope": "article[data-template=\"journal-v1\"]",
        "source": "text",
        "absence": "undetermined",
        "ambiguity": "undetermined",
        "id": "published",
        "label": "Date de publication",
        "reader": "date",
        "selector": ".published",
        "cardinality": "one",
        "entity": {
          "types": [
            "Article",
            "BlogPosting",
            "NewsArticle"
          ],
          "by": "page_url"
        },
        "property": "datePublished",
        "policy": {
          "text": "space-presentation",
          "urls": "conservative",
          "dateFormat": "fr"
        }
      },
      {
        "expected": true,
        "scope": "article[data-template=\"journal-v1\"]",
        "source": "text",
        "absence": "undetermined",
        "ambiguity": "undetermined",
        "id": "modified",
        "label": "Date de révision",
        "reader": "date",
        "selector": ".modified",
        "cardinality": "one",
        "entity": {
          "types": [
            "Article",
            "BlogPosting",
            "NewsArticle"
          ],
          "by": "page_url"
        },
        "property": "dateModified",
        "policy": {
          "text": "space-presentation",
          "urls": "conservative",
          "dateFormat": "fr"
        }
      },
      {
        "expected": true,
        "scope": "article[data-template=\"journal-v1\"]",
        "source": "text",
        "absence": "undetermined",
        "ambiguity": "undetermined",
        "id": "authors",
        "label": "Auteurs",
        "reader": "authors",
        "selector": ".author",
        "cardinality": "set",
        "entity": {
          "types": [
            "Article",
            "BlogPosting",
            "NewsArticle"
          ],
          "by": "page_url"
        },
        "property": "author",
        "fields": {
          "name": ".author-name",
          "url": "a"
        },
        "policy": {
          "text": "space-presentation",
          "urls": "conservative",
          "order": "set"
        }
      },
      {
        "expected": true,
        "scope": "article[data-template=\"journal-v1\"]",
        "source": "text",
        "absence": "undetermined",
        "ambiguity": "undetermined",
        "id": "breadcrumb",
        "label": "Fil d’Ariane",
        "reader": "breadcrumb",
        "selector": ".breadcrumb li",
        "cardinality": "sequence",
        "entity": {
          "types": [
            "BreadcrumbList"
          ],
          "by": "id",
          "id": "#breadcrumb"
        },
        "property": "itemListElement",
        "fields": {
          "name": ".crumb-label",
          "url": "a"
        },
        "policy": {
          "text": "space-presentation",
          "urls": "conservative",
          "lastUnlinked": "page_url"
        }
      },
      {
        "expected": true,
        "scope": "article[data-template=\"journal-v1\"]",
        "source": "text",
        "absence": "undetermined",
        "ambiguity": "undetermined",
        "id": "faq",
        "label": "Questions et réponses",
        "reader": "faq",
        "selector": ".faq details",
        "cardinality": "set",
        "entity": {
          "types": [
            "FAQPage"
          ],
          "by": "id",
          "id": "#faq"
        },
        "property": "mainEntity",
        "fields": {
          "question": "summary",
          "answer": ".answer",
          "keyAttribute": "data-key"
        },
        "policy": {
          "text": "space-presentation",
          "urls": "conservative",
          "faqKey": "identifier",
          "links": true
        }
      }
    ]
  },
  "profileSha256": "646c5fd0f01de2bb328d5841971d3fe9db2b46b70f34271cf97b480b94a1a77d",
  "generatedAt": "2026-10-04T05:21:41.917Z",
  "limits": {
    "files": 500,
    "fileBytes": 2000000,
    "totalBytes": 30000000,
    "jsonDepth": 40,
    "nodes": 30000,
    "valueLength": 100000,
    "rules": 30
  },
  "pages": [
    {
      "file": "S1-saisies-separees.html",
      "inputMode": "html_source",
      "referenceUrl": "https://atelier.example/journal/assistance",
      "provenance": "Fixture fictive générée : architecture A",
      "inputSha256": "b844db46e7bbe6b939a11507b0999fbf346c8e666e8b4afaf4426b6d2e9ab71b",
      "profile": {
        "id": "journal-demo",
        "version": "1.0.0",
        "sha256": "646c5fd0f01de2bb328d5841971d3fe9db2b46b70f34271cf97b480b94a1a77d"
      },
      "findings": [
        {
          "rule_id": "published",
          "label": "Date de publication",
          "expected": true,
          "status": "concordant",
          "reason": "Texte, attribut présent et JSON-LD concordent à leur précision commune.",
          "selector": "article[data-template=\"journal-v1\"] → .published",
          "matchCount": 1,
          "htmlExcerpt": [
            "<time class=\"published\" datetime=\"2026-09-01\">2026-09-01</time>"
          ],
          "htmlRaw": {
            "text": "2026-09-01",
            "datetime": "2026-09-01",
            "selectedAttribute": null
          },
          "jsonRaw": "2026-09-01",
          "htmlNormalized": [
            {
              "origin": "text",
              "value": {
                "raw": "2026-09-01",
                "normalized": "2026-09-01",
                "precision": "day",
                "timezone": null
              }
            },
            {
              "origin": "datetime",
              "value": {
                "raw": "2026-09-01",
                "normalized": "2026-09-01",
                "precision": "day",
                "timezone": null
              }
            }
          ],
          "jsonNormalized": {
            "raw": "2026-09-01",
            "normalized": "2026-09-01",
            "precision": "day",
            "timezone": null
          },
          "provenance": [
            {
              "script": 1,
              "pointer": "/@graph/0/datePublished",
              "nodeId": "https://atelier.example/journal/assistance#article",
              "value": "2026-09-01"
            }
          ],
          "comparison": "{\"dateFormat\":\"fr\",\"text\":\"space-presentation\",\"urls\":\"conservative\"}",
          "limit": "Concordance de valeurs dans le fichier fourni ; visibilité et exactitude éditoriale non établies. Comparaison au jour ; heure non contrôlée.",
          "nextCheck": "Vérifier le champ source, le gabarit et la version du cache ; conserver une preuve éditoriale indépendante."
        },
        {
          "rule_id": "published.reference",
          "label": "Date de publication / date de référence",
          "expected": true,
          "status": "concordant",
          "reason": "Date au plus égale à la référence explicite 2026-10-15.",
          "selector": "article[data-template=\"journal-v1\"] → .published",
          "matchCount": 1,
          "htmlExcerpt": [
            "<time class=\"published\" datetime=\"2026-09-01\">2026-09-01</time>"
          ],
          "htmlRaw": "2026-10-15",
          "jsonRaw": "2026-09-01",
          "htmlNormalized": {
            "raw": "2026-10-15",
            "normalized": "2026-10-15",
            "precision": "day",
            "timezone": null
          },
          "jsonNormalized": {
            "raw": "2026-09-01",
            "normalized": "2026-09-01",
            "precision": "day",
            "timezone": null
          },
          "provenance": [
            {
              "script": 1,
              "pointer": "/@graph/0/datePublished",
              "nodeId": "https://atelier.example/journal/assistance#article",
              "value": "2026-09-01"
            }
          ],
          "comparison": "{\"dateFormat\":\"fr\",\"text\":\"space-presentation\",\"urls\":\"conservative\"}",
          "limit": "Concordance de valeurs dans le fichier fourni ; visibilité et exactitude éditoriale non établies.",
          "nextCheck": "Vérifier le champ source, le gabarit et la version du cache ; conserver une preuve éditoriale indépendante."
        },
        {
          "rule_id": "modified",
          "label": "Date de révision",
          "expected": true,
          "status": "ecart",
          "reason": "Date textuelle, attribut ou JSON-LD divergent.",
          "selector": "article[data-template=\"journal-v1\"] → .modified",
          "matchCount": 1,
          "htmlExcerpt": [
            "<time class=\"modified\" datetime=\"2026-10-02\">2026-10-02</time>"
          ],
          "htmlRaw": {
            "text": "2026-10-02",
            "datetime": "2026-10-02",
            "selectedAttribute": null
          },
          "jsonRaw": "2026-09-18",
          "htmlNormalized": [
            {
              "origin": "text",
              "value": {
                "raw": "2026-10-02",
                "normalized": "2026-10-02",
                "precision": "day",
                "timezone": null
              }
            },
            {
              "origin": "datetime",
              "value": {
                "raw": "2026-10-02",
                "normalized": "2026-10-02",
                "precision": "day",
                "timezone": null
              }
            }
          ],
          "jsonNormalized": {
            "raw": "2026-09-18",
            "normalized": "2026-09-18",
            "precision": "day",
            "timezone": null
          },
          "provenance": [
            {
              "script": 1,
              "pointer": "/@graph/0/dateModified",
              "nodeId": "https://atelier.example/journal/assistance#article",
              "value": "2026-09-18"
            }
          ],
          "comparison": "{\"dateFormat\":\"fr\",\"text\":\"space-presentation\",\"urls\":\"conservative\"}",
          "limit": "Concordance de valeurs dans le fichier fourni ; visibilité et exactitude éditoriale non établies. Comparaison au jour ; heure non contrôlée.",
          "nextCheck": "Vérifier le champ source, le gabarit et la version du cache ; conserver une preuve éditoriale indépendante."
        },
        {
          "rule_id": "modified.chronology",
          "label": "Ordre publication / modification",
          "expected": true,
          "status": "concordant",
          "reason": "Ordre des deux dates balisées cohérent ; historique réel non vérifié.",
          "selector": "article[data-template=\"journal-v1\"] → .modified",
          "matchCount": 1,
          "htmlExcerpt": [
            "<time class=\"modified\" datetime=\"2026-10-02\">2026-10-02</time>"
          ],
          "htmlRaw": {
            "text": "2026-10-02",
            "datetime": "2026-10-02",
            "selectedAttribute": null
          },
          "jsonRaw": {
            "datePublished": "2026-09-01",
            "dateModified": "2026-09-18"
          },
          "htmlNormalized": null,
          "jsonNormalized": {
            "datePublished": {
              "raw": "2026-09-01",
              "normalized": "2026-09-01",
              "precision": "day",
              "timezone": null
            },
            "dateModified": {
              "raw": "2026-09-18",
              "normalized": "2026-09-18",
              "precision": "day",
              "timezone": null
            }
          },
          "provenance": [
            {
              "script": 1,
              "pointer": "/@graph/0/dateModified",
              "nodeId": "https://atelier.example/journal/assistance#article",
              "value": "2026-09-18"
            },
            {
              "script": 1,
              "pointer": "/@graph/0/datePublished",
              "nodeId": "https://atelier.example/journal/assistance#article",
              "value": "2026-09-01"
            }
          ],
          "comparison": "{\"dateFormat\":\"fr\",\"text\":\"space-presentation\",\"urls\":\"conservative\"}",
          "limit": "Concordance de valeurs dans le fichier fourni ; visibilité et exactitude éditoriale non établies.",
          "nextCheck": "Vérifier le champ source, le gabarit et la version du cache ; conserver une preuve éditoriale indépendante."
        },
        {
          "rule_id": "modified.reference",
          "label": "Date de révision / date de référence",
          "expected": true,
          "status": "concordant",
          "reason": "Date au plus égale à la référence explicite 2026-10-15.",
          "selector": "article[data-template=\"journal-v1\"] → .modified",
          "matchCount": 1,
          "htmlExcerpt": [
            "<time class=\"modified\" datetime=\"2026-10-02\">2026-10-02</time>"
          ],
          "htmlRaw": "2026-10-15",
          "jsonRaw": "2026-09-18",
          "htmlNormalized": {
            "raw": "2026-10-15",
            "normalized": "2026-10-15",
            "precision": "day",
            "timezone": null
          },
          "jsonNormalized": {
            "raw": "2026-09-18",
            "normalized": "2026-09-18",
            "precision": "day",
            "timezone": null
          },
          "provenance": [
            {
              "script": 1,
              "pointer": "/@graph/0/dateModified",
              "nodeId": "https://atelier.example/journal/assistance#article",
              "value": "2026-09-18"
            }
          ],
          "comparison": "{\"dateFormat\":\"fr\",\"text\":\"space-presentation\",\"urls\":\"conservative\"}",
          "limit": "Concordance de valeurs dans le fichier fourni ; visibilité et exactitude éditoriale non établies.",
          "nextCheck": "Vérifier le champ source, le gabarit et la version du cache ; conserver une preuve éditoriale indépendante."
        },
        {
          "rule_id": "authors.references",
          "label": "Références des auteurs",
          "expected": true,
          "status": "concordant",
          "reason": "Toutes les références utilisées sont résolues dans ce fichier.",
          "selector": "article[data-template=\"journal-v1\"] → .author",
          "matchCount": 1,
          "htmlExcerpt": [
            "<p class=\"author\"><a href=\"https://atelier.example/equipe/elise-marceau\"><span class=\"author-name\">Élise Marceau</span></a></p>"
          ],
          "htmlRaw": [
            {
              "text": " Élise Marceau ",
              "attribute": null
            }
          ],
          "jsonRaw": [
            {
              "@id": "https://atelier.example/journal/assistance#author-0"
            }
          ],
          "htmlNormalized": null,
          "jsonNormalized": [
            "https://atelier.example/journal/assistance#author-0"
          ],
          "provenance": [
            {
              "script": 1,
              "pointer": "/@graph/0/author",
              "nodeId": "https://atelier.example/journal/assistance#article",
              "value": [
                {
                  "@id": "https://atelier.example/journal/assistance#author-0"
                }
              ]
            },
            {
              "script": 1,
              "pointer": "/@graph/1/name",
              "nodeId": "https://atelier.example/journal/assistance#author-0",
              "value": "Élise Marceau"
            }
          ],
          "comparison": "Résolution locale uniquement",
          "limit": "Concordance de valeurs dans le fichier fourni ; visibilité et exactitude éditoriale non établies.",
          "nextCheck": "Vérifier le champ source, le gabarit et la version du cache ; conserver une preuve éditoriale indépendante."
        },
        {
          "rule_id": "authors.names",
          "label": "Noms des auteurs",
          "expected": true,
          "status": "concordant",
          "reason": "Valeurs concordantes selon la règle déclarée.",
          "selector": "article[data-template=\"journal-v1\"] → .author",
          "matchCount": 1,
          "htmlExcerpt": [
            "<p class=\"author\"><a href=\"https://atelier.example/equipe/elise-marceau\"><span class=\"author-name\">Élise Marceau</span></a></p>"
          ],
          "htmlRaw": [
            "Élise Marceau"
          ],
          "jsonRaw": [
            {
              "id": "https://atelier.example/journal/assistance#author-0",
              "name": "Élise Marceau"
            }
          ],
          "htmlNormalized": [
            "Élise Marceau"
          ],
          "jsonNormalized": [
            "Élise Marceau"
          ],
          "provenance": [
            {
              "script": 1,
              "pointer": "/@graph/0/author",
              "nodeId": "https://atelier.example/journal/assistance#article",
              "value": [
                {
                  "@id": "https://atelier.example/journal/assistance#author-0"
                }
              ]
            },
            {
              "script": 1,
              "pointer": "/@graph/1/name",
              "nodeId": "https://atelier.example/journal/assistance#author-0",
              "value": "Élise Marceau"
            }
          ],
          "comparison": "{\"order\":\"set\",\"text\":\"space-presentation\",\"urls\":\"conservative\"}",
          "limit": "Concordance de valeurs dans le fichier fourni ; visibilité et exactitude éditoriale non établies.",
          "nextCheck": "Vérifier le champ source, le gabarit et la version du cache ; conserver une preuve éditoriale indépendante."
        },
        {
          "rule_id": "authors.urls",
          "label": "Destinations des auteurs",
          "expected": true,
          "status": "concordant",
          "reason": "Valeurs concordantes selon la règle déclarée.",
          "selector": "article[data-template=\"journal-v1\"] → .author",
          "matchCount": 1,
          "htmlExcerpt": [
            "<p class=\"author\"><a href=\"https://atelier.example/equipe/elise-marceau\"><span class=\"author-name\">Élise Marceau</span></a></p>"
          ],
          "htmlRaw": [
            [
              "https://atelier.example/equipe/elise-marceau"
            ]
          ],
          "jsonRaw": [
            [
              "https://atelier.example/equipe/elise-marceau"
            ]
          ],
          "htmlNormalized": [
            {
              "name": "Élise Marceau",
              "url": "https://atelier.example/equipe/elise-marceau"
            }
          ],
          "jsonNormalized": [
            {
              "name": "Élise Marceau",
              "url": "https://atelier.example/equipe/elise-marceau"
            }
          ],
          "provenance": [
            {
              "script": 1,
              "pointer": "/@graph/0/author",
              "nodeId": "https://atelier.example/journal/assistance#article",
              "value": [
                {
                  "@id": "https://atelier.example/journal/assistance#author-0"
                }
              ]
            },
            {
              "script": 1,
              "pointer": "/@graph/1/name",
              "nodeId": "https://atelier.example/journal/assistance#author-0",
              "value": "Élise Marceau"
            },
            {
              "script": 1,
              "pointer": "/@graph/1/url",
              "nodeId": "https://atelier.example/journal/assistance#author-0",
              "value": "https://atelier.example/equipe/elise-marceau"
            }
          ],
          "comparison": "{\"order\":\"set\",\"text\":\"space-presentation\",\"urls\":\"conservative\"}",
          "limit": "Concordance de valeurs dans le fichier fourni ; visibilité et exactitude éditoriale non établies.",
          "nextCheck": "Vérifier le champ source, le gabarit et la version du cache ; conserver une preuve éditoriale indépendante."
        },
        {
          "rule_id": "breadcrumb",
          "label": "Fil d’Ariane",
          "expected": true,
          "status": "concordant",
          "reason": "Valeurs concordantes selon la règle déclarée.",
          "selector": "article[data-template=\"journal-v1\"] → .breadcrumb li",
          "matchCount": 3,
          "htmlExcerpt": [
            "<li><a href=\"https://atelier.example/journal/\"><span class=\"crumb-label\">Journal</span></a></li>",
            "<li><a href=\"https://atelier.example/accompagnement/\"><span class=\"crumb-label\">Accompagnement</span></a></li>",
            "<li><span class=\"crumb-label\">Un support qui tient parole</span></li>"
          ],
          "htmlRaw": [
            {
              "name": "Journal",
              "href": [
                "https://atelier.example/journal/"
              ]
            },
            {
              "name": "Accompagnement",
              "href": [
                "https://atelier.example/accompagnement/"
              ]
            },
            {
              "name": "Un support qui tient parole",
              "href": []
            }
          ],
          "jsonRaw": [
            {
              "@type": "ListItem",
              "position": 1,
              "name": "Journal",
              "item": "https://atelier.example/journal/"
            },
            {
              "@type": "ListItem",
              "position": 2,
              "name": "Accompagnement",
              "item": "https://atelier.example/accompagnement/"
            },
            {
              "@type": "ListItem",
              "position": 3,
              "name": "Un support qui tient parole"
            }
          ],
          "htmlNormalized": [
            {
              "name": "Journal",
              "url": "https://atelier.example/journal/"
            },
            {
              "name": "Accompagnement",
              "url": "https://atelier.example/accompagnement/"
            },
            {
              "name": "Un support qui tient parole",
              "url": null
            }
          ],
          "jsonNormalized": [
            {
              "name": "Journal",
              "url": "https://atelier.example/journal/"
            },
            {
              "name": "Accompagnement",
              "url": "https://atelier.example/accompagnement/"
            },
            {
              "name": "Un support qui tient parole",
              "url": null
            }
          ],
          "provenance": [
            {
              "script": 1,
              "pointer": "/@graph/2/itemListElement",
              "nodeId": "https://atelier.example/journal/assistance#breadcrumb",
              "value": [
                {
                  "@type": "ListItem",
                  "position": 1,
                  "name": "Journal",
                  "item": "https://atelier.example/journal/"
                },
                {
                  "@type": "ListItem",
                  "position": 2,
                  "name": "Accompagnement",
                  "item": "https://atelier.example/accompagnement/"
                },
                {
                  "@type": "ListItem",
                  "position": 3,
                  "name": "Un support qui tient parole"
                }
              ]
            },
            {
              "script": 1,
              "pointer": "/@graph/2/itemListElement/0/position",
              "value": 1
            },
            {
              "script": 1,
              "pointer": "/@graph/2/itemListElement/0/name",
              "value": "Journal"
            },
            {
              "script": 1,
              "pointer": "/@graph/2/itemListElement/0/item",
              "value": "https://atelier.example/journal/"
            },
            {
              "script": 1,
              "pointer": "/@graph/2/itemListElement/1/position",
              "value": 2
            },
            {
              "script": 1,
              "pointer": "/@graph/2/itemListElement/1/name",
              "value": "Accompagnement"
            },
            {
              "script": 1,
              "pointer": "/@graph/2/itemListElement/1/item",
              "value": "https://atelier.example/accompagnement/"
            },
            {
              "script": 1,
              "pointer": "/@graph/2/itemListElement/2/position",
              "value": 3
            },
            {
              "script": 1,
              "pointer": "/@graph/2/itemListElement/2/name",
              "value": "Un support qui tient parole"
            }
          ],
          "comparison": "{\"lastUnlinked\":\"page_url\",\"text\":\"space-presentation\",\"urls\":\"conservative\"}",
          "limit": "Concordance de valeurs dans le fichier fourni ; visibilité et exactitude éditoriale non établies.",
          "nextCheck": "Vérifier le champ source, le gabarit et la version du cache ; conserver une preuve éditoriale indépendante."
        },
        {
          "rule_id": "faq",
          "label": "Questions et réponses",
          "expected": true,
          "status": "concordant",
          "reason": "Valeurs concordantes selon la règle déclarée.",
          "selector": "article[data-template=\"journal-v1\"] → .faq details",
          "matchCount": 2,
          "htmlExcerpt": [
            "<details data-key=\"weekend\"><summary>Le support est-il ouvert le samedi ?</summary><p class=\"answer\">Le support est disponible le samedi.</p></details>",
            "<details data-key=\"delai\"><summary>Quel est le délai de réponse ?</summary><p class=\"answer\">Une réponse est apportée sous 2 jours ouvrés.</p></details>"
          ],
          "htmlRaw": [
            {
              "key": "delai",
              "question": "Quel est le délai de réponse ?",
              "answer": {
                "text": "Une réponse est apportée sous 2 jours ouvrés.",
                "links": []
              }
            },
            {
              "key": "weekend",
              "question": "Le support est-il ouvert le samedi ?",
              "answer": {
                "text": "Le support est disponible le samedi.",
                "links": []
              }
            }
          ],
          "jsonRaw": [
            {
              "@type": "Question",
              "identifier": "weekend",
              "name": "Le support est-il ouvert le samedi ?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Le support est disponible le samedi."
              }
            },
            {
              "@type": "Question",
              "identifier": "delai",
              "name": "Quel est le délai de réponse ?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Une réponse est apportée sous 2 jours ouvrés."
              }
            }
          ],
          "htmlNormalized": [
            {
              "key": "delai",
              "question": "Quel est le délai de réponse ?",
              "answer": {
                "text": "Une réponse est apportée sous 2 jours ouvrés.",
                "links": []
              }
            },
            {
              "key": "weekend",
              "question": "Le support est-il ouvert le samedi ?",
              "answer": {
                "text": "Le support est disponible le samedi.",
                "links": []
              }
            }
          ],
          "jsonNormalized": [
            {
              "key": "delai",
              "question": "Quel est le délai de réponse ?",
              "answer": {
                "text": "Une réponse est apportée sous 2 jours ouvrés.",
                "links": []
              }
            },
            {
              "key": "weekend",
              "question": "Le support est-il ouvert le samedi ?",
              "answer": {
                "text": "Le support est disponible le samedi.",
                "links": []
              }
            }
          ],
          "provenance": [
            {
              "script": 1,
              "pointer": "/@graph/3/mainEntity",
              "nodeId": "https://atelier.example/journal/assistance#faq",
              "value": [
                {
                  "@type": "Question",
                  "identifier": "weekend",
                  "name": "Le support est-il ouvert le samedi ?",
                  "acceptedAnswer": {
                    "@type": "Answer",
                    "text": "Le support est disponible le samedi."
                  }
                },
                {
                  "@type": "Question",
                  "identifier": "delai",
                  "name": "Quel est le délai de réponse ?",
                  "acceptedAnswer": {
                    "@type": "Answer",
                    "text": "Une réponse est apportée sous 2 jours ouvrés."
                  }
                }
              ]
            },
            {
              "script": 1,
              "pointer": "/@graph/3/mainEntity/0/name",
              "value": "Le support est-il ouvert le samedi ?"
            },
            {
              "script": 1,
              "pointer": "/@graph/3/mainEntity/0/identifier",
              "value": "weekend"
            },
            {
              "script": 1,
              "pointer": "/@graph/3/mainEntity/0/acceptedAnswer",
              "value": {
                "@type": "Answer",
                "text": "Le support est disponible le samedi."
              }
            },
            {
              "script": 1,
              "pointer": "/@graph/3/mainEntity/0/acceptedAnswer/text",
              "value": "Le support est disponible le samedi."
            },
            {
              "script": 1,
              "pointer": "/@graph/3/mainEntity/1/name",
              "value": "Quel est le délai de réponse ?"
            },
            {
              "script": 1,
              "pointer": "/@graph/3/mainEntity/1/identifier",
              "value": "delai"
            },
            {
              "script": 1,
              "pointer": "/@graph/3/mainEntity/1/acceptedAnswer",
              "value": {
                "@type": "Answer",
                "text": "Une réponse est apportée sous 2 jours ouvrés."
              }
            },
            {
              "script": 1,
              "pointer": "/@graph/3/mainEntity/1/acceptedAnswer/text",
              "value": "Une réponse est apportée sous 2 jours ouvrés."
            }
          ],
          "comparison": "{\"faqKey\":\"identifier\",\"links\":true,\"text\":\"space-presentation\",\"urls\":\"conservative\"}",
          "limit": "Concordance de valeurs dans le fichier fourni ; visibilité et exactitude éditoriale non établies.",
          "nextCheck": "Vérifier le champ source, le gabarit et la version du cache ; conserver une preuve éditoriale indépendante."
        }
      ],
      "concordant": false,
      "partial": false,
      "scripts": 1
    },
    {
      "file": "S1-source-commune.html",
      "inputMode": "html_source",
      "referenceUrl": "https://atelier.example/journal/assistance",
      "provenance": "Fixture fictive générée : architecture B",
      "inputSha256": "ee3c2fc09a4ac2f46503acb69d2790d37c9b38d1f22d32174d5d3d3c6317ae9d",
      "profile": {
        "id": "journal-demo",
        "version": "1.0.0",
        "sha256": "646c5fd0f01de2bb328d5841971d3fe9db2b46b70f34271cf97b480b94a1a77d"
      },
      "findings": [
        {
          "rule_id": "published",
          "label": "Date de publication",
          "expected": true,
          "status": "concordant",
          "reason": "Texte, attribut présent et JSON-LD concordent à leur précision commune.",
          "selector": "article[data-template=\"journal-v1\"] → .published",
          "matchCount": 1,
          "htmlExcerpt": [
            "<time class=\"published\" datetime=\"2026-09-01\">2026-09-01</time>"
          ],
          "htmlRaw": {
            "text": "2026-09-01",
            "datetime": "2026-09-01",
            "selectedAttribute": null
          },
          "jsonRaw": "2026-09-01",
          "htmlNormalized": [
            {
              "origin": "text",
              "value": {
                "raw": "2026-09-01",
                "normalized": "2026-09-01",
                "precision": "day",
                "timezone": null
              }
            },
            {
              "origin": "datetime",
              "value": {
                "raw": "2026-09-01",
                "normalized": "2026-09-01",
                "precision": "day",
                "timezone": null
              }
            }
          ],
          "jsonNormalized": {
            "raw": "2026-09-01",
            "normalized": "2026-09-01",
            "precision": "day",
            "timezone": null
          },
          "provenance": [
            {
              "script": 1,
              "pointer": "/@graph/0/datePublished",
              "nodeId": "https://atelier.example/journal/assistance#article",
              "value": "2026-09-01"
            }
          ],
          "comparison": "{\"dateFormat\":\"fr\",\"text\":\"space-presentation\",\"urls\":\"conservative\"}",
          "limit": "Concordance de valeurs dans le fichier fourni ; visibilité et exactitude éditoriale non établies. Comparaison au jour ; heure non contrôlée.",
          "nextCheck": "Vérifier le champ source, le gabarit et la version du cache ; conserver une preuve éditoriale indépendante."
        },
        {
          "rule_id": "published.reference",
          "label": "Date de publication / date de référence",
          "expected": true,
          "status": "concordant",
          "reason": "Date au plus égale à la référence explicite 2026-10-15.",
          "selector": "article[data-template=\"journal-v1\"] → .published",
          "matchCount": 1,
          "htmlExcerpt": [
            "<time class=\"published\" datetime=\"2026-09-01\">2026-09-01</time>"
          ],
          "htmlRaw": "2026-10-15",
          "jsonRaw": "2026-09-01",
          "htmlNormalized": {
            "raw": "2026-10-15",
            "normalized": "2026-10-15",
            "precision": "day",
            "timezone": null
          },
          "jsonNormalized": {
            "raw": "2026-09-01",
            "normalized": "2026-09-01",
            "precision": "day",
            "timezone": null
          },
          "provenance": [
            {
              "script": 1,
              "pointer": "/@graph/0/datePublished",
              "nodeId": "https://atelier.example/journal/assistance#article",
              "value": "2026-09-01"
            }
          ],
          "comparison": "{\"dateFormat\":\"fr\",\"text\":\"space-presentation\",\"urls\":\"conservative\"}",
          "limit": "Concordance de valeurs dans le fichier fourni ; visibilité et exactitude éditoriale non établies.",
          "nextCheck": "Vérifier le champ source, le gabarit et la version du cache ; conserver une preuve éditoriale indépendante."
        },
        {
          "rule_id": "modified",
          "label": "Date de révision",
          "expected": true,
          "status": "concordant",
          "reason": "Texte, attribut présent et JSON-LD concordent à leur précision commune.",
          "selector": "article[data-template=\"journal-v1\"] → .modified",
          "matchCount": 1,
          "htmlExcerpt": [
            "<time class=\"modified\" datetime=\"2026-10-02\">2026-10-02</time>"
          ],
          "htmlRaw": {
            "text": "2026-10-02",
            "datetime": "2026-10-02",
            "selectedAttribute": null
          },
          "jsonRaw": "2026-10-02",
          "htmlNormalized": [
            {
              "origin": "text",
              "value": {
                "raw": "2026-10-02",
                "normalized": "2026-10-02",
                "precision": "day",
                "timezone": null
              }
            },
            {
              "origin": "datetime",
              "value": {
                "raw": "2026-10-02",
                "normalized": "2026-10-02",
                "precision": "day",
                "timezone": null
              }
            }
          ],
          "jsonNormalized": {
            "raw": "2026-10-02",
            "normalized": "2026-10-02",
            "precision": "day",
            "timezone": null
          },
          "provenance": [
            {
              "script": 1,
              "pointer": "/@graph/0/dateModified",
              "nodeId": "https://atelier.example/journal/assistance#article",
              "value": "2026-10-02"
            }
          ],
          "comparison": "{\"dateFormat\":\"fr\",\"text\":\"space-presentation\",\"urls\":\"conservative\"}",
          "limit": "Concordance de valeurs dans le fichier fourni ; visibilité et exactitude éditoriale non établies. Comparaison au jour ; heure non contrôlée.",
          "nextCheck": "Vérifier le champ source, le gabarit et la version du cache ; conserver une preuve éditoriale indépendante."
        },
        {
          "rule_id": "modified.chronology",
          "label": "Ordre publication / modification",
          "expected": true,
          "status": "concordant",
          "reason": "Ordre des deux dates balisées cohérent ; historique réel non vérifié.",
          "selector": "article[data-template=\"journal-v1\"] → .modified",
          "matchCount": 1,
          "htmlExcerpt": [
            "<time class=\"modified\" datetime=\"2026-10-02\">2026-10-02</time>"
          ],
          "htmlRaw": {
            "text": "2026-10-02",
            "datetime": "2026-10-02",
            "selectedAttribute": null
          },
          "jsonRaw": {
            "datePublished": "2026-09-01",
            "dateModified": "2026-10-02"
          },
          "htmlNormalized": null,
          "jsonNormalized": {
            "datePublished": {
              "raw": "2026-09-01",
              "normalized": "2026-09-01",
              "precision": "day",
              "timezone": null
            },
            "dateModified": {
              "raw": "2026-10-02",
              "normalized": "2026-10-02",
              "precision": "day",
              "timezone": null
            }
          },
          "provenance": [
            {
              "script": 1,
              "pointer": "/@graph/0/dateModified",
              "nodeId": "https://atelier.example/journal/assistance#article",
              "value": "2026-10-02"
            },
            {
              "script": 1,
              "pointer": "/@graph/0/datePublished",
              "nodeId": "https://atelier.example/journal/assistance#article",
              "value": "2026-09-01"
            }
          ],
          "comparison": "{\"dateFormat\":\"fr\",\"text\":\"space-presentation\",\"urls\":\"conservative\"}",
          "limit": "Concordance de valeurs dans le fichier fourni ; visibilité et exactitude éditoriale non établies.",
          "nextCheck": "Vérifier le champ source, le gabarit et la version du cache ; conserver une preuve éditoriale indépendante."
        },
        {
          "rule_id": "modified.reference",
          "label": "Date de révision / date de référence",
          "expected": true,
          "status": "concordant",
          "reason": "Date au plus égale à la référence explicite 2026-10-15.",
          "selector": "article[data-template=\"journal-v1\"] → .modified",
          "matchCount": 1,
          "htmlExcerpt": [
            "<time class=\"modified\" datetime=\"2026-10-02\">2026-10-02</time>"
          ],
          "htmlRaw": "2026-10-15",
          "jsonRaw": "2026-10-02",
          "htmlNormalized": {
            "raw": "2026-10-15",
            "normalized": "2026-10-15",
            "precision": "day",
            "timezone": null
          },
          "jsonNormalized": {
            "raw": "2026-10-02",
            "normalized": "2026-10-02",
            "precision": "day",
            "timezone": null
          },
          "provenance": [
            {
              "script": 1,
              "pointer": "/@graph/0/dateModified",
              "nodeId": "https://atelier.example/journal/assistance#article",
              "value": "2026-10-02"
            }
          ],
          "comparison": "{\"dateFormat\":\"fr\",\"text\":\"space-presentation\",\"urls\":\"conservative\"}",
          "limit": "Concordance de valeurs dans le fichier fourni ; visibilité et exactitude éditoriale non établies.",
          "nextCheck": "Vérifier le champ source, le gabarit et la version du cache ; conserver une preuve éditoriale indépendante."
        },
        {
          "rule_id": "authors.references",
          "label": "Références des auteurs",
          "expected": true,
          "status": "concordant",
          "reason": "Toutes les références utilisées sont résolues dans ce fichier.",
          "selector": "article[data-template=\"journal-v1\"] → .author",
          "matchCount": 1,
          "htmlExcerpt": [
            "<p class=\"author\"><a href=\"https://atelier.example/equipe/elise-marceau\"><span class=\"author-name\">Élise Marceau</span></a></p>"
          ],
          "htmlRaw": [
            {
              "text": " Élise Marceau ",
              "attribute": null
            }
          ],
          "jsonRaw": [
            {
              "@id": "https://atelier.example/journal/assistance#author-0"
            }
          ],
          "htmlNormalized": null,
          "jsonNormalized": [
            "https://atelier.example/journal/assistance#author-0"
          ],
          "provenance": [
            {
              "script": 1,
              "pointer": "/@graph/0/author",
              "nodeId": "https://atelier.example/journal/assistance#article",
              "value": [
                {
                  "@id": "https://atelier.example/journal/assistance#author-0"
                }
              ]
            },
            {
              "script": 1,
              "pointer": "/@graph/1/name",
              "nodeId": "https://atelier.example/journal/assistance#author-0",
              "value": "Élise Marceau"
            }
          ],
          "comparison": "Résolution locale uniquement",
          "limit": "Concordance de valeurs dans le fichier fourni ; visibilité et exactitude éditoriale non établies.",
          "nextCheck": "Vérifier le champ source, le gabarit et la version du cache ; conserver une preuve éditoriale indépendante."
        },
        {
          "rule_id": "authors.names",
          "label": "Noms des auteurs",
          "expected": true,
          "status": "concordant",
          "reason": "Valeurs concordantes selon la règle déclarée.",
          "selector": "article[data-template=\"journal-v1\"] → .author",
          "matchCount": 1,
          "htmlExcerpt": [
            "<p class=\"author\"><a href=\"https://atelier.example/equipe/elise-marceau\"><span class=\"author-name\">Élise Marceau</span></a></p>"
          ],
          "htmlRaw": [
            "Élise Marceau"
          ],
          "jsonRaw": [
            {
              "id": "https://atelier.example/journal/assistance#author-0",
              "name": "Élise Marceau"
            }
          ],
          "htmlNormalized": [
            "Élise Marceau"
          ],
          "jsonNormalized": [
            "Élise Marceau"
          ],
          "provenance": [
            {
              "script": 1,
              "pointer": "/@graph/0/author",
              "nodeId": "https://atelier.example/journal/assistance#article",
              "value": [
                {
                  "@id": "https://atelier.example/journal/assistance#author-0"
                }
              ]
            },
            {
              "script": 1,
              "pointer": "/@graph/1/name",
              "nodeId": "https://atelier.example/journal/assistance#author-0",
              "value": "Élise Marceau"
            }
          ],
          "comparison": "{\"order\":\"set\",\"text\":\"space-presentation\",\"urls\":\"conservative\"}",
          "limit": "Concordance de valeurs dans le fichier fourni ; visibilité et exactitude éditoriale non établies.",
          "nextCheck": "Vérifier le champ source, le gabarit et la version du cache ; conserver une preuve éditoriale indépendante."
        },
        {
          "rule_id": "authors.urls",
          "label": "Destinations des auteurs",
          "expected": true,
          "status": "concordant",
          "reason": "Valeurs concordantes selon la règle déclarée.",
          "selector": "article[data-template=\"journal-v1\"] → .author",
          "matchCount": 1,
          "htmlExcerpt": [
            "<p class=\"author\"><a href=\"https://atelier.example/equipe/elise-marceau\"><span class=\"author-name\">Élise Marceau</span></a></p>"
          ],
          "htmlRaw": [
            [
              "https://atelier.example/equipe/elise-marceau"
            ]
          ],
          "jsonRaw": [
            [
              "https://atelier.example/equipe/elise-marceau"
            ]
          ],
          "htmlNormalized": [
            {
              "name": "Élise Marceau",
              "url": "https://atelier.example/equipe/elise-marceau"
            }
          ],
          "jsonNormalized": [
            {
              "name": "Élise Marceau",
              "url": "https://atelier.example/equipe/elise-marceau"
            }
          ],
          "provenance": [
            {
              "script": 1,
              "pointer": "/@graph/0/author",
              "nodeId": "https://atelier.example/journal/assistance#article",
              "value": [
                {
                  "@id": "https://atelier.example/journal/assistance#author-0"
                }
              ]
            },
            {
              "script": 1,
              "pointer": "/@graph/1/name",
              "nodeId": "https://atelier.example/journal/assistance#author-0",
              "value": "Élise Marceau"
            },
            {
              "script": 1,
              "pointer": "/@graph/1/url",
              "nodeId": "https://atelier.example/journal/assistance#author-0",
              "value": "https://atelier.example/equipe/elise-marceau"
            }
          ],
          "comparison": "{\"order\":\"set\",\"text\":\"space-presentation\",\"urls\":\"conservative\"}",
          "limit": "Concordance de valeurs dans le fichier fourni ; visibilité et exactitude éditoriale non établies.",
          "nextCheck": "Vérifier le champ source, le gabarit et la version du cache ; conserver une preuve éditoriale indépendante."
        },
        {
          "rule_id": "breadcrumb",
          "label": "Fil d’Ariane",
          "expected": true,
          "status": "concordant",
          "reason": "Valeurs concordantes selon la règle déclarée.",
          "selector": "article[data-template=\"journal-v1\"] → .breadcrumb li",
          "matchCount": 3,
          "htmlExcerpt": [
            "<li><a href=\"https://atelier.example/journal/\"><span class=\"crumb-label\">Journal</span></a></li>",
            "<li><a href=\"https://atelier.example/accompagnement/\"><span class=\"crumb-label\">Accompagnement</span></a></li>",
            "<li><span class=\"crumb-label\">Un support qui tient parole</span></li>"
          ],
          "htmlRaw": [
            {
              "name": "Journal",
              "href": [
                "https://atelier.example/journal/"
              ]
            },
            {
              "name": "Accompagnement",
              "href": [
                "https://atelier.example/accompagnement/"
              ]
            },
            {
              "name": "Un support qui tient parole",
              "href": []
            }
          ],
          "jsonRaw": [
            {
              "@type": "ListItem",
              "position": 1,
              "name": "Journal",
              "item": "https://atelier.example/journal/"
            },
            {
              "@type": "ListItem",
              "position": 2,
              "name": "Accompagnement",
              "item": "https://atelier.example/accompagnement/"
            },
            {
              "@type": "ListItem",
              "position": 3,
              "name": "Un support qui tient parole"
            }
          ],
          "htmlNormalized": [
            {
              "name": "Journal",
              "url": "https://atelier.example/journal/"
            },
            {
              "name": "Accompagnement",
              "url": "https://atelier.example/accompagnement/"
            },
            {
              "name": "Un support qui tient parole",
              "url": null
            }
          ],
          "jsonNormalized": [
            {
              "name": "Journal",
              "url": "https://atelier.example/journal/"
            },
            {
              "name": "Accompagnement",
              "url": "https://atelier.example/accompagnement/"
            },
            {
              "name": "Un support qui tient parole",
              "url": null
            }
          ],
          "provenance": [
            {
              "script": 1,
              "pointer": "/@graph/2/itemListElement",
              "nodeId": "https://atelier.example/journal/assistance#breadcrumb",
              "value": [
                {
                  "@type": "ListItem",
                  "position": 1,
                  "name": "Journal",
                  "item": "https://atelier.example/journal/"
                },
                {
                  "@type": "ListItem",
                  "position": 2,
                  "name": "Accompagnement",
                  "item": "https://atelier.example/accompagnement/"
                },
                {
                  "@type": "ListItem",
                  "position": 3,
                  "name": "Un support qui tient parole"
                }
              ]
            },
            {
              "script": 1,
              "pointer": "/@graph/2/itemListElement/0/position",
              "value": 1
            },
            {
              "script": 1,
              "pointer": "/@graph/2/itemListElement/0/name",
              "value": "Journal"
            },
            {
              "script": 1,
              "pointer": "/@graph/2/itemListElement/0/item",
              "value": "https://atelier.example/journal/"
            },
            {
              "script": 1,
              "pointer": "/@graph/2/itemListElement/1/position",
              "value": 2
            },
            {
              "script": 1,
              "pointer": "/@graph/2/itemListElement/1/name",
              "value": "Accompagnement"
            },
            {
              "script": 1,
              "pointer": "/@graph/2/itemListElement/1/item",
              "value": "https://atelier.example/accompagnement/"
            },
            {
              "script": 1,
              "pointer": "/@graph/2/itemListElement/2/position",
              "value": 3
            },
            {
              "script": 1,
              "pointer": "/@graph/2/itemListElement/2/name",
              "value": "Un support qui tient parole"
            }
          ],
          "comparison": "{\"lastUnlinked\":\"page_url\",\"text\":\"space-presentation\",\"urls\":\"conservative\"}",
          "limit": "Concordance de valeurs dans le fichier fourni ; visibilité et exactitude éditoriale non établies.",
          "nextCheck": "Vérifier le champ source, le gabarit et la version du cache ; conserver une preuve éditoriale indépendante."
        },
        {
          "rule_id": "faq",
          "label": "Questions et réponses",
          "expected": true,
          "status": "concordant",
          "reason": "Valeurs concordantes selon la règle déclarée.",
          "selector": "article[data-template=\"journal-v1\"] → .faq details",
          "matchCount": 2,
          "htmlExcerpt": [
            "<details data-key=\"weekend\"><summary>Le support est-il ouvert le samedi ?</summary><p class=\"answer\">Le support est disponible le samedi.</p></details>",
            "<details data-key=\"delai\"><summary>Quel est le délai de réponse ?</summary><p class=\"answer\">Une réponse est apportée sous 2 jours ouvrés.</p></details>"
          ],
          "htmlRaw": [
            {
              "key": "delai",
              "question": "Quel est le délai de réponse ?",
              "answer": {
                "text": "Une réponse est apportée sous 2 jours ouvrés.",
                "links": []
              }
            },
            {
              "key": "weekend",
              "question": "Le support est-il ouvert le samedi ?",
              "answer": {
                "text": "Le support est disponible le samedi.",
                "links": []
              }
            }
          ],
          "jsonRaw": [
            {
              "@type": "Question",
              "identifier": "weekend",
              "name": "Le support est-il ouvert le samedi ?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Le support est disponible le samedi."
              }
            },
            {
              "@type": "Question",
              "identifier": "delai",
              "name": "Quel est le délai de réponse ?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Une réponse est apportée sous 2 jours ouvrés."
              }
            }
          ],
          "htmlNormalized": [
            {
              "key": "delai",
              "question": "Quel est le délai de réponse ?",
              "answer": {
                "text": "Une réponse est apportée sous 2 jours ouvrés.",
                "links": []
              }
            },
            {
              "key": "weekend",
              "question": "Le support est-il ouvert le samedi ?",
              "answer": {
                "text": "Le support est disponible le samedi.",
                "links": []
              }
            }
          ],
          "jsonNormalized": [
            {
              "key": "delai",
              "question": "Quel est le délai de réponse ?",
              "answer": {
                "text": "Une réponse est apportée sous 2 jours ouvrés.",
                "links": []
              }
            },
            {
              "key": "weekend",
              "question": "Le support est-il ouvert le samedi ?",
              "answer": {
                "text": "Le support est disponible le samedi.",
                "links": []
              }
            }
          ],
          "provenance": [
            {
              "script": 1,
              "pointer": "/@graph/3/mainEntity",
              "nodeId": "https://atelier.example/journal/assistance#faq",
              "value": [
                {
                  "@type": "Question",
                  "identifier": "weekend",
                  "name": "Le support est-il ouvert le samedi ?",
                  "acceptedAnswer": {
                    "@type": "Answer",
                    "text": "Le support est disponible le samedi."
                  }
                },
                {
                  "@type": "Question",
                  "identifier": "delai",
                  "name": "Quel est le délai de réponse ?",
                  "acceptedAnswer": {
                    "@type": "Answer",
                    "text": "Une réponse est apportée sous 2 jours ouvrés."
                  }
                }
              ]
            },
            {
              "script": 1,
              "pointer": "/@graph/3/mainEntity/0/name",
              "value": "Le support est-il ouvert le samedi ?"
            },
            {
              "script": 1,
              "pointer": "/@graph/3/mainEntity/0/identifier",
              "value": "weekend"
            },
            {
              "script": 1,
              "pointer": "/@graph/3/mainEntity/0/acceptedAnswer",
              "value": {
                "@type": "Answer",
                "text": "Le support est disponible le samedi."
              }
            },
            {
              "script": 1,
              "pointer": "/@graph/3/mainEntity/0/acceptedAnswer/text",
              "value": "Le support est disponible le samedi."
            },
            {
              "script": 1,
              "pointer": "/@graph/3/mainEntity/1/name",
              "value": "Quel est le délai de réponse ?"
            },
            {
              "script": 1,
              "pointer": "/@graph/3/mainEntity/1/identifier",
              "value": "delai"
            },
            {
              "script": 1,
              "pointer": "/@graph/3/mainEntity/1/acceptedAnswer",
              "value": {
                "@type": "Answer",
                "text": "Une réponse est apportée sous 2 jours ouvrés."
              }
            },
            {
              "script": 1,
              "pointer": "/@graph/3/mainEntity/1/acceptedAnswer/text",
              "value": "Une réponse est apportée sous 2 jours ouvrés."
            }
          ],
          "comparison": "{\"faqKey\":\"identifier\",\"links\":true,\"text\":\"space-presentation\",\"urls\":\"conservative\"}",
          "limit": "Concordance de valeurs dans le fichier fourni ; visibilité et exactitude éditoriale non établies.",
          "nextCheck": "Vérifier le champ source, le gabarit et la version du cache ; conserver une preuve éditoriale indépendante."
        }
      ],
      "concordant": true,
      "partial": false,
      "scripts": 1
    }
  ],
  "summary": {
    "pages": 2,
    "concordant": 1,
    "differences": 1,
    "incomplete": 0,
    "findings": 20,
    "categoriesOverlap": true
  }
}
