RACE / FORM custom MODELS (the "Custom Model" field in /sdu race and /sdu form).

DragonMineZ loads these ONLY from ITS OWN namespace at a fixed path - it does NOT read the
pack's npcmodels/ folder for race/form models. Two separate things can go wrong:
  * geo missing  -> DMZ silently renders the plain human model (a generic human, no error).
  * geo found but skin texture missing/misnamed -> the PURPLE-AND-BLACK "missing texture".
So a purple/black model means the .geo.json loaded fine but no matching skin PNG was found.

1. GEO MODEL - put the GeckoLib geo here:
     assets/dragonminez/geo/entity/races/<model>.geo.json
   <model> (lowercase) is exactly what you type/pick in the Custom Model field, and it
   appears in the editor dropdown once the file is in a loaded pack. If your race has genders,
   ship <model>_male.geo.json and <model>_female.geo.json instead (pick "<model>" - DMZ adds
   the suffix). The model must use DMZ's player bone names (root/waist/head/right_arm/...).

2. SKIN TEXTURES - the folder is named after the RACE (raceName), and the file names are
   prefixed with the CUSTOM MODEL name (the "Custom Model" value). For a race whose id is
   <race> using Custom Model <model>:
     assets/dragonminez/textures/entity/races/<race>/<model>_<gender>_<bodyType>_layerN.png
   where:
     <gender>   = male or female. (Drop the "_<gender>" only if the race has "Has Gender" OFF.)
     <bodyType> = the body-type NUMBER: 0, 1, 2. Characters can be any of these, so you MUST at
                  least ship the 0 files or you get purple/black. (defaultBodyType is only the
                  starting value.)
     _layerN    = _layer1 is the base body (REQUIRED when "Is Layered" is ON, the default);
                  _layer2/_layer3 are optional extra tint layers coloured by Body Color 2/3.
                  If "Is Layered" is OFF, use NO _layerN suffix.

   >>> CAUSES OF PURPLE/BLACK, in order: (a) wrong prefix - it is the MODEL name, NOT "human"
       or "bodytype"; (b) missing the _layer1 base or wrong _layerN vs "Is Layered"; (c) not
       shipping body type 0. Check the game log: "Failed to load texture: dragonminez:.../<race>/
       <model>_<gender>_<bt>_layer1.png" tells you the EXACT filename DMZ wants. <<<

   Minimal set for a gendered, layered race, covering body type 0:
     <race>/<model>_male_0_layer1.png
     <race>/<model>_female_0_layer1.png
   Add _1 / _2 (body types 1 and 2) as you need them.

   FACES (nose/mouth/eyes) go in <race>/faces/, also prefixed with the MODEL name:
     <race>/faces/<model>_nose_<i>.png, <model>_mouth_<i>.png,
     <race>/faces/<model>_eye_<i>_<0..3>.png   (four layers make one eye option; <i> = 0,1,...)
   A missing face texture is a purple bit on the face - ship at least the _0 files, or a fully
   transparent PNG if you want no nose/mouth.

3. FACES (eyes/nose/mouth) for a custom model use the per-RACE faces/ folder - see
   textures/entity/races/<race>/faces/ and its _README.

WORKED EXAMPLE shipped in this pack (race "example_race", Custom Model "example_model"):
   geo/entity/races/example_model.geo.json
   textures/entity/races/example_race/example_model_male_0_layer1.png    (+ _1, _2)
   textures/entity/races/example_race/example_model_female_0_layer1.png  (+ _1, _2)
   textures/entity/races/example_race/faces/example_model_nose_0.png     (transparent)
   textures/entity/races/example_race/faces/example_model_mouth_0.png    (transparent)
   textures/entity/races/example_race/faces/example_model_eye_0_0.png .. _eye_0_3.png
 The magenta body squares are placeholders - replace them with your skin. To USE it, make a
 race in /sdu race whose id is "example_race" and whose Custom Model is "example_model" (the
 geo here is a placeholder mesh; swap in one rigged to DMZ's player bones).

Tip: the quickest custom race is to copy one of DMZ's built-in models (set Custom Model to
e.g. "saiyan" or "buffed") - those already ship their geo + textures, so nothing renders purple.
