{"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Supporting multiple API versions simultaneously increases costs and operational overhead."," ","Each version multiplies your support burden - bug reports, troubleshooting, and feature requests must be handled across all supported versions."," ","This complexity extends beyond developer time to infrastructure requirements, as different versions may need separate deployment environments, database schemas, or monitoring systems."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Version maintenance requires significant resources."," ","Every additional version increases the surface area for potential issues."," ","Security patches must be applied across versions, performance optimizations need testing in multiple environments, and feature requests require evaluation for backward compatibility."," ","Teams often underestimate the long-term cost of maintaining multiple versions when making initial versioning decisions."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Impact assessment is difficult without proper instrumentation."," ","Understanding which changes will affect customers requires comprehensive API usage analytics."," ","Without detailed metrics on endpoint usage, parameter adoption, and client behavior patterns, teams make versioning decisions blindly."," ","This leads to either overly conservative approaches that maintain unnecessary versions or aggressive changes that surprise customers with breaking updates."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"how-do-i-choose-between-evolution-and-explicit-versioning-strategies","__idx":0},"children":["How do I choose between evolution and explicit versioning strategies?"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["API versioning strategies fall into two main approaches: evolution and explicit versioning."," ","Each serves different organizational needs and constraints."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["API evolution minimizes version proliferation by maintaining a single API version, making non-breaking changes through updates and creating new endpoints only for breaking changes."," ","Instead of versioning the entire API, you create specific endpoints like ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/api/product/create2"]}," when ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/api/product/create"]}," needs breaking modifications."," ","GraphQL exemplifies this strategy through schema evolution, where new fields and types are added without versioning the entire schema."," ","This approach reduces operational complexity by avoiding multiple complete API versions, though it can make tracking and deprecating old functionality more challenging since changes are distributed across individual endpoints rather than bundled into version releases."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Explicit versioning provides clear boundaries between changes by creating discrete API versions with clear boundaries between modifications."," ","Implementation options include path versioning (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/api/v1/users"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/api/v2/users"]},"), query parameters (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/api/users?version=2"]},"), or headers (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Accept: application/vnd.myapi.v2+json"]},")."," ","Path versioning offers maximum visibility and caching compatibility but requires more URL management."," ","Header versioning aligns with REST principles but reduces discoverability."," ","Query parameter versioning provides flexibility at the cost of caching complexity."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"api-versioning-implementation-approaches","__idx":1},"children":["API versioning implementation approaches"]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"graph TB\n    subgraph \"Path Versioning\"\n        A1[\"Endpoint Examples:<br/>/api/v1/users<br/>/api/v2/users\"] \n        A2[\"Characteristics:<br/>• High visibility<br/>• Cache friendly<br/>• URL management overhead\"]\n    end\n    \n    subgraph \"Query Parameter\"  \n        B1[\"Endpoint Examples:<br/>/api/users?version=2<br/>/api/users?v=1\"]\n        B2[\"Characteristics:<br/>• Flexible implementation<br/>• Same base endpoint<br/>• Cache complexity\"]\n    end\n    \n    subgraph \"Header Versioning\"\n        C1[\"Header Examples:<br/>Accept: application/vnd.api.v2+json<br/>API-Version: 2.0\"]\n        C2[\"Characteristics:<br/>• REST compliant<br/>• Clean URLs<br/>• Less discoverable\"]\n    end\n    \n    A1 --> A2\n    B1 --> B2  \n    C1 --> C2\n    \n    style A1 fill:#059669,stroke:#047857,color:#ffffff\n    style B1 fill:#d97706,stroke:#b45309,color:#ffffff\n    style C1 fill:#7c3aed,stroke:#6d28d9,color:#ffffff\n    style A2 fill:#f0fdf4,stroke:#16a34a,color:#000000\n    style B2 fill:#fef3c7,stroke:#d97706,color:#000000\n    style C2 fill:#f3e8ff,stroke:#7c3aed,color:#000000\n","diagramHtml":"<svg id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 1932.65625px;\" viewBox=\"0 0 1932.65625 236\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>\n    #diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 foreignObject {\n      overflow: visible;\n    }\n  </style><style>#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .error-icon{fill:#552222;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .error-text{fill:#552222;stroke:#552222;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .edge-thickness-normal{stroke-width:1px;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .edge-thickness-thick{stroke-width:3.5px;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .edge-pattern-solid{stroke-dasharray:0;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .marker{fill:#333333;stroke:#333333;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .marker.cross{stroke:#333333;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 p{margin:0;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .label{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;color:#333;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .cluster-label text{fill:#333;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .cluster-label span{color:#333;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .cluster-label span p{background-color:transparent;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .label text,#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 span{fill:#333;color:#333;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .node rect,#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .node circle,#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .node ellipse,#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .node polygon,#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .rough-node .label text,#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .node .label text,#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .image-shape .label,#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .icon-shape .label{text-anchor:middle;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .rough-node .label,#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .node .label,#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .image-shape .label,#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .icon-shape .label{text-align:center;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .node.clickable{cursor:pointer;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .arrowheadPath{fill:#333333;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .edgePath .path{stroke:#333333;stroke-width:1px;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .flowchart-link{stroke:#333333;fill:none;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .cluster text{fill:#333;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .cluster span{color:#333;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 rect.text{fill:none;stroke-width:0;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .icon-shape,#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .icon-shape p,#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .icon-shape .label rect,#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 .node .neo-node{stroke:#9370DB;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 [data-look=\"neo\"].node rect,#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 [data-look=\"neo\"].cluster rect,#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g><marker id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\"><path d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\"><polygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></polygon></marker><marker id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"></path></marker><marker id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"></g><g class=\"edgeLabels\"></g><g class=\"nodes\"><g class=\"root\" transform=\"translate(0, 12)\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8-subGraph2\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"8\" width=\"608.125\" height=\"196\"></rect><g class=\"cluster-label\" transform=\"translate(246.2421875, 8)\"><foreignObject width=\"131.640625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>Header Versioning</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"><path d=\"M305.5,106L311.75,106C318,106,330.5,106,342.333,106C354.167,106,365.333,106,370.917,106L376.5,106\" id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8-L_C1_C2_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_C1_C2_0\" data-points=\"W3sieCI6MzA1LjUsInkiOjEwNn0seyJ4IjozNDMsInkiOjEwNn0seyJ4IjozODAuNSwieSI6MTA2fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_C1_C2_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8-flowchart-C1-4\" data-look=\"classic\" transform=\"translate(175.5, 106)\"><rect class=\"basic label-container\" style=\"fill:#7c3aed !important;stroke:#6d28d9 !important\" x=\"-130\" y=\"-63\" width=\"260\" height=\"126\"></rect><g class=\"label\" style=\"color:#ffffff !important\" transform=\"translate(-100, -48)\"><rect></rect><foreignObject width=\"200\" height=\"96\"><div style=\"color: rgb(255, 255, 255) !important; display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#ffffff !important\" class=\"nodeLabel\"><p>Header Examples:<br>Accept: application/vnd.api.v2+json<br>API-Version: 2.0</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8-flowchart-C2-5\" data-look=\"classic\" transform=\"translate(479.5625, 106)\"><rect class=\"basic label-container\" style=\"fill:#f3e8ff !important;stroke:#7c3aed !important\" x=\"-99.0625\" y=\"-63\" width=\"198.125\" height=\"126\"></rect><g class=\"label\" style=\"color:#000000 !important\" transform=\"translate(-69.0625, -48)\"><rect></rect><foreignObject width=\"138.125\" height=\"96\"><div style=\"color: rgb(0, 0, 0) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#000000 !important\" class=\"nodeLabel\"><p>Characteristics:<br>• REST compliant<br>• Clean URLs<br>• Less discoverable</p></span></div></foreignObject></g></g></g></g><g class=\"root\" transform=\"translate(658.125, 12)\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8-subGraph1\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"8\" width=\"596.21875\" height=\"196\"></rect><g class=\"cluster-label\" transform=\"translate(244.75, 8)\"><foreignObject width=\"122.71875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>Query Parameter</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"><path d=\"M253.594,106L259.844,106C266.094,106,278.594,106,290.427,106C302.26,106,313.427,106,319.01,106L324.594,106\" id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8-L_B1_B2_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_B1_B2_0\" data-points=\"W3sieCI6MjUzLjU5Mzc1LCJ5IjoxMDZ9LHsieCI6MjkxLjA5Mzc1LCJ5IjoxMDZ9LHsieCI6MzI4LjU5Mzc1LCJ5IjoxMDZ9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_B1_B2_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8-flowchart-B1-2\" data-look=\"classic\" transform=\"translate(149.546875, 106)\"><rect class=\"basic label-container\" style=\"fill:#d97706 !important;stroke:#b45309 !important\" x=\"-104.046875\" y=\"-51\" width=\"208.09375\" height=\"102\"></rect><g class=\"label\" style=\"color:#ffffff !important\" transform=\"translate(-74.046875, -36)\"><rect></rect><foreignObject width=\"148.09375\" height=\"72\"><div style=\"color: rgb(255, 255, 255) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#ffffff !important\" class=\"nodeLabel\"><p>Endpoint Examples:<br>/api/users?version=2<br>/api/users?v=1</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8-flowchart-B2-3\" data-look=\"classic\" transform=\"translate(447.65625, 106)\"><rect class=\"basic label-container\" style=\"fill:#fef3c7 !important;stroke:#d97706 !important\" x=\"-119.0625\" y=\"-63\" width=\"238.125\" height=\"126\"></rect><g class=\"label\" style=\"color:#000000 !important\" transform=\"translate(-89.0625, -48)\"><rect></rect><foreignObject width=\"178.125\" height=\"96\"><div style=\"color: rgb(0, 0, 0) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#000000 !important\" class=\"nodeLabel\"><p>Characteristics:<br>• Flexible implementation<br>• Same base endpoint<br>• Cache complexity</p></span></div></foreignObject></g></g></g></g><g class=\"root\" transform=\"translate(1304.34375, 0)\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8-subGraph0\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"8\" width=\"612.3125\" height=\"220\"></rect><g class=\"cluster-label\" transform=\"translate(258.1171875, 8)\"><foreignObject width=\"112.078125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>Path Versioning</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"><path d=\"M247.813,118L254.063,118C260.313,118,272.813,118,284.646,118C296.479,118,307.646,118,313.229,118L318.813,118\" id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8-L_A1_A2_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_A1_A2_0\" data-points=\"W3sieCI6MjQ3LjgxMjUsInkiOjExOH0seyJ4IjoyODUuMzEyNSwieSI6MTE4fSx7IngiOjMyMi44MTI1LCJ5IjoxMTh9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_A1_A2_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8-flowchart-A1-0\" data-look=\"classic\" transform=\"translate(146.65625, 118)\"><rect class=\"basic label-container\" style=\"fill:#059669 !important;stroke:#047857 !important\" x=\"-101.15625\" y=\"-51\" width=\"202.3125\" height=\"102\"></rect><g class=\"label\" style=\"color:#ffffff !important\" transform=\"translate(-71.15625, -36)\"><rect></rect><foreignObject width=\"142.3125\" height=\"72\"><div style=\"color: rgb(255, 255, 255) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#ffffff !important\" class=\"nodeLabel\"><p>Endpoint Examples:<br>/api/v1/users<br>/api/v2/users</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8-flowchart-A2-1\" data-look=\"classic\" transform=\"translate(452.8125, 118)\"><rect class=\"basic label-container\" style=\"fill:#f0fdf4 !important;stroke:#16a34a !important\" x=\"-130\" y=\"-75\" width=\"260\" height=\"150\"></rect><g class=\"label\" style=\"color:#000000 !important\" transform=\"translate(-100, -60)\"><rect></rect><foreignObject width=\"200\" height=\"120\"><div style=\"color: rgb(0, 0, 0) !important; display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#000000 !important\" class=\"nodeLabel\"><p>Characteristics:<br>• High visibility<br>• Cache friendly<br>• URL management overhead</p></span></div></foreignObject></g></g></g></g></g></g></g><defs><filter id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs><defs><filter id=\"diagram-9da29efcca348552ef0ed88c7f60c6cc198d0f642e1156f6ec89ee0efb6240c8-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs></svg>","diagramHtmlDark":"<svg id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 1932.65625px;\" viewBox=\"0 0 1932.65625 236\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>\n    #diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba foreignObject {\n      overflow: visible;\n    }\n  </style><style>#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#ccc;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .error-icon{fill:#a44141;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .error-text{fill:#ddd;stroke:#ddd;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .edge-thickness-normal{stroke-width:1px;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .edge-thickness-thick{stroke-width:3.5px;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .edge-pattern-solid{stroke-dasharray:0;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .edge-pattern-dashed{stroke-dasharray:3;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .edge-pattern-dotted{stroke-dasharray:2;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .marker{fill:lightgrey;stroke:lightgrey;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .marker.cross{stroke:lightgrey;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba p{margin:0;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .label{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;color:#ccc;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .cluster-label text{fill:#F9FFFE;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .cluster-label span{color:#F9FFFE;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .cluster-label span p{background-color:transparent;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .label text,#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba span{fill:#ccc;color:#ccc;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .node rect,#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .node circle,#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .node ellipse,#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .node polygon,#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .node path{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .rough-node .label text,#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .node .label text,#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .image-shape .label,#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .icon-shape .label{text-anchor:middle;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .rough-node .label,#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .node .label,#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .image-shape .label,#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .icon-shape .label{text-align:center;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .node.clickable{cursor:pointer;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .root .anchor path{fill:lightgrey!important;stroke-width:0;stroke:lightgrey;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .arrowheadPath{fill:lightgrey;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .edgePath .path{stroke:lightgrey;stroke-width:1px;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .flowchart-link{stroke:lightgrey;fill:none;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .edgeLabel p{background-color:hsl(0, 0%, 34.4117647059%);}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .cluster text{fill:#F9FFFE;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .cluster span{color:#F9FFFE;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:12px;background:hsl(20, 1.5873015873%, 12.3529411765%);border:1px solid rgba(255, 255, 255, 0.25);border-radius:2px;pointer-events:none;z-index:100;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba rect.text{fill:none;stroke-width:0;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .icon-shape,#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .image-shape{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .icon-shape p,#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .image-shape p{background-color:hsl(0, 0%, 34.4117647059%);padding:2px;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .icon-shape .label rect,#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .image-shape .label rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba .node .neo-node{stroke:#ccc;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba [data-look=\"neo\"].node rect,#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba [data-look=\"neo\"].cluster rect,#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba [data-look=\"neo\"].node polygon{stroke:url(#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba [data-look=\"neo\"].node path{stroke:url(#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba-gradient);stroke-width:1px;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba [data-look=\"neo\"].node circle{stroke:url(#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g><marker id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\"><path d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\"><polygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></polygon></marker><marker id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"></path></marker><marker id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"></g><g class=\"edgeLabels\"></g><g class=\"nodes\"><g class=\"root\" transform=\"translate(0, 12)\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba-subGraph2\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"8\" width=\"608.125\" height=\"196\"></rect><g class=\"cluster-label\" transform=\"translate(246.2421875, 8)\"><foreignObject width=\"131.640625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>Header Versioning</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"><path d=\"M305.5,106L311.75,106C318,106,330.5,106,342.333,106C354.167,106,365.333,106,370.917,106L376.5,106\" id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba-L_C1_C2_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_C1_C2_0\" data-points=\"W3sieCI6MzA1LjUsInkiOjEwNn0seyJ4IjozNDMsInkiOjEwNn0seyJ4IjozODAuNSwieSI6MTA2fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_C1_C2_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba-flowchart-C1-4\" data-look=\"classic\" transform=\"translate(175.5, 106)\"><rect class=\"basic label-container\" style=\"fill:#7c3aed !important;stroke:#6d28d9 !important\" x=\"-130\" y=\"-63\" width=\"260\" height=\"126\"></rect><g class=\"label\" style=\"color:#ffffff !important\" transform=\"translate(-100, -48)\"><rect></rect><foreignObject width=\"200\" height=\"96\"><div style=\"color: rgb(255, 255, 255) !important; display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#ffffff !important\" class=\"nodeLabel\"><p>Header Examples:<br>Accept: application/vnd.api.v2+json<br>API-Version: 2.0</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba-flowchart-C2-5\" data-look=\"classic\" transform=\"translate(479.5625, 106)\"><rect class=\"basic label-container\" style=\"fill:#f3e8ff !important;stroke:#7c3aed !important\" x=\"-99.0625\" y=\"-63\" width=\"198.125\" height=\"126\"></rect><g class=\"label\" style=\"color:#000000 !important\" transform=\"translate(-69.0625, -48)\"><rect></rect><foreignObject width=\"138.125\" height=\"96\"><div style=\"color: rgb(0, 0, 0) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#000000 !important\" class=\"nodeLabel\"><p>Characteristics:<br>• REST compliant<br>• Clean URLs<br>• Less discoverable</p></span></div></foreignObject></g></g></g></g><g class=\"root\" transform=\"translate(658.125, 12)\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba-subGraph1\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"8\" width=\"596.21875\" height=\"196\"></rect><g class=\"cluster-label\" transform=\"translate(244.75, 8)\"><foreignObject width=\"122.71875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>Query Parameter</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"><path d=\"M253.594,106L259.844,106C266.094,106,278.594,106,290.427,106C302.26,106,313.427,106,319.01,106L324.594,106\" id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba-L_B1_B2_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_B1_B2_0\" data-points=\"W3sieCI6MjUzLjU5Mzc1LCJ5IjoxMDZ9LHsieCI6MjkxLjA5Mzc1LCJ5IjoxMDZ9LHsieCI6MzI4LjU5Mzc1LCJ5IjoxMDZ9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_B1_B2_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba-flowchart-B1-2\" data-look=\"classic\" transform=\"translate(149.546875, 106)\"><rect class=\"basic label-container\" style=\"fill:#d97706 !important;stroke:#b45309 !important\" x=\"-104.046875\" y=\"-51\" width=\"208.09375\" height=\"102\"></rect><g class=\"label\" style=\"color:#ffffff !important\" transform=\"translate(-74.046875, -36)\"><rect></rect><foreignObject width=\"148.09375\" height=\"72\"><div style=\"color: rgb(255, 255, 255) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#ffffff !important\" class=\"nodeLabel\"><p>Endpoint Examples:<br>/api/users?version=2<br>/api/users?v=1</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba-flowchart-B2-3\" data-look=\"classic\" transform=\"translate(447.65625, 106)\"><rect class=\"basic label-container\" style=\"fill:#fef3c7 !important;stroke:#d97706 !important\" x=\"-119.0625\" y=\"-63\" width=\"238.125\" height=\"126\"></rect><g class=\"label\" style=\"color:#000000 !important\" transform=\"translate(-89.0625, -48)\"><rect></rect><foreignObject width=\"178.125\" height=\"96\"><div style=\"color: rgb(0, 0, 0) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#000000 !important\" class=\"nodeLabel\"><p>Characteristics:<br>• Flexible implementation<br>• Same base endpoint<br>• Cache complexity</p></span></div></foreignObject></g></g></g></g><g class=\"root\" transform=\"translate(1304.34375, 0)\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba-subGraph0\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"8\" width=\"612.3125\" height=\"220\"></rect><g class=\"cluster-label\" transform=\"translate(258.1171875, 8)\"><foreignObject width=\"112.078125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>Path Versioning</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"><path d=\"M247.813,118L254.063,118C260.313,118,272.813,118,284.646,118C296.479,118,307.646,118,313.229,118L318.813,118\" id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba-L_A1_A2_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_A1_A2_0\" data-points=\"W3sieCI6MjQ3LjgxMjUsInkiOjExOH0seyJ4IjoyODUuMzEyNSwieSI6MTE4fSx7IngiOjMyMi44MTI1LCJ5IjoxMTh9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_A1_A2_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba-flowchart-A1-0\" data-look=\"classic\" transform=\"translate(146.65625, 118)\"><rect class=\"basic label-container\" style=\"fill:#059669 !important;stroke:#047857 !important\" x=\"-101.15625\" y=\"-51\" width=\"202.3125\" height=\"102\"></rect><g class=\"label\" style=\"color:#ffffff !important\" transform=\"translate(-71.15625, -36)\"><rect></rect><foreignObject width=\"142.3125\" height=\"72\"><div style=\"color: rgb(255, 255, 255) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#ffffff !important\" class=\"nodeLabel\"><p>Endpoint Examples:<br>/api/v1/users<br>/api/v2/users</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba-flowchart-A2-1\" data-look=\"classic\" transform=\"translate(452.8125, 118)\"><rect class=\"basic label-container\" style=\"fill:#f0fdf4 !important;stroke:#16a34a !important\" x=\"-130\" y=\"-75\" width=\"260\" height=\"150\"></rect><g class=\"label\" style=\"color:#000000 !important\" transform=\"translate(-100, -60)\"><rect></rect><foreignObject width=\"200\" height=\"120\"><div style=\"color: rgb(0, 0, 0) !important; display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#000000 !important\" class=\"nodeLabel\"><p>Characteristics:<br>• High visibility<br>• Cache friendly<br>• URL management overhead</p></span></div></foreignObject></g></g></g></g></g></g></g><defs><filter id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><defs><filter id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><linearGradient id=\"diagram-30a5cd2b95b5226f9926270f9e50218c5336bf39e39131be23d407c689eb9eba-gradient\" gradientUnits=\"objectBoundingBox\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\"><stop offset=\"0%\" stop-color=\"#cccccc\" stop-opacity=\"1\"></stop><stop offset=\"100%\" stop-color=\"hsl(180, 0%, 18.3529411765%)\" stop-opacity=\"1\"></stop></linearGradient></svg>"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Comparison of three common API versioning implementation patterns, showing endpoint examples and key characteristics for each approach."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Many successful APIs combine evolution and explicit versioning strategically."," ","Stripe uses evolution for most changes, adding optional parameters and endpoints as needed, but issues full version releases for significant breaking changes."," ","This hybrid approach maximizes stability for most consumers while providing clear migration paths for major architectural improvements."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"hybrid-versioning-strategy-in-practice","__idx":2},"children":["Hybrid versioning strategy in practice"]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"flowchart LR\n    A[\"Most API Changes<br/>Evolution Strategy\"] --> B[\"Add Optional Parameters<br/>Create New Endpoints<br/>Extend Existing Resources\"]\n    \n    C[\"Breaking Changes<br/>Explicit Versioning\"] --> D[\"Full Version Release<br/>Date-based: v2024-01-15<br/>Semantic: v2.0.0\"]\n    \n    B --> E[\"Evolution Benefits:<br/>• Stability for existing users<br/>• Continuous improvement<br/>• Minimal disruption<br/>• Lower maintenance cost\"]\n    \n    D --> F[\"Versioning Benefits:<br/>• Clear migration path<br/>• Major architectural changes<br/>• Planned transition periods<br/>• Backward compatibility\"]\n    \n    E --> G[\"Combined Result:<br/>Maximum API Stability<br/>+ Strategic Flexibility\"]\n    F --> G\n    \n    style A fill:#059669,stroke:#047857,color:#ffffff\n    style C fill:#d97706,stroke:#b45309,color:#ffffff\n    style G fill:#2563eb,stroke:#1e40af,color:#ffffff\n    style E fill:#f0fdf4,stroke:#16a34a,color:#000000\n    style F fill:#fef3c7,stroke:#d97706,color:#000000\n","diagramHtml":"<svg id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 1088.875px;\" viewBox=\"0 0 1088.875 390\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>\n    #diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 foreignObject {\n      overflow: visible;\n    }\n  </style><style>#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .error-icon{fill:#552222;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .error-text{fill:#552222;stroke:#552222;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .edge-thickness-normal{stroke-width:1px;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .edge-thickness-thick{stroke-width:3.5px;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .edge-pattern-solid{stroke-dasharray:0;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .marker{fill:#333333;stroke:#333333;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .marker.cross{stroke:#333333;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 p{margin:0;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .label{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;color:#333;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .cluster-label text{fill:#333;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .cluster-label span{color:#333;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .cluster-label span p{background-color:transparent;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .label text,#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 span{fill:#333;color:#333;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .node rect,#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .node circle,#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .node ellipse,#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .node polygon,#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .rough-node .label text,#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .node .label text,#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .image-shape .label,#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .icon-shape .label{text-anchor:middle;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .rough-node .label,#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .node .label,#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .image-shape .label,#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .icon-shape .label{text-align:center;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .node.clickable{cursor:pointer;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .arrowheadPath{fill:#333333;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .edgePath .path{stroke:#333333;stroke-width:1px;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .flowchart-link{stroke:#333333;fill:none;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .cluster text{fill:#333;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .cluster span{color:#333;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 rect.text{fill:none;stroke-width:0;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .icon-shape,#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .icon-shape p,#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .icon-shape .label rect,#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 .node .neo-node{stroke:#9370DB;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 [data-look=\"neo\"].node rect,#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 [data-look=\"neo\"].cluster rect,#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g><marker id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\"><path d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\"><polygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></polygon></marker><marker id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"></path></marker><marker id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"><path d=\"M200.516,83L204.682,83C208.849,83,217.182,83,224.849,83C232.516,83,239.516,83,243.016,83L246.516,83\" id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5-L_A_B_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_A_B_0\" data-points=\"W3sieCI6MjAwLjUxNTYyNSwieSI6ODN9LHsieCI6MjI1LjUxNTYyNSwieSI6ODN9LHsieCI6MjUwLjUxNTYyNSwieSI6ODN9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5_flowchart-v2-pointEnd)\"></path><path d=\"M200.078,295L204.318,295C208.557,295,217.036,295,225.589,295C234.141,295,242.766,295,247.078,295L251.391,295\" id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5-L_C_D_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_C_D_0\" data-points=\"W3sieCI6MjAwLjA3ODEyNSwieSI6Mjk1fSx7IngiOjIyNS41MTU2MjUsInkiOjI5NX0seyJ4IjoyNTUuMzkwNjI1LCJ5IjoyOTV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5_flowchart-v2-pointEnd)\"></path><path d=\"M501.719,83L505.885,83C510.052,83,518.385,83,526.764,83C535.143,83,543.568,83,547.78,83L551.992,83\" id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5-L_B_E_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_B_E_0\" data-points=\"W3sieCI6NTAxLjcxODc1LCJ5Ijo4M30seyJ4Ijo1MjYuNzE4NzUsInkiOjgzfSx7IngiOjU1NS45OTIxODc1LCJ5Ijo4M31d\" data-look=\"classic\" marker-end=\"url(#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5_flowchart-v2-pointEnd)\"></path><path d=\"M496.844,295L501.823,295C506.802,295,516.76,295,525.24,295C533.719,295,540.719,295,544.219,295L547.719,295\" id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5-L_D_F_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_D_F_0\" data-points=\"W3sieCI6NDk2Ljg0Mzc1LCJ5IjoyOTV9LHsieCI6NTI2LjcxODc1LCJ5IjoyOTV9LHsieCI6NTUxLjcxODc1LCJ5IjoyOTV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5_flowchart-v2-pointEnd)\"></path><path d=\"M807.445,83L812.324,83C817.203,83,826.961,83,842.954,91.754C858.947,100.508,881.176,118.017,892.29,126.771L903.405,135.525\" id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5-L_E_G_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_E_G_0\" data-points=\"W3sieCI6ODA3LjQ0NTMxMjUsInkiOjgzfSx7IngiOjgzNi43MTg3NSwieSI6ODN9LHsieCI6OTA2LjU0NzAyMjQwNTY2MDQsInkiOjEzOH1d\" data-look=\"classic\" marker-end=\"url(#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5_flowchart-v2-pointEnd)\"></path><path d=\"M811.719,295L815.885,295C820.052,295,828.385,295,843.666,286.246C858.947,277.492,881.176,259.983,892.29,251.229L903.405,242.475\" id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5-L_F_G_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_F_G_0\" data-points=\"W3sieCI6ODExLjcxODc1LCJ5IjoyOTV9LHsieCI6ODM2LjcxODc1LCJ5IjoyOTV9LHsieCI6OTA2LjU0NzAyMjQwNTY2MDQsInkiOjI0MH1d\" data-look=\"classic\" marker-end=\"url(#diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_A_B_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_C_D_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_B_E_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_D_F_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_E_G_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_F_G_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5-flowchart-A-0\" data-look=\"classic\" transform=\"translate(104.2578125, 83)\"><rect class=\"basic label-container\" style=\"fill:#059669 !important;stroke:#047857 !important\" x=\"-96.2578125\" y=\"-39\" width=\"192.515625\" height=\"78\"></rect><g class=\"label\" style=\"color:#ffffff !important\" transform=\"translate(-66.2578125, -24)\"><rect></rect><foreignObject width=\"132.515625\" height=\"48\"><div style=\"color: rgb(255, 255, 255) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#ffffff !important\" class=\"nodeLabel\"><p>Most API Changes<br>Evolution Strategy</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5-flowchart-B-1\" data-look=\"classic\" transform=\"translate(376.1171875, 83)\"><rect class=\"basic label-container\" style=\"\" x=\"-125.6015625\" y=\"-51\" width=\"251.203125\" height=\"102\"></rect><g class=\"label\" style=\"\" transform=\"translate(-95.6015625, -36)\"><rect></rect><foreignObject width=\"191.203125\" height=\"72\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Add Optional Parameters<br>Create New Endpoints<br>Extend Existing Resources</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5-flowchart-C-2\" data-look=\"classic\" transform=\"translate(104.2578125, 295)\"><rect class=\"basic label-container\" style=\"fill:#d97706 !important;stroke:#b45309 !important\" x=\"-95.8203125\" y=\"-39\" width=\"191.640625\" height=\"78\"></rect><g class=\"label\" style=\"color:#ffffff !important\" transform=\"translate(-65.8203125, -24)\"><rect></rect><foreignObject width=\"131.640625\" height=\"48\"><div style=\"color: rgb(255, 255, 255) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#ffffff !important\" class=\"nodeLabel\"><p>Breaking Changes<br>Explicit Versioning</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5-flowchart-D-3\" data-look=\"classic\" transform=\"translate(376.1171875, 295)\"><rect class=\"basic label-container\" style=\"\" x=\"-120.7265625\" y=\"-51\" width=\"241.453125\" height=\"102\"></rect><g class=\"label\" style=\"\" transform=\"translate(-90.7265625, -36)\"><rect></rect><foreignObject width=\"181.453125\" height=\"72\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Full Version Release<br>Date-based: v2024-01-15<br>Semantic: v2.0.0</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5-flowchart-E-5\" data-look=\"classic\" transform=\"translate(681.71875, 83)\"><rect class=\"basic label-container\" style=\"fill:#f0fdf4 !important;stroke:#16a34a !important\" x=\"-125.7265625\" y=\"-75\" width=\"251.453125\" height=\"150\"></rect><g class=\"label\" style=\"color:#000000 !important\" transform=\"translate(-95.7265625, -60)\"><rect></rect><foreignObject width=\"191.453125\" height=\"120\"><div style=\"color: rgb(0, 0, 0) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#000000 !important\" class=\"nodeLabel\"><p>Evolution Benefits:<br>• Stability for existing users<br>• Continuous improvement<br>• Minimal disruption<br>• Lower maintenance cost</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5-flowchart-F-7\" data-look=\"classic\" transform=\"translate(681.71875, 295)\"><rect class=\"basic label-container\" style=\"fill:#fef3c7 !important;stroke:#d97706 !important\" x=\"-130\" y=\"-87\" width=\"260\" height=\"174\"></rect><g class=\"label\" style=\"color:#000000 !important\" transform=\"translate(-100, -72)\"><rect></rect><foreignObject width=\"200\" height=\"144\"><div style=\"color: rgb(0, 0, 0) !important; display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#000000 !important\" class=\"nodeLabel\"><p>Versioning Benefits:<br>• Clear migration path<br>• Major architectural changes<br>• Planned transition periods<br>• Backward compatibility</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5-flowchart-G-9\" data-look=\"classic\" transform=\"translate(971.296875, 189)\"><rect class=\"basic label-container\" style=\"fill:#2563eb !important;stroke:#1e40af !important\" x=\"-109.578125\" y=\"-51\" width=\"219.15625\" height=\"102\"></rect><g class=\"label\" style=\"color:#ffffff !important\" transform=\"translate(-79.578125, -36)\"><rect></rect><foreignObject width=\"159.15625\" height=\"72\"><div style=\"color: rgb(255, 255, 255) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#ffffff !important\" class=\"nodeLabel\"><p>Combined Result:<br>Maximum API Stability<br>+ Strategic Flexibility</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs><defs><filter id=\"diagram-d885d25e53da070fa844a8f88b0e921d0c4fc56eba497b3d93ec244cc7b0f4b5-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs></svg>","diagramHtmlDark":"<svg id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 1088.875px;\" viewBox=\"0 0 1088.875 390\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>\n    #diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 foreignObject {\n      overflow: visible;\n    }\n  </style><style>#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#ccc;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .error-icon{fill:#a44141;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .error-text{fill:#ddd;stroke:#ddd;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .edge-thickness-normal{stroke-width:1px;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .edge-thickness-thick{stroke-width:3.5px;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .edge-pattern-solid{stroke-dasharray:0;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .marker{fill:lightgrey;stroke:lightgrey;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .marker.cross{stroke:lightgrey;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 p{margin:0;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .label{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;color:#ccc;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .cluster-label text{fill:#F9FFFE;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .cluster-label span{color:#F9FFFE;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .cluster-label span p{background-color:transparent;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .label text,#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 span{fill:#ccc;color:#ccc;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .node rect,#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .node circle,#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .node ellipse,#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .node polygon,#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .node path{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .rough-node .label text,#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .node .label text,#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .image-shape .label,#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .icon-shape .label{text-anchor:middle;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .rough-node .label,#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .node .label,#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .image-shape .label,#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .icon-shape .label{text-align:center;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .node.clickable{cursor:pointer;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .root .anchor path{fill:lightgrey!important;stroke-width:0;stroke:lightgrey;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .arrowheadPath{fill:lightgrey;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .edgePath .path{stroke:lightgrey;stroke-width:1px;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .flowchart-link{stroke:lightgrey;fill:none;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .edgeLabel p{background-color:hsl(0, 0%, 34.4117647059%);}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .cluster text{fill:#F9FFFE;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .cluster span{color:#F9FFFE;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:12px;background:hsl(20, 1.5873015873%, 12.3529411765%);border:1px solid rgba(255, 255, 255, 0.25);border-radius:2px;pointer-events:none;z-index:100;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 rect.text{fill:none;stroke-width:0;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .icon-shape,#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .image-shape{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .icon-shape p,#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .image-shape p{background-color:hsl(0, 0%, 34.4117647059%);padding:2px;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .icon-shape .label rect,#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .image-shape .label rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 .node .neo-node{stroke:#ccc;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 [data-look=\"neo\"].node rect,#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 [data-look=\"neo\"].cluster rect,#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 [data-look=\"neo\"].node polygon{stroke:url(#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 [data-look=\"neo\"].node path{stroke:url(#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611-gradient);stroke-width:1px;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 [data-look=\"neo\"].node circle{stroke:url(#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g><marker id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\"><path d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\"><polygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></polygon></marker><marker id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"></path></marker><marker id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"><path d=\"M200.516,83L204.682,83C208.849,83,217.182,83,224.849,83C232.516,83,239.516,83,243.016,83L246.516,83\" id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611-L_A_B_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_A_B_0\" data-points=\"W3sieCI6MjAwLjUxNTYyNSwieSI6ODN9LHsieCI6MjI1LjUxNTYyNSwieSI6ODN9LHsieCI6MjUwLjUxNTYyNSwieSI6ODN9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611_flowchart-v2-pointEnd)\"></path><path d=\"M200.078,295L204.318,295C208.557,295,217.036,295,225.589,295C234.141,295,242.766,295,247.078,295L251.391,295\" id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611-L_C_D_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_C_D_0\" data-points=\"W3sieCI6MjAwLjA3ODEyNSwieSI6Mjk1fSx7IngiOjIyNS41MTU2MjUsInkiOjI5NX0seyJ4IjoyNTUuMzkwNjI1LCJ5IjoyOTV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611_flowchart-v2-pointEnd)\"></path><path d=\"M501.719,83L505.885,83C510.052,83,518.385,83,526.764,83C535.143,83,543.568,83,547.78,83L551.992,83\" id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611-L_B_E_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_B_E_0\" data-points=\"W3sieCI6NTAxLjcxODc1LCJ5Ijo4M30seyJ4Ijo1MjYuNzE4NzUsInkiOjgzfSx7IngiOjU1NS45OTIxODc1LCJ5Ijo4M31d\" data-look=\"classic\" marker-end=\"url(#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611_flowchart-v2-pointEnd)\"></path><path d=\"M496.844,295L501.823,295C506.802,295,516.76,295,525.24,295C533.719,295,540.719,295,544.219,295L547.719,295\" id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611-L_D_F_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_D_F_0\" data-points=\"W3sieCI6NDk2Ljg0Mzc1LCJ5IjoyOTV9LHsieCI6NTI2LjcxODc1LCJ5IjoyOTV9LHsieCI6NTUxLjcxODc1LCJ5IjoyOTV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611_flowchart-v2-pointEnd)\"></path><path d=\"M807.445,83L812.324,83C817.203,83,826.961,83,842.954,91.754C858.947,100.508,881.176,118.017,892.29,126.771L903.405,135.525\" id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611-L_E_G_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_E_G_0\" data-points=\"W3sieCI6ODA3LjQ0NTMxMjUsInkiOjgzfSx7IngiOjgzNi43MTg3NSwieSI6ODN9LHsieCI6OTA2LjU0NzAyMjQwNTY2MDQsInkiOjEzOH1d\" data-look=\"classic\" marker-end=\"url(#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611_flowchart-v2-pointEnd)\"></path><path d=\"M811.719,295L815.885,295C820.052,295,828.385,295,843.666,286.246C858.947,277.492,881.176,259.983,892.29,251.229L903.405,242.475\" id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611-L_F_G_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_F_G_0\" data-points=\"W3sieCI6ODExLjcxODc1LCJ5IjoyOTV9LHsieCI6ODM2LjcxODc1LCJ5IjoyOTV9LHsieCI6OTA2LjU0NzAyMjQwNTY2MDQsInkiOjI0MH1d\" data-look=\"classic\" marker-end=\"url(#diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_A_B_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_C_D_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_B_E_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_D_F_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_E_G_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_F_G_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611-flowchart-A-0\" data-look=\"classic\" transform=\"translate(104.2578125, 83)\"><rect class=\"basic label-container\" style=\"fill:#059669 !important;stroke:#047857 !important\" x=\"-96.2578125\" y=\"-39\" width=\"192.515625\" height=\"78\"></rect><g class=\"label\" style=\"color:#ffffff !important\" transform=\"translate(-66.2578125, -24)\"><rect></rect><foreignObject width=\"132.515625\" height=\"48\"><div style=\"color: rgb(255, 255, 255) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#ffffff !important\" class=\"nodeLabel\"><p>Most API Changes<br>Evolution Strategy</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611-flowchart-B-1\" data-look=\"classic\" transform=\"translate(376.1171875, 83)\"><rect class=\"basic label-container\" style=\"\" x=\"-125.6015625\" y=\"-51\" width=\"251.203125\" height=\"102\"></rect><g class=\"label\" style=\"\" transform=\"translate(-95.6015625, -36)\"><rect></rect><foreignObject width=\"191.203125\" height=\"72\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Add Optional Parameters<br>Create New Endpoints<br>Extend Existing Resources</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611-flowchart-C-2\" data-look=\"classic\" transform=\"translate(104.2578125, 295)\"><rect class=\"basic label-container\" style=\"fill:#d97706 !important;stroke:#b45309 !important\" x=\"-95.8203125\" y=\"-39\" width=\"191.640625\" height=\"78\"></rect><g class=\"label\" style=\"color:#ffffff !important\" transform=\"translate(-65.8203125, -24)\"><rect></rect><foreignObject width=\"131.640625\" height=\"48\"><div style=\"color: rgb(255, 255, 255) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#ffffff !important\" class=\"nodeLabel\"><p>Breaking Changes<br>Explicit Versioning</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611-flowchart-D-3\" data-look=\"classic\" transform=\"translate(376.1171875, 295)\"><rect class=\"basic label-container\" style=\"\" x=\"-120.7265625\" y=\"-51\" width=\"241.453125\" height=\"102\"></rect><g class=\"label\" style=\"\" transform=\"translate(-90.7265625, -36)\"><rect></rect><foreignObject width=\"181.453125\" height=\"72\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Full Version Release<br>Date-based: v2024-01-15<br>Semantic: v2.0.0</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611-flowchart-E-5\" data-look=\"classic\" transform=\"translate(681.71875, 83)\"><rect class=\"basic label-container\" style=\"fill:#f0fdf4 !important;stroke:#16a34a !important\" x=\"-125.7265625\" y=\"-75\" width=\"251.453125\" height=\"150\"></rect><g class=\"label\" style=\"color:#000000 !important\" transform=\"translate(-95.7265625, -60)\"><rect></rect><foreignObject width=\"191.453125\" height=\"120\"><div style=\"color: rgb(0, 0, 0) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#000000 !important\" class=\"nodeLabel\"><p>Evolution Benefits:<br>• Stability for existing users<br>• Continuous improvement<br>• Minimal disruption<br>• Lower maintenance cost</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611-flowchart-F-7\" data-look=\"classic\" transform=\"translate(681.71875, 295)\"><rect class=\"basic label-container\" style=\"fill:#fef3c7 !important;stroke:#d97706 !important\" x=\"-130\" y=\"-87\" width=\"260\" height=\"174\"></rect><g class=\"label\" style=\"color:#000000 !important\" transform=\"translate(-100, -72)\"><rect></rect><foreignObject width=\"200\" height=\"144\"><div style=\"color: rgb(0, 0, 0) !important; display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#000000 !important\" class=\"nodeLabel\"><p>Versioning Benefits:<br>• Clear migration path<br>• Major architectural changes<br>• Planned transition periods<br>• Backward compatibility</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611-flowchart-G-9\" data-look=\"classic\" transform=\"translate(971.296875, 189)\"><rect class=\"basic label-container\" style=\"fill:#2563eb !important;stroke:#1e40af !important\" x=\"-109.578125\" y=\"-51\" width=\"219.15625\" height=\"102\"></rect><g class=\"label\" style=\"color:#ffffff !important\" transform=\"translate(-79.578125, -36)\"><rect></rect><foreignObject width=\"159.15625\" height=\"72\"><div style=\"color: rgb(255, 255, 255) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#ffffff !important\" class=\"nodeLabel\"><p>Combined Result:<br>Maximum API Stability<br>+ Strategic Flexibility</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><defs><filter id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><linearGradient id=\"diagram-046ab03606b89cae00f9f2c17251ad0d973ca59637f4531c5955768a470cd611-gradient\" gradientUnits=\"objectBoundingBox\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\"><stop offset=\"0%\" stop-color=\"#cccccc\" stop-opacity=\"1\"></stop><stop offset=\"100%\" stop-color=\"hsl(180, 0%, 18.3529411765%)\" stop-opacity=\"1\"></stop></linearGradient></svg>"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Hybrid versioning strategy combining API evolution for most changes with explicit versioning for breaking changes, as demonstrated by successful APIs like Stripe."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"deprecation-timelines-reduce-long-term-maintenance-burden","__idx":3},"children":["Deprecation timelines reduce long-term maintenance burden"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Effective versioning requires planning for version retirement from the outset."," ","Establish clear deprecation policies that specify maintenance periods for older versions and endpoints."," ","Typical timelines might include a 6-month announcement period, 12 months of active migration support, and 18-24 months total before removal."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Clear deprecation schedules help both internal teams plan resource allocation and external customers plan their development cycles."," ","Consistent execution of these timelines builds trust and ensures customers understand expectations for version lifecycle management."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["OpenAPI specifications support structured version management."," ","OpenAPI provides standardized approaches for documenting versioned APIs."," ","For evolution strategies, maintain a single OpenAPI document and add new endpoints as your API grows."," ","For explicit versioning, create separate specification files for each major version, potentially using versioned filenames like ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["api-v1.yaml"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["api-v2.yaml"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"Link","attributes":{"href":"https://redocly.com/docs/cli"},"children":["Redocly's CLI tools"]}," simplify working with OpenAPI specifications across multiple versions."," ","The structured nature of OpenAPI documents enables automatic generation of client SDKs, validation code, and mock servers for different versions, reducing manual maintenance work."," ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"https://redocly.com/docs/redoc"},"children":["Redocly's documentation tools"]}," can help automate many of these processes across your versioned APIs."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Clear communication prevents integration surprises."," ","Successful API versioning depends on systematic communication with consumers."," ","Establish multiple channels to reach both internal and external users, including developer newsletters, documentation announcements, and direct outreach for major changes."," ","Communicate deprecation plans during customer onboarding so expectations are clear from the beginning."," ","When releasing new versions, provide specific migration guidance with code examples and explain the benefits of upgrading."," ","Send follow-up communications as deprecation dates approach, and use monitoring data to verify that deprecated endpoints are truly unused before removal."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"systematic-version-change-communication","__idx":4},"children":["Systematic version change communication"]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"flowchart LR\n    A[Plan] --> B[Announce] --> C[Support] --> D[Remind] --> E[Monitor] --> F[Decide] --> G[Complete]\n    F -.->|Extend| E\n    \n    style A fill:#2563eb,stroke:#1e40af,color:#ffffff\n    style G fill:#dc2626,stroke:#b91c1c,color:#ffffff\n    style F fill:#f59e0b,stroke:#d97706,color:#ffffff\n","diagramHtml":"<svg id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 1172.75px;\" viewBox=\"0 0 1172.75 71\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>\n    #diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 foreignObject {\n      overflow: visible;\n    }\n  </style><style>#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .error-icon{fill:#552222;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .error-text{fill:#552222;stroke:#552222;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .edge-thickness-normal{stroke-width:1px;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .edge-thickness-thick{stroke-width:3.5px;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .edge-pattern-solid{stroke-dasharray:0;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .marker{fill:#333333;stroke:#333333;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .marker.cross{stroke:#333333;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 p{margin:0;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .label{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;color:#333;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .cluster-label text{fill:#333;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .cluster-label span{color:#333;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .cluster-label span p{background-color:transparent;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .label text,#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 span{fill:#333;color:#333;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .node rect,#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .node circle,#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .node ellipse,#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .node polygon,#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .rough-node .label text,#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .node .label text,#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .image-shape .label,#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .icon-shape .label{text-anchor:middle;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .rough-node .label,#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .node .label,#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .image-shape .label,#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .icon-shape .label{text-align:center;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .node.clickable{cursor:pointer;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .arrowheadPath{fill:#333333;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .edgePath .path{stroke:#333333;stroke-width:1px;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .flowchart-link{stroke:#333333;fill:none;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .cluster text{fill:#333;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .cluster span{color:#333;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 rect.text{fill:none;stroke-width:0;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .icon-shape,#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .icon-shape p,#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .icon-shape .label rect,#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 .node .neo-node{stroke:#9370DB;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 [data-look=\"neo\"].node rect,#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 [data-look=\"neo\"].cluster rect,#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g><marker id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\"><path d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\"><polygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></polygon></marker><marker id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"></path></marker><marker id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"><path d=\"M100.031,35L104.198,35C108.365,35,116.698,35,124.365,35C132.031,35,139.031,35,142.531,35L146.031,35\" id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986-L_A_B_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_A_B_0\" data-points=\"W3sieCI6MTAwLjAzMTI1LCJ5IjozNX0seyJ4IjoxMjUuMDMxMjUsInkiOjM1fSx7IngiOjE1MC4wMzEyNSwieSI6MzV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986_flowchart-v2-pointEnd)\"></path><path d=\"M282.094,35L286.26,35C290.427,35,298.76,35,306.427,35C314.094,35,321.094,35,324.594,35L328.094,35\" id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986-L_B_C_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_B_C_0\" data-points=\"W3sieCI6MjgyLjA5Mzc1LCJ5IjozNX0seyJ4IjozMDcuMDkzNzUsInkiOjM1fSx7IngiOjMzMi4wOTM3NSwieSI6MzV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986_flowchart-v2-pointEnd)\"></path><path d=\"M448.141,35L452.307,35C456.474,35,464.807,35,472.474,35C480.141,35,487.141,35,490.641,35L494.141,35\" id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986-L_C_D_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_C_D_0\" data-points=\"W3sieCI6NDQ4LjE0MDYyNSwieSI6MzV9LHsieCI6NDczLjE0MDYyNSwieSI6MzV9LHsieCI6NDk4LjE0MDYyNSwieSI6MzV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986_flowchart-v2-pointEnd)\"></path><path d=\"M613.281,35L617.448,35C621.615,35,629.948,35,637.615,35C645.281,35,652.281,35,655.781,35L659.281,35\" id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986-L_D_E_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_D_E_0\" data-points=\"W3sieCI6NjEzLjI4MTI1LCJ5IjozNX0seyJ4Ijo2MzguMjgxMjUsInkiOjM1fSx7IngiOjY2My4yODEyNSwieSI6MzV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986_flowchart-v2-pointEnd)\"></path><path d=\"M776.641,26.492L784.958,25.243C793.276,23.994,809.911,21.497,825.888,21.418C841.864,21.338,857.182,23.676,864.84,24.846L872.499,26.015\" id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986-L_E_F_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_E_F_0\" data-points=\"W3sieCI6Nzc2LjY0MDYyNSwieSI6MjYuNDkxNjA3NDE3NzIzMzcyfSx7IngiOjgyNi41NDY4NzUsInkiOjE5fSx7IngiOjg3Ni40NTMxMjUsInkiOjI2LjYxODM2NjEyOTk5NDAzN31d\" data-look=\"classic\" marker-end=\"url(#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986_flowchart-v2-pointEnd)\"></path><path d=\"M986.266,35L990.432,35C994.599,35,1002.932,35,1010.599,35C1018.266,35,1025.266,35,1028.766,35L1032.266,35\" id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986-L_F_G_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_F_G_0\" data-points=\"W3sieCI6OTg2LjI2NTYyNSwieSI6MzV9LHsieCI6MTAxMS4yNjU2MjUsInkiOjM1fSx7IngiOjEwMzYuMjY1NjI1LCJ5IjozNX1d\" data-look=\"classic\" marker-end=\"url(#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986_flowchart-v2-pointEnd)\"></path><path d=\"M876.453,43.382L868.135,44.651C859.818,45.921,843.182,48.461,827.206,48.581C811.23,48.701,795.913,46.401,788.255,45.252L780.596,44.102\" id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986-L_F_E_0\" class=\"edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_F_E_0\" data-points=\"W3sieCI6ODc2LjQ1MzEyNSwieSI6NDMuMzgxNjMzODcwMDA1OTZ9LHsieCI6ODI2LjU0Njg3NSwieSI6NTF9LHsieCI6Nzc2LjY0MDYyNSwieSI6NDMuNTA4MzkyNTgyMjc2NjN9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_A_B_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_B_C_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_C_D_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_D_E_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_E_F_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_F_G_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(826.546875, 51)\"><g class=\"label\" data-id=\"L_F_E_0\" transform=\"translate(-24.90625, -12)\"><foreignObject width=\"49.8125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>Extend</p></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986-flowchart-A-0\" data-look=\"classic\" transform=\"translate(54.015625, 35)\"><rect class=\"basic label-container\" style=\"fill:#2563eb !important;stroke:#1e40af !important\" x=\"-46.015625\" y=\"-27\" width=\"92.03125\" height=\"54\"></rect><g class=\"label\" style=\"color:#ffffff !important\" transform=\"translate(-16.015625, -12)\"><rect></rect><foreignObject width=\"32.03125\" height=\"24\"><div style=\"color: rgb(255, 255, 255) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#ffffff !important\" class=\"nodeLabel\"><p>Plan</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986-flowchart-B-1\" data-look=\"classic\" transform=\"translate(216.0625, 35)\"><rect class=\"basic label-container\" style=\"\" x=\"-66.03125\" y=\"-27\" width=\"132.0625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-36.03125, -12)\"><rect></rect><foreignObject width=\"72.0625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Announce</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986-flowchart-C-2\" data-look=\"classic\" transform=\"translate(390.1171875, 35)\"><rect class=\"basic label-container\" style=\"\" x=\"-58.0234375\" y=\"-27\" width=\"116.046875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-28.0234375, -12)\"><rect></rect><foreignObject width=\"56.046875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Support</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986-flowchart-D-3\" data-look=\"classic\" transform=\"translate(555.7109375, 35)\"><rect class=\"basic label-container\" style=\"\" x=\"-57.5703125\" y=\"-27\" width=\"115.140625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-27.5703125, -12)\"><rect></rect><foreignObject width=\"55.140625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Remind</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986-flowchart-E-4\" data-look=\"classic\" transform=\"translate(719.9609375, 35)\"><rect class=\"basic label-container\" style=\"\" x=\"-56.6796875\" y=\"-27\" width=\"113.359375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-26.6796875, -12)\"><rect></rect><foreignObject width=\"53.359375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Monitor</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986-flowchart-F-5\" data-look=\"classic\" transform=\"translate(931.359375, 35)\"><rect class=\"basic label-container\" style=\"fill:#f59e0b !important;stroke:#d97706 !important\" x=\"-54.90625\" y=\"-27\" width=\"109.8125\" height=\"54\"></rect><g class=\"label\" style=\"color:#ffffff !important\" transform=\"translate(-24.90625, -12)\"><rect></rect><foreignObject width=\"49.8125\" height=\"24\"><div style=\"color: rgb(255, 255, 255) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#ffffff !important\" class=\"nodeLabel\"><p>Decide</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986-flowchart-G-6\" data-look=\"classic\" transform=\"translate(1100.5078125, 35)\"><rect class=\"basic label-container\" style=\"fill:#dc2626 !important;stroke:#b91c1c !important\" x=\"-64.2421875\" y=\"-27\" width=\"128.484375\" height=\"54\"></rect><g class=\"label\" style=\"color:#ffffff !important\" transform=\"translate(-34.2421875, -12)\"><rect></rect><foreignObject width=\"68.484375\" height=\"24\"><div style=\"color: rgb(255, 255, 255) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#ffffff !important\" class=\"nodeLabel\"><p>Complete</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs><defs><filter id=\"diagram-842c03ff6f5606a36a18f1737061abd8789d3e3dca99fcec97e94d349d4b9986-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs></svg>","diagramHtmlDark":"<svg id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 1172.75px;\" viewBox=\"0 0 1172.75 71\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>\n    #diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 foreignObject {\n      overflow: visible;\n    }\n  </style><style>#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#ccc;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .error-icon{fill:#a44141;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .error-text{fill:#ddd;stroke:#ddd;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .edge-thickness-normal{stroke-width:1px;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .edge-thickness-thick{stroke-width:3.5px;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .edge-pattern-solid{stroke-dasharray:0;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .marker{fill:lightgrey;stroke:lightgrey;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .marker.cross{stroke:lightgrey;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 p{margin:0;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .label{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;color:#ccc;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .cluster-label text{fill:#F9FFFE;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .cluster-label span{color:#F9FFFE;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .cluster-label span p{background-color:transparent;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .label text,#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 span{fill:#ccc;color:#ccc;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .node rect,#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .node circle,#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .node ellipse,#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .node polygon,#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .node path{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .rough-node .label text,#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .node .label text,#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .image-shape .label,#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .icon-shape .label{text-anchor:middle;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .rough-node .label,#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .node .label,#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .image-shape .label,#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .icon-shape .label{text-align:center;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .node.clickable{cursor:pointer;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .root .anchor path{fill:lightgrey!important;stroke-width:0;stroke:lightgrey;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .arrowheadPath{fill:lightgrey;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .edgePath .path{stroke:lightgrey;stroke-width:1px;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .flowchart-link{stroke:lightgrey;fill:none;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .edgeLabel p{background-color:hsl(0, 0%, 34.4117647059%);}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .cluster text{fill:#F9FFFE;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .cluster span{color:#F9FFFE;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:12px;background:hsl(20, 1.5873015873%, 12.3529411765%);border:1px solid rgba(255, 255, 255, 0.25);border-radius:2px;pointer-events:none;z-index:100;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 rect.text{fill:none;stroke-width:0;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .icon-shape,#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .image-shape{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .icon-shape p,#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .image-shape p{background-color:hsl(0, 0%, 34.4117647059%);padding:2px;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .icon-shape .label rect,#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .image-shape .label rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 .node .neo-node{stroke:#ccc;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 [data-look=\"neo\"].node rect,#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 [data-look=\"neo\"].cluster rect,#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 [data-look=\"neo\"].node polygon{stroke:url(#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 [data-look=\"neo\"].node path{stroke:url(#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913-gradient);stroke-width:1px;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 [data-look=\"neo\"].node circle{stroke:url(#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g><marker id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\"><path d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\"><polygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></polygon></marker><marker id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"></path></marker><marker id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"><path d=\"M100.031,35L104.198,35C108.365,35,116.698,35,124.365,35C132.031,35,139.031,35,142.531,35L146.031,35\" id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913-L_A_B_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_A_B_0\" data-points=\"W3sieCI6MTAwLjAzMTI1LCJ5IjozNX0seyJ4IjoxMjUuMDMxMjUsInkiOjM1fSx7IngiOjE1MC4wMzEyNSwieSI6MzV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913_flowchart-v2-pointEnd)\"></path><path d=\"M282.094,35L286.26,35C290.427,35,298.76,35,306.427,35C314.094,35,321.094,35,324.594,35L328.094,35\" id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913-L_B_C_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_B_C_0\" data-points=\"W3sieCI6MjgyLjA5Mzc1LCJ5IjozNX0seyJ4IjozMDcuMDkzNzUsInkiOjM1fSx7IngiOjMzMi4wOTM3NSwieSI6MzV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913_flowchart-v2-pointEnd)\"></path><path d=\"M448.141,35L452.307,35C456.474,35,464.807,35,472.474,35C480.141,35,487.141,35,490.641,35L494.141,35\" id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913-L_C_D_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_C_D_0\" data-points=\"W3sieCI6NDQ4LjE0MDYyNSwieSI6MzV9LHsieCI6NDczLjE0MDYyNSwieSI6MzV9LHsieCI6NDk4LjE0MDYyNSwieSI6MzV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913_flowchart-v2-pointEnd)\"></path><path d=\"M613.281,35L617.448,35C621.615,35,629.948,35,637.615,35C645.281,35,652.281,35,655.781,35L659.281,35\" id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913-L_D_E_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_D_E_0\" data-points=\"W3sieCI6NjEzLjI4MTI1LCJ5IjozNX0seyJ4Ijo2MzguMjgxMjUsInkiOjM1fSx7IngiOjY2My4yODEyNSwieSI6MzV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913_flowchart-v2-pointEnd)\"></path><path d=\"M776.641,26.492L784.958,25.243C793.276,23.994,809.911,21.497,825.888,21.418C841.864,21.338,857.182,23.676,864.84,24.846L872.499,26.015\" id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913-L_E_F_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_E_F_0\" data-points=\"W3sieCI6Nzc2LjY0MDYyNSwieSI6MjYuNDkxNjA3NDE3NzIzMzcyfSx7IngiOjgyNi41NDY4NzUsInkiOjE5fSx7IngiOjg3Ni40NTMxMjUsInkiOjI2LjYxODM2NjEyOTk5NDAzN31d\" data-look=\"classic\" marker-end=\"url(#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913_flowchart-v2-pointEnd)\"></path><path d=\"M986.266,35L990.432,35C994.599,35,1002.932,35,1010.599,35C1018.266,35,1025.266,35,1028.766,35L1032.266,35\" id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913-L_F_G_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_F_G_0\" data-points=\"W3sieCI6OTg2LjI2NTYyNSwieSI6MzV9LHsieCI6MTAxMS4yNjU2MjUsInkiOjM1fSx7IngiOjEwMzYuMjY1NjI1LCJ5IjozNX1d\" data-look=\"classic\" marker-end=\"url(#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913_flowchart-v2-pointEnd)\"></path><path d=\"M876.453,43.382L868.135,44.651C859.818,45.921,843.182,48.461,827.206,48.581C811.23,48.701,795.913,46.401,788.255,45.252L780.596,44.102\" id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913-L_F_E_0\" class=\"edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_F_E_0\" data-points=\"W3sieCI6ODc2LjQ1MzEyNSwieSI6NDMuMzgxNjMzODcwMDA1OTZ9LHsieCI6ODI2LjU0Njg3NSwieSI6NTF9LHsieCI6Nzc2LjY0MDYyNSwieSI6NDMuNTA4MzkyNTgyMjc2NjN9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_A_B_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_B_C_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_C_D_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_D_E_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_E_F_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_F_G_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(826.546875, 51)\"><g class=\"label\" data-id=\"L_F_E_0\" transform=\"translate(-24.90625, -12)\"><foreignObject width=\"49.8125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>Extend</p></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913-flowchart-A-0\" data-look=\"classic\" transform=\"translate(54.015625, 35)\"><rect class=\"basic label-container\" style=\"fill:#2563eb !important;stroke:#1e40af !important\" x=\"-46.015625\" y=\"-27\" width=\"92.03125\" height=\"54\"></rect><g class=\"label\" style=\"color:#ffffff !important\" transform=\"translate(-16.015625, -12)\"><rect></rect><foreignObject width=\"32.03125\" height=\"24\"><div style=\"color: rgb(255, 255, 255) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#ffffff !important\" class=\"nodeLabel\"><p>Plan</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913-flowchart-B-1\" data-look=\"classic\" transform=\"translate(216.0625, 35)\"><rect class=\"basic label-container\" style=\"\" x=\"-66.03125\" y=\"-27\" width=\"132.0625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-36.03125, -12)\"><rect></rect><foreignObject width=\"72.0625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Announce</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913-flowchart-C-2\" data-look=\"classic\" transform=\"translate(390.1171875, 35)\"><rect class=\"basic label-container\" style=\"\" x=\"-58.0234375\" y=\"-27\" width=\"116.046875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-28.0234375, -12)\"><rect></rect><foreignObject width=\"56.046875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Support</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913-flowchart-D-3\" data-look=\"classic\" transform=\"translate(555.7109375, 35)\"><rect class=\"basic label-container\" style=\"\" x=\"-57.5703125\" y=\"-27\" width=\"115.140625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-27.5703125, -12)\"><rect></rect><foreignObject width=\"55.140625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Remind</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913-flowchart-E-4\" data-look=\"classic\" transform=\"translate(719.9609375, 35)\"><rect class=\"basic label-container\" style=\"\" x=\"-56.6796875\" y=\"-27\" width=\"113.359375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-26.6796875, -12)\"><rect></rect><foreignObject width=\"53.359375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Monitor</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913-flowchart-F-5\" data-look=\"classic\" transform=\"translate(931.359375, 35)\"><rect class=\"basic label-container\" style=\"fill:#f59e0b !important;stroke:#d97706 !important\" x=\"-54.90625\" y=\"-27\" width=\"109.8125\" height=\"54\"></rect><g class=\"label\" style=\"color:#ffffff !important\" transform=\"translate(-24.90625, -12)\"><rect></rect><foreignObject width=\"49.8125\" height=\"24\"><div style=\"color: rgb(255, 255, 255) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#ffffff !important\" class=\"nodeLabel\"><p>Decide</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913-flowchart-G-6\" data-look=\"classic\" transform=\"translate(1100.5078125, 35)\"><rect class=\"basic label-container\" style=\"fill:#dc2626 !important;stroke:#b91c1c !important\" x=\"-64.2421875\" y=\"-27\" width=\"128.484375\" height=\"54\"></rect><g class=\"label\" style=\"color:#ffffff !important\" transform=\"translate(-34.2421875, -12)\"><rect></rect><foreignObject width=\"68.484375\" height=\"24\"><div style=\"color: rgb(255, 255, 255) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\" xmlns=\"http://www.w3.org/1999/xhtml\"><span style=\"color:#ffffff !important\" class=\"nodeLabel\"><p>Complete</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><defs><filter id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><linearGradient id=\"diagram-9004164c240c17a7be05187f4ddfb9905d86d8fa1d4eeab6a839120f06eb4913-gradient\" gradientUnits=\"objectBoundingBox\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\"><stop offset=\"0%\" stop-color=\"#cccccc\" stop-opacity=\"1\"></stop><stop offset=\"100%\" stop-color=\"hsl(180, 0%, 18.3529411765%)\" stop-opacity=\"1\"></stop></linearGradient></svg>"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Streamlined communication workflow for API version changes, showing the essential steps from planning to safe deprecation."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"documentation-platforms-must-accommodate-version-switching","__idx":5},"children":["Documentation platforms must accommodate version switching"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Your documentation infrastructure needs to support multiple API versions simultaneously."," ","Consumers using different versions require access to appropriate reference materials until their version reaches end-of-life."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Choose documentation platforms that support intuitive version switching through dropdown menus or clear navigation paths."," ","Your API catalog should handle whatever versioning strategy you implement without creating administrative overhead."," ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"https://redocly.com/docs/realm/"},"children":["Redocly's API management platform"]}," provides comprehensive capabilities for ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"https://redocly.com/docs/realm/content/versions"},"children":["handling complex API documentation scenarios across multiple versions"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Redocly makes maintaining versioned APIs straightforward with comprehensive API catalog and documentation generation capabilities."," ","The platform supports whatever versioning strategy you decide to implement, providing the flexibility and tooling you need to keep your API documentation organized and accessible across all supported versions."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ready to streamline your API versioning and documentation workflow? ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"https://app.redocly.com/signup"},"children":["Sign up for Redocly"]}," and discover how you can see the value of professional API management in just 5 minutes with our ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"https://redocly.com/docs/api-registry/guides/api-registry-quickstart/"},"children":["quick start guide"]},"."]}]},"frontmatter":{"template":"../@theme/templates/BlogPost","title":"API versioning best practices","description":"Implementing API versioning strategies that protect existing integrations while enabling safe updates.","seo":{"title":"API versioning best practices","description":"Implementing API versioning strategies that protect existing integrations while enabling safe updates.","image":"/content-assets/api-versioning-best-practices-c51ce0cfa0424c37.jpg"},"author":"matt-williams","publishedDate":"2025-08-20","categories":["api-versioning","redocly:product-updates","api-documentation:versioning-comms"],"image":"api-versioning-best-practices.jpg"},"tagList":[],"title":"API versioning best practices","lastModified":"2025-11-24T15:40:38.000Z"}