The MealStack Schema 0.9.3 · Field set
Plan
The whole thing a person runs: stacks, targets, meals a day, and the ingredients it needs.
The plan is what the person runs: its stacks in rotation order, the daily targets every stack is measured against, how many meals a day the slots hold, and any ingredients the app doesn't have built in. A .mealstack file is a plan document; the app's own plan store is the same shape with week_anchor set.
Fields
-
What the plan is called. A single stack imports under its own name.
Example
The Rotation -
A sentence or two about the plan. A plan written by a model carries the caveat here ("General nutrition information for healthy adults, not medical advice…"), so it shows on the import preview and under each stack.
Example
A four-week meal-prep loop. When Week 4 ends, start Week 1 again. -
The stacks, in rotation order, one per calendar week. The first runs first; when the last ends the first runs again. In the plan file (formats 1 and 2) the key
weeksis the older spelling and reads as the same thing. -
Meals for the Meals shelf, with no place in a day. A file may carry only these.
-
Ingredients the app doesn't have built in, declared once and referenced by id from portions. A file may carry only these. In the plan file (formats 1 and 2) the app reads the key
ingredientsfrom 0.9.1 andfoods(the spelling 0.9 reads, and the one writers still write until 0.9.1 is the oldest build in use) as the same thing; a file with both is read byingredients. -
The start of the calendar week that counts as the first stack's, from which the rotation is counted. Set by the app; "run Rice Bowls this week" moves it. Absent on a single-stack plan and in a plan file.
Example
2026-09-14 -
How many meal slots a training day holds, never counting fuel. Five by default, 2 to 8.
Example
5 -
How many meal slots a recovery day holds, never counting fuel. Five by default, 2 to 8.
Example
5 -
The daily targets every stack is measured against. Offered on import, never applied silently.
-
The times and days the plan is built on. Offered on import, never applied silently.