# Contrato del kit modular

El ambiente Bosque y su inventario se documentan en [Bosque](bosque.md). La biblioteca tiene superficies SVG y objetos/estructuras PNG independientes, ensamblados por código.

## Geometría

- Proyección dimétrica 2:1; cara superior de 128 × 64 px.
- `screenX = (x-y)*64`, `screenY = (x+y)*32-z*32`.
- Cada unidad vertical equivale a 32 px. El editor usa piezas delgadas (8 px), normales (32 px) o dobles (64 px).
- `z` identifica la superficie; `thickness` el volumen. La base es `z - thickness`.
- Los mapas mantienen el formato v3 y la lectura de v1/v2. El motor admite alturas en cuartos de unidad y conserva los volúmenes de mapas anteriores.

## Objetos independientes

Cada asset declara `src`, `crop`, `width`, altura de dibujo opcional `height`, `anchor`, `footprint`, `clearance` y `category` en el manifiesto. El PNG original se conserva completo; `crop` solo limita qué margen transparente se dibuja. Para las ilustraciones nuevas, el recorte se calcula sobre alpha mayor que 24 y un margen de 4 px, evitando que píxeles casi invisibles alteren la escala. El anclaje se refiere al recorte y representa el apoyo en el terreno.

Los props se guardan en `cell.prop`. Edificios, árboles y detalles se seleccionan separados del terreno. Una celda admite un objeto; para cambiarlo se coloca otro. Los detalles no tienen todavía desplazamiento libre dentro de la casilla.

## Estructuras y pendientes

Los puentes y escaleras se guardan en `structures`. `orientation` vale `x` o `y`. Los puentes tienen altura uniforme e infieren el apoyo de las orillas en su eje. No exigen terreno debajo.

Las escaleras añaden `rise`: `+1` significa que el extremo negativo del eje es el alto; `-1`, que el positivo es el alto. `z` es el extremo bajo. Deben encontrar terrenos adyacentes con una unidad de diferencia. La conexión lógica se comprueba en ambos extremos. Los sprites son ilustraciones dibujadas, por lo que las uniones visuales se revisan además en el taller.

## Materiales

La familia `water` reconoce agua, sus texturas y sus orillas; ninguna cuenta como apoyo sólido. Reemplazar terreno por agua conserva el volumen y retira el objeto anterior. La familia `grass` usa franja verde y cuerpo de tierra para piezas normales/dobles. Las variantes conservan el mismo diamante; los caminos terminan en puntos de conexión comunes en los lados.

## Consistencia

Contorno marrón oscuro, siluetas compactas, verdes luminosos, techo terracota y luz arriba a la izquierda. Las orientaciones no son reflejos. La comprobación de alpha es independiente de la revisión visual de escala, anclajes y ensamblado.
