⚠ this is really draft code, not in a working state. I'll probably not work on this in the short term, this is a branch not to loose the code.