pub fn candidate(
source: &EngineContextSourceV1,
now: DateTime<Utc>,
max_sensitivity: &SensitivityLevel,
) -> Result<Option<ContextObjectV1>, &'static str>Expand description
Ok(None): the source is rejected BEFORE it becomes a candidate and leaves
no selection entry (contract: “rejected pre-candidate inputs have no
selection entry”).
That includes a source whose body carries a classification marking the
gateway DETECTS, above both what its descriptor declares and what the
kernel policy admits (max_sensitivity). Its descriptor misstates the
body, so the input is rejected like any other invalid manifest — and a
canonical exclusion entry would project the SHA-256 of content that is
more sensitive than this plan may carry. A source whose DECLARED
classification exceeds the policy is unchanged: it stays a candidate and
the kernel records its canonical policy exclusion.