Provider-capability map shape.
Each provider declares what it can do so the agent loop (shipping in Phase 2) can choose the right tool-call protocol and fall back gracefully when a provider lies about its capabilities.
All keys are optional; missing keys are treated as false / nil.
Summary
Types
@type t() :: %{ optional(:native_tool_calls) => boolean(), optional(:streaming) => boolean(), optional(:json_mode) => boolean(), optional(:max_tokens) => pos_integer(), optional(:supports_resume) => boolean(), optional(:supports_system_prompt) => boolean(), optional(:supports_temperature) => boolean() }