The specification for resolution details states that the reason field should be an optional string. There are some pre-defined reason values (reflected in the Reason enum), but a provider should be free to provide an arbitrary reason.
I believe the FlagResolutionDetails.reason field should be updated to store an Optional[str] instead of the current Optional[Reason].
Happy to work on the PR if this seems acceptable.
See the related issue on the SDK spec.