{
  "openapi": "3.1.0",
  "info": {
    "title": "GUOSMM Official Gazette Registry API",
    "version": "1.0.0",
    "description": "Public read-only API for the GUOSMM official gazette catalog, documents, and cryptographic verification.",
    "contact": {
      "url": "https://gazette.shosjj.org/contact"
    }
  },
  "servers": [{ "url": "https://gazette.shosjj.org" }],
  "paths": {
    "/api/v1/catalog": {
      "get": {
        "summary": "Full document catalog",
        "responses": {
          "200": {
            "description": "Catalog JSON with documents array"
          }
        }
      }
    },
    "/api/v1/documents/{documentId}": {
      "get": {
        "summary": "Document envelope, body, and signature",
        "parameters": [
          {
            "name": "documentId",
            "in": "path",
            "required": true,
            "schema": { "type": "string", "example": "GUOSMM-A-2026-001" }
          }
        ],
        "responses": {
          "200": { "description": "Full document record" },
          "404": { "description": "Not found" }
        }
      }
    },
    "/api/v1/documents/{documentId}/verify": {
      "get": {
        "summary": "Verify hash and RSA-SHA256 signature",
        "parameters": [
          {
            "name": "documentId",
            "in": "path",
            "required": true,
            "schema": { "type": "string" }
          },
          {
            "name": "hash",
            "in": "query",
            "required": false,
            "schema": { "type": "string", "pattern": "^[a-fA-F0-9]{64}$" }
          }
        ],
        "responses": {
          "200": {
            "description": "Verification result including signatureValid and hashMatch"
          }
        }
      }
    },
    "/api/v1/publication-log": {
      "get": {
        "summary": "Tier 5 chained publication log",
        "responses": { "200": { "description": "Publication log JSON" } }
      }
    },
    "/keys/guosmm-order-signing.pub.pem": {
      "get": {
        "summary": "RSA public verifying key (PEM)",
        "responses": { "200": { "description": "PEM-encoded SPKI public key" } }
      }
    },
    "/.well-known/guosmm.json": {
      "get": {
        "summary": "Registry discovery document",
        "responses": { "200": { "description": "Discovery JSON" } }
      }
    }
  }
}
