another thing to be considered, how is the behavior when `raw_value` is `nil`, then I suppose it should not be coerced to string, would that be possible by using `try` or maybe by simply using `if raw_value && enum_def...` - so that `nil` remains unchanged