@Override
	public void markup(Program program, boolean isBinary, TaskMonitor monitor, MessageLog log,
			NTHeader ntHeader)
			throws DuplicateNameException, CodeUnitInsertionException, IOException {
		int fieldRowIndex = 0;
		for (CliAbstractTableRow row : rows) {
			CliFieldRow fieldRow = (CliFieldRow) row;
			fieldRowIndex++;

			// Create FieldSig object
			Address sigAddr = CliAbstractStream.getStreamMarkupAddress(program, isBinary, monitor,
				log, ntHeader, metadataStream.getBlobStream(), fieldRow.sigIndex);

			CliSigField fieldSig =
				new CliSigField(metadataStream.getBlobStream().getBlob(fieldRow.sigIndex));

			if (!metadataStream.getBlobStream().updateBlob(fieldSig, sigAddr, program)) {
				Msg.warn(CliTableField.class,
					"Couldn't update FieldSig blob " +
						metadataStream.getStringsStream().getString(fieldRow.nameIndex) +
						" at Field table index " + fieldRowIndex);
			}
		}
	}
Describes the Field table. Each row represents a field in a TypeDef class. Fields are stored one after the other, grouped by class.
References to the Field table encode where the fields for a class start and end.
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/pe/cli/tables/CliTableField.java