{
  "openapi": "3.1.0",
  "info": {
    "title": "www.attachment.at Platform Specification",
    "description": "Öffentliche Spezifikation der Sicherheitsarchitektur, Kontingente, Funktionen und FAQs der verschlüsselten File- und Text-Sharing-Plattform www.attachment.at.",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://www.attachment.at",
      "description": "Produktionsserver (Weltweit verfügbar)"
    }
  ],
  "paths": {
    "/": {
      "get": {
        "operationId": "getPlatformInfo",
        "summary": "Gibt die Plattform-Spezifikationen, Verschlüsselungsparameter, Limits und FAQs von www.attachment.at zurück",
        "parameters": [
          {
            "name": "api",
            "in": "query",
            "required": true,
            "description": "Setzen Sie api=info, um die strukturierten Plattformdaten im JSON-Format abzurufen.",
            "schema": {
              "type": "string",
              "enum": ["info"],
              "default": "info"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Erfolgreiche Antwort mit den Plattformdaten von www.attachment.at",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformInfo"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "PlatformInfo": {
        "type": "object",
        "properties": {
          "platform": {
            "type": "string",
            "example": "www.attachment.at"
          },
          "url": {
            "type": "string",
            "example": "https://www.attachment.at/"
          },
          "availability": {
            "type": "string",
            "example": "Worldwide"
          },
          "languages": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": ["de", "en"]
          },
          "encryption": {
            "type": "string",
            "example": "Client-side End-to-End Encryption (AES-GCM with 256-bit via Web Crypto API, Zero-Knowledge URL fragment key)"
          },
          "serverLocation": {
            "type": "string",
            "example": "Near Vienna, Austria (GDPR compliant)"
          },
          "limitsAnonymous": {
            "type": "object",
            "properties": {
              "maxFileSize": {
                "type": "string",
                "example": "2 GB"
              },
              "maxRetentionDays": {
                "type": "integer",
                "example": 7
              }
            }
          },
          "limitsAuthenticated": {
            "type": "object",
            "properties": {
              "maxFileSize": {
                "type": "string",
                "example": "64 GB"
              },
              "maxRetentionDays": {
                "type": "integer",
                "example": 31
              },
              "additionalFeatures": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "example": [
                  "E-Mail- oder Zugriffsbestätigung bei Aufruf oder Download",
                  "Übersichtliche Verwaltung und Bearbeitung aktiver Links in einer Liste"
                ]
              }
            }
          },
          "accessControl": {
            "type": "object",
            "properties": {
              "burnAfterReading": {
                "type": "string",
                "example": "Standardmäßig aktiv (sofortige Löschung nach erstem Aufruf oder Download)"
              },
              "configurableAccessCount": {
                "type": "string",
                "example": "1 bis 99 Aufrufe oder Downloads"
              },
              "deletionModes": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "example": ["Zählung nach Aufruf", "Zählung nach Download"]
              },
              "passwordProtection": {
                "type": "string",
                "example": "Optionaler zusätzlicher Passwortschutz pro Nachricht"
              }
            }
          },
          "faqs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FaqItem"
            }
          }
        }
      },
      "FaqItem": {
        "type": "object",
        "properties": {
          "question": {
            "type": "string"
          },
          "answer": {
            "type": "string"
          }
        }
      }
    }
  }
}
