After reviewing the code on finished branch, I feel that I’m not qualified to comment on the middleware intensive structure (I don’t know it’s quirks).
Pulling everything out in a middleware folder is what I’d do.
About your statement :
> The reducer situation is similar, there’s structure there, they don’t all need to end up as a flat array in the root.
I think you should keep maps flat, I realised this while working on a complex project and might write an article about that. The way I shape my reducers in this post can turn out to be painful.