Map<String, dynamic> toJson() { return { 'type': type.toJson(), 'reason': reason.toJson(), if (context != null) 'context': context, }; }