# RECIPES-035 — collections Minecraft jouables Branche `codex/collections-beta035`, base beta.034. Contrat tiré des [67 collections](collections-minecraft.md) et de leur [inventaire exhaustif](collections-minecraft-inventaire.md). ## Contrat et reprise des habitants Les **2 042 recettes natives de Minecraft 26.3-pre-2** ont chacune leur collection principale. Les **126 advancements** ouvrent les familles du tableau : chaque advancement configuré suffit, sans achat du catalogue ni possession des ingrédients. Les collections de survie s’ouvrent également à la découverte d’un membre admissible ou d’une amorce. Comme depuis beta.024, « découverte » utilise les connaissances existantes : observation réelle d’un bloc, objet connu, inventaire ou statistiques natives. La lecture d’un plan ne crée jamais une découverte de son résultat ou de ses ingrédients. La fabrication manuelle reste libre. 66 familles de survie et une référence technique sont livrées. La référence `sanctuary:technical_catalogue` n’a aucun déclencheur de survie et ne s’ajoute pas au carnet personnel, même avec un œuf de familier. Les blocs sans objet et les blocs non récupérables (bedrock, générateurs, cadres de portail, etc.) ne sont pas transformés en amorces d’inventaire. Les familles sans recette peuvent être connues sans produire un faux gain de plans. **Migration additive sans changement de format :** la pièce jointe `sanctuary:recipe_knowledge` reste en schéma 1 ; aucun champ de sauvegarde n’est ajouté, supprimé ou réinterprété. Au prochain chargement de leur carnet, les habitants reçoivent les compléments correspondant à leurs collections déjà ouvertes, objets connus et advancements déjà accomplis. Tous les identifiants et recettes déjà appris restent conservés, même absents des nouvelles données. Aucun monde existant n’est ouvert ou réécrit par la livraison. `sanctuary:basic_wood` et `sanctuary:brewing` restent stables. Le bois conserve son ancien tag `minecraft:planks` et **40 recettes complémentaires** de bateaux et menuiseries du Nether ; les 170 recettes primaires restent classées séparément. L’alchimie conserve le sélecteur `minecraft:brewing`, y compris les recettes de ce type ajoutées par un datapack ou un mod, en plus de ses 286 recettes primaires. Cette compatibilité ne révèle pas les pistons ou les boucliers avec une planche. L’achat unique du catalogue reste à **4 niveaux**. ## Données et consultation Les 67 JSON sont dans `data/sanctuary/sanctuary_recipe_collections/`. `recipes` contient le classement principal ; `additional_recipes` préserve les accès historiques. `items`, `item_tags` et `advancements` sont des portes alternatives. `members.blocks` / `members.items` conservent le classement exact des identifiants pour les futures fiches ; ces listes ne constituent pas des possessions requises. `operator_only` empêche une définition technique de devenir un déblocage personnel. Le chargement indexe objets, tags et advancements une fois par rechargement de ressources. Une collection déjà enseignée ne reparcourt pas ses recettes à chaque actualisation d’habitant. `/reload` renouvelle cet index et réconcilie une fois les carnets ; aucune recette déjà apprise n’est retirée. **Discovery → Recettes** affiche les noms FR/EN des collections connues. L’accès au catalogue reste en haut, avant la liste, afin que les nouvelles collections ne repoussent pas le bouton d’ouverture. Les notifications beta.034 signalent les collections nouvellement ouvertes et regroupent les lots ; les reconnexions ne rejouent pas l’historique. Les fiches détaillées d’obtention, le musée visuel de tous les blocs, les gestes sans recette (commerce, oxydation, croissance…), quêtes et bounties restent à concevoir. Aucune recette artificielle ni expansion de dimension n’est ajoutée. ## Compléter le catalogue Modifier les deux documents de référence, puis exécuter : ```sh python3 scripts/compile_collections.py --write python3 scripts/compile_collections.py ``` Le contrôle compare les deux directions advancement/collection, les 2 042 recettes uniques, les 1 815 identifiants distincts, les amorces, les définitions serveur et les noms FR/EN. Il est intégré à `check` ; les tests Minecraft confrontent ensuite ces identifiants aux registres et recettes réellement chargés. Le générateur ne télécharge rien et ne modifie ni les recettes natives ni les documents sources. ## Vérifications et livraison `./gradlew check build assemblePack assembleTestPack` avec les suites `collections,recipes,notifications,progression,cycle` réussit : **28 tests serveur**. La matrice exerce les **126 advancements**, les 66 voies de découverte des familles, les identifiants des registres réellement chargés, les limites bois/machines, les amorces du lit, de l’alambic, du fabricateur et de la brosse, l’isolation des habitants et la reprise des carnets beta.034. Les 2 042 recettes primaires sont comparées à l’ensemble des recettes vanilla chargées, sans identifiant manquant. Le parcours client natif final réussit sur le profil plat : achat réel du catalogue, familles enseignées par advancement sans ingrédients, consultation effective des plans de Shulker, transfert depuis la sixième rangée, vue opérateur et révocation, notifications, rendu FR/EN après rechargement terminé, puis véritables New Game+, mort/respawn et redémarrage du serveur. Les nouvelles collections et le reçu du catalogue sont conservés dans ces trois passages. Les captures sont dans `build/collections035-evidence`. L’assemblage final après les vérifications client utilise `assemblePack assembleTestPack -x check`, sans répéter les tests serveur déjà passés. Les classes du moteur serveur correspondent à celles vérifiées ; ZIP, 1 322 classes Sanctuary, 67 définitions, traductions, dépendances imbriquées et profil facultatif ont été comparés aux builds. JEI conserve exactement son binaire `30.32.0-sanctuary.2`. - [Sanctuary-beta.035.mrpack](../build/Sanctuary-beta.035.mrpack), pack normal. - [Sanctuary-Test-beta.035.mrpack](../build/Sanctuary-Test-beta.035.mrpack), profil plat rapide. SHA-256 normal : `dfcf5927eaef183fe582b95454480849a08353561cb66d83a514d8a0274b5c60`. SHA-256 test : `f94f216b5b09c7ebeafea45a8d735978a4efc354aa245ffbfd993ee7e6db2b24`. Reçu : `build/collections035-artifact.json`. Journaux : `build/collections035-check.log`, `build/collections035-client-final.log` et `build/collections035-assemble-final.log`. Client et serveur beta.035 ensemble, sur Minecraft 26.3-pre-2 / Loader 0.19.5 / Fabric API 0.160.0+26.3. Les exports antérieurs sont inchangés. Aucun canal de distribution, instance Prism personnelle ou monde existant n’a été modifié.