{
  "_meta": {
    "objet": "Correspondance étiquettes OpenStreetMap → taxonomie Cap Ailleurs (src/lib/lieux/taxonomie.ts).",
    "lecture": "Règles évaluées DANS L'ORDRE ; la première qui correspond gagne. `si` : toutes les conditions doivent être vraies (valeur exacte, liste de valeurs, ou \"*\" = clé présente). `sauf` : aucune de ces conditions ne doit être vraie. `nom` (défaut true) : un nom est exigé ; sans nom, l'objet est écarté, sauf si `nom` vaut false (lieux utiles même anonymes : cascade, plage, distributeur…). `affiner` : ajustement par le NOM COMMERCIAL que l'établissement s'est lui-même donné (« Cabinas X », « Soda Y ») ; jamais par supposition. `si_nom` : la règle ne vaut que si le nom correspond (sinon elle est ignorée, l'évaluation continue). `sauf_nom` : la règle est ignorée si le nom correspond. L'étiquette interne `cap:representation` (« riviere », « depart_sentier ») est posée par osm_extract.py sur les représentations dérivées ; elle n'est jamais conservée en base.",
    "sources_conventions": "Conventions vérifiées sur le wiki OSM (Map features) et sur l'usage réel mesuré dans l'extrait Costa Rica du 2026-09-25 (voir DATA_ENGINE_AUDIT.md §3).",
    "licence": "Règles publiées avec la base dérivée ODbL (méthode, §4.6).",
    "ecoles": "Les écoles viennent UNIQUEMENT d'OpenStreetMap. Le jeu SIGMEP du MEP est sous licence CC BY-NC-SA (non commerciale) : il n'alimente pas le produit tant qu'une autorisation écrite n'est pas obtenue (voir DATA_LICENSE_REGISTER.md). Public/privé : seulement si l'étiquette operator:type le dit ; sinon « École », sans supposition.",
    "activites_2026_09_28": "Sport, bien-être, parcs aquatiques et d'attractions, jeux en intérieur : OSM_ACTIVITY_TAG_MAPPING.md (validé). Règles génériques APRÈS les règles nominatives (termal, balneario, canopy, surf) et AVANT la règle générique tourism=attraction. `hot_spring` ne reçoit plus que des objets NATURELS (natural=hot_spring ; natural=spring en est sorti le 28 septembre, décision D8, voir decisions_d4_d8_2026_09_28) ; un établissement nommé « termal » va en `thermal_bath`. Formes ajoutées (scripts/data/lib/osm-correspondance.mjs) : valeur `{ \"parmi\": [...] }` = l'étiquette porte une liste OSM « a;b » dont l'une des valeurs est dans la liste ; `exclure_si` + `raison_exclusion` = la règle correspond mais l'objet est écarté (accès privé, interdit ou réservé aux clients) ; `sous_selon` = sous-catégorie lue dans une étiquette (discipline d'un terrain), jamais supposée.",
    "revue_2026_09_28": "Corrections après revue : `amenity=spa` n'est jamais classé, même nommé « termal » (§5, étiquette dépréciée) ; une source chaude `access=customers` (bassin d'hôtel) est écartée comme les lieux de sport et de bien-être ; une attraction au nom purement descriptif (« Aguas Termales », « Hot Springs ») reste « À voir », rien ne dit que c'est un établissement ; piscines, salles et centres sportifs au nom générique (« Piscina 2 », « Gimnasio 1 », « Pool ») ne sont pas des lieux ; un massage au nom d'établissement pour adultes (« parlor », « VIP ») ou de cabinet de soins (« fisiatría », « rehab ») n'est pas classé ; un parc d'attractions nommé « Canopy » est une tyrolienne ; les primeurs (`shop=greengrocer`) ont leur catégorie `greengrocer` (quotidien) et ne gonflent plus les marchés.",
    "revue_globale_2026_09_28": "Revue d'ensemble : une source chaude qui porte un signe d'établissement (site, téléphone, courriel, horaires, exploitant, fee=yes) est un complexe thermal (`thermal_bath`), jamais présentée comme « Source naturelle » ; forme `si_une` (au moins une condition vraie). `nom_generique` : un nom qui correspond n'est pas un nom propre (« hot spring #1 », « Aguas Termales ») ; il compte comme absent (lieu affiché sous son libellé si la règle admet les lieux sans nom, sinon « sans nom »). Parcs : jamais un cimetière (amenity=grave_yard, landuse=cemetery, « Cementerio »). Les parcs au nom générique (« Parque 44 ») restent sur la carte ; la page « Avec des enfants » ne les liste pas (src/lib/agenda/enfants.ts). Aire de jeux réservée aux clients, privée ou interdite : écartée.",
    "densification_2026_09_27": "Règles ajoutées d'après les comptes réels de l'extrait du 2026-09-26 (séquence 2056) : voir CAP_AILLEURS_DATA_COVERAGE_PLAN.md. Enseignes : data/mappings/enseignes.json.",
    "decisions_d4_d8_2026_09_28": "Décisions de Julien (OSM_ACTIVITY_TAG_MAPPING.md §5 bis, migration 20260928170000). D8 : un objet natural=spring n'est JAMAIS une source chaude ; seuls ceux que l'ancienne règle retenait (nom « termal / hot spring / aguas calientes » ou leisure=hot_spring) deviennent une « Source » (`spring`, famille nature) ; les captages (« Naciente… ») ne sont pas importés ; `hot_spring` est réservé à natural=hot_spring. D4 : dans les catégories de `publication_exige_un_nom`, un lieu sans nom ou au nom générique n'est jamais publié ; forme `sans_nom: \"archiver\"` : l'objet est gardé en base, ARCHIVÉ (hidden_reason out_of_scope, metadata.non_publie « sans nom »), jamais supprimé, et republié s'il reçoit un vrai nom ; sans cette forme, il est écarté à l'import comme avant. Parcs aquatiques, parcs d'attractions, jeux en intérieur, sources et piscines « balneario » : access=private, no ou customers écarté (exclure_si), comme le sport et le bien-être.",
    "revue_manuelle_2026_09_28": "Revue manuelle avant QA (DATA_MANUAL_REVIEW.md). 1) Noms génériques (D4 ter) : bloc `noms_generiques`, forme `generique: \"archiver\"` sur les règles de sport (terrains, piscines, salles, centres, pistes, stades, skateparks) et de parcs. 2) « Gimnasio Comunal / Municipal » étiqueté fitness_centre : une salle omnisports de la collectivité, reclassée « Centre sportif » (affiner). 3) Parc nommé « Parque Infantil », « Área de juegos », « Playground »… : une aire de jeux (affiner). 4) Décisions par objet : data/mappings/revue-manuelle.json (KEEP, HIDE, REVIEW_REQUIRED, RECLASSIFY), appliquées par osm-transform après ces règles."
  },
  "publication_exige_un_nom": {
    "objet": "Décision D4 du 28 septembre 2026 : dans ces catégories, un lieu sans nom ou au nom générique (`nom_generique`) n'apporte pas d'information exploitable et n'est pas publié. Aucune règle vers ces catégories ne peut porter `nom: false` (chargerRegles refuse le fichier). Vérifié par scripts/check-activities.mjs (sport et bien-être entiers).",
    "categories": [
      "fitness_centre", "sports_centre", "stadium", "pitch", "skatepark", "swimming_pool", "athletics_track", "golf",
      "thermal_bath", "public_bath", "spa", "massage", "sauna", "yoga",
      "water_park", "theme_park", "indoor_play", "hot_spring", "spring"
    ],
    "raison": "sans nom"
  },
  "noms_generiques": {
    "objet": "Revue manuelle du 28 septembre 2026 (DATA_MANUAL_REVIEW.md, décision D4 ter). Un nom qui ne fait que RÉPÉTER la catégorie (type d'équipement, discipline, taille, numéro), sans lieu, personne, marque ni collectivité, n'est pas un nom propre : avec `generique: \"archiver\"`, le lieu est gardé en base, ARCHIVÉ (out_of_scope, metadata.non_publie « nom générique »), jamais supprimé, et republié le jour où OSM lui donne un vrai nom. Un nom qui désigne l'équipement d'une collectivité (« Plaza de Deportes », « Gimnasio Comunal », « Gimnasio Municipal », « Piscina Municipal ») n'est PAS générique : avec la localité, il désigne un lieu identifiable. Correction RC du 29 septembre 2026 (motif incomplet, relevé en revue) : numéro « N. 2 », pluriels (« Areas Verdes », « zonas »), « Green Area », « Zona recreativa », « Área de Recreación », disciplines rugby, softbol, football, futsala, patinaje, patinetas, pickleball, boxeo, fitness, « campo » et « field », « zona » seulement suivi de « de » (« Zona de Patinaje » archivé, « Gimnasio Zona Fitness », nom d'une enseigne probable, gardé), parenthèses tolérées (« El campo de fútbol (Soccer Field) ») ; la règle des aires de jeux lit aussi le motif des parcs (une aire de jeux nommée « Parque » s'affiche « Aire de jeux »). Cas réels tenus par check:activities.",
    "sport": {
      "motif": "^(?:(?:canchas?|cacha|pistas?|piscinas?|pools?|swimming|gimnasios?|gimnacio|gym|polideportivo|centro|sal[oó]n|fut|f[uú]tbol|football|futbolito|futsala?|soccer|sports?|deportes?|deportiv[oa]s?|center|centre|courts?|campos?|fields?|tennis|tenis|p[aá]del|pickleball|voleibol|voleybol|volleyball|v[oó]ley|basket(?:ball)?|b[aá]sket|b[aá]squet(?:bol)?|baloncesto|b[eé]isbol|softb(?:ol|all)|rugby|boxeo|fitness|diamante|multiusos?|multi|sint[eé]tica|techada|playa|ol[ií]mpica|semi|semiol[ií]mpica|atletismo|atl[eé]tica|pesas|skate|skatepark|patinaje|patinetas?|zonas?(?= de\\b)|park|de|del|y|la|las|el|los|para|\\d{1,2})(?:[\\s.,#º°'()-]+|$))+$",
      "exemples_archives": [
        "Cancha",
        "Cancha de Fútbol 7",
        "Cancha de Básket",
        "Piscina Olímpica",
        "Piscina Semiolímpica",
        "Gimnasio Multiuso",
        "Polideportivo",
        "Fut 5",
        "Tennis Court",
        "Pista de atletismo",
        "Cancha de Rugby",
        "Cancha de Softbol",
        "Cancha Football",
        "Cancha de Futsala",
        "Gimnasio Fitness",
        "Pista para Patinetas",
        "Zona de Patinaje",
        "La cancha de baloncesto (Basketball court)"
      ],
      "exemples_gardes": [
        "Plaza de Deportes",
        "Gimnasio Comunal",
        "Gimnasio 2000",
        "Piscina U.C.R",
        "El Estadio Fut 5",
        "Piscina Olímpica de Limón",
        "Gimnasio Zona Fitness"
      ]
    },
    "parc": {
      "motif": "^(?:parques?|parquecito|park|jard[ií]n|(?:zonas?|[aá]reas?) (?:verdes?|recreativ[oa]s?|de (?:recreaci[oó]n|recreo|descanso|esparcimiento))|green (?:areas?|spaces?)|parque (?:lineal|recreativo))(?:[\\s.,#º°-]*(?:n(?:[oº°]\\.?|\\.)\\s*)?(?:\\d{1,4}[a-z]?(?:\\s*-\\s*\\d{1,4}[a-z]?)*|[a-z]))?\\.?$|^(?:(?:canchas?|cacha|pistas?|piscinas?|pools?|swimming|gimnasios?|gimnacio|gym|polideportivo|centro|sal[oó]n|fut|f[uú]tbol|football|futbolito|futsala?|soccer|sports?|deportes?|deportiv[oa]s?|center|centre|courts?|campos?|fields?|tennis|tenis|p[aá]del|pickleball|voleibol|voleybol|volleyball|v[oó]ley|basket(?:ball)?|b[aá]sket|b[aá]squet(?:bol)?|baloncesto|b[eé]isbol|softb(?:ol|all)|rugby|boxeo|fitness|diamante|multiusos?|multi|sint[eé]tica|techada|playa|ol[ií]mpica|semi|semiol[ií]mpica|atletismo|atl[eé]tica|pesas|skate|skatepark|patinaje|patinetas?|zonas?(?= de\\b)|park|de|del|y|la|las|el|los|para|\\d{1,2})(?:[\\s.,#º°'()-]+|$))+$",
      "exemples_archives": [
        "Parque",
        "Parque 44",
        "Parque A",
        "Parque 3-140-141-142",
        "Parquecito",
        "Zona verde",
        "Parque Lineal",
        "Parque N. 2",
        "Parque N. 346",
        "Areas Verdes",
        "Green Area",
        "Zona recreativa",
        "Área de Recreación",
        "El campo de fútbol (Soccer Field)",
        "Cancha de Futbol (étiqueté parc : le motif des sports vaut aussi pour les parcs)"
      ],
      "exemples_gardes": [
        "Parque Central",
        "Parque Central de Escazú",
        "Parquecito del Tanque",
        "Parque Infantil (reclassé aire de jeux)"
      ]
    }
  },
  "exclure": [
    { "si": { "shop": "vacant" }, "raison": "local vide" },
    { "si": { "access": ["private", "no"] }, "sauf": { "tourism": "*" }, "raison": "accès privé" },
    { "si": { "public_transport": "platform" }, "sauf": { "highway": "bus_stop" }, "raison": "quai sans arrêt highway=bus_stop" }
  ],
  "regles": [
    { "cat": "bus_stop", "si": { "highway": "bus_stop" } },
    { "cat": "bus_station", "si": { "amenity": "bus_station" } },
    { "cat": "bus_station", "si": { "public_transport": "station", "bus": "yes" } },
    { "cat": "train_station", "si": { "railway": ["station", "halt"] } },
    { "cat": "ferry", "si": { "amenity": "ferry_terminal" }, "nom": false },
    { "cat": "airport", "si": { "aeroway": "aerodrome", "iata": "*" } },
    { "cat": "airport", "si": { "aeroway": "aerodrome", "aerodrome:type": ["international", "public"] } },
    { "cat": "airstrip", "si": { "aeroway": "aerodrome" } },
    { "cat": "shuttle", "si": { "office": ["company", "travel_agent", "yes"] }, "si_nom": "shuttle|\\binterbus\\b|gray ?line" },
    { "cat": "shuttle", "si": { "shop": "travel_agency" }, "si_nom": "shuttle|\\binterbus\\b|gray ?line" },
    { "cat": "parking", "si": { "amenity": "parking" }, "sauf": { "access": ["customers", "permit", "delivery", "destination"] }, "si_nom": "p[uú]blic|visitantes|visitor|turist|tourist|playa|beach|catarata|cascada|waterfall|volc[aá]n|reserva|parque nacional|national park|mirador" },
    { "cat": "car_rental", "si": { "amenity": "car_rental" } },
    { "cat": "taxi", "si": { "amenity": "taxi" }, "nom": false },
    { "cat": "charging_station", "si": { "amenity": "charging_station" }, "nom": false },
    { "cat": "car_repair", "si": { "shop": ["car_repair", "tyres"] } },
    { "cat": "petrol_station", "si": { "amenity": "fuel" }, "nom": false },
    { "cat": "atm", "si": { "amenity": "atm" }, "nom": false },
    { "cat": "bank", "sous": "money_exchange", "si": { "amenity": "bureau_de_change" } },
    { "cat": "bank", "si": { "amenity": "bank" } },
    { "cat": "post_office", "si": { "amenity": "post_office" } },
    { "cat": "supermarket", "si": { "shop": "supermarket" } },
    { "cat": "convenience_store", "si": { "shop": ["convenience", "general"] } },
    { "cat": "shopping_center", "si": { "shop": ["mall", "department_store"] } },
    { "cat": "hardware_store", "si": { "shop": ["hardware", "doityourself"] } },
    { "cat": "laundry", "si": { "shop": ["laundry", "dry_cleaning"] } },
    { "cat": "telecom", "si": { "office": "telecommunication" } },
    { "cat": "telecom", "si": { "shop": "telecommunication" } },
    { "cat": "telecom", "sous": "mobile_phone", "si": { "shop": "mobile_phone" } },
    { "cat": "police", "si": { "amenity": "police" } },
    { "cat": "veterinary", "si": { "amenity": "veterinary" } },

    { "cat": "hospital", "si": { "amenity": "hospital" } },
    { "cat": "hospital", "si": { "healthcare": "hospital" } },
    { "cat": "emergency", "si": { "emergency": "ambulance_station" } },
    { "cat": "clinic", "si": { "amenity": "clinic" }, "affiner": [{ "motif": "\\bEBAIS\\b", "sous": "ebais" }] },
    { "cat": "clinic", "si": { "healthcare": ["clinic", "centre"] }, "affiner": [{ "motif": "\\bEBAIS\\b", "sous": "ebais" }] },
    { "cat": "doctor", "si": { "amenity": "doctors" }, "affiner": [{ "motif": "\\bEBAIS\\b", "cat": "clinic", "sous": "ebais" }, { "motif": "\\bCAIS\\b|^[aá]rea de salud\\b", "cat": "clinic" }] },
    { "cat": "doctor", "si": { "healthcare": "doctor" }, "affiner": [{ "motif": "\\bEBAIS\\b", "cat": "clinic", "sous": "ebais" }, { "motif": "\\bCAIS\\b|^[aá]rea de salud\\b", "cat": "clinic" }] },
    { "cat": "pharmacy", "si": { "amenity": "pharmacy" } },
    { "cat": "pharmacy", "si": { "healthcare": "pharmacy" } },
    { "cat": "dentist", "si": { "amenity": "dentist" } },
    { "cat": "dentist", "si": { "healthcare": "dentist" } },
    { "cat": "physiotherapy", "si": { "healthcare": "physiotherapist" } },
    { "cat": "laboratory", "si": { "healthcare": "laboratory" } },
    { "cat": "hospital", "si": { "healthcare": "yes" }, "si_nom": "\\bhospital\\b" },
    { "cat": "clinic", "si": { "healthcare": "yes" }, "si_nom": "cl[ií]nica|centro m[eé]dico|centro cl[ií]nico|servicio m[eé]dico|centro de salud|especialidades m[eé]dicas|medicenter|\\bebais\\b", "affiner": [{ "motif": "\\bEBAIS\\b", "sous": "ebais" }] },
    { "cat": "pharmacy", "si": { "shop": "chemist" }, "si_nom": "farmacia|\\bfarma\\b" },

    { "cat": "surf", "si": { "amenity": "school" }, "si_nom": "\\bsurf" },
    { "cat": "school_public", "si": { "amenity": "school", "operator:type": ["public", "government", "publico"] } },
    { "cat": "school_private", "si": { "amenity": "school", "operator:type": ["private", "private_non_profit", "religious"] } },
    { "cat": "school_public", "si": { "amenity": "school", "operator": ["MEP", "Ministerio de Educación Pública", "Ministerio de Educación"] }, "sauf": { "operator:type": "*" } },
    { "cat": "school", "si": { "amenity": "school" } },
    { "cat": "preschool", "sous": "kindergarten", "si": { "amenity": "kindergarten" } },
    { "cat": "preschool", "sous": "childcare", "si": { "amenity": "childcare" } },
    { "cat": "university", "si": { "amenity": ["university", "college"] } },
    { "cat": "library", "si": { "amenity": "library" } },
    { "cat": "playground", "si": { "leisure": "playground" }, "nom": false, "nom_generique": "@parc", "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "thermal_bath", "si": { "leisure": ["water_park", "resort", "beach_resort", "swimming_pool", "hot_spring", "spa"] }, "sauf": { "natural": ["spring", "hot_spring"] }, "si_nom": "termal|hot ?springs?|aguas calientes", "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "thermal_bath", "si": { "amenity": "public_bath", "bath:type": ["thermal", "hot_spring", "onsen"] }, "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "thermal_bath", "si": { "amenity": "public_bath" }, "si_nom": "termal|hot ?springs?|aguas calientes", "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "family_activity", "si": { "amenity": "cinema" }, "sauf_nom": "xxx|\\bv[ií]deo\\b|adult|er[oó]tic|^antiguo" },
    { "cat": "family_activity", "si": { "leisure": ["miniature_golf", "bowling_alley", "escape_game"] } },
    { "cat": "family_activity", "si": { "tourism": "aquarium" } },
    { "cat": "family_activity", "si": { "leisure": "beach_resort" } },
    { "cat": "family_activity", "si": { "leisure": "swimming_pool" }, "si_nom": "balneario|piscina (municipal|p[uú]blica)|\\bmunicipal\\b", "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "water_park", "si": { "leisure": "water_park" }, "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "theme_park", "si": { "tourism": "theme_park" }, "affiner": [{ "motif": "canopy|zip ?-?lines?|zipline|tirolesa|tirolina|tyrolean", "cat": "zipline" }], "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "indoor_play", "si": { "leisure": ["indoor_play", "trampoline_park"] }, "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "wildlife", "si": { "tourism": "zoo" } },
    { "cat": "wildlife", "si": { "attraction": "animal" } },
    { "cat": "language_school", "si": { "amenity": "language_school" } },

    { "cat": "coworking", "si": { "office": "coworking" } },
    { "cat": "coworking", "si": { "amenity": "coworking_space" } },
    { "cat": "coworking", "si": { "office": ["company", "yes"] }, "si_nom": "cowork|co-work" },
    { "cat": "immigration_resource", "si": { "office": "government", "government": ["migration", "immigration", "customs,_migration"] } },
    { "cat": "municipality", "si": { "amenity": "townhall" } },
    { "cat": "government_office", "sous": "courthouse", "si": { "amenity": "courthouse" } },
    { "cat": "government_office", "si": { "office": "government" }, "affiner": [{ "motif": "migraci[oó]n y extranjer[ií]a|\\bdgme\\b", "cat": "immigration_resource" }] },
    { "cat": "government_office", "sous": "water_utility", "si": { "office": "water_utility" } },
    { "cat": "government_office", "sous": "energy_supplier", "si": { "office": "energy_supplier" } },
    { "cat": "embassy", "si": { "office": "diplomatic" } },
    { "cat": "embassy", "si": { "amenity": "embassy" } },
    { "cat": "legal_resource", "si": { "office": ["lawyer", "notary"] } },
    { "cat": "accountant", "si": { "office": ["accountant", "tax_advisor"] } },
    { "cat": "real_estate_resource", "si": { "office": "estate_agent" } },
    { "cat": "professional_service", "si": { "office": ["insurance", "architect", "engineer", "financial"] } },

    { "cat": "hotel", "si": { "tourism": ["hotel", "motel"] }, "affiner": [{ "motif": "^cabinas?\\b", "cat": "cabina" }, { "motif": "\\blodge\\b", "cat": "lodge" }] },
    { "cat": "guesthouse", "si": { "tourism": "guest_house" }, "affiner": [{ "motif": "^cabinas?\\b", "cat": "cabina" }, { "motif": "\\blodge\\b", "cat": "lodge" }] },
    { "cat": "hostel", "si": { "tourism": "hostel" } },
    { "cat": "cabina", "si": { "tourism": "chalet" } },
    { "cat": "tourism_lodging", "si": { "tourism": "apartment" } },
    { "cat": "campground", "si": { "tourism": ["camp_site", "caravan_site"] } },
    { "cat": "mountain_hut", "si": { "tourism": ["alpine_hut", "wilderness_hut"] } },

    { "cat": "restaurant", "si": { "amenity": "restaurant" }, "affiner": [{ "motif": "^soda\\b", "cat": "soda" }] },
    { "cat": "fast_food", "si": { "amenity": "fast_food" } },
    { "cat": "cafe", "si": { "amenity": "cafe" } },
    { "cat": "ice_cream", "si": { "amenity": "ice_cream" } },
    { "cat": "ice_cream", "si": { "shop": "ice_cream" } },
    { "cat": "bakery", "si": { "shop": ["bakery", "pastry"] } },
    { "cat": "market", "si": { "amenity": "marketplace" } },
    { "cat": "greengrocer", "si": { "shop": "greengrocer" } },
    { "cat": "food_court", "si": { "amenity": "food_court" } },
    { "cat": "bar", "si": { "amenity": ["bar", "pub", "biergarten"] } },

    { "cat": "waterfall", "si": { "natural": "waterfall" }, "nom": false },
    { "cat": "waterfall", "si": { "waterway": "waterfall" }, "nom": false },
    { "cat": "beach", "si": { "natural": "beach" }, "nom": false },
    { "cat": "volcano", "si": { "natural": "volcano" } },
    { "cat": "summit", "si": { "natural": "peak" } },
    { "cat": "thermal_bath", "si": { "natural": "hot_spring" }, "si_une": { "website": "*", "contact:website": "*", "email": "*", "contact:email": "*", "phone": "*", "contact:phone": "*", "opening_hours": "*", "operator": "*", "fee": "yes" }, "sans_nom": "archiver", "nom_generique": "^(hot ?springs?|aguas termales|termales|aguas calientes)( ?#? ?\\d{1,3})?$", "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "hot_spring", "si": { "natural": "hot_spring" }, "sans_nom": "archiver", "nom_generique": "^(hot ?springs?|aguas termales|termales|aguas calientes)( ?#? ?\\d{1,3})?$", "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "spring", "si": { "natural": "spring", "leisure": "hot_spring" }, "sans_nom": "archiver", "nom_generique": "^(hot ?springs?|springs?|aguas termales|termales|aguas calientes|manantial|naciente)( ?#? ?\\d{1,3})?$", "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "spring", "si": { "natural": "spring" }, "si_nom": "termal|hot ?springs?|aguas calientes", "sans_nom": "archiver", "nom_generique": "^(hot ?springs?|springs?|aguas termales|termales|aguas calientes|manantial|naciente)( ?#? ?\\d{1,3})?$", "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "cave", "si": { "natural": "cave_entrance" }, "nom": false },
    { "cat": "lake", "si": { "natural": "water", "water": ["lake", "lagoon", "reservoir"] } },
    { "cat": "lake", "si": { "natural": "water", "water": "pond" }, "si_nom": "^(laguna|lago|embalse)\\b", "sauf_nom": "retenci[oó]n|pluvial|tratamiento|oxidaci[oó]n" },
    { "cat": "lake", "si": { "natural": "water" }, "sauf": { "water": "*" }, "si_nom": "^(lagunas?|lago|embalse|represa)\\b", "sauf_nom": "retenci[oó]n|pluvial|tratamiento|oxidaci[oó]n" },
    { "cat": "river", "si": { "waterway": "river", "cap:representation": "riviere" } },
    { "cat": "national_park", "si": { "boundary": "national_park" } },
    { "cat": "national_park", "si": { "boundary": "protected_area", "protect_class": "2" } },
    { "cat": "protected_area", "si": { "boundary": "protected_area" } },
    { "cat": "protected_area", "si": { "leisure": "nature_reserve" } },
    { "cat": "viewpoint", "si": { "tourism": "viewpoint" }, "nom": false, "affiner": [{ "motif": "snorkel", "cat": "snorkeling" }] },
    { "cat": "hiking", "si": { "highway": "trailhead" }, "nom": false },
    { "cat": "hiking", "si": { "cap:representation": "depart_sentier" }, "sauf": { "access": ["customers", "permit", "delivery", "agricultural", "forestry"] } },

    { "cat": "zipline", "si": { "aerialway": ["zip_line", "Tyrolean_traverse"] }, "sauf_nom": "^[\\d\\s#.-]+$|^(cable|l[ií]nea|tramo|zip ?line) ?#?\\d+$|^[a-z]+-?man$" },
    { "cat": "zipline", "si": { "leisure": "sports_centre" }, "si_nom": "canopy|zip ?-?lines?|zipline|tirolesa|tirolina|tyrolean" },
    { "cat": "surf", "si": { "leisure": "sports_centre" }, "si_nom": "\\bsurf" },
    { "cat": "surf", "si": { "sport": "surfing" } },
    { "cat": "surf", "si": { "shop": "surf" } },
    { "cat": "surf", "si": { "shop": ["sports", "yes", "rental", "clothes", "boutique", "gift"] }, "si_nom": "\\bsurf", "sauf_nom": "skate|patinaje|patinetas|\\bropa\\b|outlet" },
    { "cat": "kayak", "si": { "amenity": "boat_rental" }, "si_nom": "kayak|paddle ?board|\\bsup\\b|\\bcanoa\\b|\\bcanoe" },
    { "cat": "diving", "si": { "sport": "scuba_diving" } },
    { "cat": "diving", "si": { "shop": "scuba_diving" } },
    { "cat": "diving", "si": { "amenity": "dive_centre" } },
    { "cat": "horse_riding", "si": { "leisure": "horse_riding" } },
    { "cat": "horse_riding", "si": { "sport": "equestrian" } },
    { "cat": "tour", "si": { "office": "guide" }, "affiner": [{ "motif": "canopy|zip ?-?lines?|zipline|tirolesa|tirolina|tyrolean", "cat": "zipline" }, { "motif": "rafting", "cat": "rafting" }, { "motif": "kayak|paddle ?board|\\bsup\\b|\\bcanoa\\b|\\bcanoe", "cat": "kayak" }, { "motif": "snorkel", "cat": "snorkeling" }, { "motif": "night (tour|walk)|tour nocturno|caminata nocturna|bird ?watching|birding|observaci[oó]n de aves|avistamiento|crocodile (safari|tour)|cocodrilos?\\b|whale watching|dolphin (tour|watching)|sloth (tour|watching)|wildlife (tour|watching|safari)|\\bsafari\\b", "cat": "wildlife_tour" }, { "motif": "\\bsurf", "cat": "surf" }] },
    { "cat": "travel_agency", "si": { "shop": "travel_agency" }, "affiner": [{ "motif": "canopy|zip ?-?lines?|zipline|tirolesa|tirolina|tyrolean", "cat": "zipline" }, { "motif": "rafting", "cat": "rafting" }, { "motif": "kayak|paddle ?board|\\bsup\\b|\\bcanoa\\b|\\bcanoe", "cat": "kayak" }, { "motif": "snorkel", "cat": "snorkeling" }, { "motif": "night (tour|walk)|tour nocturno|caminata nocturna|bird ?watching|birding|observaci[oó]n de aves|avistamiento|crocodile (safari|tour)|cocodrilos?\\b|whale watching|dolphin (tour|watching)|sloth (tour|watching)|wildlife (tour|watching|safari)|\\bsafari\\b", "cat": "wildlife_tour" }] },
    { "cat": "travel_agency", "si": { "office": "travel_agent" }, "affiner": [{ "motif": "canopy|zip ?-?lines?|zipline|tirolesa|tirolina|tyrolean", "cat": "zipline" }, { "motif": "rafting", "cat": "rafting" }, { "motif": "kayak|paddle ?board|\\bsup\\b|\\bcanoa\\b|\\bcanoe", "cat": "kayak" }, { "motif": "snorkel", "cat": "snorkeling" }, { "motif": "night (tour|walk)|tour nocturno|caminata nocturna|bird ?watching|birding|observaci[oó]n de aves|avistamiento|crocodile (safari|tour)|cocodrilos?\\b|whale watching|dolphin (tour|watching)|sloth (tour|watching)|wildlife (tour|watching|safari)|\\bsafari\\b", "cat": "wildlife_tour" }] },
    { "cat": "tourist_info", "si": { "tourism": "information", "information": "office" } },
    { "cat": "tourist_info", "si": { "tourism": "information", "information": "visitor_centre" } },
    { "cat": "tourist_info", "si": { "tourism": "information" }, "sauf": { "information": ["board", "guidepost", "map", "route_marker", "sign", "terminal", "warning", "tactile_map"] }, "si_nom": "informaci[oó]n|information|info ?cent|centro de visitantes|visitor cent|oficina" },
    { "cat": "tourist_info", "sous": "ranger_station", "si": { "amenity": "ranger_station" } },
    { "cat": "museum", "si": { "tourism": "museum" } },
    { "cat": "culture", "si": { "tourism": "gallery" } },
    { "cat": "culture", "si": { "amenity": ["arts_centre", "theatre"] } },
    { "cat": "culture", "sous": "heritage", "si": { "historic": ["monument", "ruins", "memorial", "castle", "archaeological_site", "church", "fort", "building", "manor"] } },
    { "cat": "marina", "si": { "leisure": "marina" } },

    { "cat": "thermal_bath", "si": { "tourism": "attraction" }, "sauf": { "natural": ["spring", "hot_spring"] }, "si_nom": "termal|hot ?springs?|aguas calientes", "sauf_nom": "^(las )?(aguas )?termales?$|^aguas calientes$|^hot ?springs?$", "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },

    { "cat": "yoga", "si": { "leisure": ["fitness_centre", "sports_centre", "sports_hall"], "sport": ["yoga", "yoga;pilates", "pilates;yoga"] }, "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "yoga", "si": { "club": "*", "sport": ["yoga", "yoga;pilates", "pilates;yoga"] }, "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "swimming_pool", "si": { "leisure": ["sports_centre", "swimming_pool"], "sport": "swimming" }, "sauf_nom": "^(piscina|pool|swimming ?pool|gimnasio|gym)( para (ni[nñ]os|adultos))?( ?#?\\d{1,2})?$", "nom_generique": "@sport", "generique": "archiver", "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "swimming_pool", "si": { "leisure": "swimming_pool" }, "sauf_nom": "^(piscina|pool|swimming ?pool|gimnasio|gym)( para (ni[nñ]os|adultos))?( ?#?\\d{1,2})?$", "nom_generique": "@sport", "generique": "archiver", "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "skatepark", "si": { "leisure": "skate_park" }, "nom_generique": "@sport", "generique": "archiver", "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "skatepark", "si": { "leisure": "pitch", "sport": { "parmi": ["skateboard"] } }, "nom_generique": "@sport", "generique": "archiver", "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "pitch", "si": { "leisure": "pitch", "sport": "*" }, "sauf": { "sport": { "parmi": ["bullfighting"] } }, "sous_selon": { "cle": "sport", "valeurs": { "soccer": "football", "futsal": "football", "basketball": "basketball", "tennis": "tennis", "padel": "padel", "volleyball": "volleyball", "beachvolleyball": "volleyball", "baseball": "baseball", "multi": "multisport" }, "plusieurs": "multisport" }, "nom_generique": "@sport", "generique": "archiver", "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "athletics_track", "si": { "leisure": "track", "sport": { "parmi": ["running", "athletics"] } }, "nom_generique": "@sport", "generique": "archiver", "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "stadium", "si": { "leisure": "stadium" }, "nom_generique": "@sport", "generique": "archiver", "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "fitness_centre", "si": { "leisure": "fitness_centre" }, "sauf_nom": "^(piscina|pool|swimming ?pool|gimnasio|gym)( para (ni[nñ]os|adultos))?( ?#?\\d{1,2})?$", "nom_generique": "@sport", "generique": "archiver", "affiner": [{ "motif": "^gimnasio (comunal|municipal)\\b", "cat": "sports_centre" }], "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "sports_centre", "si": { "leisure": ["sports_centre", "sports_hall"] }, "sauf_nom": "^(piscina|pool|swimming ?pool|gimnasio|gym)( para (ni[nñ]os|adultos))?( ?#?\\d{1,2})?$", "nom_generique": "@sport", "generique": "archiver", "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "golf", "si": { "leisure": "golf_course" }, "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },

    { "cat": "public_bath", "si": { "amenity": "public_bath" }, "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "spa", "si": { "shop": "beauty", "beauty": { "parmi": ["spa"] } }, "sauf": { "beauty": { "parmi": ["nails"] } }, "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "spa", "si": { "tourism": "spa_resort" }, "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "massage", "si": { "shop": "massage" }, "sauf_nom": "parlou?r|\\bvip\\b|er[oó]tic|sensual|\\bxxx\\b|fisiatr|fisioterap|\\brehab", "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "sauna", "si": { "leisure": "sauna" }, "exclure_si": { "access": ["private", "no", "customers"] }, "raison_exclusion": "accès réservé" },
    { "cat": "attraction", "si": { "tourism": "attraction" }, "affiner": [{ "motif": "canopy|zip ?-?lines?|zipline|tirolesa|tirolina|tyrolean", "cat": "zipline" }, { "motif": "rafting", "cat": "rafting" }, { "motif": "kayak|paddle ?board|\\bsup\\b|\\bcanoa\\b|\\bcanoe", "cat": "kayak" }, { "motif": "snorkel", "cat": "snorkeling" }, { "motif": "night (tour|walk)|tour nocturno|caminata nocturna|bird ?watching|birding|observaci[oó]n de aves|avistamiento|crocodile (safari|tour)|cocodrilos?\\b|whale watching|dolphin (tour|watching)|sloth (tour|watching)|wildlife (tour|watching|safari)|\\bsafari\\b", "cat": "wildlife_tour" }, { "motif": "^(cataratas?|cascadas?)\\b|\\bwaterfalls?$", "cat": "waterfall" }, { "motif": "^mirador\\b", "cat": "viewpoint" }] },
    { "cat": "park", "si": { "leisure": "park" }, "sauf": { "amenity": "grave_yard", "landuse": "cemetery" }, "sauf_nom": "cementerio|camposanto|cemetery", "nom_generique": "@parc", "generique": "archiver", "affiner": [{ "motif": "^(parques? infantil(es)?|parque de juegos|juegos infantiles|[aá]rea de juegos|zona de juegos|play ?grounds?)(\\P{L}|$)", "cat": "playground" }] },

    { "cat": "city", "si": { "place": "city" }, "types": ["n"] },
    { "cat": "town", "si": { "place": "town" }, "types": ["n"] },
    { "cat": "village", "si": { "place": "village" }, "types": ["n"] },
    { "cat": "hamlet", "si": { "place": "hamlet" }, "types": ["n"] },
    { "cat": "suburb", "si": { "place": "suburb" }, "types": ["n"] }
  ]
}
