# Atribución — puzzles

`puzzles.json` contiene una selección de **puzzles de la base de datos de Lichess**
(<https://database.lichess.org/#puzzles>), publicada bajo **Creative Commons CC0 1.0** (dominio
público). No se exige atribución; se indica por transparencia.

- **Origen:** primera trama (≈ 181.000 puzzles) de `lichess_db_puzzle.csv.zst`, obtenida con una
  petición `Range` de los primeros 15 MB (el fichero completo pesa ≈ 304 MB).
- **Selección:** `scripts/build-puzzles.mjs`. Solo puzzles populares (popularidad ≥ 85, ≥ 300
  partidas, desviación de valoración ≤ 90), hasta 10 por tema y banda de nivel
  (600-1000 / 1000-1300 / 1300-1600 / 1600-1900 / 1900-2400) y de ≤ 8 jugadas de solución.
  Temas: `fork`, `pin`, `skewer`, `discoveredAttack`, `hangingPiece`, `mateIn1`, `mateIn2`,
  `backRankMate`. La selección es determinista.
- **Transformación:** la FEN original es anterior a la jugada del rival; aquí se aplica esa
  jugada y se guarda la posición lista para resolver, con la solución en UCI.
- **Verificación:** los 382 puzzles tienen solución legal de principio a fin, los 163 de mate
  terminan en mate y Stockfish 19 (profundidad 14) coincide con la primera jugada en 40 de 40
  de una muestra repartida.

Para regenerar: `node scripts/build-puzzles.mjs`.
