What I was thinking of lately, is to use a const struct instead of enums.
That gives a nice namespace to the members (that could be enum type, so conv warnings against other enums will still apply)
Also I could just use my struct name/member name typereflection to get the name of the fields,