Took a break from it for a while and picked it up again, this time by not doing anything much feature-wise but pulling the code apart and de-C++-ing it. Bit by bit building a categorised code tree with single functions per file, deconstructing classes to plain functions and data structs, with the goal to convert from C++ to clear C. And then one day consolidate code to have for instance the same diagonal road options as current train tracks.
Might be pointless and take a long time to finish, but it's comforting to turn something overly complex into simple, small pieces and also create a unique code formatting style to visualise elements of a line of code for easier reading. Another fun part is reading about data design and coming up with a custom data container to replace the std::vector uses.