Returns a serialized JSON structure of the model which also includes fields used by the database.
@override Map<String, dynamic> toJson() { return { 'type': type.toJson(), 'definition': definition, }; }