Open
Description
Both #2787 and #2863 would benefit from having a Model Capability class that describes what functionality the model supports.
For the case of the reasoning models, this capability would enable one to copy the current systemMessage into a 'developerMessage' (as required by the o
series of openai models) and for structured output one can switch to use the JSON mode vs. the current strategy of adding to the prompt the 'please convert my json` message.
There is a wide range of features that fall under this umbrella, so a good design is need. Multimodality is another one, we can proactively know that a request with Media would not be supported by a given model.