I'd rather stay in app code. If I do db.executesql(..., as_dict=True) could I copy that into a Storage object to get something roughly similar to a DAL object?
I started trying to build it in DAL and got part of the way. I was seeing a problem with the counts where it wasn't executing multiple counts correctly. If I had 2 or 3 counts they all reported the same number. Forgetting the MATCHes, do you think I should be able to get the LEFT JOINs and COUNTs working? --

