{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://schemas.plurnk.dev/v0/ProviderDeclaration.json",
    "title": "ProviderDeclaration",
    "description": "Declaration of the active provider for an agent. The grammar package owns these four fields; auth/connection config lives in the agent repo.",
    "type": "object",
    "required": ["provider", "family", "model", "contextSize", "currency"],
    "additionalProperties": false,
    "properties": {
        "provider": { "type": "string", "minLength": 1, "description": "API vendor identifier (e.g. \"local\", \"openrouter\", \"anthropic\", \"openai\")." },
        "family": { "type": "string", "minLength": 1, "description": "Model family (e.g. \"gemma\", \"llama\", \"qwen\", \"claude\", \"gpt\", \"gemini\")." },
        "model": { "type": "string", "minLength": 1, "description": "Specific model id (e.g. \"gemma3-12b\")." },
        "contextSize": { "type": "integer", "minimum": 1, "description": "Total context window in tokens." },
        "currency": { "type": "string", "pattern": "^[A-Z]{3}$", "description": "ISO 4217 code; the unit `cost_pico` is denominated in." }
    }
}
