I worked on software at one point that had at it's core a number of "modes" that it switched between. It was, at the time, in the process of migrating from enums and switch/case trees to an inheritance based system.
In practice this meant there was a single instance of "Mode" for each mode which used pointer equality to switch/case on modes like an enum.
To add a new mode (that did nothing) I think I had to change about 6 different places.
That kind of sucks, but it should only be for a dev release
https://gitlab.gnome.org/GNOME/gimp-data/-/blob/main/images/splash-log.md