@futurebird quite some time ago (90s) I wrote an autogen function for a maze that took pseudo random seeds in such a way that one could skew various things (number dead ends, turn left to get out, right to get out etc. could also rotate an existing maze). Adding in the fluff was easy but it took me weeks to get something working on just making a valid maze). I dunno if I still have that code.
Also you probably hear this a lot, but I'll say it: your classes sound phenomenal!