Alignment declares how real Gregorian instants that fall outside a
calendar's vocabulary map onto it — a separate axis from aggregation
(conflating the two is how a non-conserving sum arises). Resurrects the
alignment_rule vocabulary of the predecessor timeslices package.
Details
exactError if any instant falls outside the vocabulary.
drop_lastInstants past the last label map to
NA(e.g. the trailing days of the year ford360).drop_feb29Feb 29 maps to
NA; later ydays shift down by one, so Dec 31 of a leap year is stilld365.repeat_lastInstants past the last label clamp to it (e.g. week 53 folds into
w52).
Alignment lives per-timeframe in a calendar's meta$alignment (a named
list), seeded by the tokens that built it and overridable at construction
or in datetime_to_timeslice(). Unaligned out-of-vocabulary grid points map to
NA, surfaced by recast_calendar()'s na_action.
