making data types behave like other inherited/extended items. This means you can easily add custom data types for a specific model. Also dataTypes can optionally determine how a given type should be compared to determine if the value should be considered changed or not.
3.0.0