docs: private void parseAlternates(JsonLikeValue theAlternateVal, ParserState<?> theState, String theElementName, String theAlternateName) {
  		if (theAlternateVal == null || theAlternateVal.isNull()) {
  			return;
  		}
  
  		if (theAlternateVal.isArray()) {
  			JsonLikeArray array = theAlternateVal.getAsArray();
  			if (array.size() > 1) {
  				throw new DataFormatException("Unexpected array of length " + array.size() + " (expected 0 or 1) for element: " + theElementName);
  			}
  			if (array.size() == 0) {
  				return;
  			}
  			parseAlternates(array.get(0), theState, theElementName, theAlternateName);
  			return;
  		}
  
  		JsonLikeValue alternateVal = theAlternateVal;
  		if (alternateVal.isObject() == false) {
  			getErrorHandler().incorrectJsonType(null, theAlternateName, ValueType.OBJECT, null, alternateVal.getJsonType(), null);
  			return;
  		}
  
  		JsonLikeObject alternate = alternateVal.getAsObject();
  		for (String nextKey : alternate.keySet()) {
  			JsonLikeValue nextVal = alternate.get(nextKey);
  			if ("extension".equals(nextKey)) {
  				boolean isModifier = false;
  				JsonLikeArray array = nextVal.getAsArray();
  				parseExtension(theState, array, isModifier);
  			} else if ("modifierExtension".equals(nextKey)) {
  				boolean isModifier = true;
  				JsonLikeArray array = nextVal.getAsArray();
  				parseExtension(theState, array, isModifier);
  			} else if ("id".equals(nextKey)) {
  				if (nextVal.isString()) {
  					theState.attributeValue("id", nextVal.getAsString());
  				} else {
  					getErrorHandler().incorrectJsonType(null, "id", ValueType.SCALAR, ScalarType.STRING, nextVal.getJsonType(), nextVal.getDataType());
  				}
  			} else if ("fhir_comments".equals(nextKey)) {
  				parseFhirComments(nextVal, theState);
  			}
  		}
  	}