{
  "openapi": "3.1.0",
  "info": {
    "title": "Uncle LYHME Public API",
    "version": "2026-04-19",
    "summary": "Read-only profile and project metadata for unclelyh.me.",
    "description": "Public, unauthenticated JSON endpoints describing the site owner profile, featured projects, and endpoint health."
  },
  "servers": [
    {
      "url": "https://unclelyh.me"
    }
  ],
  "paths": {
    "/api/index.json": {
      "get": {
        "operationId": "getApiIndex",
        "summary": "Get the API overview document.",
        "responses": {
          "200": {
            "description": "API overview",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiIndex"
                }
              }
            }
          }
        }
      }
    },
    "/api/site-profile.json": {
      "get": {
        "operationId": "getSiteProfile",
        "summary": "Get structured profile information for Uncle LYHME.",
        "responses": {
          "200": {
            "description": "Profile payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteProfile"
                }
              }
            }
          }
        }
      }
    },
    "/api/projects.json": {
      "get": {
        "operationId": "getProjects",
        "summary": "List featured projects.",
        "responses": {
          "200": {
            "description": "Projects payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Projects"
                }
              }
            }
          }
        }
      }
    },
    "/api/status.json": {
      "get": {
        "operationId": "getStatus",
        "summary": "Get API status.",
        "responses": {
          "200": {
            "description": "Status payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ApiIndex": {
        "type": "object",
        "required": ["name", "version", "base_url", "authentication", "endpoints"],
        "properties": {
          "name": { "type": "string" },
          "version": { "type": "string" },
          "base_url": { "type": "string", "format": "uri" },
          "authentication": {
            "type": "object",
            "required": ["required", "type"],
            "properties": {
              "required": { "type": "boolean" },
              "type": { "type": "string" }
            }
          },
          "endpoints": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "format": "uri"
            }
          }
        }
      },
      "SiteProfile": {
        "type": "object",
        "required": ["name", "canonical_url", "headline", "summary", "current_focus", "contact", "experience", "skills"],
        "properties": {
          "name": { "type": "string" },
          "canonical_url": { "type": "string", "format": "uri" },
          "headline": { "type": "string" },
          "summary": { "type": "string" },
          "current_focus": {
            "type": "array",
            "items": { "type": "string" }
          },
          "contact": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "experience": {
            "type": "array",
            "items": {
              "type": "object",
              "required": ["role", "company", "dates", "highlights"],
              "properties": {
                "role": { "type": "string" },
                "company": { "type": "string" },
                "dates": { "type": "string" },
                "highlights": {
                  "type": "array",
                  "items": { "type": "string" }
                },
                "links": {
                  "type": "array",
                  "items": { "type": "string", "format": "uri" }
                }
              }
            }
          },
          "skills": {
            "type": "array",
            "items": { "type": "string" }
          }
        }
      },
      "Projects": {
        "type": "object",
        "required": ["projects"],
        "properties": {
          "projects": {
            "type": "array",
            "items": {
              "type": "object",
              "required": ["name", "status", "description"],
              "properties": {
                "name": { "type": "string" },
                "status": { "type": "string" },
                "url": { "type": "string", "format": "uri" },
                "description": { "type": "string" }
              }
            }
          }
        }
      },
      "Status": {
        "type": "object",
        "required": ["status", "service", "public", "updated", "checks"],
        "properties": {
          "status": { "type": "string" },
          "service": { "type": "string" },
          "public": { "type": "boolean" },
          "updated": { "type": "string" },
          "checks": {
            "type": "object",
            "additionalProperties": { "type": "string" }
          }
        }
      }
    }
  }
}
