* User defined fields read from P6, Asta and GanttProject schedules are now represented by instances of `UserDefinedField`. They will no longer be mapped to custom field instances.
* Enterprise Custom Fields read from MPP and MSPDI files are now represented by instances of `UserDefinedField`.
* When writing MSPDI files, UserDefinedField instances which were originally read from enterprise custom fields will be written to the MSPDI file as enterprise custom fields.
* When writing MSPDI files, UserDefinedField instances which were from applications other than Microsoft Project will automatically be mapped to available custom fields.
* When writing MPX files, UserDefinedField instances will automatically be mapped to available custom fields.
* The `UserDefinedField` type implements the `FieldType` interface and so can be used with the `FieldContainer` `get` and `set` methods to work with the contents of the user defined fields.
* The `ProjectFile.getUserDefinedFields()` method has been added to provide access to all user defined fields defined in the project.
* The `CustomFieldContainer` returned by `ProjectFile.getCustomFields()` will contain entries for all `UserDefinedField` instances.
* The various `getFieldTypeByAlias` and `getFieldByAlias` methods will retrieve user defined fields by name.
* Added the convenience method `ProjectFile.getPopulatedFields()` to retrieve details of all populated fields across the project. This avoids the caller having to individually retrieve the populated fields from the tasks container, resource container and so on.
* Updated the `getPopulatedFields` methods to return a `Set` of `FieldType` rather than a `Set` of `TaskField`, `ResourceField` etc.
* The various `getPopulatedFields` methods will include instances of `UserDefinedField` in the returned collection if relevant.
* All `ENTERPRISE_CUSTOM_FIELDn` values have been removed from the `TaskField`, `ResourceField`, `AssignmentField` and `ProjectField` enumerations.
* The `getEnterpriseCustomField` and `setEnterpriseCustomField` methods have been removed from `ProjectProperties`, Task`, `Resource` and `ResourceAssignment`.
* Project UDFs are now read from P6 schedules.
* Project UDFs are now written to PMXML files.
* All code previously marked as deprecated has been removed.