{
  "openapi": "3.1.0",
  "info": {
    "title": "Kitflint Tool Fit Check static resources",
    "version": "1.0.0",
    "description": "GET-only static evidence resources. No account, API key, runtime model, arbitrary query or POST operation is provided."
  },
  "servers": [
    {
      "url": "https://kitflint.com"
    }
  ],
  "paths": {
    "/api/v1/catalog.json": {
      "get": {
        "operationId": "getCatalog",
        "summary": "Get the catalog and supported static comparison sets",
        "responses": {
          "200": {
            "description": "Current dated evidence catalog",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Catalog"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/compare/{selection}.json": {
      "get": {
        "operationId": "getComparison",
        "summary": "Get one listed static comparison",
        "parameters": [
          {
            "name": "selection",
            "in": "path",
            "required": true,
            "description": "Use an exact supported set from catalog.json. IDs are canonical, sorted and joined with hyphens; one to three IDs are supported.",
            "schema": {
              "type": "string",
              "pattern": "^F\\d{2}(?:-F\\d{2}){0,2}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A dated, caveated comparison",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Comparison"
                }
              }
            }
          },
          "404": {
            "description": "The selection is not one of the catalog-listed static resources"
          }
        }
      }
    },
    "/api/v1/briefs/{selection}.md": {
      "get": {
        "operationId": "getBrief",
        "summary": "Get the matching caveated Markdown brief",
        "parameters": [
          {
            "name": "selection",
            "in": "path",
            "required": true,
            "description": "Use an exact supported set from catalog.json. IDs are canonical, sorted and joined with hyphens; one to three IDs are supported.",
            "schema": {
              "type": "string",
              "pattern": "^F\\d{2}(?:-F\\d{2}){0,2}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Markdown decision brief with provenance and source links",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "The selection is not one of the catalog-listed static resources"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "EvidenceRecord": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "tool",
          "product_role",
          "documented_stack_scope",
          "submission_handling_claim",
          "scheduled_form_test_claim",
          "notification_receipt_test_claim",
          "evidence_level",
          "source_url",
          "secondary_source_url",
          "checked_on",
          "functional_test_status",
          "limitation",
          "owned_by_us",
          "commercial_relationship"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^F\\d{2}$"
          },
          "tool": {
            "type": "string"
          },
          "product_role": {
            "type": "string",
            "enum": [
              "native_form",
              "form_backend",
              "independent_monitor"
            ]
          },
          "documented_stack_scope": {
            "type": "string"
          },
          "submission_handling_claim": {
            "type": "string"
          },
          "scheduled_form_test_claim": {
            "type": "string",
            "enum": [
              "vendor_claim",
              "not_established"
            ]
          },
          "notification_receipt_test_claim": {
            "type": "string",
            "enum": [
              "vendor_claim",
              "not_established"
            ]
          },
          "evidence_level": {
            "type": "string",
            "enum": [
              "primary_documentation",
              "primary_vendor_page",
              "search_index_only"
            ]
          },
          "source_url": {
            "type": "string",
            "format": "uri"
          },
          "secondary_source_url": {
            "type": "string"
          },
          "checked_on": {
            "type": "string",
            "format": "date"
          },
          "functional_test_status": {
            "type": "string",
            "enum": [
              "not_tested"
            ]
          },
          "limitation": {
            "type": "string"
          },
          "owned_by_us": {
            "type": "string",
            "enum": [
              "false"
            ]
          },
          "commercial_relationship": {
            "type": "string",
            "enum": [
              "none"
            ]
          }
        }
      },
      "SupportedSet": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "selectedIds",
          "comparisonUrl",
          "briefUrl"
        ],
        "properties": {
          "selectedIds": {
            "type": "array",
            "minItems": 1,
            "maxItems": 3,
            "items": {
              "type": "string"
            }
          },
          "comparisonUrl": {
            "type": "string"
          },
          "briefUrl": {
            "type": "string"
          }
        }
      },
      "Catalog": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "schemaVersion",
          "datasetSha256",
          "generatedAt",
          "sourceCheckedOn",
          "recordCount",
          "records",
          "caveats",
          "supportedSets"
        ],
        "properties": {
          "schemaVersion": {
            "type": "string"
          },
          "datasetSha256": {
            "type": "string"
          },
          "generatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "sourceCheckedOn": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date"
            }
          },
          "recordCount": {
            "type": "integer"
          },
          "records": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvidenceRecord"
            }
          },
          "caveats": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "supportedSets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SupportedSet"
            }
          }
        }
      },
      "Comparison": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "schemaVersion",
          "datasetSha256",
          "generatedAt",
          "sourceCheckedOn",
          "selectedIds",
          "records",
          "caveats"
        ],
        "properties": {
          "schemaVersion": {
            "type": "string"
          },
          "datasetSha256": {
            "type": "string"
          },
          "generatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "sourceCheckedOn": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date"
            }
          },
          "selectedIds": {
            "type": "array",
            "minItems": 1,
            "maxItems": 3,
            "items": {
              "type": "string"
            }
          },
          "records": {
            "type": "array",
            "minItems": 1,
            "maxItems": 3,
            "items": {
              "$ref": "#/components/schemas/EvidenceRecord"
            }
          },
          "caveats": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}
