Why is the variant required to be a Symbol?

When we're providing an API to set a specialized format based on a user request, we're just begging for developers to set the variant to user-provided data. With security in mind, working with Strings is the API I'd expect if we're assigning data from the outside world.

Alternatively, declaring a whitelist of allowed variants would allow us to safely call .to_sym on any String assigned to request.variant as long as it's whitelisted.