private void encodeProperties(Encoder encoder) throws IOException {
		if (properties.isEmpty()) {
			return;
		}
		encoder.openElement(ELEM_PROPERTIES);
		for (Entry<String, String> property : properties.entrySet()) {
			encoder.openElement(ELEM_PROPERTY);
			encoder.writeString(ATTRIB_KEY, property.getKey());
			encoder.writeString(ATTRIB_VALUE, property.getValue());
			encoder.closeElement(ELEM_PROPERTY);
		}
		encoder.closeElement(ELEM_PROPERTIES);
	}
Initialize this object from an XML stream.  A single {@code <compiler_spec>} tag is expected.
@param parser is the XML stream
@throws XmlParseException for badly formed XML
@throws DuplicateNameException if we parse more than one PrototypeModel with the same name
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/BasicCompilerSpec.java