report property
The whole run, on disk, in this same shape — every step of every scenario, whatever this copy carries.
Because the whole thing does not fit in an answer. A full suite across a 2×2 matrix is 160 steps and 60k tokens of paths, past anything a client hands a model, and most of it is about scenarios that passed. So the answer summarises and the file keeps everything: one read when a reader wants a step it was not given, and no read at all in the ordinary case where the answer is "20 scenarios, all green" — which is passed, with the twenty rows left here.
Implementation
final String? report;