Text content of the message.
Streamed LLM text grows through append; there is no setter.
String? get text => _text;