public void encodeCoreTypes(Encoder encoder) throws IOException {
		encoder.openElement(ELEM_CORETYPES);

		for (TypeMap typeMap : coreBuiltin.values()) {
			encoder.openElement(ELEM_TYPE);
			encoder.writeString(ATTRIB_NAME, typeMap.name);
			encoder.writeSignedInteger(ATTRIB_SIZE, typeMap.dt.getLength());
			encoder.writeString(ATTRIB_METATYPE, typeMap.metatype);
			if (typeMap.isChar) {
				encoder.writeBool(ATTRIB_CHAR, true);
			}
			if (typeMap.isUtf) {
				encoder.writeBool(ATTRIB_UTF, true);
			}
			encoder.writeUnsignedInteger(ATTRIB_ID, typeMap.id);
			encoder.closeElement(ELEM_TYPE);
		}
		encoder.closeElement(ELEM_CORETYPES);
	}
Encode the core data-types to the stream
@param encoder is the stream encoder
@throws IOException for errors in the underlying stream
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/PcodeDataTypeManager.java