@Override
	public void encode(Encoder encoder, boolean isInput) throws IOException {
		encoder.openElement(isInput ? ELEM_INPUT : ELEM_OUTPUT);
		if (thisbeforeret) {
			encoder.writeBool(ATTRIB_THISBEFORERETPOINTER, true);
		}
		encoder.writeBool(ATTRIB_KILLEDBYCALL, autoKilledByCall);
		if (isInput && !splitMetatype) {
			encoder.writeBool(ATTRIB_SEPARATEFLOAT, false);
		}
		int curgroup = -1;
		for (ParamEntry el : entry) {
			if (curgroup >= 0) {
				if (!el.isGrouped() || el.getGroup() != curgroup) {
					encoder.closeElement(ELEM_GROUP);
					curgroup = -1;
				}
			}
			if (el.isGrouped()) {
				if (curgroup < 0) {
					encoder.openElement(ELEM_GROUP);
					curgroup = el.getGroup();
				}
			}
			el.encode(encoder);
		}
		if (curgroup >= 0) {
			encoder.closeElement(ELEM_GROUP);
		}
		for (ModelRule modelRule : modelRules) {
			modelRule.encode(encoder);
		}
		encoder.closeElement(isInput ? ELEM_INPUT : ELEM_OUTPUT);
	}
Within this list, get the ParamEntry at the given index
@param index is the given index
@return the selected ParamEntry
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/ParamListStandard.java