pub fn reading(
card: &Card,
answers: Option<&BTreeMap<String, Assessment>>,
) -> AssessmentExpand description
How a message to a shielded address reads: the AI’s answer about this
very message when it read it (found under ai_key, where
sioul_sync::shield_ai keeps it), else the word lists’. Every reader goes
through here (the Porch, sioul shield, the MCP server), so that none
looks an answer up another way, misses it, and passes on mail the AI found hostile.