This isn't done yet, but it's closer. I'm hoping it's enough to usefully review and merge.
cc @Diziet who will be calling it and @gabi-250 who reviewed the last installement.