The MealStack Schema 0.9.3 · Field set
Meal
A plate, or a fuel item, and where it sits in a day.
A meal is portions on a plate and, inside a stack, a place in the day: an anchor and an offset that put it on the clock. A meal on its own (on the Meals shelf) has the plate and no time. A fuel item is the same shape with kind: fuel. Fuel is what you take for the session rather than as a meal: pre-workout, the jug you sip through the session, the shake after it, electrolytes, creatine, water. It can carry protein, carbs and fat, and those count toward the day's totals. Fuel is never a meal: it isn't in the meal count, doesn't move the meals around it, and isn't scored for timing. Anything pinned to the session start is fuel.
The macros of a meal or a fuel item are the sum of its portions, derived; stated exists for a plate that was never weighed and is used only when there are no portions. A meal never carries a day's total.
Reused as
stack.trainingarrayThe training day's meals, in the order eaten.stack.recoveryarrayThe recovery day's meals, in the order eaten.plan.mealsarrayMeals on their own, for the Meals shelf.day.meal.landedThe meal as it was when it was eaten, frozen.
Fields
-
The slot's identifier within a plan:
train.m1,train.f2,rest.m3. The same slot ids run through every stack of a rotation (only the plates change), which is how a day's log stays whole when the stack changes. A meal on its own has no slot and readsshelf.m1. An id, not a day kind: a recovery-day slot keeps therest.prefix from 0.13 on, so logs, alerts and Health samples written before it still match.Example
train.m3 -
A short code for telemetry and Coach:
M1,M2,PRE,POST,F1. Never shown to a person; a screen that names a meal usesmeal.name.Example
PRE -
What the meal is called, as it appears on Today and in History.
Example
Paprika chicken box -
meal(the default) orfuel. Fuel is what you take for the session rather than as a meal: pre-workout, the jug you sip through the session, the shake after it, electrolytes, creatine, water. It can carry protein, carbs and fat, and those count toward the day's totals. Fuel is never a meal: it isn't in the meal count, doesn't move the meals around it, and isn't scored for timing. Anything pinned to the session start is fuel. Fuel keeps its anchor, offset and alert and is logged. It may carry macros, throughportionsorstated, or none (water, creatine), and any it carries count in the day's totals. Anat_sessionanchor implies fuel: a reader treats an item pinned to the session start as fuel whatever itskindsays.Values
mealfuelExample
meal -
What the meal's time hangs from.
forwardchains off the meal before it (the first forward meal of the day sits on wake time);before_session,at_sessionandafter_sessionare pinned to the session and do not move when the morning runs late.at_sessionmakes the item fuel. Recovery days have no session, so every meal and fuel item on one isforward. Every training day has one meal (not fuel) anchoredbefore_session: the carb surge. Required inside a stack; absent on a meal on its own.Values
forwardbefore_sessionat_sessionafter_sessionExample
before_session -
For
forward, minutes after the previous forward meal (0 for the first). Forbefore_sessionandafter_session, minutes before or after the session. Forat_session, 0. Never negative. Required inside a stack; absent on a meal on its own.Example
90 -
How many minutes before the meal's time the start-cooking alert fires; 0 for none.
Example
8 -
What is on the plate, in order. One of
portionsorstatedis required on a meal; fuel may have either or neither, and what it has counts in the day's totals. -
Grams of protein, carbs and fat typed in for a plate the person knows the numbers of but does not weigh. Read only when
portionsis empty. -
The sum of the portions, or
statedwhen there are none. Derived; never written by a plan file. -
One line under the name, on Today and on the shelf.
Example
Blue box. Microwave 2½ min, stir, 1½ min. -
How it is made, one step per entry.
Example
["Reheat lid off.", "Sesame oil after."] -
The example plan, Coach, the person's own hands, or an import.
Values
examplecoachcustomimportedExample
imported