Onslaught has both procedural levels as well as fixed predefined levels. I made a tool recently to facilitate creation of new levels.
It also allows adding traps for each level and saves it as a ScriptableObject. Since a Trap and its Switches need to be placed on platforms, the tool seamlessly provides a dropdown (as shown in GIF) for pre-existing platforms to the user, and thereby reducing the need to remember platform identifiers like PlatformID.
Unity has some really cool stuff like Editor Scripting that allows me to do such things. However, its a pain when you try to create sprite based gui elements like the “Preview” Section of the tool.
Still, missing a few features like X,Y Coordinates in Preview and ability to set LevelAugmentation (a Difficulty curve for that level, more on this later).