400 Error sending canned response via Conversations API

Does anyone know why POST /api/v2/conversations/messages fails when injecting a canned response into an active chat session?

I’m sending a minimal JSON payload with the correct conversationId and messageType set to text:

{
 "text": "{{canned.text}}"
}

The API returns a hard 400:

Bad Request: Invalid message format for conversation type ‘chat’.

My Terraform backups verify the canned response exists and is published. What is the missing payload structure?