{
  "openapi": "3.1.0",
  "info": {
    "title": "深慢Shimmer API",
    "description": "Personal content platform API. Retrieve posts, projects, and translations. Agent-friendly with structured JSON responses.",
    "version": "1.0.0",
    "contact": {
      "name": "深慢Shimmer",
      "url": "https://goshimmer.ai",
      "email": "hi@goshimmer.ai"
    }
  },
  "servers": [
    {
      "url": "https://goshimmer.ai",
      "description": "Production"
    }
  ],
  "paths": {
    "/api/v1/posts": {
      "get": {
        "summary": "List posts",
        "description": "Get published posts with optional filtering by type and tag. Returns paginated results.",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "micro",
                "short",
                "long"
              ]
            },
            "description": "Filter by post type"
          },
          {
            "name": "tag",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Filter by tag"
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 20,
              "maximum": 100
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of posts with pagination",
            "content": {
              "application/json": {}
            }
          }
        }
      }
    },
    "/api/v1/posts/{slug}": {
      "get": {
        "summary": "Get post by slug",
        "description": "Get a single post with all content blocks and available translations.",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Post with blocks and translation info",
            "content": {
              "application/json": {}
            }
          },
          "404": {
            "description": "Post not found"
          }
        }
      }
    },
    "/api/v1/projects": {
      "get": {
        "summary": "List open source projects",
        "description": "Get showcase of open source projects and tools.",
        "responses": {
          "200": {
            "description": "List of projects",
            "content": {
              "application/json": {}
            }
          }
        }
      }
    },
    "/feed.xml": {
      "get": {
        "summary": "RSS Feed",
        "description": "RSS 2.0 feed of latest posts",
        "responses": {
          "200": {
            "content": {
              "application/xml": {}
            }
          }
        }
      }
    },
    "/feed.json": {
      "get": {
        "summary": "JSON Feed",
        "description": "JSON Feed 1.1 of latest posts",
        "responses": {
          "200": {
            "content": {
              "application/feed+json": {}
            }
          }
        }
      }
    }
  }
}