feat: particular-calendar overlay model and decorator (#75) #442
No reviewers
Labels
No labels
area: build
area: ci
area: compare
area: data
area: engine
area: model
area: provenance
area: rite
area: validation
backport
blocked
breaking
confirmed
dependencies
duplicate
epic
github_actions
invalid
needs-info
needs-triage
php
priority: high
priority: low
priority: medium
regression
type: bug
type: chore
type: correction
type: docs
type: enhancement
type: feature
type: fix
type: perf
type: refactor
type: security
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Directorium/Core!442
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/75-overlay-framework"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The core of the particular-calendar overlay framework (epic #75) — the mechanism SSPX/FSSP/ICKSP calendars use to layer over the universal 1962 sanctoral as pure data, never engine code. First slice of the R2 / 3mi.org overlay work.
What lands
src/Overlay/— the declarative model (#76): aCalendarOverlayis an identified, named set ofOverlayOperations over stable feast IDs:RerankOperation— keep a universal feast but rank it differently (SSPX elevates St Pius X + the Seven Sorrows to I class); re-cites the changed field to the overlay's source.AddOperation— a proper feast the universal calendar lacks (a society's own saint).SuppressOperation— a universal feast the particular calendar drops.OverlayConflictso a malformed overlay fails loudly.OverlaidSanctoralData(#77) decorates the existingSanctoralDataseam the resolver already reads through — so an overlay changes only the data the resolver sees. Precedence, concurrence, and commemoration logic are untouched. The version stamp carries the overlay id.CitationSet::mergelayers an overlay's citation over the base entry's.Proven
11 tests / 62 assertions against the known
SeedSanctoralDataslice: a re-rank + add + suppress applied together, identity/date/colour preserved with the rank re-cited, order-independence, and every conflict rule.Follows (this epic)
The cited YAML→NDJSON overlay format + generator (#76 data), the
day()selector + output stamping (#78), and the full SSPX overlay content + conformance gate against the SSPX feed (#80).Gate: lint clean · analyse [OK] · test 668 (1 skip).
Refs #75 #76 #77