Thank you @PotOfCoffee2Go I ended up taking some of your code from #8101 to get this up and running. There's still some stuff missing (like the tests!) but it gets things moving.
Instead we store them as dictionary tiddlers
Routes are now rationalised, too.