{
  "type": "object",
  "properties": {
    "userPlan": {
      "type": "string",
      "description": "The user's current subscription plan."
    },
    "models": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Model ID \u2014 pass these in the models argument of council tools."
          },
          "name": {
            "type": "string",
            "description": "Human-readable model name."
          },
          "provider": {
            "type": "string",
            "description": "Lab/provider, e.g. anthropic, openai, google."
          },
          "modelId": {
            "type": "string",
            "description": "Provider-side model identifier."
          },
          "tier": {
            "type": "string",
            "description": "Council pricing tier of the model."
          },
          "maxTokens": {
            "type": [
              "number",
              "null"
            ],
            "description": "Context window size, when known."
          },
          "supportsWebSearch": {
            "type": "boolean",
            "description": "Whether the model can search the web."
          },
          "supportsVision": {
            "type": "boolean",
            "description": "Whether the model accepts images."
          },
          "supportsStreaming": {
            "type": "boolean",
            "description": "Whether the model streams tokens."
          }
        },
        "required": [
          "id",
          "name",
          "provider"
        ],
        "additionalProperties": false
      },
      "description": "Models available to this user, across all providers."
    }
  },
  "required": [
    "userPlan",
    "models"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}