I'm completely aware that the amount of branching and repetition here is ridiculous. This is just to help us get towards 0 flow issues, at which point I will definitely come back and do noop refactors to tidy these up.
NOTE: CI is expected to fail. I got to a point in my local environment where all flow issues were resolved, but based on earlier fedback in the stack I'm breaking them down so things are easier to review.. even if that means that intermediate steps fail.
[skip-ci]
Depends on D10268