{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "PDF tool-selection request",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "pdf_type",
    "os",
    "hardware",
    "local_only",
    "commercial_use",
    "programming",
    "table_type"
  ],
  "properties": {
    "pdf_type": {
      "type": "string",
      "enum": [
        "digital",
        "scanned",
        "mixed"
      ]
    },
    "os": {
      "type": "string",
      "enum": [
        "windows",
        "macos",
        "linux"
      ]
    },
    "hardware": {
      "type": "string",
      "enum": [
        "cpu_only",
        "nvidia_gpu",
        "apple_silicon"
      ],
      "description": "Hardware available, not an acceleration requirement. A documented CPU fallback may qualify even when a GPU is present."
    },
    "local_only": {
      "type": "boolean",
      "description": "If true, document processing must stay on your machine after installation/model downloads. No document uploads are accepted."
    },
    "commercial_use": {
      "type": "boolean",
      "description": "If true, selected code and default-model licensing must be documented as compatible; review all obligations yourself."
    },
    "programming": {
      "type": "string",
      "enum": [
        "no_code",
        "command_line",
        "python"
      ],
      "description": "Maximum setup interface you can use. Python users can use command-line or no-code tools; command-line users can use no-code tools."
    },
    "table_type": {
      "type": "string",
      "enum": [
        "ruled",
        "borderless",
        "complex",
        "unknown"
      ],
      "description": "Unknown does not assert a layout. The report may require clarification."
    },
    "max_results": {
      "type": "integer",
      "minimum": 1,
      "maximum": 5,
      "default": 3
    }
  }
}
