Returns a JSON structure of the model, optimized for Protocol communication.
@override Map<String, dynamic> toJsonForProtocol() { return { 'type': type.toJson(), 'definition': definition, }; }