# STAT-02 — Atelier d’argile et orientation — beta.111 Contrat du 17 septembre 2026, branche `codex/clay-workshop-ui-beta111`. ## Résultat attendu Le menu utilise le cadre `task_frame_unobtained.png` fourni par le créateur, sans retouche, comme sprite Sanctuary avec les métadonnées nine-slice natives de Minecraft. Les coins restent à leur taille d’origine. Catalogue, aperçu, fabrication, explications et inventaire évolutif tiennent dans ce cadre. La texture reste remplaçable par un pack de ressources. La pose d’un statuaire suit le regard horizontal du joueur, dans les quatre directions. Le bouton Tourner règle toujours l’orientation du modèle importé. Le placement ajoute ensuite l’orientation du bloc sans réécrire ses voxels. ## Contrat de compatibilité préalable Ajout de la propriété native `facing` au bloc `sanctuary:statuary`, avec `south` par défaut : cette orientation correspond au rendu historique, sans rotation. Les anciens états sans propriété prennent cette valeur à la lecture et gardent leur apparence. Aucun parcours ni réécriture des anciens chunks n’est effectué. Le schéma 1 de la sculpture, ses voxels, ses identifiants et les données des objets restent identiques. Casser puis reposer utilise le nouveau regard, sans cumuler les orientations précédentes. Rotation et miroir de structures transforment l’état du bloc. La collision cubique reste celle déjà livrée. ## Texture Le fichier fourni, 26 × 26 pixels, est conservé octet pour octet sous `assets/sanctuary/textures/gui/sprites/container/clay_workshop/frame.png`. Le fichier adjacent `.png.mcmeta` utilise le moteur `nine_slice` de Minecraft avec une bordure fixe de quatre pixels et un centre extensible. L’identifiant du sprite est `sanctuary:container/clay_workshop/frame` ; aucun sprite global Minecraft n’est remplacé. Les emplacements utilisent `minecraft:container/slot`. ## Vérifications natives `Statuary106ClientChecks`, étendu aux cas beta.111, passe en **1 min 3 s** sur Minecraft 26.3, avec serveur intégré et monde plat jetable de graine 106 : - Fabrication payée, restitutions, Maj-clic et teintes des seize argiles. - Menu FR/EN aux échelles 2 et 3, cases et actions contenues dans le cadre. - Six rangées d’inventaire à l’échelle 3 : affichage borné et défilement. - Vrais clics de pose aux quatre points cardinaux : état côté serveur, transmission au client et rotation du rendu alignés sur le regard. - Rotation et miroir de structures ; lecture d’un ancien état sans `facing`. - Butin d’une statue orientée au nord puis repose vers l’ouest : nouvelle orientation, mêmes voxels. Sauvegarde/réouverture et transmission sans GLB. - Conversion au Métabli et annulation d’import conservées. Commande : ```sh ./gradlew :sanctuary:runClientGameTest \ -PsanctuaryClientTests=true -PsanctuaryStatuary106ClientTests=true \ -PsanctuaryClientNoVsync=true -PsanctuaryQuickTests=true ``` Marqueurs `STATUARY106_PASS`, `STATUARY106_INTEROP_PASS` et `STATUARY111_PASS` dans `build/clay-ui111-client.log`. Captures dans `build/clay-ui111-evidence/`, dont les menus français et anglais relus visuellement. Le GameTest dédié reste exclu conformément au refus antérieur de son EULA. Les essais tournent sur macOS avec serveur intégré ; pas de validation depuis deux ordinateurs ni sur Windows. Aucun monde personnel n’est ouvert. ## Livraison vérifiée `./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest` passe en **2 min 33 s**, 125 tâches. Les sources JAR correspondent exactement aux fichiers Java du dépôt. Le contenu du mod hors classes et ressources de ce ticket est identique à beta.110 ; œufs, neige et fonte restent inclus. Les deux MRpack contiennent le même JAR vérifié, sans monde, GLB ni classe de test. - Pack normal : `build/Sanctuary-beta.111.mrpack`, 10 169 372 octets, SHA-256 `f83098f80ac2edb8e32877bf8d5a362cd75f2fa9020593c2c7e4f9abe8b3e9f6`. - Pack Test : `build/Sanctuary-Test-beta.111.mrpack`, 10 188 298 octets, SHA-256 `1234b10eb4685d99aa7421de46bc54fd114b791f1b4d63803a09afc926d2c9d9`. - JAR Sanctuary : SHA-256 `b3e967db7b336b970e4121981e3ef8140fe90f0ecc5850ce90a70caaf3772684`. Reçu local : `build/clay-ui111-artifact.json`. ## Publication et installation La [release beta.111](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.111) est publiée depuis le commit source `289697becf19db4acf50d224b1dd3d753eff1153`. Le tag exact et les artefacts sont immuables ; leurs téléchargements publics ont été vérifiés. Le canal packwiz avance au commit `87c9f81761309316c601ed32fa922c1a5893952c`. Deux synchronisations isolées puis deux passages dans l’instance existante **Sanctuary Beta** ont réussi. Un seul JAR Sanctuary beta.111 est actif ; le second passage conserve les mêmes hashes. Les **923 fichiers personnels et réglages suivis** restent identiques. Aucun monde personnel n’a été ouvert. La sauvegarde ciblée est dans `sanctuary-backups/before-beta.111/` de cette instance. Reçus : `build/clay-ui111-isolated.json` et `build/clay-ui111-prism.json`.