@Override
	public void markup(Program program, boolean isBinary, TaskMonitor monitor, MessageLog log,
			NTHeader ntHeader)
			throws DuplicateNameException, CodeUnitInsertionException, IOException {
		for (CliAbstractTableRow row : rows) {
			CliTypeSpecRow typeRow = (CliTypeSpecRow) row;
			CliBlob blob = metadataStream.getBlobStream().getBlob(typeRow.signatureIndex);

			// Get the address of the signature, create the TypeSpec object
			Address sigAddr = CliAbstractStream.getStreamMarkupAddress(program, isBinary, monitor,
				log, ntHeader, metadataStream.getBlobStream(), typeRow.signatureIndex);

			CliSigTypeSpec typeSig = new CliSigTypeSpec(blob);
			metadataStream.getBlobStream().updateBlob(typeSig, sigAddr, program);
		}
	}
Describes the TypeSpec table. Each row represents a specification for a TypeDef or TypeRef which is contained in the Blob stream.
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/pe/cli/tables/CliTableTypeSpec.java