How the files were split across concurrent groups — one entry per group, never empty.
groups.length is the concurrency the run actually used; 1 for watch and single-file runs.
Worth having because the split is not reproducible from the outside: it is recomputed each
run from recorded timings and the core count. When a test only fails alongside a particular
neighbour, this is what identifies the neighbour — and
run({ inputs: result.groups[2].files }) re-runs that bundle on its own.
There is deliberately no URL here. A group's server is closed by the time this result
exists, so an address would be a link that never resolves; RunGroup.output is the
durable equivalent, still on disk, and it is what --open points a browser at.
RunGroup[]