When a table schema implements this interface, its `typeMap` method should return
an array containing regular field type and datfield type definition as well.
Datfield type definition can be either a regular CakePHP data type string string or an array which provides one or more of the following keys :
type => <string> : regular CakePHP registered data type
marshal => <callable> : Callback to apply on marshal operations, overrides data type marshal if one is defined
toPHP => <callable> : Callback to apply on toPHP operations, overrides data type toPHP if one is defined
toDatabase => <callable> : Callback to apply on toDatabase operations, overrides data type toDatabase if one is defined
The callable callback will be provided with following arguments :
Current value in data
Full row of data
Current query
Returned value will be used to replace value at datfield path