Infra + main CLI validation.
Further parsing of report syntax. Ready to add the event.
Basic heuristics and solution.
Cleanup. Add specs.
Handle cyclic dependencies in the witness reports.
Moar specs.
Switch to DFS during solve.
Dynamic programming solution prototype.
Finally optimized dfs.
Pick the best solution. Clean up the classes.
More unit tests.