@Override
	public DataType toDataType() throws DuplicateNameException, IOException {
		StructureDataType struct = new StructureDataType(getStructureName(), 0);
		struct.add(super.toDataType(), super.getStructureName(), "");
		struct.add(SwiftUtils.PTR_STRING, "SuperclassType",
			"The type of the superclass, expressed as a mangled type name that can refer to the generic arguments of the subclass type");
		struct.add(DWORD, "MetadataNegativeSizeInWords",
			"If this descriptor does not have a resilient superclass, this is the negative size of metadata objects of this class (in words)");
		struct.add(DWORD, "MetadataPositiveSizeInWords",
			"If this descriptor does not have a resilient superclass, this is the positive size of metadata objects of this class (in words)");
		struct.add(DWORD, "NumImmediateMembers",
			"The number of additional members added by this class to the class metadata");
		struct.add(DWORD, "NumFields",
			"The number of stored properties in the class, not including its superclasses. If there is a field offset vector, this is its length.");
		struct.setCategoryPath(new CategoryPath(DATA_TYPE_CATEGORY));
		return struct;
	}
Gets the number of stored properties in the class, not including its superclasses. If there 
is a field offset vector, this is its length.

@return The number of stored properties in the class, not including its superclasses. 
  If there is a field offset vector, this is its length.
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/swift/types/TargetClassDescriptor.java