private boolean consumesWildcardExtends() {
    return !isUnwrappedElementPrimitiveType()
        && !isStringType()
        && !(hasContainedElementType() && firstTypeParameter().equals(String.class.getName()))
        && !hasEnumFirstTypeParameter();
  }
Marshaled name for compatibility with repository.
@return get JSON name either specified or default.
value-processor/src/org/immutables/value/processor/meta/ValueAttribute.java