messageFromJson function
Deserializes a Message from its JSON map, dispatching on role.
Implementation
Message messageFromJson(Map<String, dynamic> json) {
return switch (json['role']) {
'user' => UserMessage.fromJson(json),
'assistant' => AssistantMessage.fromJson(json),
'toolResult' => ToolResultMessage.fromJson(json),
_ => throw FormatException('Unknown message role: ${json['role']}'),
};
}