{
  "_comment": "Sorti-Ka — Salles à JSON-LD Event (connecteur générique sallesjsonld). Ajouter une salle = 1 bloc : listes (pages programmation), motif (regex des liens de fiche), ville/salle par défaut. robots.txt vérifié salle par salle AVANT ajout (2026-08-19 pour l'amorce, 2026-08-25 pour la vague 2) — voir docs/connecteurs/sallesjsonld.md. Salles sondées SANS JSON-LD Event exploitable (ne pas ajouter sans re-sonder) : palaismontcalm.ca (re-sondé 2026-08-25), lediamant.ca (re-sondé 2026-08-25), imperialbell.com, mtelus.com, clubsoda.ca, theatrecorona.ca (evenko, déjà couvert), duceppe.com (Event sans startDate), rideauvert.qc.ca (startDate epoch 1970), theatrelalicorne.com, theatreprospero.com, quatsous.com, espacego.com, usine-c.com, maisontheatre.com, centaurtheatre.com, segalcentre.org, phi.ca, bordee.qc.ca, theatreperiscope.qc.ca, lesgrosbecs.qc.ca (liste JS), lerift.ca, tangentedanse.ca, agoradanse.com (Event sans startDate), auxecuries.com, casadelpopolo.com, cabaretliondor.com, theatreparadoxe.com, theatrerialto.ca, musee-mccord-stewart.ca, pauline-julien.com, valspec.com, theatregillesvigneault.com (tribe sans LD ; billetterie Tuxedo /Web/), theatredumarais.com, theatredesjardins.com, co-motion.ca, spec.qc.ca, almaspectacles.com, vieuxbureaudeposte.com, theatrebelcourt.com, kameleart.com, maximum90.ca, sallejmd.com, comitedesspectacles.com, cdspectacles.com, festivalenchanson.com, cotecour.ca. Écartées pour HEURES FAUSSÉES (offset menteur : décalage explicite ≠ heure locale affichée) : petittheatre.org (-05:00 l'été), museepop.ca (+00:00 = heure locale). Écartées pour LISTE NON FIABLE : lachapelle.org (SSR intermittent, liens absents du HTML serveur), tnm.qc.ca (Nuxt/Cloudflare : la page d'accueil sert 0 à 31 liens selon le cache ; fiches <saison>.tnm.qc.ca/<saison>/<id> avec Event valide si le rendu revient), theatredaujourdhui.qc.ca (fiches /spectacles/<slug> avec Event valide mais accueil/saisons rendus client ; l'index /spectacles est une ARCHIVE avec dates 1979-2001), cinemabeaubien.com / cinemaduparc.com / cinemadumusee.com (HTTP 523 récurrents). Auteur : Simon-Pierre Boucher — contact@spboucher.ai",
  "salles": [
    {
      "id": "grandtheatre",
      "nom": "Grand Théâtre de Québec",
      "listes": ["https://grandtheatre.qc.ca/programmation"],
      "motif": "grandtheatre\\.qc\\.ca/programmation/[a-z0-9-]{3,}",
      "salle": "Grand Théâtre de Québec",
      "ville": "Québec",
      "robots": "Allow: / (vérifié 2026-08-19)"
    },
    {
      "id": "trident",
      "nom": "Théâtre du Trident",
      "listes": ["https://www.letrident.com/"],
      "motif": "letrident\\.com/piece/[a-z0-9-]{3,}",
      "salle": "Théâtre du Trident",
      "ville": "Québec",
      "robots": "Disallow: (vide — tout permis, vérifié 2026-08-19) — /spectacles/ renvoie 404 depuis ≤2026-08-25, liste = page d'accueil (réparé 2026-08-25)"
    },
    {
      "id": "capitole",
      "nom": "Théâtre Capitole (Gestev)",
      "listes": ["https://theatrecapitole.com/calendrier-evenements/"],
      "motif": "(theatrecapitole|gestev)\\.com/calendrier-evenements/[a-z0-9-]{3,}",
      "salle": "Théâtre Capitole",
      "ville": "Québec",
      "robots": "Disallow: /cpresources/ /vendor/ seulement (vérifié 2026-08-19)"
    },
    {
      "id": "odyscene",
      "nom": "Odyscène (Théâtre Lionel-Groulx / Cabaret BMO, Sainte-Thérèse)",
      "listes": ["https://odyscene.com/programmation/",
                 "https://odyscene.com/programmation-estivale/"],
      "motif": "odyscene\\.com/programmation/(?!categories/)[a-z0-9-]{3,}",
      "salle": "Théâtre Lionel-Groulx",
      "ville": "Sainte-Thérèse",
      "robots": "Disallow: (vide — tout permis, Yoast, vérifié 2026-08-22)"
    },
    {
      "id": "denisepelletier",
      "nom": "Théâtre Denise-Pelletier (Montréal)",
      "listes": ["https://www.denise-pelletier.qc.ca/pieces/",
                 "https://www.denise-pelletier.qc.ca/pieces/page/2/"],
      "motif": "denise-pelletier\\.qc\\.ca/pieces/(?!page/|feed)[a-z0-9-]{3,}",
      "salle": "Théâtre Denise-Pelletier",
      "ville": "Montréal",
      "robots": "Disallow: /wp-admin/ et *.pdf seulement (vérifié 2026-08-25) — Event/date par représentation (-04:00 exact)"
    },
    {
      "id": "tohu",
      "nom": "TOHU — Cité des arts du cirque (Montréal)",
      "listes": ["https://tohu.ca/fr/programmation/spectacles?type=evenements",
                 "https://tohu.ca/fr/programmation/activites-gratuites?type=evenements"],
      "motif": "tohu\\.ca/fr/programmation/(?!spectacles|billetterie|festival|scolaire)[a-z0-9-]{3,}",
      "salle": "TOHU",
      "ville": "Montréal",
      "robots": "Disallow: /cpresources/ /vendor/ *type=date* seulement (vérifié 2026-08-25) — Event à plage de dates, minuit = placeholder"
    },
    {
      "id": "mbam",
      "nom": "Musée des beaux-arts de Montréal",
      "listes": ["https://www.mbam.qc.ca/fr/expositions/"],
      "motif": "mbam\\.qc\\.ca/fr/expositions/[a-z0-9-]{3,}",
      "salle": "Musée des beaux-arts de Montréal",
      "ville": "Montréal",
      "robots": "Disallow: /fr/recherche/ /en/search/ /wp-content/* seulement (vérifié 2026-08-25) — expositions = Event à plage de dates"
    },
    {
      "id": "pacmusee",
      "nom": "Pointe-à-Callière — cité d'archéologie et d'histoire (Montréal)",
      "listes": ["https://pacmusee.qc.ca/fr/expositions/",
                 "https://pacmusee.qc.ca/fr/calendrier/"],
      "motif": "pacmusee\\.qc\\.ca/fr/(expositions/detail|calendrier/evenement)/[a-z0-9-]{3,}",
      "salle": "Pointe-à-Callière",
      "ville": "Montréal",
      "robots": "Aucun Disallow (vérifié 2026-08-25) — expositions et événements du calendrier"
    },
    {
      "id": "cinematheque",
      "nom": "Cinémathèque québécoise (Montréal)",
      "listes": ["https://www.cinematheque.qc.ca/fr/"],
      "motif": "cinematheque\\.qc\\.ca/fr/cinema/[a-z0-9-]{3,}",
      "salle": "Cinémathèque québécoise",
      "ville": "Montréal",
      "robots": "Aucun Disallow (vérifié 2026-08-25) — 1 Event daté par projection affichée (date sans heure)"
    },
    {
      "id": "mnbaq",
      "nom": "Musée national des beaux-arts du Québec",
      "listes": ["https://www.mnbaq.org/programmation/expositions",
                 "https://www.mnbaq.org/programmation/visites-guidees"],
      "motif": "mnbaq\\.org/programmation/(expositions|visites-guidees|ateliers-et-cours|activites-et-evenements|spectacles-et-concerts)/[a-z0-9-]{3,}",
      "salle": "Musée national des beaux-arts du Québec",
      "ville": "Québec",
      "robots": "Disallow: /cpresources/ /vendor/ etc. seulement (vérifié 2026-08-25) — expositions, visites, ateliers avec Event horodaté (-04:00 exact)"
    },
    {
      "id": "mcq",
      "nom": "Musée de la civilisation (Québec)",
      "listes": ["https://mcq.org/decouvrir/expositions/"],
      "motif": "mcq\\.org/decouvrir/expositions/[a-z0-9-]{3,}",
      "salle": "Musée de la civilisation",
      "ville": "Québec",
      "robots": "Pas de robots.txt (404, vérifié 2026-08-25) — expositions = Event à plage de dates ; hôte SANS www (www.mcq.org/decouvrir 404)"
    },
    {
      "id": "maisonlitterature",
      "nom": "Maison de la littérature (Québec)",
      "listes": ["https://www.maisondelalitterature.qc.ca/evenements/"],
      "motif": "maisondelalitterature\\.qc\\.ca/evenements/(?!jsf/)[a-z0-9-]{3,}",
      "salle": "Maison de la littérature",
      "ville": "Québec",
      "robots": "Aucun Disallow (vérifié 2026-08-25) — Event horodaté sans offset (heure locale littérale, vérifiée = affichage)"
    },
    {
      "id": "premieracte",
      "nom": "Théâtre Premier Acte (Québec)",
      "listes": ["https://premieracte.ca/"],
      "motif": "premieracte\\.ca/spectacles/[a-z0-9-]{3,}",
      "salle": "Premier Acte",
      "ville": "Québec",
      "robots": "Disallow: /wp/wp-admin/ seulement (vérifié 2026-08-25) — Event à plage de dates, suffixe fuseau littéral « America/Toronto » (heure prise littérale, correcte)"
    },
    {
      "id": "spectart",
      "nom": "Spect'Art Rimouski (Salle Desjardins-Telus)",
      "listes": ["https://spectart.com/programmation/"],
      "motif": "spectart\\.com/programmation/(?!genre/)[a-z0-9-]{3,}",
      "salle": "Salle Desjardins-Telus",
      "ville": "Rimouski",
      "robots": "Aucun Disallow (vérifié 2026-08-25) — Event horodaté sans offset (heure locale littérale)"
    },
    {
      "id": "amphitheatrecogeco",
      "nom": "Amphithéâtre Cogeco (Trois-Rivières)",
      "listes": ["https://www.amphitheatrecogeco.com/"],
      "motif": "amphitheatrecogeco\\.com/(spectacles|evenements)/[a-z0-9-]{3,}",
      "salle": "Amphithéâtre Cogeco",
      "ville": "Trois-Rivières",
      "robots": "Pas de robots.txt (404, vérifié 2026-08-25) — Event daté (date sans heure)"
    },
    {
      "id": "hectorcharland",
      "nom": "Théâtre Hector-Charland (L'Assomption)",
      "listes": ["https://hector-charland.com/programmation-spectacles"],
      "motif": "hector-charland\\.com/programmation-spectacles/[a-z0-9-]{3,}",
      "salle": "Théâtre Hector-Charland",
      "ville": "L'Assomption",
      "robots": "Disallow: /cpresources/ /vendor/ /.env /cache/ seulement (Craft, vérifié 2026-08-25) — Event horodaté sans offset, location.name par fiche"
    },
    {
      "id": "chassegalerie",
      "nom": "Café culturel de la Chasse-galerie (Lavaltrie)",
      "listes": ["https://www.chasse-galerie.ca/fr"],
      "motif": "chasse-galerie\\.ca/fr/calendrier/[a-z0-9-]{3,}",
      "salle": "Café culturel de la Chasse-galerie",
      "ville": "Lavaltrie",
      "robots": "Disallow: /rubberduck/ /rss/ seulement (vérifié 2026-08-25) — Event horodaté -04:00 exact"
    }
  ]
}
