{
  "openapi": "3.0.1",
  "info": {
    "title": "RedOwlPolicyBinderEngine",
    "description": "OpenAPI-first HTTP contract for Interpret / Reevaluate against an embedded RedOwl taxo. HTML pages (`/`, `/demo`, …) are the human demo; Discovery + OpenAPI are the machine contract. Client owns save. Compiler is next.",
    "version": "v0.1"
  },
  "servers": [
    {
      "url": "http://michael.tail75194e.ts.net/"
    }
  ],
  "paths": {
    "/openapi/policy-binder-engine.openapi.yaml": {
      "get": {
        "tags": [
          "Discovery"
        ],
        "summary": "Checked-in OpenAPI 3 YAML (source of truth for codegen / website discovery)",
        "operationId": "GetCheckedInOpenApi",
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/health": {
      "get": {
        "tags": [
          "Health"
        ],
        "summary": "Liveness / probe",
        "operationId": "Health",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/taxo": {
      "get": {
        "tags": [
          "Info"
        ],
        "summary": "Embedded taxonomy JSON",
        "operationId": "Taxo",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/docs": {
      "get": {
        "tags": [
          "Discovery"
        ],
        "summary": "Service discovery",
        "operationId": "GetServiceInfo",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/readme": {
      "get": {
        "tags": [
          "Pages"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/usage": {
      "get": {
        "tags": [
          "Pages"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/noauthfornow": {
      "get": {
        "tags": [
          "Pages"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/demo": {
      "get": {
        "tags": [
          "Pages"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/": {
      "get": {
        "tags": [
          "Pages"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/test/readme": {
      "get": {
        "tags": [
          "Test"
        ],
        "operationId": "TestReadme",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/test/technician": {
      "get": {
        "tags": [
          "Test"
        ],
        "operationId": "TestTechnician",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/test/auditors": {
      "get": {
        "tags": [
          "Test"
        ],
        "operationId": "TestAuditors",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/test/salesperson": {
      "get": {
        "tags": [
          "Test"
        ],
        "operationId": "TestSalesperson",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/interpret": {
      "post": {
        "tags": [
          "Engine"
        ],
        "summary": "Human narrative → policy envelope",
        "operationId": "Interpret",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InterpretRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/reevaluate": {
      "post": {
        "tags": [
          "Engine"
        ],
        "summary": "Amend document with optional natural-language amendments",
        "operationId": "Reevaluate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReevaluateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "InterpretRequest": {
        "required": [
          "text"
        ],
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "JsonObject": {
        "type": "object",
        "nullable": true
      },
      "ReevaluateRequest": {
        "required": [
          "document",
          "amendments"
        ],
        "type": "object",
        "properties": {
          "document": {
            "$ref": "#/components/schemas/JsonObject"
          },
          "amendments": {
            "type": "string",
            "nullable": true
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Discovery"
    },
    {
      "name": "Health"
    },
    {
      "name": "Info"
    },
    {
      "name": "Pages"
    },
    {
      "name": "Test"
    },
    {
      "name": "Engine"
    }
  ]
}