{
  "openapi": "3.1.0",
  "info": {
    "title": "Muhammad Zane public profile",
    "version": "1.0.0",
    "description": "Read public identity, external profiles, organization relationship and selected work. This is a first-party profile, not independent verification. No authentication, writes, private data or execution."
  },
  "servers": [
    {
      "url": "https://mo3.ca"
    }
  ],
  "security": [],
  "paths": {
    "/api/profile.json": {
      "get": {
        "operationId": "getPublicProfile",
        "summary": "Get Muhammad Zane's public identity, profiles and work",
        "responses": {
          "200": {
            "description": "Public JSON-LD profile with source links",
            "content": {
              "application/ld+json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicProfile"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "PublicProfile": {
        "type": "object",
        "required": [
          "@context",
          "@type",
          "@id",
          "dateModified",
          "mainEntity",
          "citation",
          "hasPart"
        ],
        "properties": {
          "@context": {
            "type": "string",
            "const": "https://schema.org"
          },
          "@type": {
            "type": "string",
            "const": "ProfilePage"
          },
          "@id": {
            "type": "string",
            "format": "uri"
          },
          "dateModified": {
            "type": "string",
            "format": "date"
          },
          "mainEntity": {
            "type": "object",
            "required": [
              "@id",
              "name",
              "jobTitle",
              "sameAs",
              "worksFor"
            ],
            "properties": {
              "@id": {
                "type": "string",
                "format": "uri"
              },
              "name": {
                "type": "string"
              },
              "jobTitle": {
                "type": "string"
              },
              "sameAs": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uri"
                }
              },
              "worksFor": {
                "type": "object"
              }
            }
          },
          "citation": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uri"
            }
          },
          "hasPart": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "name",
                "url"
              ],
              "properties": {
                "name": {
                  "type": "string"
                },
                "url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            }
          }
        }
      }
    }
  }
}
