<!-- CODERS100 · part 32 -->
: { block: 64, special: 16, tool: 1 },
    creative: 'infinite',
  },

  /* === DEPLOYING === */
  deploying: {
    // Tap hotbar → tap world → ghost preview → tap commits if valid
    flow: ['select', 'aim', 'ghost-preview', 'commit'],
    ghost: { valid: '0x00ff00', invalid: '0xff0000', opacity: 0.4 },
    // Invalid: red ghost, no consume, no placement
    invalidHandling: 'red-ghost-no-consume',
    // Pick-block: tap existing block → load type into active slot
    pickBlock: true,
  },

  /* === UNDO/REDO === */
  undo: {
    pattern: 'Command-Pattern',  // {execute, undo} per command, never faked
    depth: 200,                   // edits (web standard)
  },

  /* === TOUCH === */
  touch: {
    // Gesture disambiguation
    gestures: { tap: 'place', hold: 'mine', drag: 'look' },
    holdThreshold: 500,    // ms for long-press
    slop: 10,              // px movement before drag
    // Hygiene
    touchAction: 'none',
    perPointerTracking: true,  // by identifier
    uiStopPropagation: true,   // UI touches never leak to canvas
  },

  /* === UI === */
  ui: {
    // Circular icon buttons. Never pill switches. Never ON/OFF text.
    buttons: 'circular-icon-only',
    forbidden: ['pill-switches', 'on-off-text', 'toggle-switches'],
    // Hotbar: tappable, gold frame on active
    hotbar: { selectable: 'tap', activeIndicator: 'gold-frame' },
    // King's law: icons only, no types, no keys, no numbers
    inputLaw: 'icons-only',
  },

  /* === SOUND === */
  sound: {
    engine: 'Web-Audio-API-synthesized',
    files: 'none',
    maxDuration: 0.3,  // seconds — all short
    effects: {
      place:  { f0: 800,  f1: 1600, dur: 0.12, type: 'square',   vol: 0.12 },
      pickup: { f0: 600,  f1: 1200, dur: 0.10, type: 'sine',     vol: 0.15 },
      brk:    { f0: 400,  f1: 100,  dur: 0.15, type: 'sawtooth', vol: 0.10 },
      click:  { f0: 1000, f1: 1000, dur: 0.05, type: 'square',   vol: 0.08 },
      error:  { f0: 200,  f1: 150,  dur: 0.20, type: 'sawtooth', vol: 0.10 },
      swim:   { f0: 300,  f1: 600,  dur: 0.18, type: 'sine',     vol: 0.08 },
      jump:   { f0: 400,  f1: 800,  dur: 0.12, type: 'triangle', vol: 0.12 },
      land:   { f0: 300,  f1: 150,  dur: 0.10, type: 'sine',     vol: 0.10 },
      spin:   { f0: 500,  f1: 2000, dur: 0.15, type: 'sawtooth', vol: 0.08 },
      undo:   { f0: 1200, f1: 600,  dur: 0.12, type: 'square',   vol: 0.10 },
    },
  },

  /* === PHYSICS CONSTANTS === */
  physics: {
    minimum: 0.13,  // the King's eyes — nothing smaller
  },
};

// Freeze it — unchangeable
Object.freeze(MASTER);
Object.freeze(MASTER.character);
Object.freeze(MASTER.camera);
Object.freeze(MASTER.animation);
Object.freeze(MASTER.blocks);
Object.freeze(MASTER.pickup);
Object.freeze(MASTER.inventory);
Object.freeze(MASTER.deploying);
Object.freeze(MASTER.undo);
Object.freeze(MASTER.touch);
Object.freeze(MASTER.ui);
Object.freeze(MASTER.sound);
Object.freeze(MASTER.physics);

// Export for server and client
if(typeof module !== 'undefined' && module.exports){
  module.exports = MASTER;
}
if(typeof window !== 'undefined'){
  window.MASTER_MECHANICS = MASTER;
}

})();


/* deletefreeze1 — THE KING'S SOLE OVERRIDE
 * The only code that can unfreeze the mastered mechanics.
 * By the King's word alone. No other code, no other hand.
 */
(function(){
  if(typeof window !== 'undefined'){
    window.deletefreeze1 = function(){
      // The King speaks — the freeze is lifted
      console.log('The King has spoken. The freeze is lifted.');
      // Return the unfrozen mechanics for modification
      var m = window.MASTER_MECHANICS;
      // Create a mutable copy (the frozen original remains as record)
      var unfrozen = JSON.parse(JSON.stringify(m));
      window.MASTER_MECHANICS_LIVE = unfrozen;
      return unfrozen;
    };
  }
  if(typeof module !== 'undefined' && module.exports){
    module.exports.deletefreeze1 = function(){
      var m = module.exports;
      var unfrozen = JSON.parse(JSON.stringify(m));
      return unfrozen;
    };
  }
})();


===== FILE: public/coders100/three.min.js =====
/**
 * @license
 * Copyright 2010-2021 Three.js Authors
 * SPDX-License-Identifier: MIT
 */
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).THREE={})}(this,(function(t){"use strict";const e="128",n=100,i=300,r=301,s=302,a=303,o=304,l=306,c=307,h=1e3,u=1001,d=1002,p=1003,m=1004,f=1005,g=1006,v=1007,y=1008,x=1009,_=1012,w=1014,b=1015,M=1016,S=1020,T=1022,E=1023,A=1026,L=1027,R=33776,C=33777,P=33778,D=33779,I=35840,N=35841,B=35842,z=35843,F=37492,O=37496,H=2300,G=2301,U=2302,k=2400,V=2401,W=2402,j=2500,q=2501,X=3e3,Y=3001,Z=3007,J=3002,Q=3004,K=3005,$=3006,tt=7680,et=35044,nt=35048,it="300 es";class rt{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexO