This was mostly to prove to myself that we could possibly reach that return more than actually covering that return. This just shows how gnarly this logic actually is. I wish there were a better way to write it.
Rename `decision_for` to `more_specific_decision_for` and `should_report_error` to `decision_for`.
Convert it to test the DecisionEngine class directly and put them in their own file.