pub fn attempts_to_value(attempts: &[SourceAttempt]) -> ValueExpand description
The trace as JSON, for the machine-readable surfaces (#459).
One object per source: { source, outcome, detail?, consulted }.
consulted is redundant with outcome and present anyway. It is the
single question every consumer of this array actually has — “did anyone
else look?” — and making them memorise which of eight tokens implies it
invites the exact confusion the type was introduced to end.
Built here rather than by #[derive(Serialize)] on the types: both are
#[non_exhaustive] public API, and deriving would make every future
variant a wire change by default instead of by decision.