{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://empire-llm.local/schemas/settings.schema.json",
  "title": "Empire settings",
  "type": "object",
  "required": ["schema_version", "inference_provider", "providers", "routing_policy"],
  "properties": {
    "schema_version": { "const": 2 },
    "inference_provider": { "enum": ["openrouter", "direct"] },
    "providers": {
      "type": "object",
      "additionalProperties": false,
      "required": ["instances"],
      "properties": {
        "instances": {
          "type": "object",
          "additionalProperties": {
            "type": "object",
            "additionalProperties": true,
            "required": ["provider_id", "kind", "enabled", "credential_ref"],
            "properties": {
              "provider_id": { "type": "string" },
              "kind": { "enum": ["aggregator", "direct"] },
              "enabled": { "type": "boolean" },
              "credential_ref": { "type": "string" },
              "endpoint": { "type": "string", "pattern": "^https://" },
              "model_id": { "type": "string" },
              "catalog_model_id": { "type": "string" },
              "protocol": { "type": "string" }
            }
          }
        }
      }
    },
    "routing_policy": { "$ref": "routing-policy.schema.json" }
  },
  "additionalProperties": true
}
