Represents the capabilities and constraints of a language model.
This interface defines the various features and limitations that a model may have,
including input/output constraints, multimodal support, and advanced capabilities
like tool calling and structured output.