OpenRouter Response Schema vs Structured Outputs
You can see both mentioned in the supported parameters in OpenRouter model search page

What is the difference?
Response format makes a best effort to return valid JSON. In other words, you can expect JSON.parse to not throw an error.
Structured Outputs, on the other hand, is a subset of response_format. It makes a best effort to return valid JSON which also adheres to the specified schema.
Even though LLMs make the best effort, sometimes these responses do not fulfill these requirements.