Description
While I support the use of a flaggable enum for performance reasons, I believe this is going to lead to a regression that's going to be hard to catch for most people. And which I think our own code is a victim of.
v1 Type is a string
v2 Type is a flaggable enum (currently)
It's super easy to not notice the change in some scenarios, especially the ones involving string interpolation, implicit operators. In that case, overlooking the fact that multiple values are present will lead to cases with multiple entries falling off a cliff.
I think to start with, our to identifier method should throw if multiple values are present, instead of returning null to signal something was wrong in the logic of the application