Map<String, dynamic> toJson() => <String, dynamic>{ "key": key, "type": type, "method": method.toString(), if (payload != null) "payload": payload, };