The custom field needs to determine if the provided custom field value, in the context of the config and
project import mapper, is a valid value that can be imported.

The implementation has two ways to report dependencies:

It can use the flagAsRequired() method on the appropriate System object Mapper if it simply wants to report that it requires a particular object from the import file.
If this object cannot be mapped into the new System, then the Project Import will report an erro against that Object type (eg Version).

It can create its own error messages and/or warnings and add them to the returned MessageSet.
These messages will be reported in the context of the particular Custom Field.

Because these two ways of creating messages will be shown in different contexts, it is valid for a Custom Field developer
to choose to report a single problem both ways.

The custom field needs to determine what the "mapped" value will be for the provided custom field value and return
this new string representation of the value. This value may come from the passed in project import mapper, it
may come from mapping custom field options, or may come from an external system.