Mission Built

The MealStack Schema 0.9.3 · Field set

Day

One day's record: what ran, what was eaten, when.

The record of one day: which type of day it was, which stack it ran on, the target it ran against, and every meal with when it was due, when it was eaten, and what it was when it was eaten. A logged meal is frozen at logging (day.meal.landed) so History says what was eaten even after the plan moves on. The record is what "protect the record" protects: it is never rewritten by a later change to the plan.

Fields

  1. day.key core keyword required

    The calendar day as YYYY-MM-DD in the day's own time zone. The document's identity.

    Pattern^[0-9]{4}-[0-9]{2}-[0-9]{2}$

    Example2026-09-16

  2. day.timezone core keyword

    The time zone the day ran in. A day keeps its zone when the phone moves, so a day in progress is not abandoned at a border.

    ExampleAmerica/New_York

  3. day.type core keyword required

    Whether the day ran as a training day or a recovery day, after any override. Written rest for a recovery day before MealStack 0.13; the app migrates its own stores once, on the first launch of 0.13.

    Valuestrainingrecovery

    Exampletraining

  4. day.stack core keyword

    The name of the stack of the rotation the day ran on, stamped at the first log and again if the person says otherwise that day. Absent on a single-stack plan.

    ExampleRice Bowls

  5. day.travel extended boolean

    Whether the day ran away from home, set by the zone or by hand.

    ExampleFalse

  6. day.meal_count extended integer

    How many meal slots the day ran on when the person set it for the day; absent when it was the plan's count. Counts meals only, never fuel.

    Example4

  7. day.session_start extended date

    When training actually began, set by logging the session's fuel or by hand; the block around training moves with it.

    Example2026-09-16T18:12:00-04:00

  8. day.target core object

    The daily target as it stood when the day was logged.

  9. day.consumed core object

    The sum of every logged entry's consumed, fuel included. Derived.

  10. day.meals core object[]

    Every slot the day had, logged or not, in the day's order.

  11. day.meal.id core keyword required

    The slot the entry is filed under, matching meal.id in the plan.

    Exampletrain.m3

  12. The time the app showed for the meal at the moment it was logged. History scores a meal's timing against this; fuel is not scored for timing.

    Example2026-09-16T12:30:00-04:00

  13. day.meal.eaten_at core date

    When the meal was logged as eaten. Never in the future; absent when it was not eaten.

    Example2026-09-16T12:41:00-04:00

  14. day.meal.skipped core boolean

    Whether the person skipped the meal on purpose.

    ExampleFalse

  15. day.meal.snoozed_minutes extended integer

    How many minutes the meal was pushed by "not yet" before it was eaten or the day ended.

    Example30

  16. day.meal.landed core object

    The meal as it stood at the moment it was logged: name, portions or stated figures, anchor, code, kind. Written once, never rewritten.

  17. day.meal.consumed core object

    The macros of the landed meal.

  18. day.meal.timezone extended keyword

    The phone's time zone when the meal was logged, which can differ from the day's.

    ExampleAmerica/Chicago