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 normalizadoscripts/generate-full-dataset.ts- Generador automáticoscripts/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¶
- Modificar
data/kins.tsvcon nuevos datos - Ejecutar
npm run data:import - Verificar validación exitosa
- Commit y push de cambios
Regeneración Completa¶
- Ejecutar
npx ts-node scripts/generate-full-dataset.ts - Copiar
data/kins-complete.tsvadata/kins.tsv - Ejecutar
npm run data:import - 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