IronPen

JSON Reference

JSON Reference

Technická dokumentace formátu CustomTemplate pro IronPen. Pro AI generování, pokročilé uživatele a vývojáře.

Úvod

Custom šablona v IronPen je JSON dokument popisující kompletní tréninkový program — cviky, série, váhy, rozvrh a progresi. Aplikace z něj generuje konkrétní tréninky na základě uživatelových 1RM maxim.

Tento dokument popisuje každé pole, validační pravidla a obsahuje kompletní příklady. JSON můžete vytvořit ručně, nechat vygenerovat AI, nebo exportovat z editoru v aplikaci.

Import do IronPen: zkopírujte JSON do schránky → v aplikaci klepněte 📋 Import ze schránky. Nebo uložte jako .json soubor a použijte 📁 Import ze souboru.

Rychlý start

Minimální funkční šablona — 1 den, 1 cvik, 1 série:

{
  "version": 1,
  "meta": {
    "id": "muj-prvni-program",
    "nameCs": "Můj první program",
    "nameEn": "My First Program",
    "icon": "💪",
    "tags": ["beginner", "strength"]
  },
  "config": {
    "daysPerWeek": [3],
    "weeksPerCycle": 4,
    "maxCycles": 4,
    "trainingMaxPercent": 0.9,
    "requiredInputs": [{
      "key": "bench1RM",
      "labelCs": "Bench Press 1RM",
      "labelEn": "Bench Press 1RM",
      "type": "WEIGHT_INPUT",
      "defaultValue": 60.0,
      "linkedExerciseId": "bench-press",
      "suffix": "kg"
    }]
  },
  "schedule": {
    "type": "WEEKLY_FIXED",
    "fixedDays": [{
      "dayIndex": 0,
      "labelCs": "Trénink",
      "labelEn": "Workout",
      "exercises": [{
        "exerciseId": "bench-press",
        "exerciseName": "Bench Press",
        "orderIndex": 0,
        "exerciseType": "MAIN",
        "sets": [{
          "reps": "5",
          "setType": "MAIN",
          "weightSource": {
            "type": "PERCENT_TM",
            "value": 0.85,
            "linkedExerciseId": "bench-press"
          },
          "copies": 5
        }]
      }]
    }]
  },
  "progressionRules": []
}

Prompt pro AI

Zkopírujte celou tuto stránku (nebo její URL) do kontextu AI a přidejte svůj požadavek. Příklad promptu:

Vytvoř IronPen custom šablonu (JSON) pro tento program:

- 4 dny/týden (Upper/Lower split)
- 6 týdnů v cyklu
- Hlavní cviky: Squat, Bench, Deadlift, OHP
- Procenta z Training Max (90% z 1RM)
- Wendler-style progrese: +2.5 kg upper, +5 kg lower per cyklus
- Warmup série + 3 pracovní série + BBB 5×10

Použij formát popsaný v JSON Reference dokumentu.
Výsledek musí být validní JSON importovatelný do IronPen.
Čím přesnější zadání, tím lepší výsledek. Uveďte: počet dnů, cviky, schéma sérií (5×5, 3×8...), procenta z 1RM nebo TM, a typ progrese.

Kořenový objekt — CustomTemplate

PoleTypPopis
versionIntSchema verze. Vždy 1.
metaObjectMetadata šablony (název, ikona, tagy).
configObjectGenerační konfigurace (dny/týden, cykly, TM%).
scheduleObjectStruktura rozvrhu (1 z 5 typů).
progressionRulesArrayPravidla automatické progrese. Prázdné pole = žádná progrese.

meta — TemplateMeta

PoleTypPopis
idStringUnikátní ID. Formát: username_slug nebo libovolný. Bez mezer a speciálních znaků.
nameCsStringNázev česky. Alespoň jedno z nameCs/nameEn musí být neprázdné.
nameEnStringNázev anglicky. Pokud prázdné, použije se nameCs.
descriptionCsStringPopis česky.
descriptionEnStringPopis anglicky.
iconStringEmoji ikona. Default: 💪
tagsArray<String>Kategorie: beginner, intermediate, advanced, strength, hypertrophy, endurance
createdAtLongTimestamp vytvoření (ms). Auto-generované při importu.
updatedAtLongTimestamp poslední úpravy (ms).

config — TemplateGenerationConfig

PoleTypPopis
daysPerWeekArray<Int>Podporované varianty dnů. Např. [3, 4] = šablona funguje pro 3 i 4 dny/týden.
weeksPerCycleIntPočet týdnů v cyklu. Default: 4. Rozsah: 1–52.
maxCyclesIntMaximální počet cyklů. Default: 6.
trainingMaxPercentFloatTM = 1RM × toto číslo. Default: 0.9 (90%). Rozsah: 0.5–1.0.
weightIncrementFloatZaokrouhlení vah. Default: 2.5 kg.
supportsMultipleCyclesBoolPovolit více cyklů. Default: true.
requiredInputsArrayVstupy požadované od uživatele při generování. Viz detail.
deloadConfigObjectKonfigurace deload týdne. Viz detail.
weeklyProgressionObjectIntra-cycle progrese vah. Viz detail.

requiredInputs — RequiredInput

Definují jaké hodnoty uživatel zadává při generování programu (1RM, KB váha apod.).

PoleTypPopis
keyStringUnikátní klíč. Bez mezer. Např. bench1RM, kbWeight.
labelCsStringPopisek česky zobrazený uživateli.
labelEnStringPopisek anglicky.
typeEnumWEIGHT_INPUT = volný číselný vstup. WEIGHT_CHOICES = výběr z předdefinovaných hodnot.
defaultValueFloatVýchozí hodnota.
choicesArray<Float>Jen pro WEIGHT_CHOICES. Např. [8, 12, 16, 20, 24, 32] pro KB.
linkedExerciseIdStringID cviku pro auto-fill z uživatelových maxim. Např. "bench-press".
suffixStringJednotka. Default: "kg".

Příklady

// 1RM vstup propojený s cvikem
{ "key": "squat1RM", "labelCs": "Dřep 1RM", "labelEn": "Squat 1RM",
  "type": "WEIGHT_INPUT", "defaultValue": 80.0,
  "linkedExerciseId": "back-squat", "suffix": "kg" }

// KB výběr bez propojení s cvikem
{ "key": "tguWeight", "labelCs": "TGU kettlebell", "labelEn": "TGU kettlebell",
  "type": "WEIGHT_CHOICES", "defaultValue": 16.0,
  "choices": [4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48], "suffix": "kg" }

deloadConfig — DeloadConfig

Volitelné. Definuje automatický deload týden v rámci cyklu.

PoleTypPopis
deloadWeekIntČíslo deload týdne (1-based). 0 = žádný deload.
deloadMultiplierFloatNásobitel vah. 0.6 = 60% normální váhy. Default: 0.6.
assistanceSetReductionIntO kolik sérií snížit asistenční cviky. Default: 0.
{ "deloadWeek": 4, "deloadMultiplier": 0.6, "assistanceSetReduction": 1 }

weeklyProgression — WeeklyWeightProgression

Volitelné. Intra-cycle progrese — váhy rostou v rámci cyklu (ne jen mezi cykly).

PoleTypPopis
typeEnumNONE | LINEAR_PER_WEEK | LINEAR_PER_N_WEEKS
incrementPerIntervalFloatPřídavek váhy per interval (kg). Default: 2.5.
intervalWeeksIntInterval v týdnech (jen pro LINEAR_PER_N_WEEKS). Default: 2.
// +2.5 kg každé 2 týdny
{ "type": "LINEAR_PER_N_WEEKS", "incrementPerInterval": 2.5, "intervalWeeks": 2 }

ExerciseDefinition

PoleTypPopis
exerciseIdStringID cviku z IronPen databáze. Viz seznam.
exerciseNameStringNázev pro offline zobrazení. Pokud prázdný, doplní se z DB.
orderIndexIntPořadí cviku v dnu (0-based).
exerciseTypeEnumMAIN | ASSISTANCE
supersetGroupIdInt?Číslo superset skupiny. Cviky se stejným číslem tvoří superset. null = žádný superset.
isUnilateralBoolJednostranný cvik (repy = per strana, tonnage ×2). Default: false.
emomEnabledBoolEMOM režim. Default: false.
emomIntervalSecondsIntEMOM interval. Default: 60.
setsArraySeznam definic sérií. Viz SetDefinition.
wavePatternObject?Wave progrese pro tento cvik. Viz detail.
deloadRepsString?Alternativní repy pro deload týden. Např. "5" místo "max".
deloadIsAmrapBool?AMRAP override pro deload. Např. false pro pull-upy na deload.

SetDefinition

PoleTypPopis
repsStringPočet opakování. Formáty: "5", "5+", "1+1", "8-12", "max".
setTypeStringMAIN | WARMUP | FSL. Default: "MAIN".
weightSourceObjectOdkud se bere váha. Viz WeightSource.
isAmrapBoolAMRAP série. Default: false.
copiesIntKolikrát opakovat tuto sérii. Default: 1. Rozsah: 1–20.
copies je shorthand. {"reps": "5", "copies": 5} je ekvivalentní pěti samostatným sériím s repy "5". Výhodné pro 5×5, 3×10 atd.

WeightSourceDefinition

PoleTypPopis
typeEnumTyp zdroje váhy. Viz tabulka níže.
valueFloatHodnota. Pro PERCENT_TM/1RM: procento (0.85 = 85%). Pro FIXED: váha v kg.
keyString?Jen pro CUSTOM_INPUT: klíč z requiredInputs.
linkedExerciseIdString?Jen pro PERCENT_TM/1RM: exerciseId pro lookup 1RM.
fromIntensityString?Jen pro DERIVED: "HEAVY", "MEDIUM", "LIGHT".
multiplierFloatNásobitel. Default: 1.0.

WeightSourceType enum

TypPopisPovinná pole
PERCENT_TM% z Training Max (1RM × trainingMaxPercent)value, linkedExerciseId
PERCENT_1RM% přímo z 1RMvalue, linkedExerciseId
PERCENT_TOP_SET% z top setu (ramp sets)value
FIXEDPevná váha v kgvalue
CUSTOM_INPUTZ uživatelského vstupukey
DERIVEDOdvozená z jiného dne (HLM)fromIntensity, multiplier
BODYWEIGHTVlastní váhažádná

Příklady

// 85% z Training Max pro bench press
{ "type": "PERCENT_TM", "value": 0.85, "linkedExerciseId": "bench-press" }

// Fixní 24 kg
{ "type": "FIXED", "value": 24.0 }

// Bodyweight (shyby, kliky)
{ "type": "BODYWEIGHT" }

// Z uživatelského vstupu "kbWeight"
{ "type": "CUSTOM_INPUT", "key": "kbWeight" }

WavePatternDefinition

Volitelné na ExerciseDefinition. Postupné zavádění nové váhy přes N týdnů.

PoleTypPopis
startWeightKeyStringKlíč z requiredInputs pro startovní váhu.
targetWeightKeyStringKlíč z requiredInputs pro cílovou váhu.
spreadTypeEnumCENTER_OUT | LEFT_TO_RIGHT | RIGHT_TO_LEFT
transitionWeeksIntPočet týdnů přechodu. Default: 6.
// TGU: 5 sérií, z 16 kg na 20 kg, od středu ven, za 6 týdnů
{ "startWeightKey": "tguStartWeight",
  "targetWeightKey": "tguTargetWeight",
  "spreadType": "CENTER_OUT",
  "transitionWeeks": 6 }

WEEKLY_FIXED

Každý týden stejné dny. Nejjednodušší typ.

"schedule": {
  "type": "WEEKLY_FIXED",
  "fixedDays": [
    {
      "dayIndex": 0,
      "labelCs": "Push",
      "labelEn": "Push",
      "exercises": [/* ... */]
    },
    {
      "dayIndex": 1,
      "labelCs": "Pull",
      "labelEn": "Pull",
      "exercises": [/* ... */]
    }
  ]
}

ALTERNATING

Střídání variant. Pattern definuje pořadí.

"schedule": {
  "type": "ALTERNATING",
  "alternatingPattern": {
    "pattern": ["A", "B"],
    "templates": {
      "A": { "dayIndex": 0, "labelCs": "Trénink A", "exercises": [/* ... */] },
      "B": { "dayIndex": 1, "labelCs": "Trénink B", "exercises": [/* ... */] }
    }
  }
}
Pattern ["B", "C", "A"] = pořadí B→C→A→B→C→A... Vhodné když chcete těžký den před nejdelší pauzou.

WEEKLY_VARYING

Každý týden jiný. Pro periodizované programy (Wendler, TB Operator).

"schedule": {
  "type": "WEEKLY_VARYING",
  "varyingWeeks": [
    {
      "weekIndex": 0,
      "labelCs": "Týden 1 (3×5)",
      "labelEn": "Week 1 (3×5)",
      "isDeload": false,
      "deloadMultiplier": 1.0,
      "days": [
        { "dayIndex": 0, "labelCs": "OHP", "exercises": [/* 65/75/85% */] },
        { "dayIndex": 1, "labelCs": "Deadlift", "exercises": [/* ... */] }
      ]
    },
    {
      "weekIndex": 3,
      "labelCs": "Deload",
      "isDeload": true,
      "deloadMultiplier": 0.6,
      "days": [/* ... */]
    }
  ]
}

HLM

Heavy/Medium/Light. Definujete těžký den, střední a lehký se odvodí automaticky nebo ručně.

"schedule": {
  "type": "HLM",
  "hlmDefinition": {
    "intensityPattern": ["HEAVY", "LIGHT", "MEDIUM"],
    "heavyDay": {
      "dayIndex": 0,
      "labelCs": "Těžký",
      "exercises": [/* plné váhy */]
    },
    "mediumDayConfig": {
      "intensityMultiplier": 0.85,  // váhy = 85% heavy
      "volumeMultiplier": 0.75,     // série = 75% heavy (4 místo 5)
      "useCustomDay": false
    },
    "lightDayConfig": {
      "intensityMultiplier": 0.70,
      "volumeMultiplier": 0.50,
      "useCustomDay": false
    },
    "customMediumDay": null,  // nebo DayDefinition pokud useCustomDay=true
    "customLightDay": null
  }
}

LADDER_PROGRESSION

Žebříkový systém s týdenní progresí počtu příček a žebříků.

"schedule": {
  "type": "LADDER_PROGRESSION",
  "ladderDefinition": {
    "exercises": [
      {
        "exerciseId": "kb-clean-press",
        "exerciseName": "KB Clean & Press",
        "useLadders": true,
        "weightSource": { "type": "CUSTOM_INPUT", "key": "kbWeight" }
      },
      {
        "exerciseId": "pull-ups",
        "useLadders": true,
        "mirrorLaddersOf": "kb-clean-press",
        "weightSource": { "type": "BODYWEIGHT" }
      },
      {
        "exerciseId": "kb-swing",
        "useLadders": false,
        "fixedSets": [{ "reps": "10", "copies": 10,
          "weightSource": { "type": "CUSTOM_INPUT", "key": "kbWeight" } }],
        "fixedSetsMatchLadderCount": false,
        "weightSource": { "type": "CUSTOM_INPUT", "key": "kbWeight" }
      }
    ],
    "weeklyProgression": [
      { "weekIndex": 0, "maxRung": 3, "ladderCount": 3 },
      { "weekIndex": 1, "maxRung": 4, "ladderCount": 4 },
      { "weekIndex": 2, "maxRung": 5, "ladderCount": 5 },
      { "weekIndex": 3, "maxRung": 5, "ladderCount": 5 }
    ],
    "dayIntensity": ["HEAVY", "LIGHT", "MEDIUM"],
    "heavyMediumLightRungOffset": { "medium": -1, "light": -2 }
  }
}
Rung offset: Heavy = plný maxRung. Medium = maxRung - 1. Light = maxRung - 2. Při maxRung=5: Heavy=5 reps top, Medium=4, Light=3.

progressionRules — ProgressionRuleDefinition

Pole na kořenovém objektu. Array pravidel pro automatickou progresi vah.

PoleTypPopis
exerciseScopeEnumALL_MAIN = všechny hlavní cviky. SPECIFIC = jen vybrané (viz exerciseIds).
exerciseIdsArray<String>Jen pro SPECIFIC: seznam exerciseId.
evaluationTypeEnumPER_WORKOUT = po každém tréninku. PER_CYCLE = po dokončení cyklu.
successConditionObject{"type": "ALL_MAIN_SETS_COMPLETED", "value": 0}
onSuccessObjectAkce při splnění. {"type": "INCREMENT_WEIGHT", "value": 2.5}
onFailureObjectAkce při nesplnění. {"type": "REPEAT_WEIGHT", "value": 0}
onRepeatedFailureObject?Akce po N neúspěších. {"failCount": 3, "action": {"type": "DELOAD_PERCENT", "value": 10}}
// StrongLifts: +2.5 kg per workout, deload po 3 failech
{
  "exerciseScope": "SPECIFIC",
  "exerciseIds": ["bench-press", "overhead-press", "barbell-rows"],
  "evaluationType": "PER_WORKOUT",
  "successCondition": { "type": "ALL_MAIN_SETS_COMPLETED", "value": 0 },
  "onSuccess": { "type": "INCREMENT_WEIGHT", "value": 2.5 },
  "onFailure": { "type": "REPEAT_WEIGHT", "value": 0 },
  "onRepeatedFailure": { "failCount": 3, "action": { "type": "DELOAD_PERCENT", "value": 10 } }
}

ActionType enum

TypPopisvalue
NO_CHANGENic nedělatignorováno
INCREMENT_WEIGHTPřidat fixní váhu (kg)kg přídavek (2.5, 5.0)
REPEAT_WEIGHTOpakovat stejnou váhuignorováno
DELOAD_PERCENTSnížit váhu o %procento snížení (10 = -10%)
INCREMENT_TMZvýšit Training Max (per cyklus)kg přídavek na TM
GENERATE_NEXT_CYCLEVygenerovat další cyklusignorováno

SuccessCondition types

TypPopis
ALL_MAIN_SETS_COMPLETEDVšechny MAIN série dokončeny
ALL_REPS_HITVšechny plánované repy splněny
AMRAP_MINIMUMAMRAP série ≥ value repů

Příklad: StrongLifts 5×5

Kompletní šablona. ALTERNATING A/B, per-workout progrese.

{
  "version": 1,
  "meta": {
    "id": "stronglifts-5x5",
    "nameCs": "StrongLifts 5×5", "nameEn": "StrongLifts 5×5",
    "descriptionCs": "Začátečnický program 3× týdně. Střídání A/B.",
    "icon": "🏋️", "tags": ["beginner", "strength"]
  },
  "config": {
    "daysPerWeek": [3], "weeksPerCycle": 4, "maxCycles": 6,
    "trainingMaxPercent": 1.0,
    "requiredInputs": [
      { "key": "squat1RM", "labelCs": "Dřep 1RM", "labelEn": "Squat 1RM",
        "type": "WEIGHT_INPUT", "defaultValue": 60, "linkedExerciseId": "back-squat" },
      { "key": "bench1RM", "labelCs": "Bench 1RM", "labelEn": "Bench 1RM",
        "type": "WEIGHT_INPUT", "defaultValue": 40, "linkedExerciseId": "bench-press" },
      { "key": "row1RM", "labelCs": "Row 1RM", "labelEn": "Row 1RM",
        "type": "WEIGHT_INPUT", "defaultValue": 40, "linkedExerciseId": "barbell-rows" },
      { "key": "ohp1RM", "labelCs": "OHP 1RM", "labelEn": "OHP 1RM",
        "type": "WEIGHT_INPUT", "defaultValue": 30, "linkedExerciseId": "overhead-press" },
      { "key": "dl1RM", "labelCs": "Deadlift 1RM", "labelEn": "Deadlift 1RM",
        "type": "WEIGHT_INPUT", "defaultValue": 80, "linkedExerciseId": "deadlift" }
    ]
  },
  "schedule": {
    "type": "ALTERNATING",
    "alternatingPattern": {
      "pattern": ["A", "B"],
      "templates": {
        "A": {
          "dayIndex": 0, "labelCs": "Trénink A", "labelEn": "Workout A",
          "exercises": [
            { "exerciseId": "back-squat", "orderIndex": 0, "exerciseType": "MAIN",
              "sets": [{ "reps": "5", "weightSource": { "type": "PERCENT_1RM", "value": 0.80, "linkedExerciseId": "back-squat" }, "copies": 5 }] },
            { "exerciseId": "bench-press", "orderIndex": 1, "exerciseType": "MAIN",
              "sets": [{ "reps": "5", "weightSource": { "type": "PERCENT_1RM", "value": 0.80, "linkedExerciseId": "bench-press" }, "copies": 5 }] },
            { "exerciseId": "barbell-rows", "orderIndex": 2, "exerciseType": "MAIN",
              "sets": [{ "reps": "5", "weightSource": { "type": "PERCENT_1RM", "value": 0.80, "linkedExerciseId": "barbell-rows" }, "copies": 5 }] }
          ]
        },
        "B": {
          "dayIndex": 1, "labelCs": "Trénink B", "labelEn": "Workout B",
          "exercises": [
            { "exerciseId": "back-squat", "orderIndex": 0, "exerciseType": "MAIN",
              "sets": [{ "reps": "5", "weightSource": { "type": "PERCENT_1RM", "value": 0.80, "linkedExerciseId": "back-squat" }, "copies": 5 }] },
            { "exerciseId": "overhead-press", "orderIndex": 1, "exerciseType": "MAIN",
              "sets": [{ "reps": "5", "weightSource": { "type": "PERCENT_1RM", "value": 0.80, "linkedExerciseId": "overhead-press" }, "copies": 5 }] },
            { "exerciseId": "deadlift", "orderIndex": 2, "exerciseType": "MAIN",
              "sets": [{ "reps": "5", "weightSource": { "type": "PERCENT_1RM", "value": 0.85, "linkedExerciseId": "deadlift" }, "copies": 1 }] }
          ]
        }
      }
    }
  },
  "progressionRules": [
    { "exerciseScope": "SPECIFIC",
      "exerciseIds": ["back-squat", "bench-press", "barbell-rows", "overhead-press"],
      "evaluationType": "PER_WORKOUT",
      "successCondition": { "type": "ALL_MAIN_SETS_COMPLETED" },
      "onSuccess": { "type": "INCREMENT_WEIGHT", "value": 2.5 },
      "onFailure": { "type": "REPEAT_WEIGHT" },
      "onRepeatedFailure": { "failCount": 3, "action": { "type": "DELOAD_PERCENT", "value": 10 } } },
    { "exerciseScope": "SPECIFIC",
      "exerciseIds": ["deadlift"],
      "evaluationType": "PER_WORKOUT",
      "successCondition": { "type": "ALL_MAIN_SETS_COMPLETED" },
      "onSuccess": { "type": "INCREMENT_WEIGHT", "value": 5.0 },
      "onFailure": { "type": "REPEAT_WEIGHT" },
      "onRepeatedFailure": { "failCount": 3, "action": { "type": "DELOAD_PERCENT", "value": 10 } } }
  ]
}

Příklad: Wendler 5/3/1 (zkrácený)

WEEKLY_VARYING, 4 týdny, jen OHP den pro ukázku. Ostatní dny mají stejnou strukturu s jinými cviky.

Kompletní Wendler šablona má 4 týdny × 4 dny = 16 day definic. Pro přehlednost ukazujeme jen Week 1, Day 1.

Příklad: Texas Method (zkrácený)

Modelováno jako WEEKLY_VARYING (2 unikátní týdny × 3 dny). Lichý týden má Bench na Volume, sudý OHP.

Kompletní příklady všech 17 šablon jsou dostupné v aplikaci — stáhněte oficiální šablonu z Marketplace a exportujte jako JSON.

Seznam exerciseId

Kompletní seznam 163 exercise ID podporovaných v IronPen. Použijte přesný string v poli exerciseId.

Hlavní compound cviky

IDNázev ENNázev CS
back-squatBack SquatDřep s činkou
bench-pressBench PressBench press
deadliftDeadliftMrtvý tah
overhead-pressOverhead PressTlak nad hlavu
power-cleanPower CleanPower Clean
front-squatFront SquatPřední dřep
barbell-rowsBarbell RowsPřítahy s činkou
hip-thrustHip ThrustHip Thrust
sumo-deadliftSumo DeadliftSumo mrtvý tah
romanian-deadliftRomanian DeadliftRumunský mrtvý tah

Bodyweight cviky

IDNázev EN
pull-upsPull-ups
chin-upsChin-ups
push-upsPush-ups
dipsDips
ring-rowsRing Rows
inverted-rowsInverted Rows
plankPlank
leg-raisesLeg Raises

Kettlebell cviky

IDNázev EN
kb-swingKB Swing
kb-clean-pressKB Clean & Press
tguTurkish Get-Up
kb-snatchKB Snatch
goblet-squatGoblet Squat
kb-front-squatKB Front Squat
Kompletní seznam všech 163 ID najdete v souboru exercises.json exportovatelném z aplikace, nebo v databázi cviků v sekci „Seznam cviků".

Validační pravidla

Aplikace validuje JSON při importu. Nejčastější chyby:

PravidloChybová hláška
Alespoň jedno z nameCs/nameEn neprázdnéTemplate name is required
meta.id neprázdné, bez mezerTemplate ID is required
daysPerWeek: alespoň 1 hodnota, 1-7daysPerWeek must be 1-7
weeksPerCycle: 1-52weeksPerCycle must be 1-52
trainingMaxPercent: 0.5-1.0trainingMaxPercent must be 0.5-1.0
Každý cvik musí mít alespoň 1 sériiExercise has no sets
Max 30 sérií per cvikExercise has >30 sets
Max 15 cviků per denDay has >15 exercises
PERCENT_TM/1RM: value 0.05-1.5Weight percentage out of range
CUSTOM_INPUT: key existuje v requiredInputsCUSTOM_INPUT key not in requiredInputs
copies: 1-20Set copies must be 1-20
Schedule type odpovídá vyplněným polímWEEKLY_FIXED requires fixedDays