model_dump(exclude_none=True) keeps a turn's native flat images array while omitting the key entirely for text-only turns, so image-less requests are byte-for-byte unchanged (FR-003/SC-004). Makes T005-T pass. Completes US1 (MVP): describe-an-image end-to-end on Ollama. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UvS9TFMCFYNHC4MMvzJaZS