Role Inheritance & Substitution
Role inheritance, substitutions, and custom tradition rules.
Liturgical roles are not flat. A bishop may serve in the place of a priest, a senior celebrant may fulfill a lower role, and local practice may allow substitutions.
{
"id": "role-bishop",
"type": "bishop",
"labels": { "en": "Bishop" },
"implements": ["role-priest", "role-celebrant"],
"substitutesFor": [
{
"role": "role-priest",
"scope": "eucharist",
"validWhen": {
"authorityStatusAtLeast": "parish-reviewed"
}
}
]
}
Resolution Rules
Role substitution is contextual. A consumer should check all of the following before accepting a substitute:
- The requested role appears in
implementsorsubstitutesFor. - The service or action matches the declared
scope. - Every
validWhenauthority condition is satisfied. - The active tradition profile permits the substitution.
Substitution is directional: a bishop may implement a priest role, but that does not imply that a priest implements a bishop role. Implementations should reject inheritance cycles and should not infer substitutions from similar labels.
{
"requestedRole": "role-priest",
"assignedRole": "role-bishop",
"scope": "eucharist",
"result": "valid"
}
The result above illustrates a resolver output, not an additional OLS entity.