Per-node scenario results to allow drilling down to how scenarios behaved on specific nodes.
When a node fails, the result takes the shape of failed_result/0.
When a node succeeds, the result takes the shape of successful_result/0.
Summary
Types
@type failed_result() :: %LiveLoad.Result.NodeResult{ node: node(), result: nil, status: :error }
@type successful_result() :: %LiveLoad.Result.NodeResult{ node: node(), result: LiveLoad.Result.ScenarioResult.t(), status: :ok }
@type t() :: successful_result() | failed_result()