{
  "schema": "task23-provider-matrix-v1",
  "cases": [
    {"mode": "success", "provider_calls": 1, "success": true, "error_code": null, "retryable": null},
    {"mode": "live_rule_pair_corrected", "provider_calls": 2, "success": true, "error_code": null, "retryable": null},
    {"mode": "semantic_invalid_twice", "provider_calls": 2, "success": false, "error_code": "invalid_model_output", "retryable": false},
    {"mode": "http_400_schema", "provider_calls": 1, "success": false, "error_code": "provider_bad_request", "retryable": false},
    {"mode": "http_400_unsupported_parameter", "provider_calls": 1, "success": false, "error_code": "provider_unsupported_parameter", "retryable": false},
    {"mode": "http_400_context_length", "provider_calls": 1, "success": false, "error_code": "provider_context_length", "retryable": false},
    {"mode": "http_401", "provider_calls": 1, "success": false, "error_code": "provider_authentication", "retryable": true},
    {"mode": "http_403", "provider_calls": 1, "success": false, "error_code": "provider_authentication", "retryable": true},
    {"mode": "http_429", "provider_calls": 3, "success": false, "error_code": "provider_rate_limited", "retryable": true},
    {"mode": "http_500", "provider_calls": 3, "success": false, "error_code": "provider_unavailable", "retryable": true},
    {"mode": "incomplete_length", "provider_calls": 1, "success": false, "error_code": "provider_incomplete", "retryable": false},
    {"mode": "incomplete_other", "provider_calls": 1, "success": false, "error_code": "provider_incomplete", "retryable": false},
    {"mode": "failed", "provider_calls": 1, "success": false, "error_code": "provider_rejected", "retryable": false}
  ]
}
