Files
sanctuary/inventory

Inventaire de migration Sanctuary 26.2

Statut : inventaire complet et validé. Ce dossier documente l'ancien worktree sans modifier ni migrer aucun mod historique.

1. Référence et périmètre

Élément Valeur
Commit de base b14fbe561ac99054f17ae56caee9eebee3dbcbb6 (main)
État audité Worktree courant, y compris les modifications et fichiers non suivis
Version source Minecraft 26.1.2, Fabric Loader 0.19.2, Java 25
Version cible documentée Minecraft 26.2, Java 25
Modules Fabric trouvés 41
Java 620 fichiers pertinents : 618 sous src/ et 2 générateurs Blocodex
Tests 23 classes de tests unitaires et 1 classe GameTest Canaplia
Ressources 1 619 fichiers bruts; 5 .DS_Store sous resources/ explicitement exclus
Couverture technique 2 552 fichiers primaires + 843 entrées extraites = 3 395 lignes dans artifacts.csv
Features classifiées 86

L'état Git complet servant de photographie de référence se trouve dans baseline-status.txt. Les éléments suivants sont hors périmètre : sanctuary-minecraft.fr, .codex-revert, .tmp_fabric_src, caches, sorties build/, dossiers run/, logs, classes compilées et archives JAR/ZIP comme contenu source. Les JAR et packs sont toutefois inspectés comme preuves de déploiement.

2. Livrables et contrat

  • features.csv est la matrice de décision. Chaque ligne représente une feature cohérente avec un propriétaire principal, ses dépendances, son propriétaire de persistance, son côté d'exécution, sa disposition, son risque et ses preuves.
  • artifacts.csv est l'index exhaustif. Chaque fichier pertinent possède exactement une ligne primaire; des lignes supplémentaires recensent entrypoints, mixins, commandes, IDs, payloads et clés persistantes.
  • build-results.csv contient le résultat reproductible des 41 builds Minecraft 26.1.2.
  • baseline-status.txt fixe le commit, les compteurs et l'état dirty sans inclure les fichiers de cet inventaire.
  • tools/scan_inventory.py régénère l'index et vérifie les schémas, les références, les chemins, la couverture et les collisions.
  • tools/run_build_audit.py relance les builds sans modifier les sources historiques.

Commandes depuis la racine du dépôt :

python3 26.2/inventory/tools/scan_inventory.py --check
python3 26.2/inventory/tools/run_build_audit.py --jobs 4 --timeout 600

Les identifiants de systèmes autorisés sont anotherworld, itsalive, ambiance, redstoner, iliketomoveit, ouch, onlyfun, sanctuary, events et masterkey. Une ligne sans propriétaire n'est valide que si sa disposition est explicitement retire, packaging ou une fusion d'infrastructure.

3. Répartition des features

Destination principale Features
Another World 12
It's Alive ! 13
Ambiance 11
Red-Stoner 11
I Like To Move It 9
Ouch 6
Only Fun 5
Sanctuary 4
Events 2
MasterKey 5
Hors gameplay / retrait 8

Dispositions : 17 migrations directes, 48 découpages, 14 fusions, 4 retraits et 3 éléments de packaging. Risques : 46 features critiques, 30 élevés, 6 moyens et 4 faibles. Le niveau critique signale principalement une sauvegarde, un registry, du worldgen, un payload, un mixin ou une identité qui ne doit pas changer silencieusement.

Conclusions structurantes

  • Canon est un système photographique avec capture, film, composants de données et création de cartes. Il est attribué à Red-Stoner avec Ambiance et Another World comme dépendances; il n'appartient pas à Ouch.
  • Demeure ne génère actuellement aucune demeure : il stocke des empreintes d'habitation géographiques par chunk. Il appartient donc à Another World et dépend du vivant et de l'Atlas.
  • Le mod actuel Worldgen/sanctuary est un preset de monde flottant. Son implémentation matérielle appartient à Another World, même si Sanctuary pourra donner un sens à ce monde dans la progression.
  • Ambiance décide aujourd'hui automatiquement du déclenchement de phénomènes. La planification et sa SavedData sont attribuées à Events; Ambiance conserve uniquement leur synchronisation et leur représentation.
  • Portals contient au moins six responsabilités : passage, matériaux, dimensions, worldgen, créatures, combat/progression de boss et atmosphère. Il doit être découpé, pas déplacé en bloc.
  • Malongo, PepperDream, Adresseur et Voidloop sont des squelettes sans mécanique observable et sont candidats au retrait.
  • Le branding, le MOTD et Discord RPC ne sont pas forcés dans un système de gameplay. Ils restent des responsabilités de packaging; seul le filtre de logs utile est proposé pour MasterKey.

4. Résumé par mod historique

La colonne Java/Ressources/Tests compte les fichiers sous src/; les .DS_Store sont exclus des ressources.

Module Features Destinations Disposition Risque max. Java/Ressources/Tests Build 26.1.2
Decoration/miroir (miroir) 2 ambiance, anotherworld split high 10/20/0 pass
Decoration/prospector_hat (prospector_hat) 1 redstoner migrate high 8/5/0 pass
Decoration/umbrella (umbrella) 1 anotherworld split high 8/10/0 pass
Farming/canaplia (canaplia) 4 ambiance, itsalive split high 52/554/11 pass
Farming/malongo (malongo) 1 retire retire low 2/3/0 pass
Fun/abjection (abjection) 2 onlyfun, ouch split high 4/15/0 pass
Fun/canon (canon) 1 redstoner migrate critical 21/34/3 pass
Fun/gunz (gunz) 1 ouch migrate high 6/20/0 pass
Fun/lucky_block (lucky_block) 1 onlyfun migrate high 8/11/0 pass
Fun/pepperdream (pepperdream) 1 retire retire low 2/3/0 pass
Gameplay/atlas (atlas) 2 iliketomoveit migrate critical 8/6/0 pass
Gameplay/blocodex (blocodex) 4 anotherworld, redstoner split critical 58/30/7 pass
Gameplay/computer (computer) 2 redstoner merge critical 23/41/0 pass
Gameplay/economy (economy) 3 anotherworld, redstoner, sanctuary split critical 11/65/0 pass
Gameplay/harder (harder) 2 ouch, sanctuary split high 2/4/0 pass
Gameplay/minecrafter (minecrafter) 6 ambiance, anotherworld, iliketomoveit, ouch split high 36/21/0 pass
Gameplay/realtime (realtime) 2 ambiance split critical 8/4/0 pass
Graphics/ambiance (ambiance) 3 ambiance, events migrate, split critical 21/9/0 pass
Graphics/dynamic_torches (dynamic_torches) 1 ambiance migrate critical 6/5/0 pass
Interfaces/helloworld (helloworld) 4 masterkey, merge, packaging merge, migrate, packaging critical 24/7/0 pass
Interfaces/sanctuary_rpc (sanctuary_rpc) 1 packaging packaging medium 6/3/0 pass
Mobs/happy_creeper (happy_creeper) 1 itsalive merge critical 23/68/0 pass
Mobs/mobopia (mobopia) 3 itsalive merge critical 32/20/0 pass
Mobs/no_phantoms (no_phantoms) 1 itsalive merge medium 1/3/0 pass
Mobs/pipallon (pipallon) 1 itsalive merge critical 9/12/0 pass
Mobs/real_ghost (real_ghost) 1 itsalive merge critical 14/16/0 pass
Mobs/villagers (villagers) 1 itsalive migrate medium 2/4/0 pass
Multiplayer/admin (admin) 3 masterkey merge, migrate critical 19/4/0 pass
Multiplayer/events (events) 1 events migrate critical 8/3/0 pass
Redstone/adresseur (adresseur) 1 retire retire low 2/3/0 pass
Redstone/drawer (drawer) 1 anotherworld migrate critical 6/7/0 pass
Redstone/redstone_computer (redstone_computer) 4 masterkey, redstoner merge, split critical 41/117/2 pass
Redstone/weather_tnt (weather_tnt) 3 anotherworld, onlyfun, ouch split high 6/11/0 pass
Structures/demeure (demeure) 1 anotherworld migrate critical 19/4/0 pass
Techniques/voidloop (voidloop) 1 retire retire low 2/3/0 pass
Transport/ibelievechickenfly (ibelievechickenfly) 3 itsalive, onlyfun split critical 15/16/0 pass
Transport/magiccarpet (magiccarpet) 1 iliketomoveit migrate high 3/3/0 pass
Transport/spiderman (spiderman) 2 iliketomoveit split critical 19/23/0 pass
Transport/waystone (waystone) 1 iliketomoveit migrate critical 11/10/0 pass
Worldgen/portals (portals) 10 ambiance, anotherworld, iliketomoveit, itsalive, ouch, sanctuary split critical 54/389/0 pass
Worldgen/sanctuary (sanctuary) 1 anotherworld split critical 8/28/0 pass

5. Doublons et collisions

Implémentations concurrentes

Famille Constat Décision d'inventaire
Mobopia / Happy Creeper / Pipallon / Real Ghost Mobopia embarque des copies sous son propre namespace, parfois plus anciennes que les mods autonomes. Fusionner feature par feature dans It's Alive et préserver/aliaser les deux lignées d'IDs.
No Phantoms / Real Ghost Les deux retirent les phantoms. Conserver une règle unique dans It's Alive.
Computer / Blocodex / Redstone Computer Trois ordinateurs, deux studios voxel et plusieurs profils/catalogues se chevauchent. Consolider les données avant tout déplacement de classes.
HelloWorld / Sanctuary RPC HelloWorld embarque une seconde pile Discord IPC. Garder une seule implémentation de packaging.
MagicCarpet / Admin Deux plateformes volantes distinctes : Totem de Notch et commande opérateur. Mutualiser le moteur de déplacement, pas la règle d'accès.
Economy / Portals Les deux exposent un ruby_block avec des namespaces différents. Pas de collision actuelle, mais clarifier s'il s'agit du même matériau avant migration.

Le scanner ne trouve aucun doublon de mod ID Fabric ni collision exacte d'ID de registry/payload entre deux modules. Il trouve 18 familles de noms de clés persistantes partagées. Elles ne collisionnent pas nécessairement aujourd'hui, car leurs conteneurs NBT/SavedData sont distincts, mais elles deviennent dangereuses pendant une fusion :

  • ButterflyVariant et GhostVariant entre Mobopia et les mods autonomes;
  • HappyFlowerId, HappyFlowerReady, HappyFlowerRegrowTicks, HappyFollowTarget et HappyPowered entre les deux Happy Creeper;
  • cells, depth, height, palette et width entre Blocodex et Computer;
  • created_at, name et updated_at entre Canon et/ou les ordinateurs;
  • x, y et z entre Canon et Blocodex.

6. Écart sources, liste et distribution

modlist.txt

modlist.txt contient 29 entrées, toutes résolubles vers un module source. Douze modules sources n'y figurent pas :

miroir, prospector_hat, computer, economy, sanctuary_rpc, happy_creeper,
pipallon, real_ghost, admin, events, weather_tnt, demeure

GNU OK/

Le dossier contient 34 JAR lisibles dont les mod IDs et versions correspondent aux manifests sources. Sept modules sources n'y ont pas de JAR courant :

admin, computer, demeure, economy, miroir, prospector_hat, umbrella

Le JAR computer-1.0.0.jar est supprimé de GNU OK/ dans le worktree, tandis qu'une copie Gameplay/computer/computer-1.0.0.jar.disabled subsiste comme artefact non source.

sanctuary.mrpack

L'index Modrinth cible Minecraft 26.1.2 et Loader 0.19.2. Son tableau files est vide : l'installation réelle est déléguée au bootstrap Packwiz inclus dans les overrides. Le cache Packwiz référence Fabric API et seulement 18 mods maison. Les 23 modules sources absents sont :

abjection, admin, adresseur, atlas, blocodex, canaplia, demeure, drawer,
economy, events, lucky_block, magiccarpet, malongo, miroir, mobopia,
no_phantoms, pepperdream, prospector_hat, redstone_computer, sanctuary_rpc,
umbrella, voidloop, weather_tnt

Cette divergence interdit d'utiliser le pack seul comme liste canonique de fonctionnalités.

7. Compatibilité et portage Minecraft 26.2

L'index contient notamment 198 références de registry extraites, 39 payload IDs, 187 clés persistantes, 5 SavedData IDs explicitement reconnus, 30 classes mixin, 29 cibles mixin, 72 littéraux de commandes, 9 dimensions et 135 ressources worldgen.

Priorités de préservation :

  1. Dimensions et worldgen de portals et sanctuary.
  2. SavedData de Waystone, Demeure, Ambiance/Events, Economy, Blocodex, Admin et Redstone Computer.
  3. Données de block entities de Drawer, ordinateurs, delivery boxes, miroir, poulie et waystones.
  4. Entités dupliquées Mobopia/autonomes et leurs clés NBT.
  5. Payload IDs et protocoles réseau avant fusion des ordinateurs.
  6. Recettes, advancements, loot tables et ressources dont le namespace change.

Les 41 builds actuels réussissent sur 26.1.2. Aucun build 26.2 n'a été tenté, conformément au périmètre d'inventaire. La cible officielle de référence est actuellement Minecraft 26.2, Loader 0.19.3, Loom 1.17-SNAPSHOT, Fabric API 0.154.2+26.2, Gradle 9.5.1 et Java 25 : Fabric Develop et guide de portage Fabric 26.2.

Le build historique n'est pas complètement uniforme : 40 modules utilisent Loom 1.16-SNAPSHOT et Fabric API 0.148.0+26.1.2, tandis que Portals utilise Loom 1.16.2 et Fabric API 0.149.0+26.1.2. Les 41 wrappers utilisent Gradle 9.4.1, alors que le pack Packwiz met déjà en cache Fabric API 0.154.0+26.1.2. Ces écarts doivent être supprimés par la future racine multi-projet avant le portage de code.

Aucun appel OpenGL brut n'a été détecté. Le code de rendu emploie déjà Blaze3D/RenderPipeline, mais 30 mixins et trois usages de réflexion dans Canon, Computer et Blocodex restent des risques forts pour 26.2. Les packs Golden Days utilisés par Alpha restent externes et ne doivent pas être réemballés. Canaplia est le seul manifest sous licence All Rights Reserved; les 40 autres annoncent GPL-3.0-or-later.

8. Points à confirmer avant migration

Sept attributions ont une confiance moyenne et doivent recevoir une validation de conception avant déplacement de code :

  • scanner du Prospector Hat → Red-Stoner;
  • protection physique de l'Umbrella → Another World;
  • transactions Economy → Sanctuary et boîtes de livraison → Red-Stoner;
  • zoom Minecrafter → Ambiance;
  • filtre de logs HelloWorld → MasterKey;
  • Drawer → Another World plutôt que Red-Stoner.

Toutes les autres lignes ont une attribution à confiance élevée. La future racine Gradle multi-projet et les dix modules sont seulement enregistrés comme destination conceptuelle : ils ne sont ni créés ni compilés par cet inventaire.