Map<String, dynamic> toJson() { return { 'text': text, 'subtext': subtext, 'unique_key': uniqueKey.isEmpty ? generateUniqueKey() : uniqueKey, }; }