code: @SuppressWarnings("unchecked")
    @Override
    public Class<T> versionClass() {
      if (this.retentionPolicies.size() == 1) {
        return (Class<T>) this.retentionPolicies.get(0).versionClass();
      }
  
      Class<T> klazz = (Class<T>) this.retentionPolicies.get(0).versionClass();
      for (RetentionPolicy<T> policy : this.retentionPolicies) {
        klazz = commonSuperclass(klazz, (Class<T>) policy.versionClass());
      }
      return klazz;
    }
docs: Returns the most specific common superclass for the {@link #versionClass} of each embedded policy.