{
  "source": {
    "repository": "https://github.com/APIOpsCycles/apiops-cycles-method-data",
    "commit": "ff0c7bd82485e4aa0d04d36ad23bfd7144bc2a41"
  },
  "locales": [
    "en",
    "fi",
    "fr",
    "de",
    "pt"
  ],
  "defaultLocale": "en",
  "translations": {
    "en": {
      "apiBusinessModelCanvas": {
        "id": "apiBusinessModelCanvas",
        "title": "API Business Model Canvas",
        "purpose": "How feasible and reusable will this API be? Do we have a business case from a cost - benefit point of view?",
        "howToUse": "Summarize the value proposition of one API from the API Value Proposition Canvas, then follow the numbered sequence.",
        "layout": {
          "columns": 5,
          "rows": 3
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Alexander Osterwalder",
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=apiBusinessModelCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "apiBusinessModelCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Alexander Osterwalder",
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.241Z"
          },
          "sections": [
            {
              "sectionId": "keyPartners",
              "stickyNotes": []
            },
            {
              "sectionId": "keyActivities",
              "stickyNotes": []
            },
            {
              "sectionId": "keyResources",
              "stickyNotes": []
            },
            {
              "sectionId": "apiValueProposition",
              "stickyNotes": []
            },
            {
              "sectionId": "developerRelations",
              "stickyNotes": []
            },
            {
              "sectionId": "channels",
              "stickyNotes": []
            },
            {
              "sectionId": "apiConsumerSegments",
              "stickyNotes": []
            },
            {
              "sectionId": "costs",
              "stickyNotes": []
            },
            {
              "sectionId": "benefits",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "apiValueProposition",
            "title": "API Value Proposition",
            "description": "Start with one sticky note naming the API or API family, then capture what value the API offers to API consumers.",
            "gridPosition": {
              "column": 2,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 2
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#C0EB6A",
            "defaultNoteIntent": "benefit"
          },
          {
            "id": "apiConsumerSegments",
            "title": "API Consumer Segments",
            "description": "Who are the target audiences for the API?",
            "gridPosition": {
              "column": 4,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 2
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "developerRelations",
            "title": "Developer Relations",
            "description": "How does the API provider reach and support API consumers?",
            "gridPosition": {
              "column": 3,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "channels",
            "title": "Channels",
            "description": "Through which mechanisms do API consumers interact with the API?",
            "gridPosition": {
              "column": 3,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          },
          {
            "id": "keyResources",
            "title": "Key Resources",
            "description": "What unique strategic assets must the API provider acquire or build?",
            "gridPosition": {
              "column": 1,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "keyActivities",
            "title": "Key Activities",
            "description": "What are the most important actions the API provider must take to operate successfully?",
            "gridPosition": {
              "column": 1,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 6,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          },
          {
            "id": "keyPartners",
            "title": "Key Partners",
            "description": "Who are the key stakeholders involved?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 2
            },
            "fillOrder": 7,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "benefits",
            "title": "Benefits",
            "description": "What are the significant benefits or revenue streams generated by the API?",
            "gridPosition": {
              "column": 2.5,
              "row": 2,
              "colSpan": 2.5,
              "rowSpan": 1
            },
            "fillOrder": 8,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#C0EB6A",
            "defaultNoteIntent": "benefit"
          },
          {
            "id": "costs",
            "title": "Costs",
            "description": "What are the significant costs involved in building, deploying, and operating the API?",
            "gridPosition": {
              "column": 0,
              "row": 2,
              "colSpan": 2.5,
              "rowSpan": 1
            },
            "fillOrder": 9,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFAFAF",
            "defaultNoteIntent": "negative"
          }
        ]
      },
      "apiValuePropositionCanvas": {
        "id": "apiValuePropositionCanvas",
        "title": "API Value Proposition Canvas",
        "purpose": "How does the customer journey map to APIs? What end-user and API consumer pains, and gains need to be addressed?",
        "howToUse": "Describe the end-users' perspective, starting with their tasks, then their and API consumers' pains and gains, and finally the API's products and features.",
        "layout": {
          "columns": 4,
          "rows": 3
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Alexander Osterwalder",
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=apiValuePropositionCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "apiValuePropositionCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Alexander Osterwalder",
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.244Z"
          },
          "sections": [
            {
              "sectionId": "tasks",
              "stickyNotes": []
            },
            {
              "sectionId": "gainEnablingFeatures",
              "stickyNotes": []
            },
            {
              "sectionId": "painRelievingFeatures",
              "stickyNotes": []
            },
            {
              "sectionId": "apiProducts",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "tasks",
            "title": "Tasks",
            "description": "What are the customers (end-users) trying to achieve?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 4,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": true,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          },
          {
            "id": "gainEnablingFeatures",
            "title": "Gain Enabling Features",
            "description": "What features enable end-users and API consumers to achieve gains?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#C0EB6A",
            "defaultNoteIntent": "benefit"
          },
          {
            "id": "painRelievingFeatures",
            "title": "Pain Relieving Features",
            "description": "What features help end-users and  API consumers overcome pains?",
            "gridPosition": {
              "column": 2,
              "row": 1,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#C0EB6A",
            "defaultNoteIntent": "benefit"
          },
          {
            "id": "apiProducts",
            "title": "API Products",
            "description": "What API products and features address the tasks, pains, and gains?",
            "gridPosition": {
              "column": 0,
              "row": 2,
              "colSpan": 4,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          }
        ]
      },
      "businessImpactCanvas": {
        "id": "businessImpactCanvas",
        "title": "Business Impact Canvas",
        "purpose": "What value, risk, operational, financial, customer, employee, compliance, and strategic impact is expected or at stake?",
        "howToUse": "Use this to connect expected benefits and consequences to architecture, prioritization, readiness, and proceed-or-stop decisions. Include the impact of not proceeding as well as critical risks and mitigations.",
        "layout": {
          "columns": 4,
          "rows": 2
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=businessImpactCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "businessImpactCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.246Z"
          },
          "sections": [
            {
              "sectionId": "expectedBenefits",
              "stickyNotes": []
            },
            {
              "sectionId": "operationalEfficiencyImpact",
              "stickyNotes": []
            },
            {
              "sectionId": "customerEmployeeImpact",
              "stickyNotes": []
            },
            {
              "sectionId": "financialImpact",
              "stickyNotes": []
            },
            {
              "sectionId": "complianceStrategicImpact",
              "stickyNotes": []
            },
            {
              "sectionId": "impactOfNotProceeding",
              "stickyNotes": []
            },
            {
              "sectionId": "risksAndCriticality",
              "stickyNotes": []
            },
            {
              "sectionId": "mitigationsAndDecisionImpact",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "expectedBenefits",
            "title": "Expected benefits",
            "description": "What business, customer, employee, quality, speed, risk, compliance, or strategic benefits are expected?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "operationalEfficiencyImpact",
            "title": "Operational efficiency impact",
            "description": "How could work effort, waiting time, rework, throughput, reliability, support load, or operational cost change?",
            "gridPosition": {
              "column": 1,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "customerEmployeeImpact",
            "title": "Customer and employee impact",
            "description": "How will customers, employees, partners, operators, or support teams experience the change?",
            "gridPosition": {
              "column": 2,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "financialImpact",
            "title": "Financial impact",
            "description": "What revenue, cost, investment, savings, loss avoidance, or funding impact is expected?",
            "gridPosition": {
              "column": 3,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "complianceStrategicImpact",
            "title": "Compliance and strategic impact",
            "description": "What regulatory, contractual, policy, reputation, market, ecosystem, or strategic consequences matter?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "impactOfNotProceeding",
            "title": "Impact of not proceeding",
            "description": "What happens if the capability, automation, integration, or service is not improved or delivered?",
            "gridPosition": {
              "column": 1,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 6,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "risksAndCriticality",
            "title": "Risks and criticality",
            "description": "What availability, security, data, safety, process, adoption, or business continuity risks could affect the outcome?",
            "gridPosition": {
              "column": 2,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 7,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "mitigationsAndDecisionImpact",
            "title": "Mitigations and decision impact",
            "description": "Which mitigations, constraints, trade-offs, or residual risks should influence prioritization, architecture, rollout, or readiness decisions?",
            "gridPosition": {
              "column": 3,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 8,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          }
        ]
      },
      "capacityCanvas": {
        "id": "capacityCanvas",
        "title": "Capacity Canvas",
        "purpose": "How much demand, load, timing, and scaling capacity must be understood for the capability, automation, integration, or service?",
        "howToUse": "Quantify current and expected demand, peak load, and availability needs. Record caching, rate limiting, and scaling approaches as architecture follow-up decisions rather than user requirements.",
        "layout": {
          "columns": 3,
          "rows": 3
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=capacityCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "capacityCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.248Z"
          },
          "sections": [
            {
              "sectionId": "currentBusinessVolumes",
              "stickyNotes": []
            },
            {
              "sectionId": "futureConsumptionTrends",
              "stickyNotes": []
            },
            {
              "sectionId": "peakLoadAndAvailabilityRequirements",
              "stickyNotes": []
            },
            {
              "sectionId": "cachingStrategies",
              "stickyNotes": []
            },
            {
              "sectionId": "rateLimitingStrategies",
              "stickyNotes": []
            },
            {
              "sectionId": "scalingStrategies",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "currentBusinessVolumes",
            "title": "Current Business Volumes",
            "description": "What are the current business volumes and transaction rates?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "futureConsumptionTrends",
            "title": "Future Consumption Trends",
            "description": "What are the anticipated future consumption trends?",
            "gridPosition": {
              "column": 1,
              "row": 0,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "peakLoadAndAvailabilityRequirements",
            "title": "Peak Load and Availability Requirements",
            "description": "What are the peak load and availability requirements?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 3,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "cachingStrategies",
            "title": "Caching Strategies",
            "description": "What caching strategies can be used to optimize performance?",
            "gridPosition": {
              "column": 0,
              "row": 2,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          },
          {
            "id": "rateLimitingStrategies",
            "title": "Rate Limiting Strategies",
            "description": "What rate limiting strategies can be used to manage consumption?",
            "gridPosition": {
              "column": 1,
              "row": 2,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          },
          {
            "id": "scalingStrategies",
            "title": "Scaling Strategies",
            "description": "What scaling strategies can be used to accommodate growth?",
            "gridPosition": {
              "column": 2,
              "row": 2,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 6,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          }
        ]
      },
      "customerJourneyCanvas": {
        "id": "customerJourneyCanvas",
        "title": "Customer Journey Canvas",
        "purpose": "What journey does the most external meaningful customer experience, and what should improve?",
        "howToUse": "Start with the most external meaningful customer. Describe their real journey before tracing inward to capabilities, internal processes, or implementation choices.",
        "layout": {
          "columns": 5,
          "rows": 5
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=customerJourneyCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "customerJourneyCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.251Z"
          },
          "sections": [
            {
              "sectionId": "customerDiscoversNeed",
              "stickyNotes": []
            },
            {
              "sectionId": "persona",
              "stickyNotes": []
            },
            {
              "sectionId": "pains",
              "stickyNotes": []
            },
            {
              "sectionId": "journeySteps",
              "stickyNotes": []
            },
            {
              "sectionId": "customerNeedIsResolved",
              "stickyNotes": []
            },
            {
              "sectionId": "gains",
              "stickyNotes": []
            },
            {
              "sectionId": "inputsOutputs",
              "stickyNotes": []
            },
            {
              "sectionId": "interactionProcessingRules",
              "stickyNotes": []
            },
            {
              "sectionId": "improvementOpportunities",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "persona",
            "title": "Persona",
            "description": "Who is the typical customer experiencing this journey?",
            "gridPosition": {
              "column": 1,
              "row": 0,
              "colSpan": 3,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "customerDiscoversNeed",
            "title": "Customer Discovers Need",
            "description": "How does the customer recognize their need or problem?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "customerNeedIsResolved",
            "title": "Customer Need Is Resolved",
            "description": "How is the customer's need ultimately resolved?",
            "gridPosition": {
              "column": 4,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#C0EB6A",
            "defaultNoteIntent": "benefit"
          },
          {
            "id": "journeySteps",
            "title": "Journey Steps",
            "description": "What are the steps the customer takes in their journey?",
            "gridPosition": {
              "column": 1,
              "row": 1,
              "colSpan": 3,
              "rowSpan": 2
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": true,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          },
          {
            "id": "pains",
            "title": "Pains",
            "description": "What are the customer's pain points or challenges?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 2
            },
            "fillOrder": 5,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFAFAF",
            "defaultNoteIntent": "negative"
          },
          {
            "id": "gains",
            "title": "Gains",
            "description": "What are the customer's gains or benefits?",
            "gridPosition": {
              "column": 4,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 2
            },
            "fillOrder": 6,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#C0EB6A",
            "defaultNoteIntent": "benefit"
          },
          {
            "id": "inputsOutputs",
            "title": "Inputs & Outputs",
            "description": "What are the inputs and outputs at each step?",
            "gridPosition": {
              "column": 0.5,
              "row": 3,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 7,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "interactionProcessingRules",
            "title": "Interaction & Processing Rules",
            "description": "What are the interaction and processing rules at each step?",
            "gridPosition": {
              "column": 2.5,
              "row": 3,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 8,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "improvementOpportunities",
            "title": "Improvement opportunities",
            "description": "Which journey steps indicate that an underlying capability or process should be created, improved, automated, or removed?",
            "gridPosition": {
              "column": 0,
              "row": 4,
              "colSpan": 5,
              "rowSpan": 1
            },
            "fillOrder": 9,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          }
        ]
      },
      "domainCanvas": {
        "id": "domainCanvas",
        "title": "Domain Canvas",
        "purpose": "What are the core entities and business rules related to this capability or domain?",
        "howToUse": "Define the domain model, including entities, attributes, relationships, ownership, and business rules.",
        "layout": {
          "columns": 2,
          "rows": 4
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=domainCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "domainCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.253Z"
          },
          "sections": [
            {
              "sectionId": "selectedCustomerJourneySteps",
              "stickyNotes": []
            },
            {
              "sectionId": "coreEntitiesAndBusinessMeaning",
              "stickyNotes": []
            },
            {
              "sectionId": "attributesAndBusinessImportance",
              "stickyNotes": []
            },
            {
              "sectionId": "relationshipsBetweenEntities",
              "stickyNotes": []
            },
            {
              "sectionId": "businessComplianceAndIntegrityRules",
              "stickyNotes": []
            },
            {
              "sectionId": "securityAndPrivacyConsiderations",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "selectedCustomerJourneySteps",
            "title": "Selected Customer Journey Steps",
            "description": "Which customer journey steps are relevant to this domain?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": true,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          },
          {
            "id": "coreEntitiesAndBusinessMeaning",
            "title": "Core Entities & Business Meaning",
            "description": "What are the core entities and their business meaning?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "attributesAndBusinessImportance",
            "title": "Attributes & Business Importance",
            "description": "What are the key attributes of each entity and their business importance?",
            "gridPosition": {
              "column": 1,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 2
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "relationshipsBetweenEntities",
            "title": "Relationships Between Entities",
            "description": "What are the relationships between the entities?",
            "gridPosition": {
              "column": 0,
              "row": 2,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "businessComplianceAndIntegrityRules",
            "title": "Business, Compliance & Integrity Rules",
            "description": "What are the business, compliance, and integrity rules related to the entities?",
            "gridPosition": {
              "column": 0,
              "row": 3,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "securityAndPrivacyConsiderations",
            "title": "Security & Privacy Considerations",
            "description": "What are the security and privacy considerations related to the entities?",
            "gridPosition": {
              "column": 1,
              "row": 3,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 6,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFAFAF",
            "defaultNoteIntent": "negative"
          }
        ]
      },
      "eventCanvas": {
        "id": "eventCanvas",
        "title": "Event Canvas",
        "purpose": "What events are relevant to the integration capability, and how are they produced, consumed, processed, and governed?",
        "howToUse": "Define event triggers, payloads, processing logic, ownership, consumers, and governance for the selected integration capability.",
        "layout": {
          "columns": 4,
          "rows": 3
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=eventCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "eventCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.255Z"
          },
          "sections": [
            {
              "sectionId": "userTaskTrigger",
              "stickyNotes": []
            },
            {
              "sectionId": "inputEventPayload",
              "stickyNotes": []
            },
            {
              "sectionId": "processingLogic",
              "stickyNotes": []
            },
            {
              "sectionId": "outputEventResult",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "userTaskTrigger",
            "title": "User Task / Trigger",
            "description": "What user action or system event triggers this event operation?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          },
          {
            "id": "inputEventPayload",
            "title": "Input / Event Payload",
            "description": "What data is included in the incoming event payload? Specify key attributes.",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 2
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "processingLogic",
            "title": "Processing / Logic",
            "description": "Describe the backend processing logic, including validations, transformations, or routing decisions.",
            "gridPosition": {
              "column": 1,
              "row": 1,
              "colSpan": 2,
              "rowSpan": 2
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "outputEventResult",
            "title": "Output / Event Result",
            "description": "What resulting event or acknowledgment is produced? Include attributes of the output payload.",
            "gridPosition": {
              "column": 3,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 2
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#C0EB6A",
            "defaultNoteIntent": "benefit"
          }
        ]
      },
      "interactionCanvas": {
        "id": "interactionCanvas",
        "title": "Interaction Canvas",
        "purpose": "What kinds of interactions should this capability support before choosing a protocol-specific design?",
        "howToUse": "Identify which interaction styles are actually needed for this capability, and which are out of scope. Use this canvas to clarify intent before mapping the result to REST, events, GraphQL, or another selected implementation style.",
        "layout": {
          "columns": 4,
          "rows": 3
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=interactionCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "interactionCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.257Z"
          },
          "sections": [
            {
              "sectionId": "crudInteractions",
              "stickyNotes": []
            },
            {
              "sectionId": "crudInputOutputModels",
              "stickyNotes": []
            },
            {
              "sectionId": "crudProcessingValidation",
              "stickyNotes": []
            },
            {
              "sectionId": "queryDrivenInteractions",
              "stickyNotes": []
            },
            {
              "sectionId": "queryDrivenInputOutputModels",
              "stickyNotes": []
            },
            {
              "sectionId": "queryDrivenProcessingValidation",
              "stickyNotes": []
            },
            {
              "sectionId": "commandDrivenInteractions",
              "stickyNotes": []
            },
            {
              "sectionId": "commandDrivenInputOutputModels",
              "stickyNotes": []
            },
            {
              "sectionId": "commandDrivenProcessingValidation",
              "stickyNotes": []
            },
            {
              "sectionId": "eventDrivenInteractions",
              "stickyNotes": []
            },
            {
              "sectionId": "eventDrivenInputOutputModels",
              "stickyNotes": []
            },
            {
              "sectionId": "eventDrivenProcessingValidation",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "crudInteractions",
            "title": "CRUD Interactions",
            "description": "Are CRUD (Create, Read, Update, Delete) interactions needed here?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          },
          {
            "id": "crudInputOutputModels",
            "title": "CRUD Input & Output Models",
            "description": "What are the input and output models for the CRUD interactions, if this style is needed?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "crudProcessingValidation",
            "title": "CRUD Processing & Validation",
            "description": "What are the processing and validation rules for the CRUD interactions, if this style is needed?",
            "gridPosition": {
              "column": 0,
              "row": 2,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "queryDrivenInteractions",
            "title": "Query-Driven Interactions",
            "description": "What read or query interactions are needed to answer consumer questions?",
            "gridPosition": {
              "column": 1,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          },
          {
            "id": "queryDrivenInputOutputModels",
            "title": "Query-Driven Input & Output Models",
            "description": "What are the input and output models for the query-driven interactions?",
            "gridPosition": {
              "column": 1,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "queryDrivenProcessingValidation",
            "title": "Query-Driven Processing & Validation",
            "description": "What are the processing and validation rules for the query-driven interactions?",
            "gridPosition": {
              "column": 1,
              "row": 2,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 6,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "commandDrivenInteractions",
            "title": "Command-Driven Interactions",
            "description": "What state-changing commands are needed, if any?",
            "gridPosition": {
              "column": 2,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 7,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          },
          {
            "id": "commandDrivenInputOutputModels",
            "title": "Command-Driven Input & Output Models",
            "description": "What are the input and output models for the command-driven interactions, if this style is needed?",
            "gridPosition": {
              "column": 2,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 8,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "commandDrivenProcessingValidation",
            "title": "Command-Driven Processing & Validation",
            "description": "What are the processing and validation rules for the command-driven interactions, if this style is needed?",
            "gridPosition": {
              "column": 2,
              "row": 2,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 9,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "eventDrivenInteractions",
            "title": "Event-Driven Interactions",
            "description": "What events need to be published or consumed, if any?",
            "gridPosition": {
              "column": 3,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 10,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          },
          {
            "id": "eventDrivenInputOutputModels",
            "title": "Event-Driven Input & Output Models",
            "description": "What are the input and output models for the event-driven interactions, if this style is needed?",
            "gridPosition": {
              "column": 3,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 11,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "eventDrivenProcessingValidation",
            "title": "Event-Driven Processing & Validation",
            "description": "What are the processing and validation rules for the event-driven interactions, if this style is needed?",
            "gridPosition": {
              "column": 3,
              "row": 2,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 12,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          }
        ]
      },
      "locationsCanvas": {
        "id": "locationsCanvas",
        "title": "Locations Canvas",
        "purpose": "What geopolitical, regulatory, network, and trust boundaries affect this capability or integration?",
        "howToUse": "Identify where consumers, producers, and dependent systems operate across internal networks, partner networks, public internet, and regulated regions. Describe the latency, trust, compliance, and connectivity implications between them.",
        "layout": {
          "columns": 4,
          "rows": 2
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=locationsCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "locationsCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.259Z"
          },
          "sections": [
            {
              "sectionId": "locationGroups",
              "stickyNotes": []
            },
            {
              "sectionId": "locationGroupCharacteristics",
              "stickyNotes": []
            },
            {
              "sectionId": "locations",
              "stickyNotes": []
            },
            {
              "sectionId": "locationCharacteristics",
              "stickyNotes": []
            },
            {
              "sectionId": "locationDistances",
              "stickyNotes": []
            },
            {
              "sectionId": "locationDistanceCharacteristics",
              "stickyNotes": []
            },
            {
              "sectionId": "locationEndpoints",
              "stickyNotes": []
            },
            {
              "sectionId": "locationEndpointCharacteristics",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "locationGroups",
            "title": "Location / Trust Groups",
            "description": "What are the relevant geopolitical, regulatory, network, or trust groups?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "locationGroupCharacteristics",
            "title": "Group Characteristics",
            "description": "What are the characteristics of those groups, such as residency, trust level, or network exposure?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "locations",
            "title": "Relevant Locations / Zones",
            "description": "What are the relevant locations, zones, or environments within each group?",
            "gridPosition": {
              "column": 1,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "locationCharacteristics",
            "title": "Location / Zone Characteristics",
            "description": "What are the characteristics of those locations or zones, such as ownership, region, or exposure?",
            "gridPosition": {
              "column": 1,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "locationDistances",
            "title": "Network / Regulatory Distances",
            "description": "What latency, trust, regulatory, or connectivity distances exist between the locations?",
            "gridPosition": {
              "column": 2,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFAFAF",
            "defaultNoteIntent": "negative"
          },
          {
            "id": "locationDistanceCharacteristics",
            "title": "Distance Characteristics",
            "description": "What are the characteristics of those distances, such as latency sensitivity, residency constraints, or trust boundaries?",
            "gridPosition": {
              "column": 2,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 6,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "locationEndpoints",
            "title": "Connectivity Endpoints",
            "description": "What connectivity endpoints or interfaces are associated with the locations?",
            "gridPosition": {
              "column": 3,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 7,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "locationEndpointCharacteristics",
            "title": "Endpoint Access Characteristics",
            "description": "What are the characteristics of those endpoints, such as exposure, protocol, security, or access restrictions?",
            "gridPosition": {
              "column": 3,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 8,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          }
        ]
      },
      "restCanvas": {
        "id": "restCanvas",
        "title": "REST Canvas",
        "purpose": "How can the API be designed using RESTful principles?",
        "howToUse": "Define the API resources, verbs, and example requests and responses.",
        "layout": {
          "columns": 4,
          "rows": 3
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=restCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "restCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.260Z"
          },
          "sections": [
            {
              "sectionId": "apiResources",
              "stickyNotes": []
            },
            {
              "sectionId": "apiResourceModel",
              "stickyNotes": []
            },
            {
              "sectionId": "apiVerbs",
              "stickyNotes": []
            },
            {
              "sectionId": "apiVerbExample",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "apiResources",
            "title": "API Resources",
            "description": "What are the key resources exposed by the API?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "apiResourceModel",
            "title": "API Resource Model",
            "description": "What is the structure of the API resource model?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 2
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "apiVerbs",
            "title": "API Verbs",
            "description": "What HTTP verbs are used to interact with the API resources?",
            "gridPosition": {
              "column": 1,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          },
          {
            "id": "apiVerbExample",
            "title": "API Verb Example",
            "description": "Provide an example of an API request and response for each verb.",
            "gridPosition": {
              "column": 1,
              "row": 1,
              "colSpan": 3,
              "rowSpan": 2
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          }
        ]
      },
      "graphqlCanvas": {
        "id": "graphqlCanvas",
        "title": "GraphQL Canvas",
        "purpose": "How can the API be designed using GraphQL principles?",
        "howToUse": "Define the key types, queries, mutations, and constraints for your GraphQL API.",
        "layout": {
          "columns": 4,
          "rows": 3
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=graphqlCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "graphqlCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.262Z"
          },
          "sections": [
            {
              "sectionId": "apiName",
              "stickyNotes": []
            },
            {
              "sectionId": "consumerGoals",
              "stickyNotes": []
            },
            {
              "sectionId": "keyTypes",
              "stickyNotes": []
            },
            {
              "sectionId": "relationships",
              "stickyNotes": []
            },
            {
              "sectionId": "queries",
              "stickyNotes": []
            },
            {
              "sectionId": "mutations",
              "stickyNotes": []
            },
            {
              "sectionId": "subscriptions",
              "stickyNotes": []
            },
            {
              "sectionId": "authorizationRules",
              "stickyNotes": []
            },
            {
              "sectionId": "consumerConstraints",
              "stickyNotes": []
            },
            {
              "sectionId": "openQuestions",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "apiName",
            "title": "API Name",
            "description": "What is the name of the GraphQL API or endpoint?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "consumerGoals",
            "title": "Consumer Goals",
            "description": "What problems are API consumers trying to solve? What data do they need?",
            "gridPosition": {
              "column": 2,
              "row": 0,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#C0EB6A",
            "defaultNoteIntent": "benefit"
          },
          {
            "id": "keyTypes",
            "title": "Key Types",
            "description": "What are the core types exposed (e.g., User, Order, Product)?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "relationships",
            "title": "Relationships",
            "description": "How do types relate to each other in nested queries?",
            "gridPosition": {
              "column": 1,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "queries",
            "title": "Queries",
            "description": "What common queries should be supported?",
            "gridPosition": {
              "column": 2,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          },
          {
            "id": "mutations",
            "title": "Mutations",
            "description": "What operations will modify data (e.g., create, update, delete)?",
            "gridPosition": {
              "column": 3,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 6,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          },
          {
            "id": "subscriptions",
            "title": "Subscriptions",
            "description": "Are there any real-time updates or events consumers can subscribe to?",
            "gridPosition": {
              "column": 0,
              "row": 2,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 7,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          },
          {
            "id": "authorizationRules",
            "title": "Authorization Rules",
            "description": "Who can access which fields or types?",
            "gridPosition": {
              "column": 1,
              "row": 2,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 8,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFAFAF",
            "defaultNoteIntent": "negative"
          },
          {
            "id": "consumerConstraints",
            "title": "Consumer Constraints",
            "description": "Are there pagination, filtering, or rate-limiting constraints?",
            "gridPosition": {
              "column": 2,
              "row": 2,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 9,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFAFAF",
            "defaultNoteIntent": "negative"
          },
          {
            "id": "openQuestions",
            "title": "Notes / Open Questions",
            "description": "Any pending decisions or integration considerations?",
            "gridPosition": {
              "column": 3,
              "row": 2,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 10,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          }
        ]
      },
      "capabilityValuePropositionCanvas": {
        "id": "capabilityValuePropositionCanvas",
        "title": "Capability Value Proposition Canvas",
        "purpose": "Which reusable capability would create value for consumers without deciding yet whether it should be delivered as an API, event, file, stream, data product, or another implementation style?",
        "howToUse": "Start from consumer tasks and outcomes. Capture gain-enabling and pain-relieving capability features, then describe candidate reusable capabilities without naming the technology too early.",
        "layout": {
          "columns": 4,
          "rows": 3
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=capabilityValuePropositionCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "capabilityValuePropositionCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.264Z"
          },
          "sections": [
            {
              "sectionId": "consumerTasks",
              "stickyNotes": []
            },
            {
              "sectionId": "gainEnablingCapabilities",
              "stickyNotes": []
            },
            {
              "sectionId": "painRelievingCapabilities",
              "stickyNotes": []
            },
            {
              "sectionId": "reusableCapabilities",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "consumerTasks",
            "title": "Consumer tasks and outcomes",
            "description": "What are consumers, partners, users, systems, or teams trying to achieve?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 4,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": true,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          },
          {
            "id": "gainEnablingCapabilities",
            "title": "Gain-enabling capability features",
            "description": "What capability features would help consumers achieve better outcomes, speed, automation, insight, reach, or compliance?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#C0EB6A",
            "defaultNoteIntent": "benefit"
          },
          {
            "id": "painRelievingCapabilities",
            "title": "Pain-relieving capability features",
            "description": "What capability features would remove friction, manual work, errors, delays, risk, or uncertainty for consumers?",
            "gridPosition": {
              "column": 2,
              "row": 1,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#C0EB6A",
            "defaultNoteIntent": "benefit"
          },
          {
            "id": "reusableCapabilities",
            "title": "Reusable capabilities",
            "description": "What reusable business or data capabilities could serve these tasks, gains, and pains across more than one consumer or use case?",
            "gridPosition": {
              "column": 0,
              "row": 2,
              "colSpan": 4,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          }
        ]
      },
      "capabilityBusinessModelCanvas": {
        "id": "capabilityBusinessModelCanvas",
        "title": "Capability Business Model Canvas",
        "purpose": "How viable, reusable, funded, owned, supported, and discoverable should this capability be?",
        "howToUse": "Summarize the capability value proposition, identify consumers and engagement channels, then map ownership, activities, resources, partners, benefits, and costs.",
        "layout": {
          "columns": 5,
          "rows": 3
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=capabilityBusinessModelCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "capabilityBusinessModelCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.265Z"
          },
          "sections": [
            {
              "sectionId": "keyPartners",
              "stickyNotes": []
            },
            {
              "sectionId": "keyActivities",
              "stickyNotes": []
            },
            {
              "sectionId": "keyResources",
              "stickyNotes": []
            },
            {
              "sectionId": "capabilityValueProposition",
              "stickyNotes": []
            },
            {
              "sectionId": "consumerEngagement",
              "stickyNotes": []
            },
            {
              "sectionId": "channels",
              "stickyNotes": []
            },
            {
              "sectionId": "capabilityConsumerSegments",
              "stickyNotes": []
            },
            {
              "sectionId": "costs",
              "stickyNotes": []
            },
            {
              "sectionId": "benefits",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "capabilityValueProposition",
            "title": "Capability value proposition",
            "description": "What value does this reusable capability provide to consumers and to the organization or ecosystem?",
            "gridPosition": {
              "column": 2,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 2
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#C0EB6A",
            "defaultNoteIntent": "benefit"
          },
          {
            "id": "capabilityConsumerSegments",
            "title": "Capability consumer segments",
            "description": "Who are the current and potential consumers of the capability, including teams, partners, systems, products, or data users?",
            "gridPosition": {
              "column": 4,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 2
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "consumerEngagement",
            "title": "Consumer engagement",
            "description": "How will consumers discover, evaluate, request, onboard, get support for, and provide feedback on the capability?",
            "gridPosition": {
              "column": 3,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "channels",
            "title": "Channels",
            "description": "Through which catalogs, portals, marketplaces, documentation sites, support paths, or governance processes will consumers interact with the capability?",
            "gridPosition": {
              "column": 3,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          },
          {
            "id": "keyResources",
            "title": "Key resources",
            "description": "Which systems, data assets, platforms, people, standards, funding, and operational capabilities are required?",
            "gridPosition": {
              "column": 1,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "keyActivities",
            "title": "Key activities",
            "description": "What must the capability owner and producers do to design, deliver, govern, support, and improve the capability?",
            "gridPosition": {
              "column": 1,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 6,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          },
          {
            "id": "keyPartners",
            "title": "Key partners",
            "description": "Which business, technology, data, security, legal, platform, or external partners are needed to make the capability work?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 2
            },
            "fillOrder": 7,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "benefits",
            "title": "Benefits",
            "description": "What business, operational, ecosystem, reuse, compliance, or cost benefits justify the capability?",
            "gridPosition": {
              "column": 2.5,
              "row": 2,
              "colSpan": 2.5,
              "rowSpan": 1
            },
            "fillOrder": 8,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#C0EB6A",
            "defaultNoteIntent": "benefit"
          },
          {
            "id": "costs",
            "title": "Costs",
            "description": "What are the significant costs of building, operating, governing, supporting, and evolving the capability?",
            "gridPosition": {
              "column": 0,
              "row": 2,
              "colSpan": 2.5,
              "rowSpan": 1
            },
            "fillOrder": 9,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFAFAF",
            "defaultNoteIntent": "negative"
          }
        ]
      },
      "consumerExperienceRequirementsCanvas": {
        "id": "consumerExperienceRequirementsCanvas",
        "title": "Experience Requirements Canvas",
        "purpose": "What experience, operational, and non-functional requirements must the solution satisfy for users, operators, consumers, approvers, and support teams?",
        "howToUse": "Capture what people and consuming systems require from the capability or automation. Keep this focused on requirements and constraints; quantify capacity and choose implementation mechanisms in later architecture work.",
        "layout": {
          "columns": 4,
          "rows": 3
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=consumerExperienceRequirementsCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "consumerExperienceRequirementsCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.267Z"
          },
          "sections": [
            {
              "sectionId": "consumerGoals",
              "stickyNotes": []
            },
            {
              "sectionId": "availabilityAndTimeliness",
              "stickyNotes": []
            },
            {
              "sectionId": "volumeAndPerformance",
              "stickyNotes": []
            },
            {
              "sectionId": "dataQualityAndConsistency",
              "stickyNotes": []
            },
            {
              "sectionId": "securityPrivacyAndCompliance",
              "stickyNotes": []
            },
            {
              "sectionId": "onboardingAndAccess",
              "stickyNotes": []
            },
            {
              "sectionId": "changeAndVersioning",
              "stickyNotes": []
            },
            {
              "sectionId": "observabilityAndSupport",
              "stickyNotes": []
            },
            {
              "sectionId": "recoveryAndContinuity",
              "stickyNotes": []
            },
            {
              "sectionId": "architectureImplications",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "consumerGoals",
            "title": "User, operator, or consumer goals",
            "description": "What business, workflow, decision, automation, support, or data usage goals must be supported?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#C0EB6A",
            "defaultNoteIntent": "benefit"
          },
          {
            "id": "availabilityAndTimeliness",
            "title": "Availability and timeliness needs",
            "description": "When must the solution be available, how fresh must information be, and what response, delivery, or completion windows matter to users and operators?",
            "gridPosition": {
              "column": 1,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "volumeAndPerformance",
            "title": "Volume and performance expectations",
            "description": "What user, case, transaction, record, event, file, batch, or work-item volumes must be understood before capacity planning?",
            "gridPosition": {
              "column": 2,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "dataQualityAndConsistency",
            "title": "Data quality and consistency needs",
            "description": "What accuracy, completeness, consistency, ordering, deduplication, reconciliation, or validation expectations do users, operators, or consuming systems have?",
            "gridPosition": {
              "column": 3,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          },
          {
            "id": "securityPrivacyAndCompliance",
            "title": "Security, privacy, and compliance constraints",
            "description": "What identity, authorization, confidentiality, residency, consent, retention, audit, or regulatory constraints must the solution satisfy?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFAFAF",
            "defaultNoteIntent": "negative"
          },
          {
            "id": "onboardingAndAccess",
            "title": "Activation and access",
            "description": "How do users, operators, or consuming teams gain access, initiate or participate in the solution, and receive the required permissions and guidance?",
            "gridPosition": {
              "column": 1,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 6,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          },
          {
            "id": "changeAndVersioning",
            "title": "Change and versioning expectations",
            "description": "How much change tolerance exists, and what notice, compatibility, migration, training, or versioning expectations apply?",
            "gridPosition": {
              "column": 2,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 7,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFAFAF",
            "defaultNoteIntent": "negative"
          },
          {
            "id": "observabilityAndSupport",
            "title": "Observability and support needs",
            "description": "What monitoring, status, traceability, quality visibility, support, ownership, and incident communication do users and operators need?",
            "gridPosition": {
              "column": 3,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 8,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          },
          {
            "id": "recoveryAndContinuity",
            "title": "Recovery and continuity needs",
            "description": "What replay, retry, reconciliation, backup, fallback, continuity, or manual recovery expectations must be supported?",
            "gridPosition": {
              "column": 0,
              "row": 2,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 9,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#7DC9E7",
            "defaultNoteIntent": "task"
          },
          {
            "id": "architectureImplications",
            "title": "Constraints for later design",
            "description": "Which requirements must later architecture, workflow, capacity, integration, or implementation decisions satisfy?",
            "gridPosition": {
              "column": 2,
              "row": 2,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 10,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#DFDDC5",
            "defaultNoteIntent": "neutral"
          }
        ]
      },
      "automationOpportunityCanvas": {
        "id": "automationOpportunityCanvas",
        "title": "Automation Hypothesis & Validation Canvas",
        "purpose": "Turn existing journey, value, impact, domain, and capacity evidence into a testable automation decision.",
        "howToUse": "Reuse earlier canvas outputs. Record only the remaining hypothesis, uncertainties, validation, and decision.",
        "layout": {
          "columns": 4,
          "rows": 3
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=automationOpportunityCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "automationOpportunityCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.269Z"
          },
          "sections": [
            {
              "sectionId": "hypothesis",
              "stickyNotes": []
            },
            {
              "sectionId": "reusedEvidence",
              "stickyNotes": []
            },
            {
              "sectionId": "criticalAssumptions",
              "stickyNotes": []
            },
            {
              "sectionId": "validationExperiment",
              "stickyNotes": []
            },
            {
              "sectionId": "decision",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "hypothesis",
            "title": "Automation hypothesis",
            "description": "What work do we believe should be automated, and what outcome should it achieve?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "reusedEvidence",
            "title": "Reused evidence",
            "description": "Which earlier canvas outputs support the hypothesis?",
            "gridPosition": {
              "column": 2,
              "row": 0,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "criticalAssumptions",
            "title": "Critical assumptions",
            "description": "What could make the hypothesis wrong, unsafe, or unworkable?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "validationExperiment",
            "title": "Validation experiment",
            "description": "What is the smallest useful test, evidence threshold, and stop condition?",
            "gridPosition": {
              "column": 2,
              "row": 1,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "decision",
            "title": "Decision",
            "description": "Proceed, revise, redesign the process, or stop?",
            "gridPosition": {
              "column": 0,
              "row": 2,
              "colSpan": 4,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          }
        ]
      },
      "automationWorkflowCanvas": {
        "id": "automationWorkflowCanvas",
        "title": "Automation Workflow Canvas",
        "purpose": "Design the internal workflow needed to deliver the selected customer and capability outcomes.",
        "howToUse": "Reuse customer journey, value proposition, domain, and validation evidence. Define the internal work, allocate it between people and automation, and add only execution details.",
        "layout": {
          "columns": 6,
          "rows": 3
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=automationWorkflowCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "automationWorkflowCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.271Z"
          },
          "sections": [
            {
              "sectionId": "selectedCustomerCapabilityOutcomes",
              "stickyNotes": []
            },
            {
              "sectionId": "internalWorkflowSteps",
              "stickyNotes": []
            },
            {
              "sectionId": "workAllocationHumanControl",
              "stickyNotes": []
            },
            {
              "sectionId": "inputsOutputsInteractions",
              "stickyNotes": []
            },
            {
              "sectionId": "decisionsExceptionsRecovery",
              "stickyNotes": []
            },
            {
              "sectionId": "evidenceMonitoring",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "selectedCustomerCapabilityOutcomes",
            "title": "Selected customer and capability outcomes",
            "description": "Which agreed customer outcomes and capability results must this workflow deliver?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 6,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "internalWorkflowSteps",
            "title": "Internal workflow steps",
            "description": "What internal work must happen to produce those outcomes?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 4,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": true,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "workAllocationHumanControl",
            "title": "Work allocation and human control",
            "description": "What remains human, what is automated, and where are oversight or escalation required?",
            "gridPosition": {
              "column": 4,
              "row": 1,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "inputsOutputsInteractions",
            "title": "Inputs, outputs, and interactions",
            "description": "What information, systems, and handoffs are needed?",
            "gridPosition": {
              "column": 0,
              "row": 2,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "decisionsExceptionsRecovery",
            "title": "Decisions, exceptions, and recovery",
            "description": "What changes the flow, what can fail, and how is work recovered?",
            "gridPosition": {
              "column": 2,
              "row": 2,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "evidenceMonitoring",
            "title": "Evidence and monitoring",
            "description": "What proves correct operation and shows whether the intended outcome was achieved?",
            "gridPosition": {
              "column": 4,
              "row": 2,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 6,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          }
        ]
      },
      "automationArchitectureDecisionCanvas": {
        "id": "automationArchitectureDecisionCanvas",
        "title": "Automation Architecture Decision Canvas",
        "purpose": "Choose the implementation approach using evidence already gathered.",
        "howToUse": "Bring forward constraints and responsibility choices. Compare only viable mechanisms, then record the decision and remaining risks.",
        "layout": {
          "columns": 4,
          "rows": 2
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=automationArchitectureDecisionCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "automationArchitectureDecisionCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.273Z"
          },
          "sections": [
            {
              "sectionId": "reusedInputs",
              "stickyNotes": []
            },
            {
              "sectionId": "viableOptions",
              "stickyNotes": []
            },
            {
              "sectionId": "selectedApproach",
              "stickyNotes": []
            },
            {
              "sectionId": "decisionRationale",
              "stickyNotes": []
            },
            {
              "sectionId": "rejectedAlternatives",
              "stickyNotes": []
            },
            {
              "sectionId": "openRisks",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "reusedInputs",
            "title": "Reused inputs",
            "description": "Which requirements, capacity, location, impact, and responsibility decisions constrain the choice?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "viableOptions",
            "title": "Viable options",
            "description": "Which human, workflow, rule, agent, API, connector, custom, or UI automation options remain viable?",
            "gridPosition": {
              "column": 1,
              "row": 0,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "selectedApproach",
            "title": "Selected approach",
            "description": "Which implementation style or hybrid is selected?",
            "gridPosition": {
              "column": 3,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 2
            },
            "fillOrder": 3,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "decisionRationale",
            "title": "Decision rationale",
            "description": "Why does the selected approach fit best?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "rejectedAlternatives",
            "title": "Rejected alternatives",
            "description": "Which serious alternatives were rejected, and why?",
            "gridPosition": {
              "column": 1,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "openRisks",
            "title": "Open risks",
            "description": "What still needs validation before delivery or release?",
            "gridPosition": {
              "column": 2,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 6,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          }
        ]
      },
      "automationReadinessOperationsCanvas": {
        "id": "automationReadinessOperationsCanvas",
        "title": "Automation Readiness & Operations Canvas",
        "purpose": "Prepare the minimum operating evidence needed before readiness review.",
        "howToUse": "Reuse design decisions. Record ownership, operational arrangements, evidence, recovery, and remaining readiness gaps.",
        "layout": {
          "columns": 3,
          "rows": 2
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=automationReadinessOperationsCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "automationReadinessOperationsCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.275Z"
          },
          "sections": [
            {
              "sectionId": "ownership",
              "stickyNotes": []
            },
            {
              "sectionId": "environmentsAndAccess",
              "stickyNotes": []
            },
            {
              "sectionId": "testEvidence",
              "stickyNotes": []
            },
            {
              "sectionId": "monitoringAndSupport",
              "stickyNotes": []
            },
            {
              "sectionId": "failureAndRecovery",
              "stickyNotes": []
            },
            {
              "sectionId": "documentationRisksAndReadiness",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "ownership",
            "title": "Ownership",
            "description": "Who owns business outcomes, operations, support, and changes?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "environmentsAndAccess",
            "title": "Environments and access",
            "description": "Are environments, permissions, credentials, and identities ready?",
            "gridPosition": {
              "column": 1,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "testEvidence",
            "title": "Test evidence",
            "description": "What proves correct, safe, and reliable behavior?",
            "gridPosition": {
              "column": 2,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "monitoringAndSupport",
            "title": "Monitoring and support",
            "description": "How will health, incidents, users, and operators be supported?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "failureAndRecovery",
            "title": "Failure and recovery",
            "description": "How will exceptions, fallback, rollback, and manual recovery work?",
            "gridPosition": {
              "column": 1,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "documentationRisksAndReadiness",
            "title": "Readiness status",
            "description": "Are documentation, risks, conditions, and blocking gaps clear?",
            "gridPosition": {
              "column": 2,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 6,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          }
        ]
      },
      "integrationCapabilityHypothesisCanvas": {
        "id": "integrationCapabilityHypothesisCanvas",
        "title": "Integration Capability Validation Canvas",
        "purpose": "Validate whether a proposed reusable integration capability should proceed.",
        "howToUse": "Reuse journey, value, domain, business model, impact, and capacity evidence instead of restating it.",
        "layout": {
          "columns": 4,
          "rows": 3
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=integrationCapabilityHypothesisCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "integrationCapabilityHypothesisCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.277Z"
          },
          "sections": [
            {
              "sectionId": "capabilityToValidate",
              "stickyNotes": []
            },
            {
              "sectionId": "reusedEvidence",
              "stickyNotes": []
            },
            {
              "sectionId": "criticalAssumptions",
              "stickyNotes": []
            },
            {
              "sectionId": "validationStep",
              "stickyNotes": []
            },
            {
              "sectionId": "decision",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "capabilityToValidate",
            "title": "Capability to validate",
            "description": "Which proposed integration capability and reuse scope are being tested?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "reusedEvidence",
            "title": "Reused evidence",
            "description": "Which earlier canvas outputs support the proposal?",
            "gridPosition": {
              "column": 2,
              "row": 0,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "criticalAssumptions",
            "title": "Critical assumptions",
            "description": "What could invalidate value, reuse, ownership, feasibility, or adoption?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "validationStep",
            "title": "Validation step",
            "description": "What is the smallest useful validation and success threshold?",
            "gridPosition": {
              "column": 2,
              "row": 1,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "decision",
            "title": "Decision",
            "description": "Proceed, narrow, revise and retest, or stop?",
            "gridPosition": {
              "column": 0,
              "row": 2,
              "colSpan": 4,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          }
        ]
      },
      "integrationConsumerProviderRequirementsCanvas": {
        "id": "integrationConsumerProviderRequirementsCanvas",
        "title": "Integration Consumer & Provider Commitments Canvas",
        "purpose": "Agree the responsibilities needed to use and provide a reusable integration capability.",
        "howToUse": "Bring forward consumers, use cases, service needs, and constraints. Record commitments rather than rediscovering requirements.",
        "layout": {
          "columns": 3,
          "rows": 2
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=integrationConsumerProviderRequirementsCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "integrationConsumerProviderRequirementsCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.280Z"
          },
          "sections": [
            {
              "sectionId": "selectedPartiesAndUseCases",
              "stickyNotes": []
            },
            {
              "sectionId": "providerCommitments",
              "stickyNotes": []
            },
            {
              "sectionId": "consumerCommitments",
              "stickyNotes": []
            },
            {
              "sectionId": "accessAndValidationAgreement",
              "stickyNotes": []
            },
            {
              "sectionId": "failureAndRecoveryAgreement",
              "stickyNotes": []
            },
            {
              "sectionId": "changeAndLifecycleAgreement",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "selectedPartiesAndUseCases",
            "title": "Selected parties and use cases",
            "description": "Which producers, providers, consumers, and use cases are covered?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "providerCommitments",
            "title": "Provider commitments",
            "description": "What will providers deliver, maintain, monitor, and support?",
            "gridPosition": {
              "column": 1,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "consumerCommitments",
            "title": "Consumer commitments",
            "description": "What must consumers test, protect, operate, and communicate?",
            "gridPosition": {
              "column": 2,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "accessAndValidationAgreement",
            "title": "Access and validation",
            "description": "How will access, environments, credentials, and conformance be handled?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "failureAndRecoveryAgreement",
            "title": "Failure and recovery",
            "description": "Who handles failures, replay, duplicates, reconciliation, and recovery?",
            "gridPosition": {
              "column": 1,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "changeAndLifecycleAgreement",
            "title": "Change and lifecycle",
            "description": "How will compatibility, migration, notice, deprecation, and retirement work?",
            "gridPosition": {
              "column": 2,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 6,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          }
        ]
      },
      "integrationArchitectureDecisionCanvas": {
        "id": "integrationArchitectureDecisionCanvas",
        "title": "Integration Architecture Decision Canvas",
        "purpose": "Choose the integration style and platform using evidence already gathered.",
        "howToUse": "Bring forward consumer commitments, impact, location, and capacity. Compare only viable styles and record the decision.",
        "layout": {
          "columns": 4,
          "rows": 2
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=integrationArchitectureDecisionCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "integrationArchitectureDecisionCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.282Z"
          },
          "sections": [
            {
              "sectionId": "reusedInputs",
              "stickyNotes": []
            },
            {
              "sectionId": "viableOptions",
              "stickyNotes": []
            },
            {
              "sectionId": "selectedApproach",
              "stickyNotes": []
            },
            {
              "sectionId": "decisionRationale",
              "stickyNotes": []
            },
            {
              "sectionId": "rejectedAlternatives",
              "stickyNotes": []
            },
            {
              "sectionId": "openRisks",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "reusedInputs",
            "title": "Reused inputs",
            "description": "Which commitments, capacity, location, impact, and domain decisions constrain the choice?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "viableOptions",
            "title": "Viable options",
            "description": "Which API, event, messaging, file, stream, data, connector, platform, or custom options remain viable?",
            "gridPosition": {
              "column": 1,
              "row": 0,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "selectedApproach",
            "title": "Selected approach",
            "description": "Which integration style, platform, or hybrid is selected?",
            "gridPosition": {
              "column": 3,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 2
            },
            "fillOrder": 3,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "decisionRationale",
            "title": "Decision rationale",
            "description": "Why does the selected approach fit best?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "rejectedAlternatives",
            "title": "Rejected alternatives",
            "description": "Which serious alternatives were rejected, and why?",
            "gridPosition": {
              "column": 1,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "openRisks",
            "title": "Open risks",
            "description": "What still needs validation before delivery or release?",
            "gridPosition": {
              "column": 2,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 6,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          }
        ]
      },
      "integrationReadinessOperationsCanvas": {
        "id": "integrationReadinessOperationsCanvas",
        "title": "Integration Readiness & Operations Canvas",
        "purpose": "Prepare the minimum operating evidence needed before integration readiness review.",
        "howToUse": "Reuse contracts and design decisions. Record ownership, operations, evidence, recovery, and remaining readiness gaps.",
        "layout": {
          "columns": 3,
          "rows": 2
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=integrationReadinessOperationsCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "integrationReadinessOperationsCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.286Z"
          },
          "sections": [
            {
              "sectionId": "ownership",
              "stickyNotes": []
            },
            {
              "sectionId": "environmentsAndAccess",
              "stickyNotes": []
            },
            {
              "sectionId": "testEvidence",
              "stickyNotes": []
            },
            {
              "sectionId": "monitoringAndSupport",
              "stickyNotes": []
            },
            {
              "sectionId": "failureAndRecovery",
              "stickyNotes": []
            },
            {
              "sectionId": "documentationRisksAndReadiness",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "ownership",
            "title": "Ownership",
            "description": "Who owns business, integration, producer, consumer, platform, and incident responsibilities?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "environmentsAndAccess",
            "title": "Environments and access",
            "description": "Are environments, credentials, connectivity, permissions, and sequencing ready?",
            "gridPosition": {
              "column": 1,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "testEvidence",
            "title": "Test evidence",
            "description": "What proves contract, mapping, compatibility, quality, resilience, and recovery?",
            "gridPosition": {
              "column": 2,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "monitoringAndSupport",
            "title": "Monitoring and support",
            "description": "How will producers, consumers, platforms, incidents, and service questions be supported?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "failureAndRecovery",
            "title": "Failure and recovery",
            "description": "How will retry, replay, duplicates, reconciliation, fallback, and compensation work?",
            "gridPosition": {
              "column": 1,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "documentationRisksAndReadiness",
            "title": "Readiness status",
            "description": "Are contracts, runbooks, dependencies, risks, conditions, and blocking gaps clear?",
            "gridPosition": {
              "column": 2,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 6,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          }
        ]
      },
      "integrationSolutionDesignCanvas": {
        "id": "integrationSolutionDesignCanvas",
        "title": "Integration Solution Design Canvas",
        "purpose": "Refine the selected architecture into an implementable integration design.",
        "howToUse": "Reuse the selected style, domain concepts, interaction needs, and commitments. Add only implementation-specific design.",
        "layout": {
          "columns": 3,
          "rows": 2
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=integrationSolutionDesignCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "integrationSolutionDesignCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.288Z"
          },
          "sections": [
            {
              "sectionId": "selectedInputs",
              "stickyNotes": []
            },
            {
              "sectionId": "contractAndModel",
              "stickyNotes": []
            },
            {
              "sectionId": "mappingAndDelivery",
              "stickyNotes": []
            },
            {
              "sectionId": "errorsAndRecovery",
              "stickyNotes": []
            },
            {
              "sectionId": "securityAndTrust",
              "stickyNotes": []
            },
            {
              "sectionId": "observabilityAndEvolution",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "selectedInputs",
            "title": "Selected inputs",
            "description": "Which architecture, domain, interaction, and commitment decisions are reused?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "contractAndModel",
            "title": "Contract and model",
            "description": "What contract, schema, data model, and version define the integration?",
            "gridPosition": {
              "column": 1,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "mappingAndDelivery",
            "title": "Mapping and delivery",
            "description": "What transformations, delivery pattern, and metadata are required?",
            "gridPosition": {
              "column": 2,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "errorsAndRecovery",
            "title": "Errors and recovery",
            "description": "How are failures, retries, replay, duplicates, and reconciliation handled?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "securityAndTrust",
            "title": "Security and trust",
            "description": "What identity, access, privacy, and trust controls apply?",
            "gridPosition": {
              "column": 1,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "observabilityAndEvolution",
            "title": "Observability and evolution",
            "description": "How will the integration be monitored, changed, migrated, and deprecated?",
            "gridPosition": {
              "column": 2,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 6,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          }
        ]
      },
      "capabilityHypothesisCanvas": {
        "id": "capabilityHypothesisCanvas",
        "title": "Capability Validation Canvas",
        "purpose": "Validate whether a proposed reusable digital capability should proceed.",
        "howToUse": "Reuse journey, value proposition, business model, impact, domain, and capacity outputs instead of repeating them.",
        "layout": {
          "columns": 4,
          "rows": 3
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=capabilityHypothesisCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "capabilityHypothesisCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.290Z"
          },
          "sections": [
            {
              "sectionId": "capabilityToValidate",
              "stickyNotes": []
            },
            {
              "sectionId": "reusedEvidence",
              "stickyNotes": []
            },
            {
              "sectionId": "criticalAssumptions",
              "stickyNotes": []
            },
            {
              "sectionId": "minimumValidation",
              "stickyNotes": []
            },
            {
              "sectionId": "decision",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "capabilityToValidate",
            "title": "Capability to validate",
            "description": "Which proposed capability and reusable scope are being tested?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "reusedEvidence",
            "title": "Reused evidence",
            "description": "Which earlier canvas outputs support the proposal?",
            "gridPosition": {
              "column": 2,
              "row": 0,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "criticalAssumptions",
            "title": "Critical assumptions",
            "description": "What could invalidate value, reuse, ownership, sustainability, or adoption?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "minimumValidation",
            "title": "Minimum validation",
            "description": "What is the smallest useful validation and success threshold?",
            "gridPosition": {
              "column": 2,
              "row": 1,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "decision",
            "title": "Decision",
            "description": "Proceed, narrow, revise and retest, or stop?",
            "gridPosition": {
              "column": 0,
              "row": 2,
              "colSpan": 4,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          }
        ]
      },
      "capabilityConsumerProducerRequirementsCanvas": {
        "id": "capabilityConsumerProducerRequirementsCanvas",
        "title": "Capability Consumer & Producer Commitments Canvas",
        "purpose": "Agree mutual commitments for providing and consuming a reusable capability.",
        "howToUse": "Reuse consumers, value, channels, service needs, and ownership from earlier canvases. Capture only agreed commitments and gaps.",
        "layout": {
          "columns": 3,
          "rows": 2
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=capabilityConsumerProducerRequirementsCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "capabilityConsumerProducerRequirementsCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.292Z"
          },
          "sections": [
            {
              "sectionId": "selectedConsumersAndUseCases",
              "stickyNotes": []
            },
            {
              "sectionId": "ownerAndProducerCommitments",
              "stickyNotes": []
            },
            {
              "sectionId": "consumerResponsibilities",
              "stickyNotes": []
            },
            {
              "sectionId": "accessAndOnboardingAgreement",
              "stickyNotes": []
            },
            {
              "sectionId": "serviceAndLifecycleAgreement",
              "stickyNotes": []
            },
            {
              "sectionId": "openCommitments",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "selectedConsumersAndUseCases",
            "title": "Selected consumers and use cases",
            "description": "Which consumers and usage contexts are covered?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "ownerAndProducerCommitments",
            "title": "Owner and producer commitments",
            "description": "What will owners and producers provide, maintain, monitor, and support?",
            "gridPosition": {
              "column": 1,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "consumerResponsibilities",
            "title": "Consumer responsibilities",
            "description": "What must consumers do for appropriate use, access, testing, and feedback?",
            "gridPosition": {
              "column": 2,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "accessAndOnboardingAgreement",
            "title": "Access and onboarding",
            "description": "What discovery, approval, testing, and onboarding path is agreed?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "serviceAndLifecycleAgreement",
            "title": "Service and lifecycle",
            "description": "What service, change, deprecation, and retirement commitments are agreed?",
            "gridPosition": {
              "column": 1,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "openCommitments",
            "title": "Open commitments",
            "description": "What remains unresolved before architecture or delivery?",
            "gridPosition": {
              "column": 2,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 6,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          }
        ]
      },
      "capabilityArchitectureDecisionCanvas": {
        "id": "capabilityArchitectureDecisionCanvas",
        "title": "Capability Architecture Decision Canvas",
        "purpose": "Choose how the capability will be delivered using evidence already gathered.",
        "howToUse": "Bring forward value, commitments, impact, location, capacity, and domain decisions. Compare only viable implementation styles.",
        "layout": {
          "columns": 4,
          "rows": 2
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=capabilityArchitectureDecisionCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "capabilityArchitectureDecisionCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.294Z"
          },
          "sections": [
            {
              "sectionId": "reusedInputs",
              "stickyNotes": []
            },
            {
              "sectionId": "viableOptions",
              "stickyNotes": []
            },
            {
              "sectionId": "selectedApproach",
              "stickyNotes": []
            },
            {
              "sectionId": "decisionRationale",
              "stickyNotes": []
            },
            {
              "sectionId": "rejectedAlternatives",
              "stickyNotes": []
            },
            {
              "sectionId": "openRisks",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "reusedInputs",
            "title": "Reused inputs",
            "description": "Which earlier decisions and constraints shape the implementation choice?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "viableOptions",
            "title": "Viable options",
            "description": "Which API, event, workflow, application, data product, shared service, human service, or hybrid options remain viable?",
            "gridPosition": {
              "column": 1,
              "row": 0,
              "colSpan": 2,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "selectedApproach",
            "title": "Selected approach",
            "description": "Which implementation style and enabling platform are selected?",
            "gridPosition": {
              "column": 3,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 2
            },
            "fillOrder": 3,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "decisionRationale",
            "title": "Decision rationale",
            "description": "Why does the selected approach fit best?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "rejectedAlternatives",
            "title": "Rejected alternatives",
            "description": "Which serious alternatives were rejected, and why?",
            "gridPosition": {
              "column": 1,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "openRisks",
            "title": "Open risks",
            "description": "What still needs validation before delivery or release?",
            "gridPosition": {
              "column": 2,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 6,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          }
        ]
      },
      "capabilitySolutionDesignCanvas": {
        "id": "capabilitySolutionDesignCanvas",
        "title": "Capability Solution Design Canvas",
        "purpose": "Refine the selected implementation style into a clear consumer-facing capability design.",
        "howToUse": "Reuse value, domain, interaction, commitments, and architecture outputs. Add only solution-specific design.",
        "layout": {
          "columns": 3,
          "rows": 2
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=capabilitySolutionDesignCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "capabilitySolutionDesignCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.296Z"
          },
          "sections": [
            {
              "sectionId": "selectedInputs",
              "stickyNotes": []
            },
            {
              "sectionId": "boundaryAndInteraction",
              "stickyNotes": []
            },
            {
              "sectionId": "contractRulesAndOutcomes",
              "stickyNotes": []
            },
            {
              "sectionId": "errorsAndSecurity",
              "stickyNotes": []
            },
            {
              "sectionId": "lifecycleAndSupport",
              "stickyNotes": []
            },
            {
              "sectionId": "observability",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "selectedInputs",
            "title": "Selected inputs",
            "description": "Which earlier journey, value, domain, commitment, and architecture decisions are reused?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "boundaryAndInteraction",
            "title": "Boundary and interaction",
            "description": "What belongs inside the capability, and how do consumers use it?",
            "gridPosition": {
              "column": 1,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "contractRulesAndOutcomes",
            "title": "Contract, rules, and outcomes",
            "description": "What behavior, responsibilities, inputs, outputs, and outcomes are promised?",
            "gridPosition": {
              "column": 2,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "errorsAndSecurity",
            "title": "Errors and security",
            "description": "How are exceptions, access, privacy, and trust handled?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "lifecycleAndSupport",
            "title": "Lifecycle and support",
            "description": "How will change, versioning, support, deprecation, and retirement work?",
            "gridPosition": {
              "column": 1,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "observability",
            "title": "Observability",
            "description": "What health, usage, quality, value, and consumer signals must be visible?",
            "gridPosition": {
              "column": 2,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 6,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          }
        ]
      },
      "capabilityReadinessOperationsCanvas": {
        "id": "capabilityReadinessOperationsCanvas",
        "title": "Capability Readiness & Operations Canvas",
        "purpose": "Prepare the minimum operating evidence needed before capability readiness review.",
        "howToUse": "Reuse business model, commitments, and solution design. Record only operational ownership, evidence, continuity, and readiness gaps.",
        "layout": {
          "columns": 3,
          "rows": 2
        },
        "metadata": {
          "source": "APIOps Cycles",
          "license": "CC-BY-SA 4.0",
          "authors": [
            "Osaango Ltd"
          ],
          "website": "www.apiopscycles.com"
        },
        "footer": "",
        "canvasCreatorUrl": "https://canvascreator.apiopscycles.com/?canvas=capabilityReadinessOperationsCanvas&locale=en",
        "importExportTemplate": {
          "templateId": "capabilityReadinessOperationsCanvas",
          "locale": "en",
          "metadata": {
            "source": "APIOps Cycles",
            "license": "CC-BY-SA 4.0",
            "authors": [
              "Osaango Ltd"
            ],
            "website": "www.apiopscycles.com",
            "date": "2026-08-11T09:17:02.297Z"
          },
          "sections": [
            {
              "sectionId": "ownership",
              "stickyNotes": []
            },
            {
              "sectionId": "environmentsAndAccess",
              "stickyNotes": []
            },
            {
              "sectionId": "testEvidence",
              "stickyNotes": []
            },
            {
              "sectionId": "monitoringAndSupport",
              "stickyNotes": []
            },
            {
              "sectionId": "failureAndRecovery",
              "stickyNotes": []
            },
            {
              "sectionId": "documentationRisksAndReadiness",
              "stickyNotes": []
            }
          ],
          "footer": ""
        },
        "sections": [
          {
            "id": "ownership",
            "title": "Ownership",
            "description": "Who owns value, the capability lifecycle, production, operations, support, and changes?",
            "gridPosition": {
              "column": 0,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 1,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "environmentsAndAccess",
            "title": "Environments and access",
            "description": "Are required environments, access, permissions, and credentials ready?",
            "gridPosition": {
              "column": 1,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 2,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "testEvidence",
            "title": "Test evidence",
            "description": "What proves outcomes, quality, security, compatibility, resilience, and consumer usability?",
            "gridPosition": {
              "column": 2,
              "row": 0,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 3,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "monitoringAndSupport",
            "title": "Monitoring and support",
            "description": "How will health, usage, value, incidents, consumers, and operators be supported?",
            "gridPosition": {
              "column": 0,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 4,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "failureAndRecovery",
            "title": "Continuity and recovery",
            "description": "How will service continue, degrade safely, recover, or fall back?",
            "gridPosition": {
              "column": 1,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 5,
            "highlight": false,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          },
          {
            "id": "documentationRisksAndReadiness",
            "title": "Readiness status",
            "description": "Are service definitions, runbooks, risks, conditions, and blocking gaps clear?",
            "gridPosition": {
              "column": 2,
              "row": 1,
              "colSpan": 1,
              "rowSpan": 1
            },
            "fillOrder": 6,
            "highlight": true,
            "journeySteps": false,
            "defaultNoteColor": "#FFF399",
            "defaultNoteIntent": "default"
          }
        ]
      }
    }
  }
}
