Custom room gen

So I'm making a recreation of Roblox Doors in Minecraft, and the most complex thing I need to work on is custom room gen. There are some rules the rooms need to follow, such as a certain type of room not spawning after another of the same type, certain scripted rooms to appear at certain doors (e.g. reception at door 0, seek chase from around door 30-40, figure rooms at 50 and 100 etc.), and also when there are multiple exits it needs to know if another room can fit through that exit, and if not choose another exit. I also am unsure whether cloning or structure blocks would be better. Any help on how I could do any of this would be useful and highly appreciated.
Continue to help post