{
  // Teil 18: CLI-Modellierung — Modell das schrittweise per CLI aufgebaut wurde
  "specification": {
    "elements": {
      "service":  { "notation": "Service",  "container": true, "description": "Backend-Service" },
      "database": { "notation": "Database", "description": "Persistenz" },
      "cache":    { "notation": "Cache",    "description": "In-Memory Cache" }
    },
    "relationships": {
      "rest": { "notation": "REST" },
      "tcp":  { "notation": "TCP",  "dashed": true }
    }
  },
  "model": {
    "paymentservice": {
      "kind": "service", "title": "Payment Service",
      "description": "Verarbeitet Zahlungen",
      "technology": "Go",
      "children": {
        "ledger": { "kind": "database", "title": "Payment Ledger", "technology": "PostgreSQL" }
      }
    },
    "cacheservice": { "kind": "cache", "title": "Redis Cache", "technology": "Redis" },
    "shop": {
      "kind": "service", "title": "Shop API", "technology": "Go",
      "children": {
        "orderservice": { "kind": "service", "title": "Order Service", "technology": "Go" }
      }
    }
  },
  "relationships": [
    { "from": "shop.orderservice", "to": "paymentservice",        "label": "charge(amount)", "kind": "rest" },
    { "from": "shop",              "to": "cacheservice",          "label": "read/write",     "kind": "tcp"  },
    { "from": "paymentservice",    "to": "paymentservice.ledger", "label": "INSERT",         "kind": "tcp"  }
  ],
  "views": {
    "system-overview": { "title": "System Übersicht", "include": ["shop", "paymentservice", "cacheservice"] },
    "payment":         { "title": "Payment Service",  "scope": "paymentservice", "include": ["paymentservice.*", "shop.orderservice"] }
  }
}
