{
  // Teil 13: Graph-Analyse — Architektur mit messbarer Zentralität (shop.api als Hub)
  "specification": {
    "elements": {
      "actor":   { "notation": "Actor" },
      "system":  { "notation": "Software System", "container": true },
      "service": { "notation": "Service",          "container": true },
      "database":{ "notation": "Database" }
    },
    "relationships": {
      "uses":  { "notation": "uses" },
      "reads": { "notation": "reads", "dashed": true }
    }
  },
  "model": {
    "customer": { "kind": "actor", "title": "Customer" },
    "shop": {
      "kind": "system", "title": "Online Shop",
      "children": {
        "frontend":      { "kind": "service",  "title": "Web Frontend",    "technology": "React"      },
        "api":           { "kind": "service",  "title": "REST API",         "technology": "Go"         },
        "authservice":   { "kind": "service",  "title": "Auth Service",     "technology": "Go"         },
        "orderservice":  { "kind": "service",  "title": "Order Service",    "technology": "Go"         },
        "notification":  { "kind": "service",  "title": "Notification",     "technology": "Go"         },
        "db":            { "kind": "database", "title": "PostgreSQL",       "technology": "PostgreSQL" }
      }
    }
  },
  "relationships": [
    { "from": "customer",           "to": "shop",                "label": "kauft ein",      "kind": "uses"  },
    { "from": "shop.frontend",      "to": "shop.api",            "label": "REST calls",     "kind": "uses"  },
    { "from": "shop.api",           "to": "shop.authservice",    "label": "authenticate",   "kind": "uses"  },
    { "from": "shop.api",           "to": "shop.orderservice",   "label": "process order",  "kind": "uses"  },
    { "from": "shop.api",           "to": "shop.notification",   "label": "notify",         "kind": "uses"  },
    { "from": "shop.api",           "to": "shop.db",             "label": "reads/writes",   "kind": "uses"  },
    { "from": "shop.orderservice",  "to": "shop.db",             "label": "persist orders", "kind": "uses"  },
    { "from": "shop.authservice",   "to": "shop.db",             "label": "read tokens",    "kind": "reads" }
  ],
  "views": {
    "context":    { "title": "System Context", "include": ["customer", "shop"] },
    "graph":      { "title": "Abhängigkeitsgraph", "scope": "shop", "include": ["shop.*"] }
  }
}
