What options, if any, do I have to use an enum in C++ that supports reordering/inserting/removing of enum values?

It’s funny you mentioned the enum wrapper as that’s what I’m currently working on. Having trouble figuring out how to implement custom serialization on a struct, though, so if you have any tips on that or can point me to an example, I’d appreciate it.

I debated added something else to my post and hoped that the switch statement point would be enough and of course now I wish I had. Everything needs to be known and usable in C++. GameplayTags are data driven and so are not const expressions.

For FName, I don’t think that will work either because I need them to be drop-down selectable in the editor but I’d be happy to learn otherwise.

I guess I wasn’t explicit in some of my requirements so I’ll mention them here and update the original post. The system needs to be fully formed, accessible, and functional all from C++. I need to know all enum values (or whatever I end up using) in C++ in a type safe way (i.e. not using string literals or other things where typos can cause problems). The system processes data that uses the enums, so the solution needs to support easy data editing and reliable serialization even as the enum changes.