Architecture & Scope
Layered architecture and scope rules for traditions and profiles.
OLS is layered. The core standard avoids forcing one tradition’s structure onto another. Tradition-specific details belong in profiles.
OLS Core
└── Christian Liturgical Core
└── Oriental Orthodox Core
├── EOTC Profile
├── Eritrean Orthodox Profile
├── Coptic Orthodox Profile
├── Syriac Orthodox Profile
├── Armenian Apostolic Profile
└── Malankara Orthodox Profile
Scope Object
{
"scope": {
"core": "christian-liturgical",
"family": "oriental-orthodox",
"tradition": "eotc",
"profile": "eotc.v1",
"status": "eotc-first",
"otherTraditionsSupported": [
"eritrean-orthodox",
"coptic-orthodox",
"syriac-orthodox",
"armenian-apostolic",
"malankara-orthodox"
]
}
}
Scope Rules
| Rule | Requirement |
|---|---|
| Core fields | MUST remain usable across Christian liturgical traditions. |
| Profile fields | MUST live under traditions.<namespace>. |
| EOTC-specific terms | MUST NOT be treated as universal Oriental Orthodox terms. |
| Local parish customs | SHOULD be encoded as variants or local custom overlays. |
| Teaching content | MUST distinguish explanation from liturgical text. |
Put Extensions at the Narrowest Scope
Keep portable fields at the entity root and place tradition-specific facts under the matching namespace. For example, the role type remains reusable while sanctuary access belongs to the EOTC profile:
{
"id": "role-deacon",
"type": "deacon",
"labels": { "en": "Deacon" },
"traditions": {
"eotc": {
"nativeTitle": "Diyaqon",
"sanctuaryAccess": ["qene_mahlet", "qeddest"]
}
}
}
Consumers that do not implement traditions.eotc can still understand the core role. Profile-aware consumers can apply the additional access rules.
Do not duplicate or redefine a core field inside a profile namespace. If a profile needs different semantics, define a new namespaced field and document the relationship explicitly.