# kb_decoder_api Ce crate déclare l'interface commune des décodeurs protocolaires. ## Rôle dans l'écosystème Ce module fait partie du découpage strict de Khadhroony Bot2. Il doit conserver des dépendances limitées et ne pas contourner les interfaces communes du workspace. ## Règles locales - Les commentaires de code restent en anglais. - La documentation Markdown reste en français. - Les exports publics sont contrôlés depuis `lib.rs` lorsque le crate expose une bibliothèque. - Les binaires utilisent `main.rs` avec les attributs Rust obligatoires. ## Contrats `0.4.0` et contexte core `2` Le trait `InstructionDecoder` reçoit exclusivement `CoreInstructionReplayInput`. Il expose une identité et une version stables, les surfaces supportées, la couverture déclarée, la reconnaissance déterministe et un résultat explicite `decoded`, `ignored`, `unsupported` ou `failed`. Les observations produites conservent la preuve, la confiance, le statut on-chain et le caractère commité ou annulé. Depuis `0.4.1-pre.014`, le même contrat inclut les payloads ordonnés des instructions outer. `contextual_input_hash` sérialise l’ensemble du contexte, trie récursivement les clés d’objets et conserve l’ordre des tableaux. Un changement de payload outer modifie donc le hash, tandis qu’un contexte identique produit un hash stable. Le crate reste indépendant de PostgreSQL, Tauri et des fournisseurs RPC.