Saltar a contenido

Core — Dataset Calendario 260

Documentación del dataset completo de 260 kins del calendario maya implementado en PIT.

📊 Resumen del Dataset

El sistema PIT incluye un dataset completo y validado de los 260 kins del calendario maya Tzolkin, generado mediante cálculos deterministas y validado con esquemas Zod.

Estadísticas

  • Total de registros: 260 kins
  • Sellos: 20 (Dragón, Viento, Noche, etc.)
  • Tonos: 13 (Magnético, Lunar, Eléctrico, etc.)
  • Colores: 4 (Rojo, Blanco, Azul, Amarillo)
  • Direcciones: 4 (Este, Norte, Oeste, Sur)
  • Castillos: 5 (Rojo, Blanco, Azul, Amarillo)

🏗️ Arquitectura del Sistema

Flujo de Datos

Datos Crudos (TSV) → Validación Zod → JSON Normalizado → API

Archivos del Sistema

  • data/kins.tsv - Dataset fuente (260 registros)
  • data/calendario260.json - JSON validado y normalizado
  • scripts/generate-full-dataset.ts - Generador automático
  • scripts/import-kins.ts - Importador con validación

📋 Estructura de Datos

Esquema Zod

const RowSchema = z.object({
  kin: z.coerce.number().int().min(1).max(260),
  sello: z.string().min(1),
  tono: z.coerce.number().int().min(1).max(13),
  color: z.string().min(1),
  castillo: z.string().min(1),
  ondaEncantada: z.coerce.number().int().min(1).max(20),
  direccion: z.string().min(1),
  afirmacion: z.string().optional(),
  codigoGalactico: z.string().optional(),
  alias: z.string().optional()
});

Ejemplo de Registro

{
  "kin": 158,
  "sello": "Espejo",
  "tono": 2,
  "color": "Blanco",
  "castillo": "Amarillo",
  "ondaEncantada": 13,
  "direccion": "Norte",
  "afirmacion": "Yo reflejo para ordenar",
  "codigoGalactico": "18-2",
  "alias": ["Etznab", "Mirror"]
}

🔧 Cálculos Deterministas

Fórmulas Implementadas

  • Tono: ((kin - 1) % 13) + 1
  • Sello: ((kin - 1) % 20) + 1
  • Onda: Math.ceil(kin / 13)
  • Castillo: Math.ceil(kin / 52)
  • Color: COLORES[(selloId - 1) % 4]
  • Dirección: DIRECCIONES[(selloId - 1) % 4]

Validaciones

  • Rango de kin: 1-260
  • Rango de tono: 1-13
  • Rango de sello: 1-20
  • Rango de onda: 1-20
  • Rango de castillo: 1-5

🚀 Uso del Sistema

Generar Dataset Completo

npx ts-node scripts/generate-full-dataset.ts

Importar desde TSV

npm run data:import -- --input data/kins.tsv --format tsv

Importar desde CSV

npm run data:import -- --input data/kins.csv --format csv

📈 Ejemplos de Datos

Primeros 5 Kins

  • Kin 1: Dragón 1 (Rojo) - "Yo nazco para nutrir"
  • Kin 2: Viento 2 (Blanco) - "Yo comunico el aliento"
  • Kin 3: Noche 3 (Azul) - "Yo sueño para soñar"
  • Kin 4: Semilla 4 (Amarillo) - "Yo florezco para fructificar"
  • Kin 5: Serpiente 5 (Rojo) - "Yo sobrevivo para trascender"

Últimos 5 Kins

  • Kin 256: Guerrero 9 (Amarillo) - "Yo cuestiono para entender"
  • Kin 257: Tierra 10 (Rojo) - "Yo evoluciono para navegar"
  • Kin 258: Espejo 11 (Blanco) - "Yo reflejo para ordenar"
  • Kin 259: Tormenta 12 (Azul) - "Yo catalizo para energizar"
  • Kin 260: Sol 13 (Amarillo) - "Yo ilumino para florecer"

🔍 Validación y Calidad

Checks Implementados

  • Esquema Zod - Validación de tipos y rangos
  • Conteo de registros - Verificación de 260 kins
  • Ordenamiento - Kins ordenados por número
  • Normalización - Alias separados por delimitadores
  • Consistencia - Cálculos deterministas verificados

Logs de Validación

✅ Generado data/calendario260.json con 260 registros.
📊 Primeros 5 kins: Kin 1: Dragón 1 (Rojo)
📊 Últimos 5 kins: Kin 260: Sol 13 (Amarillo)

🔄 Mantenimiento

Actualización del Dataset

  1. Modificar data/kins.tsv con nuevos datos
  2. Ejecutar npm run data:import
  3. Verificar validación exitosa
  4. Commit y push de cambios

Regeneración Completa

  1. Ejecutar npx ts-node scripts/generate-full-dataset.ts
  2. Copiar data/kins-complete.tsv a data/kins.tsv
  3. Ejecutar npm run data:import
  4. Verificar y commitear cambios

🎯 Integración con API

El dataset se integra con la API a través de: - Endpoint de conversión - /api/v1/convert - Endpoint de detalles - /api/v1/calendario-260/:kin/details - Middleware CORS - Para acceso desde navegadores - Validación en tiempo real - Esquemas Zod en runtime

📚 Referencias

  • Calendario Maya Tzolkin - Sistema de 260 días
  • Dreamspell - Correlación moderna del calendario
  • Zod - Biblioteca de validación TypeScript
  • Cloudflare Pages Functions - Runtime de la API