Let the CIS date expose only the Program variants that are valid for that day.
Track
Program Planning
Phase
Classify
Starts with
An assigned CIS date needs one contextual Program
Ends with
One valid Program variant is selected
Guide Mobile derives the day context from the CIS. Arrival offers IN only, IN + Fishing, or IN + POA; an ordinary day offers Fishing or POA; departure uses OUT only; and an internal lodge boundary offers Transition, Transition + Fishing, or Transition + POA.
The guide starts a Program from an assigned CIS date.
Exactly two assignments from different CIS trips, one OUT and one IN at 0.50 day each, split the date diagonally: OUT upper-left, IN lower-right, using each lodge color. Boundary assignments can show it before Programs exist. Tap a half to open its Program, or select the date and use its group card when no Program exists. Same-color lodges may look uniform; use agenda labels. Internal same-CIS transitions stay single-color. An assigned IN before the first stay appears on its actual transfer date, separately from the stay.
Only the assigned transfer Guide gets the IN variants; other Guides get Fishing or POA with arrival coordination context. IN only counts as 0.50 day; IN + Fishing and IN + POA count as 1.00 day.
Fishing requires a Beat; POA requires an activity and a Trailhead coordinating guide.
OUT uses the authoritative departure transfer and defaults to 0.50 compensation units.
The route and passenger manifest remain read-only; every Transition variant carries 1.00 compensation units.
Chooses among the variants allowed by the assigned CIS day.
Derives arrival, ordinary, departure, or transition context and prevents invalid combinations.
Only the Program choices valid for the assigned CIS day.
Why: Choose the real work without reconstructing itinerary or transfer data.
The CIS boundary, itinerary transition, transfer match, and selected Program kind.
Why: Keep invalid combinations out of planning and persistence.
The CIS day context controls the available variants: never replace it with one static activity list or manually recreate its route.