{
  "version": "v1",
  "cases": [
    {
      "id": "document-multipart",
      "request": {
        "method": "POST",
        "path": "/api/v1/ai/document-processing",
        "fileField": "File",
        "defaultOperations": [
          "Detection"
        ],
        "idempotencyRequiredForRetry": true
      },
      "assertions": [
        "bearer-auth",
        "multipart-file",
        "repeated-operations",
        "structured-error"
      ]
    },
    {
      "id": "document-batch-multipart",
      "request": {
        "method": "POST",
        "path": "/api/v1/ai/document-processing/batches",
        "fileField": "Files",
        "defaultOperations": [
          "Detection"
        ],
        "idempotencyRequiredForRetry": true
      },
      "assertions": [
        "repeated-files",
        "repeated-operations",
        "structured-error"
      ]
    },
    {
      "id": "vehicle-operations",
      "request": {
        "method": "POST",
        "path": "/api/v1/ai/vehicle-processing",
        "fileField": "File",
        "allowedOperations": [
          "Detection",
          "Blur"
        ],
        "idempotencyRequiredForRetry": true
      },
      "assertions": [
        "vehicle-route",
        "operation-validation"
      ]
    },
    {
      "id": "usage-period",
      "request": {
        "method": "GET",
        "path": "/api/v1/usage/summary",
        "query": [
          "From",
          "To"
        ]
      },
      "assertions": [
        "date-query",
        "transient-get-retry"
      ]
    },
    {
      "id": "structured-problem",
      "response": {
        "status": 422,
        "headers": {
          "X-Request-Id": "req_fixture"
        },
        "problem": {
          "title": "Validation failed",
          "status": 422,
          "code": "validation_failed",
          "requestId": "req_fixture",
          "retryable": false
        }
      },
      "assertions": [
        "status-preserved",
        "request-id-preserved",
        "non-retryable-validation"
      ]
    }
  ]
}