public boolean isMandatory() {
    return isGenerateAbstract
        && !isGenerateDefault // is the case for defaulted abstract annotation attribute
        && !isContainerType()
        && !(isPrimitive() && (validation() == ValidationMethod.NONE
        || validation() == ValidationMethod.VALIDATION_API))
        && !(isNullable() && !isNullabilitySynthetic())
        && !isEncoding()
        && !hasBuilderSwitcherDefault();
  }
Expose criteria metadata like list of matchers for current attribute.
value-processor/src/org/immutables/value/processor/meta/ValueAttribute.java