Label Vespers cross-day commemorations and add feast-side privilege

A commemoration that only exists because Vespers/Compline crossed a day
boundary now renders as "(of today)"/"(of tomorrow)" in English and the
real Divino Afflatu "de præcedenti"/"de sequenti" in Latin, instead of
showing silently with no indication it's a cross-day artifact.

Also adds forbidsSuccessorCommemoration to SaintRecord and
TemporalFeastRecord: a feast can now refuse to commemorate whatever wins
the next day at its own kept Second Vespers, the feast-side mirror of the
day-side privilege calendar/commemorations.ts already modeled. Left unset
everywhere for now (a no-op) -- it exists so the next commit's Sacred
Heart record has somewhere to carry the real, live-sourced exclusion
against Most Precious Blood.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014axryJBrRswYh2niA7WCUc
This commit is contained in:
2026-08-26 15:20:10 -04:00
parent 9067faf1fd
commit 2f7b421558
6 changed files with 125 additions and 6 deletions
+16
View File
@@ -37,6 +37,22 @@ export interface TemporalFeastRecord {
* every other movable feast instead loses to an equal-or-higher-ranked
* sanctoral winner and is commemorated alongside it instead. */
unconditional?: boolean;
/** The temporal-feast sibling of calendar/feasts.ts's SaintRecord field
* of the same name -- see that field's own doc comment for the full
* rationale (a feast-side mirror of the day-side privilege
* calendar/commemorations.ts already models, deliberately a flag
* rather than a ported rank-threshold formula). Set on sacred-heart.yml
* specifically -- live source (horascommon.pl, github #4586): on the
* rare late-Easter date the movable Feast of the Sacred Heart falls the
* day immediately before the fixed Most Precious Blood (July 1), Sacred
* Heart's own kept Second Vespers explicitly does *not* commemorate
* Precious Blood the next evening ("Vespera de præcedenti; nihil de
* sequenti") -- the reverse direction (Precious Blood's own Vespers
* commemorating a Sacred Heart that falls *after* it, the other rare
* late-Easter arrangement) has no such carve-out in the reference
* engine, so this flag is intentionally one-directional, not mirrored
* onto most-precious-blood.yml. */
forbidsSuccessorCommemoration?: true;
}
const temporalFeastModules = import.meta.glob<{ default: TemporalFeastRecord }>(