protected void encodeHeader(Encoder encoder) throws IOException {
		if ((id >> 56) != (ID_BASE >> 56)) { // Don't send down internal ids
			encoder.writeUnsignedInteger(ATTRIB_ID, id);
		}
		encoder.writeString(ATTRIB_NAME, name);
		encoder.writeBool(ATTRIB_TYPELOCK, typelock);
		encoder.writeBool(ATTRIB_NAMELOCK, namelock);
		int mutability = getMutability();
		if (mutability == MutabilitySettingsDefinition.CONSTANT) {
			encoder.writeBool(ATTRIB_READONLY, true);
		}
		else if (mutability == MutabilitySettingsDefinition.VOLATILE) {
			encoder.writeBool(ATTRIB_VOLATILE, true);
		}
		if (isIsolated()) {
			encoder.writeBool(ATTRIB_MERGE, false);
		}
		if (isThis) {
			encoder.writeBool(ATTRIB_THISPTR, true);
		}
		if (isHidden) {
			encoder.writeBool(ATTRIB_HIDDENRETPARM, true);
		}
		encoder.writeSignedInteger(ATTRIB_CAT, category);
		if (categoryIndex >= 0) {
			encoder.writeUnsignedInteger(ATTRIB_INDEX, categoryIndex);
		}
	}
Encode attributes for the base symbol element
@param encoder is the stream encoder
@throws IOException for errors in the underlying stream
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/HighSymbol.java