# description
Structural candidate shape for institution-level investigation relations, engagements, actions, responses and gaps. Cross-record and semantic rules require the runtime validator; neither layer is publication admission.

# properties.meta.properties.title.const
UK observer accountability candidate extension

# title
UK observer accountability candidate extension

# x-taxsorted-runtime-invariants[]
all record IDs are dataset-wide unique and each collection is ASCII ID sorted

# x-taxsorted-runtime-invariants[]
all organisation and document references use a declared exact base dataset

# x-taxsorted-runtime-invariants[]
every observer on an engagement has a sourced challenge relation for that engagement or an engagement-specific unmapped-route gap

# x-taxsorted-runtime-invariants[]
gap engagement references, action engagement references and response action references resolve

# x-taxsorted-runtime-invariants[]
actions stay within the declared engagement period and use an outcome state compatible with the action type

# x-taxsorted-runtime-invariants[]
a challenge relation must be effective at the engagement accountability date and an unresolved gap must not be overdue

# x-taxsorted-runtime-invariants[]
nested organisation, relation, document and action references contain no duplicates

# x-taxsorted-runtime-invariants[]
empty commissioner, funder, method and output arrays carry explicit disclosure states; unknown or unpublished evidence creates a scoped gap

# x-taxsorted-runtime-invariants[]
an active disclosure gap cannot contradict a fully published, published-none or not-applicable state

# x-taxsorted-runtime-invariants[]
actions name exact declared-subject targets and referral destinations where the action type or substantive outcome requires them

# x-taxsorted-runtime-invariants[]
each action states whether its actor acts as an investigator or commissioner and that role resolves on the engagement

# x-taxsorted-runtime-invariants[]
corrections, retractions and withdrawn responses append, preserve institutional actor and capacity, and point to the earlier records they change

# x-taxsorted-runtime-invariants[]
privacy, action, response and gap dates do not claim knowledge after candidate generation

# x-taxsorted-validation-scope.externalChecksStillRequired
Base-record existence at the pinned release, source meaning, source rights, human review, legal basis and operational publication approval remain external checks.