{
  "openapi": "3.1.0",
  "info": {
    "title": "Dmitro Development Portfolio API",
    "version": "1.0.0",
    "description": "Read-only index of published Dmitro Development portfolio project pages."
  },
  "servers": [
    {
      "url": "https://dmitrodevelopment.co.uk"
    }
  ],
  "paths": {
    "/api/projects.json": {
      "get": {
        "summary": "List published portfolio projects",
        "operationId": "listPortfolioProjects",
        "responses": {
          "200": {
            "description": "Published portfolio project index",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": ["version", "projects"],
                  "properties": {
                    "version": {
                      "type": "string",
                      "const": "1"
                    },
                    "projects": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "required": ["id", "title", "url", "hero"],
                        "properties": {
                          "id": { "type": "string" },
                          "title": { "type": "string" },
                          "url": { "type": "string", "format": "uri" },
                          "hero": {
                            "type": "object",
                            "additionalProperties": false,
                            "required": ["url", "alt"],
                            "properties": {
                              "url": { "type": "string", "format": "uri" },
                              "alt": { "type": "string" }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
