If I am reading this correctly, the KMS keyring builder requires that generator_key_id is set. This should not be required.
The core use case for this is that we need to allow the caller to explicitly control what keyring generates the data key. Requiring that the generator keyring is set removes this control.