ReadonlyevidenceThe Evidence Model -- read from the cached artifact on a hit, freshly computed on a miss. Identical in shape either way.
ReadonlymissSet only when source === "miss" -- why the cache wasn't trusted, for a caller that wants to log it. Never a silent fallback.
Readonlysource"hit" -- the persisted artifact's fingerprint matched current source; read from disk, no recompute. "miss" -- a real computeDataArtifacts() call ran.
The result of getEvidenceModel.