Esquema JSON de planes Universal Fit (v1.0)
Esta referencia describe la forma pública del plan. Los nombres de campos y valores enum se conservan en inglés porque forman parte del contrato de importación.
Principios
- Amigable para LLMs. Los campos son explícitos y fáciles de leer.
- Estricto. Las claves desconocidas se rechazan y los errores apuntan a la ruta JSON exacta.
- Concreto antes que ingenioso. La progresión semanal se escribe con números reales, no fórmulas mágicas.
- Multimodal desde el inicio. Fuerza, cardio, peso corporal y movilidad son de primera clase.
- Capas claras.
weeks -> days -> blocks -> items -> sets.
Forma principal
{
"$schema": "https://universalfit.app/schema/v1.0.json",
"schema_version": "1.0",
"plan": { /* metadata */ },
"settings": { /* units, defaults */ },
"exercises": { /* OPTIONAL inline custom exercises */ },
"mesocycles": [ /* OPTIONAL phase grouping */ ],
"weeks": [ /* the program */ ]
}
Reglas clave
plan.id,plan.name,plan.goal,plan.level,plan.duration_weeks,plan.days_per_weekyweeksson obligatorios.weeks.lengthdebe coincidir conplan.duration_weeks.dayes 1-based dentro de la semana y puede no ser consecutivo.rest_day: truemarca descanso y puede omitir bloques.- Un item de fuerza tiene exactamente uno de
setsosets_template. - Un item de cardio usa
cardioy no usasets.
Valores canónicos
goal: strength, hypertrophy, endurance, power, fat_loss, general_fitness, sport_specific, mobility, mixed.
level: beginner, intermediate, advanced.
block.type: warmup, main, accessory, finisher, cooldown, mobility.
Importación
El validador del sitio y la app usan el mismo contrato. Corrige cualquier error de ruta JSON antes de importar el archivo.