# beta.058 — altitude de la carte Ticket `codex/atlas-altitude-beta058`. ## Contrat avant implémentation Deux boutons ↑ / ↓ sous Recentrer et le zoom choisissent les plafonds 0, 140, 280, 420, 560 et 640. La carte ouvre à 640 (surface habituelle) ; chaque plafond montre le premier bloc coloré situé à cette altitude ou plus bas. C'est une coupe horizontale : une roche coupée reste visible, sans chercher automatiquement une grotte. Le dernier pas fait 80 blocs. La position et le zoom ne changent pas. Les extrémités désactivent leur bouton. Chunks et Demeure sont désactivés par défaut, réactivables par leurs boutons. Le cadre central et ses quatre panneaux assombris sont retirés. Le nord conserve son emplacement. Les relevés restent personnels et utilisent le même masque d'exploration horizontal qu'auparavant. Les six plafonds sont relevés lors des nouvelles visites, même avant l'achat de Grande carte. Aucun chunk distant n'est chargé ou généré. La vue opérateur inspecte seulement les chunks chargés et n'inscrit pas ses consultations dans les découvertes personnelles. ## Contrat de données additif Le fichier existant `data/sanctuary-atlas/.json` et son schéma 2 restent la référence de la surface à 640. Aucune conversion ni réinterprétation des anciens pixels. Les cinq autres plafonds utilisent le même format dans des fichiers distincts `data/sanctuary-atlas/layers//.json`. Les anciens relevés de surface ne permettent pas d'inventer leurs couleurs inférieures : ces dernières apparaissent lors des revisites. Un retour à beta.057 ignore simplement les fichiers supplémentaires ; la surface reste lisible. Aucun monde personnel n'est ouvert ou modifié pendant le travail. Chaque plafond conserve la limite de 16 384 chunks. Le client ne garde que la couche affichée ; le token réseau change avec l'altitude, empêchant les anciens paquets de repeindre une autre couche. Le protocole `atlas_request` ajoute un plafond validé : client et serveur doivent avoir la même version. Le serveur relève un chunk à la fois et saute les sections entièrement vides. Les sauvegardes périodiques des couches sont étalées dans le temps. ## Vérifications Le parcours natif `Atlas058ClientChecks` réussit sur la version finale en **1 min 44 s**, avec un vrai monde de développement Sanctuary de 640 blocs de haut : - couleurs différentes aux six plafonds, coupe inclusive, verre transparent, colonne vide, accord entre le relevé d'une couche et celui des six couches ; - absence de chargement d'un chunk distant et masque d'exploration conservé ; - clics réels sur les boutons, limites 0/640, changement rapide, rejet des anciens paquets terrain et Demeure, cadrage/zoom stables après rafraîchissement ; - relecture des six fichiers, absence de réécriture quand rien ne change, achat de Grande carte après relevé, refus d'une requête opérateur non autorisée ; - codec réseau, refus des altitudes invalides, libellés FR/EN, petite interface ; - Chunks/Demeure désactivés à l'ouverture mais réactivables, absence du cadre assombri et emplacement du nord conservé (captures inspectées). Commande : ```sh ./gradlew :sanctuary:runClientGameTest -x :sanctuary:runGameTest \ -PsanctuaryClientTests=true -PsanctuaryAtlas058ClientTests=true \ -PsanctuaryQuickTests=true ``` Journal : `build/atlas058-client.log`, marqueur `ATLAS058_PASS`. Captures inspectées : `build/atlas058-evidence/`. Le brouillard reste horizontal, comme dans les cartes existantes : ce lot n'introduit pas de visibilité optique ni de journal de découverte par caverne. Demeure reste une empreinte de chunk, sans séparation verticale des bâtiments. Au plafond maximal, les pixels de surface restent compatibles ; les anciens parcours ne sont pas reconstruits aux autres altitudes sans revisite. La charge d'un serveur rempli pendant une saison n'a pas été mesurée. Le plafond théorique est de 24 Mio de couleurs brutes par joueur pour six couches pleines, hors index et sérialisation, contre 4 Mio pour la surface seule. Chaque fichier reste borné à 12 Mio ; un fichier invalide est préservé et suspend l'atlas du joueur concerné. Les sauvegardes tournent sur les six couches toutes les 12 secondes, puis sont vidées à la déconnexion/fermeture. Aucun serveur dédié démarré, aucune EULA acceptée. ## Livraison vérifiée `check build assemblePack assembleTestPack`, avec compilation des tests client et exclusion du serveur dédié `runGameTest`, réussit en **2 min 23 s** (`build/atlas058-check.log`). 1 601 classes du JAR correspondent au build. ZIP, versions, ressources, isolation du mod de test et JAR embarqués contrôlés. JEI et le code Demeure sont inchangés. Les archives beta.057 restent intactes. - Pack normal : `build/Sanctuary-beta.058.mrpack`, 5627223 octets ; SHA-256 `bc9af60be020fd32f99a173638e9006cab128cf942df666e34e03824bac6f892`. - Pack de test : `build/Sanctuary-Test-beta.058.mrpack`, 5646157 octets ; SHA-256 `010eb08df83117669d2f13d3c2e8641c965fac3ddec11fbab419f01a9cb94942`. - Reçu : `build/atlas058-artifact.json`. Aucune publication de canal ni synchronisation d'instance personnelle.