Not the original commenter but I’ve done this too with Pydantic AI (actually the library does it for you). See “Streaming Structured Output” here https://ai.pydantic.dev/output/#streaming-structured-output
I've been trying to create go/rust ones but its way harder than just json due to all the context/state they carry over