Map<String, dynamic> toMap() { return { 'text': text, if (tokenCount != null) 'tokenCount': tokenCount, if (generationTimeMs != null) 'generationTimeMs': generationTimeMs, }; }