We want to improve the user experience of loading and analyzing runs by providing two distinct method.
Method one collect_results(paths) should take a series of paths as an input and provide a dictionary of the runs as the output. The method should produce an attack results collection. This result object should then also have a result_object.as_dataframe() method that can easily flatten the object to make it easy to use.
We can see if it makes sense to leverage the existing data structures we have in the first place for writing the results.