code: public Feature add(Feature feature) {
          if (feature.name().equals(SIGNATURE_KEY) && !feature.isBinary()) {
              throw new IllegalArgumentException("Signature of a license has to be binary.");
          }
          return features.put(feature.name(), feature);
      }
docs: Add a feature to the license. Note that adding a feature to a license renders the license signature invalid.
  Adding the feature does not remove the signature features though.
  <p>
  The method throws exception in case the feature is the license signature and the type is not {@code BINARY}.
  
  @param feature is added to the license
  @return the previous feature of the same name but presumably different type and value or {@code null} in case
  there was no previous feature in the license of the same name.