# Coaster World v1.96.0 — Données & enrichissement final

Base : **v1.95.0**.

## Finalisation du catalogue

- Nouvelle page **Administration → Finalisation** (`/admin/catalog-finalization`).
- Indicateur de préparation du catalogue : parcs à 75%+, 90%+ et parcs critiques.
- File de travail triée par score de complétude, avec accès direct à l'enrichissement et à l'édition.
- Vue dédiée des coasters sans constructeur, sans modèle, des attractions au type générique et des références externes anciennes.
- Couverture des sources externes enregistrées affichée par source.
- Calcul de priorité effectué en une passe SQL globale pour éviter un N+1 par parc.

## Taxonomie constructeurs / modèles

- Nouveau `CatalogTaxonomyService` partagé par les enrichisseurs.
- RCDB, Coasterpedia, Wikidata et ThemeParks.wiki utilisent désormais la même résolution de constructeur.
- Variantes de casse, accents, ponctuation, `&`/`and` et espaces ne créent plus inutilement de nouveaux constructeurs/modèles.
- Aucun fuzzy matching : des noms sémantiquement différents restent séparés.
- Audit des doublons strictement équivalents.
- Fusion explicite possible depuis l'admin avec confirmation `NORMALIZE`.
- Avant suppression d'un doublon : reliaison des coasters, modèles et références externes vers l'entrée conservée.

## Enrichissement coaster

- Le modèle de coaster est désormais pris en compte dans le score de complétude.
- Coasterpedia tente maintenant de récupérer `model`, `ride_model` ou `model_name` lorsqu'ils sont disponibles.
- ThemeParks.wiki tente également de récupérer le modèle de ride lorsqu'il est présent dans la source.
- Le Centre Qualité considère maintenant un coaster sans modèle comme incomplet.

## Commande de finalisation

Nouvelle commande :

```bat
php artisan cw:catalog:finalize
```

Par défaut, elle est en lecture seule et affiche l'état du catalogue et les parcs prioritaires.

Options utiles :

```bat
php artisan cw:catalog:finalize --limit=20
php artisan cw:catalog:finalize --enrich=3
php artisan cw:catalog:finalize --normalize-taxonomy
```

Les opérations d'écriture demandent une confirmation, sauf avec `--force`.

## Sécurité des données

- Aucune fusion approximative.
- Aucune suppression automatique lors de l'ouverture de la page de finalisation.
- La normalisation ne touche qu'aux groupes strictement équivalents selon la clé normalisée.
- Les métadonnées utiles du constructeur conservé sont complétées depuis les doublons uniquement lorsqu'elles sont absentes.

## Base de données

**Aucune migration SQL.**
