A single shift on a schedule, representing who is on-call between a start
and end time. When present, rotation_id tells you which rotation the
entry belongs to. A schedule may have multiple rotations (for example, a
primary and a secondary rotation) and each rotation can be made up of several
layers — entries are returned for every rotation and layer on the schedule.
Entries come from two places: they are either generated from a schedule's
rotation configuration (the regular pattern of who is on-call) or created by
an override (a one-off change that replaces the normal rotation for a period
of time). When you call the List schedule entries endpoint we return both
kinds separately, along with the merged final schedule that reflects what
will actually happen.
entry_id is only populated for entries that correspond to a stored
record. Scheduled entries are projections computed from the rotation rules
on the fly and don't have a persisted ID, so entry_id will be absent for
those. Use fingerprint if you need a stable identifier to deduplicate or
diff a shift across requests.