Map<String, dynamic> toJson() { return { 'value': value, 'hadRecentInput': hadRecentInput, 'lastInputTime': lastInputTime.toJson(), 'sources': sources.map((e) => e.toJson()).toList(), }; }