# Maps a calendar day (MM-DD — the sanctoral cycle repeats every civil year
# regardless of weekday, unlike the temporal cycle) to the saint-id(s)
# celebrated that day. This indirection is the whole point: to move a saint
# to a different day, edit this mapping. The saint's own record
# (data/calendar/saints/<id>.yml) never changes — it's the same record
# whichever day points at it.
#
# A small, growable subset, not a full year — see the plan discussion this
# came out of. Each entry's rank is verified directly against Divinum
# Officium (see the saint's own file for which one) rather than
# reconstructed from memory, unlike data/calendar/temporal-categories.yml's
# privileged-day lists. `example-confessor` is deliberately NOT mapped to
# any day here — it's fictional, kept only to document the record shape.
days:
  # January — first month of the pre-1955 pull (see the saint files' own
  # comments for source/verification detail per entry). Deliberately
  # excludes: pure octave-continuation days (In Octava S. Stephani, the
  # several "die infra Octavam Epiphaniae" days, etc. — not sanctoral,
  # out of scope per the Non-goals discussion) and fixed-date feasts of
  # the Lord/BMV (Circumcision Jan 1, Epiphany Jan 6 — temporal, not
  # sanctoral, and not modeled by this app at all yet, a separate gap).
  "01-05": [st-telesphorus]
  "01-11": [st-hyginus]
  "01-14": [st-hilary-of-poitiers, st-felix-presbyter]
  "01-15": [st-maurus-abbot]
  "01-16": [st-marcellus-i]
  "01-17": [st-anthony-abbot]
  "01-18": [chair-of-st-peter-at-rome, st-prisca]
  "01-19": [st-paul-the-hermit, ss-marius-martha-audifax-and-abachum]
  "01-20": [ss-fabian-and-sebastian]
  "01-21": [st-agnes]
  "01-22": [ss-vincent-and-anastasius]
  "01-23": [st-emerentiana]
  "01-24": [st-timothy]
  "01-25": [conversion-of-st-paul]
  "01-26": [st-polycarp]
  "01-27": [st-john-chrysostom]
  "01-28": [st-agnes-secunda]
  "01-29": [st-francis-de-sales]
  "01-30": [st-martina]
  "01-31": [st-john-bosco]
  # February — 2/12 of the pre-1955 pull. Same exclusions as January (pure
  # octave/temporal continuations, fixed Lord/BVM feasts: Purification
  # Feb 2), plus two new ones found this month: the generic, non-saint
  # "Sanctae Mariae Sabbato" Saturday votive (Feb 3, whenever that date
  # falls on a Saturday — St. Blaise's own record ignores it, see his
  # file), and Feb 29's leap-year redirect of the Vigil of St. Matthias
  # (a real but not-yet-modeled leap-day date-shift, see st-matthias.yml).
  "02-01": [st-ignatius-of-antioch]
  "02-02": [purification]
  "02-03": [st-blaise]
  "02-04": [st-andrew-corsini]
  "02-05": [st-agatha]
  "02-06": [st-dorothea]
  "02-07": [st-romuald]
  "02-08": [st-john-of-matha]
  "02-09": [st-apollonia]
  "02-10": [st-scholastica]
  "02-11": [apparition-of-the-immaculate-bvm]
  "02-12": [ss-seven-founders-of-the-servite-order]
  "02-14": [st-valentine]
  "02-15": [ss-faustinus-and-jovita]
  "02-18": [st-simeon]
  "02-22": [chair-of-st-peter-at-antioch]
  "02-23": [vigil-of-st-matthias]
  "02-24": [st-matthias]
  "02-27": [st-gabriel-of-our-lady-of-sorrows]
  # March — 3/12 of the pre-1955 pull. Same exclusions as before (fixed
  # BVM feast: Annunciation Mar 25). St. Benedict's own day (Mar 21,
  # Duplex I. classis, the highest rank in this set so far) has no
  # unique propers in the source at all — see st-benedict.yml.
  "03-04": [st-lucius-i]
  "03-06": [ss-perpetua-and-felicity]
  "03-07": [st-thomas-aquinas]
  "03-08": [st-john-of-god]
  "03-09": [st-frances-of-rome]
  "03-10": [forty-holy-martyrs]
  "03-12": [st-gregory-the-great]
  "03-17": [st-patrick]
  "03-18": [st-cyril-of-jerusalem]
  "03-19": [st-joseph]
  "03-21": [st-benedict]
  "03-24": [st-gabriel-archangel]
  "03-25": [annunciation]
  "03-27": [st-john-damascene]
  "03-28": [st-john-capistrano]
  # April — 4/12 of the pre-1955 pull. St. Robert/St. Catherine of Siena
  # (Apr 29) is a genuine monastic-calendar reassignment, not a mistake —
  # see st-robert.yml. St. Francis of Paola's native date (Apr 2) often
  # transfers due to Holy Week; that's the existing transfer machinery,
  # not something recorded specially here.
  "04-02": [st-francis-of-paola]
  "04-04": [st-isidore-of-seville]
  "04-05": [st-vincent-ferrer]
  "04-11": [st-leo-i]
  "04-13": [st-hermenegild]
  "04-14": [ss-tiburtius-valerian-and-maximus]
  "04-17": [st-anicetus]
  "04-21": [st-anselm]
  "04-22": [ss-soter-and-caius]
  "04-23": [st-george]
  "04-24": [st-fidelis-of-sigmaringen]
  "04-25": [st-mark]
  "04-27": [st-peter-canisius]
  "04-26": [ss-cletus-and-marcellinus]
  "04-28": [st-vitalis]
  "04-29": [st-robert, st-catherine-of-siena]
  "04-30": [st-peter-martyr]
  # May — 5/12 of the pre-1955 pull. Movable feasts (Ascension, Trinity
  # Sunday, Corpus Christi) are skipped as primary, since they're
  # temporal, not sanctoral. The Finding of the Holy Cross (May 3) was
  # also excluded here at first as "a fixed feast of the Lord, not
  # modeled" — wrong, corrected 2026-08 (see finding-of-the-holy-cross.yml)
  # — she has real, complete content and now wins the day outright, which
  # is exactly what her competitor Ss. Alexander/Eventius/Theodulus/
  # Juvenal's own file already documented as the live-verified reality
  # ("loses the day to the Finding of the Holy Cross... this isn't just
  # an artifact of the specific year checked"). St. Pudentiana is the
  # remaining genuinely un-winnable stub this month — see her own file.
  "05-01": [ss-philip-and-james]
  "05-02": [st-athanasius]
  "05-03": [finding-of-the-holy-cross, ss-alexander-eventius-theodulus-and-juvenal]
  "05-04": [st-monica]
  "05-05": [st-pius-v]
  "05-06": [st-john-before-the-latin-gate]
  "05-07": [st-stanislaus]
  "05-08": [apparition-of-st-michael]
  "05-09": [st-gregory-nazianzen]
  "05-10": [st-antoninus]
  "05-12": [ss-nereus-achilleus-domitilla-and-pancras]
  "05-13": [st-robert-bellarmine]
  "05-14": [st-boniface]
  "05-15": [st-john-baptist-de-la-salle]
  "05-16": [st-ubald]
  "05-17": [st-paschal-baylon]
  "05-18": [st-venantius]
  "05-19": [st-peter-celestine, st-pudentiana]
  "05-20": [st-bernardine-of-siena]
  "05-22": [st-romanus-abbot]
  "05-23": [st-john-baptist-de-rossi]
  "05-25": [st-urban-i]
  "05-26": [st-eleutherius]
  "05-27": [st-john-i]
  "05-28": [st-augustine-of-canterbury]
  "05-29": [st-mary-magdalene-de-pazzi]
  "05-30": [st-felix-i]
  "05-31": [queenship-of-the-bvm]
  # June — 6/12 of the pre-1955 pull. No stubs this month — every
  # candidate resolved to a real, independently-winnable saint (even the
  # two normally blocked by the generic Saturday-of-Mary votive). 06-27
  # (the 4th day of St. John the Baptist's octave) is a pure temporal
  # continuation with no named secondary saint, so it's excluded, same as
  # every other octave-continuation day this pull has skipped. (A
  # "06-28": [st-leo-ii] entry from that original pull was a wrong-date
  # artifact -- his own vita text mentions his burial "upon the 28th day
  # of June," but his real liturgical feast day, per
  # web/www/horas/Latin/Sancti/07-03.txt, is July 3; removed here now
  # that he's properly authored there, same class of fix as St.
  # Apollinaris's wrong-date artifact noted in
  # tests/calendar/july-sanctoral.test.ts.)
  "06-01": [st-angela-merici]
  "06-02": [ss-marcellinus-peter-and-erasmus]
  "06-04": [st-francis-caracciolo]
  "06-05": [st-boniface-of-mainz]
  "06-06": [st-norbert]
  "06-09": [ss-primus-and-felicianus]
  "06-10": [st-margaret-of-scotland]
  "06-11": [st-barnabas]
  "06-12": [ss-basilides-cyrinus-nabor-and-nazarius]
  "06-13": [st-anthony-of-padua]
  "06-14": [st-basil-the-great]
  "06-15": [ss-vitus-modestus-and-crescentia]
  "06-18": [ss-mark-and-marcellian]
  "06-19": [ss-gervase-and-protase]
  "06-20": [st-silverius]
  "06-21": [st-aloysius-gonzaga]
  "06-22": [st-paulinus-of-nola]
  "06-23": [vigil-of-st-john-the-baptist]
  "06-24": [nativity-of-st-john-the-baptist]
  "06-25": [st-william-abbot]
  "06-26": [ss-john-and-paul]
  "06-29": [ss-peter-and-paul]
  "06-30": [commemoration-of-st-paul]
  # July — 7/12 of the pre-1955 pull. Five stubs this month, all
  # genuinely unwinnable — see their own files for which fixed-date
  # competitor blocks each. Separately, the full-year sanctoral import
  # (see vu-sanctoral-sweep-progress memory) added 07-01 through 07-08
  # and 07-15/07-16/07-19/07-31 — previously excluded entirely under a
  # stale "pure octave-continuation label, no independently named
  # saint" note, which was wrong for these dates: each has real,
  # complete own content (the Most Precious Blood and the Visitation
  # of the BVM are fully proper Duplex-class feasts of their own; the
  # Octave Day of Ss. Peter and Paul, July 6, likewise has real proper
  # content even though it's an octave day). The remaining days within
  # those two octaves (July 4, 7, 9) genuinely are bare
  # octave-continuation with no independent content, and stay excluded.
  "07-01": [most-precious-blood]
  "07-02": [visitation-of-the-bvm]
  "07-03": [st-leo-ii]
  "07-05": [st-anthony-mary-zaccaria]
  "07-06": [octave-of-ss-peter-and-paul]
  "07-07": [ss-cyril-and-methodius]
  "07-08": [st-elizabeth-of-portugal]
  "07-10": [ss-seven-brothers-rufina-and-secunda]
  "07-11": [st-pius-i]
  "07-12": [st-john-gualbert, ss-nabor-and-felix]
  "07-13": [st-anacletus]
  "07-14": [st-bonaventure]
  "07-15": [st-henry]
  "07-16": [our-lady-of-mount-carmel]
  "07-17": [st-alexius]
  "07-18": [ss-symphorosa-and-seven-sons]
  "07-19": [st-vincent-de-paul]
  "07-20": [st-margaret-of-antioch]
  "07-21": [st-praxedes]
  "07-22": [st-mary-magdalene]
  "07-23": [st-apollinaris, st-liborius]
  "07-24": [vigil-of-st-james, st-christina]
  "07-25": [st-james-the-greater, st-christopher]
  "07-26": [st-anne]
  "07-27": [st-pantaleon]
  "07-28": [ss-nazarius-celsus-victor-and-innocent]
  "07-29": [st-martha, ss-felix-simplicius-faustinus-and-beatrix]
  "07-30": [ss-abdon-and-sennen]
  "07-31": [st-ignatius-of-loyola]
  # August — 8/12 of the pre-1955 pull. Four pre-existing entries from
  # before this pull initiative (vigil-of-st-lawrence, st-lawrence,
  # assumption, st-augustine) got their propers backfilled this month; see
  # their own files. A genuinely new wrinkle this month: several dates
  # have a real, named secondary saint permanently subordinate to a
  # fixed, non-movable *octave* day (Lawrence's own Aug 10-17 octave, the
  # Assumption's Aug 15-22 octave) -- octaves aren't modeled by this app
  # (a known, explicitly deferred gap; see "Octave content" in TODO.md),
  # so unlike the "genuinely unwinnable stub" pattern used elsewhere
  # (where both competitors ARE modeled and the engine can correctly show
  # the subordination), these can't be represented without incorrectly
  # letting them win outright. Excluded entirely rather than guessed at:
  # Ss. Tiburtius and Susanna (Aug 11), St. Clare (Aug 12 -- notable: a
  # genuinely major saint, not an obscure one, caught by this same gap),
  # Ss. Hippolytus and Cassian (Aug 13), St. Agapitus (Aug 18), Ss.
  # Timothy/Hippolytus/Symphorian (Aug 22). Our Lady of the Snows (Aug 5)
  # and the Transfiguration (Aug 6) were also excluded here at first,
  # each under a stale "fixed BVM/Lord feast, not modeled" note -- wrong,
  # corrected 2026-08: both have real, complete content, and this app
  # already models three other fixed BVM feasts the same way (assumption,
  # immaculate-conception, nativity-bvm) -- see our-lady-of-the-snows.yml
  # and transfiguration.yml's own headers. Added below. Ss.
  # Xystus/Felicissimus/Agapitus, formerly excluded here as subordinate
  # to an unmodeled Transfiguration, are still excluded -- now blocked by
  # the same real octave/subordination-rendering gap as St. Clare et al.
  # above, not by the Transfiguration itself being unmodeled.
  "08-01": [st-peter-ad-vincula, ss-machabees]
  "08-02": [st-stephen-i]
  "08-03": [finding-of-st-stephen]
  "08-04": [st-dominic]
  "08-05": [our-lady-of-the-snows]
  "08-06": [transfiguration]
  "08-07": [st-donatus]
  "08-08": [ss-cyriacus-largus-and-smaragdus]
  "08-09": [vigil-of-st-lawrence, st-romanus]
  "08-10": [st-lawrence]
  "08-11": [ss-tiburtius-and-susanna]
  "08-12": [st-clare]
  "08-13": [ss-hippolytus-and-cassian]
  "08-14": [vigil-of-the-assumption]
  "08-15": [assumption]
  "08-16": [st-joachim]
  "08-17": [st-hyacinth]
  "08-19": [st-john-eudes]
  "08-20": [st-bernard]
  "08-21": [st-jane-frances-de-chantal]
  "08-23": [vigil-of-st-bartholomew]
  "08-24": [st-bartholomew]
  "08-25": [st-louis]
  "08-26": [st-zephyrinus]
  "08-27": [st-joseph-calasanctius]
  "08-28": [st-augustine, st-hermes]
  "08-29": [decollation-of-st-john-baptist, st-sabina]
  "08-30": [ss-felix-and-adauctus]
  "08-31": [st-raymond-nonnatus]
  # September — 9/12 of the pre-1955 pull. Same octave-gap exclusions as
  # August, this time around the Nativity of the BVM's own Sep 8-15
  # octave: Ss. Gorgonius (Sep 9) and Nicomedes (Sep 15, the octave's own
  # final day, also now the Seven Sorrows of the BVM's own fixed day)
  # are real named secondaries still excluded for the same reason St.
  # Clare was in August. Ss. Protus and Hyacinth (Sep 11) were also
  # excluded here at first under that same reasoning -- wrong, corrected
  # 2026-08 alongside the rest of the full-year sanctoral import (see
  # ss-protus-and-hyacinth.yml): the octave-window exclusion was never a
  # real rule, just an earlier gatekeeping habit this app has since moved
  # away from (see vu-feedback-import-available-content memory). St.
  # Hadrian (Sep 8) is the one exception -- he's blocked by the
  # Nativity's own day, not its octave, and that day IS already a mapped
  # sanctoral entry, so the ordinary collision engine handles him
  # correctly. The Exaltation of the Holy Cross (Sep 14) was also
  # excluded here at first, same "fixed feast of the Lord" reasoning as
  # the Finding of the Holy Cross -- wrong, corrected 2026-08 alongside
  # it (see exaltation-of-the-holy-cross.yml). St. Nicholas of Tolentino
  # (Sep 10) and St. Januarius (Sep 19)
  # are both monastic-calendar-specific: the former overrides what the
  # base Tridentine table treats as a plain Nativity-octave continuation,
  # the latter is added outright, present in neither the base table nor
  # (for Nicholas) its own octave slot.
  #
  # The pre-existing "09-29": [st-michael] mapping below (added before
  # this pull initiative, sourced from the raw Sancti/09-29.txt file
  # directly rather than a live query) does not appear to hold in this
  # pull's actual target track -- a live kalendar check across 6 different
  # years (2025-2030) shows nothing at all on Sep 29 in "Monastic
  # Tridentinum 1617" (not even a commemoration), and that file's own
  # [Rank] block has no untagged/default entry for this date, only
  # rubric-tagged alternates (tridentina, cisterciensis). The already-
  # correctly-pulled May 8 Apparition of St. Michael (see
  # apparition-of-st-michael.yml) may be this tradition's only real
  # Michaelmas. Kept mapped here anyway as a deliberate, informed
  # simplification (explicit user decision, 2026-08), not an oversight --
  # see st-michael.yml.
  "09-01": [st-giles, ss-twelve-brothers]
  "09-02": [st-stephen-of-hungary]
  "09-03": [st-pius-x]
  "09-05": [st-lawrence-justinian]
  "09-08": [nativity-bvm, st-hadrian]
  "09-10": [st-nicholas-of-tolentino]
  "09-11": [ss-protus-and-hyacinth]
  "09-12": [holy-name-of-mary]
  "09-14": [exaltation-of-the-holy-cross]
  "09-15": [seven-sorrows-of-the-bvm]
  "09-16": [ss-cornelius-and-cyprian, ss-euphemia-lucia-and-geminianus]
  "09-17": [stigmata-of-st-francis]
  "09-18": [st-joseph-of-cupertino]
  "09-19": [st-januarius]
  "09-20": [vigil-of-st-matthew]
  "09-21": [st-matthew]
  "09-22": [ss-maurice-and-companions]
  "09-23": [st-linus, st-thecla]
  "09-24": [our-lady-of-ransom]
  "09-26": [ss-cyprian-and-justina]
  "09-27": [ss-cosmas-and-damian]
  "09-28": [st-wenceslaus]
  "09-29": [st-michael]
  "09-30": [st-jerome]
  # October — 10/12 of the pre-1955 pull. Three monastic-calendar-specific
  # finds this month, all absent from or overriding the base Tridentine
  # table: Ss. Placid and Companions (Oct 5, St. Benedict's own famous
  # disciple, a high-rank addition), St. Justina (Oct 7, reassigns what
  # the base table gives to St. Marcus, Pope -- see st-justina.yml/
  # st-marcus.yml), and St. Gall (Oct 16, founder of St. Gallen). No
  # octave-gap exclusions this month.
  "10-01": [st-remigius]
  "10-02": [guardian-angels]
  "10-03": [st-therese-of-lisieux]
  "10-04": [st-francis]
  "10-05": [ss-placid-and-companions]
  "10-06": [st-bruno]
  "10-07": [st-justina, st-marcus]
  "10-08": [st-bridget-of-sweden]
  "10-09": [ss-dionysius-and-companions]
  "10-10": [st-francis-borgia]
  "10-11": [maternity-of-the-bvm]
  "10-13": [st-edward-king]
  "10-14": [st-callistus]
  "10-15": [st-teresa-of-avila]
  "10-16": [st-gall]
  "10-17": [st-margaret-mary-alacoque]
  "10-18": [st-luke]
  "10-19": [st-peter-of-alcantara]
  "10-20": [st-john-cantius]
  "10-21": [st-hilarion, ss-ursula-and-companions]
  "10-24": [st-raphael-archangel]
  "10-25": [ss-chrysanthus-and-daria]
  "10-26": [st-evaristus]
  "10-27": [vigil-of-ss-simon-and-jude]
  "10-28": [ss-simon-and-jude]
  "10-31": [vigil-of-all-saints]
  # November — 11/12 of the pre-1955 pull. All Saints' own propers were
  # backfilled this month (see all-saints-collect.yml). New exclusion
  # categories this month: All Souls' Day (Nov 2) is a fundamentally
  # different liturgical genre -- the Office of the Dead, not a saint's
  # feast at all, no Common-of-Saints structure to fall back on -- out of
  # scope the same way this app doesn't model the Requiem/funeral rite
  # anywhere else. Nov 3-7 are pure All-Saints-octave continuations (no
  # named saint). Ss. Four Crowned Martyrs (Nov 8, the octave's own final
  # day) hit the same unmodeled-octave gap as several saints in August/
  # September. The Dedication of the Basilica of the Most Holy Savior
  # (Nov 9, i.e. the Lateran) and the Presentation of the BVM (Nov 21,
  # itself a monastic-calendar-only addition) were also excluded here at
  # first, each under a stale "fixed Lord's/BVM feast, not modeled" note
  # -- wrong, corrected 2026-08: both have real, complete content -- see
  # dedication-of-the-basilica-of-the-most-holy-savior.yml and
  # presentation-of-the-bvm.yml's own headers. Added below. Its
  # secondary, St. Theodore, is still excluded -- now blocked by the same
  # real octave/subordination-rendering gap as St. Clare et al. in
  # August, not by the Dedication itself being unmodeled (her own
  # embedded `[Commemoratio 5]` block even carries St. Theodore's real
  # collect already, ready to use once that mechanism exists). The
  # Nov 18 Dedication of the Basilicas of Ss. Peter and Paul was already
  # kept in scope (it's about the Apostles, not the Lord), same as the
  # Commemoration of St. Paul and the two Chair-of-Peter feasts.
  #
  # Three monastic-calendar-specific reassignments this month, the most
  # of any month so far: St. Emilian (Nov 12) displaces St. Martin I,
  # Pope, who moves to Nov 14; St. Odo (Nov 19) is added outright,
  # demoting St. Pontian; St. Silvester, Abbot (Nov 26) displaces St.
  # Peter of Alexandria. Plus All Saints of the Benedictine Order (Nov
  # 13, Duplex II. classis) -- absent from the base table entirely, one
  # of the highest-ranked monastic-only additions in this whole pull.
  #
  # Also notable: St. Clement (Nov 23) transferring forward into St.
  # Chrysogonus's day (Nov 24) whenever Nov 23 falls on a Sunday is this
  # pull's first *single-day* transfer-plus-collision case (unlike
  # August's Finding-of-St.-Stephen situation, which needed an unmodeled
  # multi-day skip) -- this app's existing transfer machinery handles it
  # correctly; see tests/calendar/november-sanctoral.test.ts.
  "11-01": [all-saints]
  # Nov 2 (All Souls' Day) deliberately excluded from this full-year
  # sanctoral sweep: it's a Requiem office (own psalms, no Te Deum,
  # three full nocturns of Job readings), not a normal saint's office
  # -- a genuine mechanism gap, not an oversight. See
  # vu-sanctoral-sweep-progress memory.
  "11-04": [st-charles-borromeo]
  "11-08": [octave-of-all-saints]
  "11-09": [dedication-of-the-basilica-of-the-most-holy-savior]
  "11-10": [ss-tryphon-and-companions]
  "11-11": [st-martin-of-tours, st-menna]
  "11-12": [st-emilian]
  "11-13": [all-saints-of-the-benedictine-order]
  "11-14": [st-martin-i]
  "11-15": [st-albert-the-great]
  "11-16": [st-gertrude]
  "11-17": [st-gregory-thaumaturgus]
  "11-18": [dedication-of-the-basilicas-of-ss-peter-and-paul]
  "11-19": [st-odo, st-pontian]
  "11-20": [st-felix-of-valois]
  "11-21": [presentation-of-the-bvm]
  "11-22": [st-cecilia]
  "11-23": [st-clement, st-felicitas]
  "11-24": [st-chrysogonus]
  "11-25": [st-catherine]
  "11-26": [st-silvester-abbot, st-peter-of-alexandria]
  "11-29": [vigil-of-st-andrew, st-saturninus]
  "11-30": [st-andrew]
  # December — 12/12, the final month of the pre-1955 pull. Every
  # non-excluded date this month falls within a season this app now
  # models as `privileged-feria-minor` (Advent through Dec 20, Christmas's
  # own Octave from Dec 26) -- this month's own pull is what surfaced and
  # verified that temporal-category fix (see calendar/types.ts and this
  # repo's commit history). Immaculate Conception's own propers were
  # backfilled this month. Excluded: Dec 24 (Vigil of Christmas) and Dec
  # 25 (Christmas itself) aren't sanctoral entries at all -- Christmas is
  # a fixed-date temporal anchor (see data/calendar/fixed-date-
  # calendar.yml) and its Vigil is a distinct privileged-feria-major
  # temporal category, neither modeled as a saint. St. Eusebius of
  # Vercelli (Dec 15) is a monastic-calendar-specific placement, reached
  # via a same-day redirect notation in M1617.txt rather than a plain
  # date entry. The Vigil of St. Thomas (Dec 20) always lands on Advent's
  # Ember Saturday -- a known Mass-vs-Office simplification, same pattern
  # as September's Vigil of St. Matthew.
  "12-02": [st-bibiana]
  # St. Francis Xavier (Dec 3, Duplex majus, own real Oratio and Nocturn
  # 2-3 content) -- added by the later full-year sanctoral pull that
  # otherwise found this month already complete from the earlier
  # pre-1955 pass.
  "12-03": [st-francis-xavier]
  "12-04": [st-barbara]
  "12-05": [st-sabbas]
  "12-06": [st-nicholas]
  "12-07": [st-ambrose]
  "12-08": [immaculate-conception]
  "12-10": [st-melchiades]
  "12-11": [st-damasus]
  "12-13": [st-lucy]
  "12-15": [st-eusebius-of-vercelli]
  "12-20": [vigil-of-st-thomas]
  "12-21": [st-thomas-apostle]
  "12-26": [st-stephen-protomartyr]
  "12-27": [st-john-apostle]
  "12-28": [holy-innocents]
  "12-29": [st-thomas-becket]
  "12-31": [st-silvester-i]
