TraceOutcome
Whether a call produced what it was asked for. Two values on purpose: every finer distinction — timed out, was preempted, came back empty — is a fact the caller knew and the recorder did not, so it lives in
detailwhere it can be named
type TraceOutcome = 'ok' | 'failed';