# Match Result Model v1 ## Rôle et frontière Un Match Result décrit un calcul descriptor-level réussi entre deux Feature Sets d'une Candidate Pair. Les correspondances sont dans le Match File; aucune vérification géométrique, aucun inlier géométrique et aucun masque d'inliers ne font partie de ce modèle. Les erreurs d'exécution appartiennent au Task Runtime et aux valeurs de retour. Elles ne créent pas de Match Result. Le modèle persistant possède deux états : - `NO_MATCH` (0) : `match_count == 0`, aucun asset; - `MATCHED` (1) : `match_count > 0`, asset obligatoire. `match_count` est exactement le nombre de correspondances descriptor-level persistées après Lowe ratio et canonicalisation. Il n'existe ni `raw_match_count` ambigu ni `inlier_count` dans Match Result v1. ## Identité et ownership L'identité immuable est : ``` (candidate_pair_id, feature_set_id_a, feature_set_id_b, matcher_kind, matcher_version, parameter_fingerprint) ``` Elle porte une contrainte `UNIQUE`. `feature_set_id_a` appartient à `candidate_pair.image_id_a` et `feature_set_id_b` à `image_id_b`. Les Feature Set IDs ne sont jamais triés numériquement. ## Schéma Project DB v10 `match_results` impose en SQL : statut dans `(0,1)`, `0 <= match_count <= 8192`, SHA de 32 octets, chemins non vides et tailles strictement positives lorsqu'ils sont présents. Un `CHECK` conjoint impose : ``` NO_MATCH => match_count = 0 et SHA/path/size NULL MATCHED => match_count > 0 et SHA/path/size tous présents ``` La création vérifie aussi atomiquement l'ownership A/B avant l'INSERT. Les API load/find/list conservent l'ordre stable par `match_result_id`; close/reopen ne change aucune identité ni métadonnée. ## Reuse `NO_MATCH` est directement réutilisable sans asset. `MATCHED` ne l'est qu'après validation du chemin, de la taille, du SHA-256 réel, du format complet, du type et de la dimension des descripteurs, des Feature Set IDs A/B et du compte. Une ligne existante dont l'asset est absent ou corrompu déclenche un recalcul. Le fichier est republié atomiquement et les champs résultat/asset de cette même ligne sont réparés transactionnellement; son ID et son identité scientifique à six parties restent inchangés. Aucune identité artificielle ne contourne la contrainte `UNIQUE`. ## Suite Le prochain modèle possède ses propres statistiques géométriques, dont un éventuel `inlier_count`. Geometric Verification Model v1 est désormais l'enfant scientifique persistant de ce résultat dans Project DB v12. NEXT: GEOMETRIC VERIFIER v3