Native /api/chat, never /v1/chat/completions. Ollama has scalar content and
a separate images array, not an ordered content-part array. Encode each signed
USER part as its own user message, in original order, including empty text.
Image-only messages carry required content:"" as wire framing, not an invented
signed text row. This explicit v1 projection does not hoist images, concatenate
adjacent text parts or pretend to offer a native mixed-part content array.
Native /api/chat, never /v1/chat/completions. Ollama has scalar content and a separate images array, not an ordered content-part array. Encode each signed USER part as its own user message, in original order, including empty text. Image-only messages carry required content:"" as wire framing, not an invented signed text row. This explicit v1 projection does not hoist images, concatenate adjacent text parts or pretend to offer a native mixed-part content array.