{
  "version": "xarts.coordinate-marks/1",
  "family": "coordinate-marks",
  "operation": "strategic-position-map",
  "provenance": {
    "legacyId": "wardleymap"
  },
  "document": {
    "header": {
      "title": "Wardley Map",
      "subtitle": "Twelve components by visibility to the user and evolution, with their dependencies"
    },
    "footer": {
      "source": "xarts · demo data",
      "notes": "Illustrative data to explore the chart and replace with your own."
    },
    "spacing": {
      "horizontalPadding": 24,
      "topPadding": 22,
      "bottomPadding": 24,
      "minimumTextGap": 6
    }
  },
  "presentation": {
    "theme": "anlak",
    "dimensions": {
      "width": 800,
      "height": 500
    },
    "locale": "en-US",
    "fonts": "reference",
    "surface": "theme",
    "framePadding": 24
  },
  "output": {
    "filename": "wardleymap",
    "embedSpec": true,
    "geometryDecimals": 2
  },
  "data": {
    "nodes": [
      {
        "id": "user-needs",
        "label": "User Needs",
        "evolution": 0.95,
        "visibility": 0.95
      },
      {
        "id": "web-app",
        "label": "Web App",
        "evolution": 0.7,
        "visibility": 0.85
      },
      {
        "id": "api-gateway",
        "label": "API Gateway",
        "evolution": 0.65,
        "visibility": 0.7
      },
      {
        "id": "auth-service",
        "label": "Auth Service",
        "evolution": 0.75,
        "visibility": 0.6
      },
      {
        "id": "database",
        "label": "Database",
        "evolution": 0.8,
        "visibility": 0.5
      },
      {
        "id": "ml-pipeline",
        "label": "ML Pipeline",
        "evolution": 0.3,
        "visibility": 0.65
      },
      {
        "id": "compute",
        "label": "Compute",
        "evolution": 0.85,
        "visibility": 0.35
      },
      {
        "id": "storage",
        "label": "Storage",
        "evolution": 0.9,
        "visibility": 0.3
      },
      {
        "id": "cdn",
        "label": "CDN",
        "evolution": 0.88,
        "visibility": 0.4
      },
      {
        "id": "monitoring",
        "label": "Monitoring",
        "evolution": 0.6,
        "visibility": 0.45
      },
      {
        "id": "data-lake",
        "label": "Data Lake",
        "evolution": 0.4,
        "visibility": 0.5
      },
      {
        "id": "feature-store",
        "label": "Feature Store",
        "evolution": 0.2,
        "visibility": 0.55
      }
    ],
    "rows": [
      {
        "id": "edge-0",
        "source": "web-app",
        "target": "user-needs"
      },
      {
        "id": "edge-1",
        "source": "api-gateway",
        "target": "web-app"
      },
      {
        "id": "edge-2",
        "source": "auth-service",
        "target": "api-gateway"
      },
      {
        "id": "edge-3",
        "source": "database",
        "target": "api-gateway"
      },
      {
        "id": "edge-4",
        "source": "ml-pipeline",
        "target": "api-gateway"
      },
      {
        "id": "edge-5",
        "source": "compute",
        "target": "database"
      },
      {
        "id": "edge-6",
        "source": "compute",
        "target": "ml-pipeline"
      },
      {
        "id": "edge-7",
        "source": "storage",
        "target": "database"
      },
      {
        "id": "edge-8",
        "source": "cdn",
        "target": "web-app"
      },
      {
        "id": "edge-9",
        "source": "monitoring",
        "target": "api-gateway"
      },
      {
        "id": "edge-10",
        "source": "monitoring",
        "target": "compute"
      },
      {
        "id": "edge-11",
        "source": "data-lake",
        "target": "ml-pipeline"
      },
      {
        "id": "edge-12",
        "source": "feature-store",
        "target": "ml-pipeline"
      }
    ]
  },
  "encoding": {
    "stages": [
      {
        "id": "stage-0",
        "label": "Genesis",
        "from": 0,
        "to": 0.25
      },
      {
        "id": "stage-1",
        "label": "Custom Built",
        "from": 0.25,
        "to": 0.5
      },
      {
        "id": "stage-2",
        "label": "Product",
        "from": 0.5,
        "to": 0.75
      },
      {
        "id": "stage-3",
        "label": "Commodity",
        "from": 0.75,
        "to": 1
      }
    ],
    "visibilityLabel": "Visibility"
  },
  "calculation": {
    "domain": [
      0,
      1
    ],
    "stageBoundary": "left-closed-final-inclusive",
    "paintOrder": "visibility-descending",
    "edges": "provided-directed-dependencies",
    "duplicates": "reject",
    "selfLinks": "reject"
  },
  "profile": {
    "view": "staged-dependency-map",
    "textMeasurement": "basic-pairs",
    "margin": {
      "top": 24,
      "right": 24,
      "bottom": 48,
      "left": 48
    },
    "node": {
      "fill": "#112c47",
      "r": 7,
      "strokeWidth": 2,
      "stroke": "#ffffff"
    },
    "edge": {
      "stroke": "#c7bfae",
      "strokeWidth": 1.5,
      "opacity": 0.4
    },
    "stageBoundary": {
      "stroke": "#6a6458",
      "strokeWidth": 1,
      "strokeDasharray": "6 4",
      "opacity": 0.5
    },
    "stageLabel": {
      "fill": "#2a2a2a",
      "fontSize": 11,
      "fontWeight": 600,
      "fontFamily": "'Inter', system-ui, -apple-system, sans-serif"
    },
    "nodeLabel": {
      "fill": "#0d0d0d",
      "fontSize": 10,
      "fontFamily": "'Inter', system-ui, -apple-system, sans-serif",
      "fontWeight": 500,
      "dx": 10,
      "dy": 4
    },
    "axisLabel": {
      "fill": "#2a2a2a",
      "fontSize": 12,
      "fontFamily": "'Inter', system-ui, -apple-system, sans-serif",
      "fontWeight": 500
    }
  },
  "annotations": []
}
