https://stackoverflow.com/questions/5932520/is-there-a-way-to-get-the-c-sharp-compiler-to-emit-an-error-if-a-switchenum-val