You are correct, you can start with SimpleCity builder as an example and leave most of the stuff (query, tool data, selection / transform logic spatial constraints) and build them as needed. The config class will show all the properties in the dungeon actor when you select this builder from the dungeon actor
virtual void BuildDungeonImpl(UWorld* World) override;
virtual void EmitDungeonMarkers_Implementation() override;
Build your layout in the BuildDungeonImpl function and save the result in the model. Emit markers around your layout in the EmitDungeonMarkers_Implementation function. This makes the theme editor fast as it doesn’t have to rebuild the layout when you change the theme graph and just reuse prebuild model every time you change something in the theme graph