Seems like Openrouter also supports structured outputs.
https://openrouter.ai/docs/guides/features/structured-output...