{
  "name": "placeholder",
  "title": "Ravencraft Placeholder Service",
  "version": "0.1.0",
  "base_url": "https://services.ravencraft.dk/placeholder",
  "description": "Generates simple placeholder images (PNG via GD when available, otherwise SVG).",
  "auth": { "type": "none" },
  "endpoints": [
    {
      "method": "GET",
      "path": "/",
      "returns": "image/png or image/svg+xml",
      "summary": "Generate placeholder image.",
      "query_params": {
        "w": { "type": "integer", "min": 16, "max": 2048, "default": 256 },
        "h": { "type": "integer", "min": 16, "max": 2048, "default": 256 },
        "format": { "type": "string", "enum": ["png", "svg"], "default": "png" },
        "bg": { "type": "string", "example": "333333" },
        "fg": { "type": "string", "example": "ffffff" },
        "text": { "type": "string", "example": "320×180" },
        "request_id": { "type": "string" },
        "tenant_id": { "type": "string" },
        "user_id": { "type": "string" }
      }
    },
    {
      "method": "GET",
      "path": "/health.php",
      "returns": "application/json",
      "summary": "Health check."
    },
    {
      "method": "GET",
      "path": "/help.php",
      "returns": "text/html",
      "summary": "Human documentation."
    }
  ],
  "logging": {
    "via": "/shared/log_client.php",
    "events": [
      "placeholder.request",
      "placeholder.served",
      "placeholder.png_fallback",
      "placeholder.help.view",
      "placeholder.exception"
    ]
  }
}