N.B.: This is a subpart of #568. @ehuss: you state in #921 that they started an outline for this. Do you still have it, and if so, are you willing to show it? If this is as daunting as you think it is, should we create a new branch to work on it?