<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="Electron" agent="Standing Order Agent" version="24.7.17">
  <diagram name="Order Orchestration State Machine" id="standing-order-order-orchestration-state-machine">
    <mxGraphModel dx="1400" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1900" pageHeight="1050" math="0" shadow="0">
      <root>
        <mxCell id="0"/>
        <mxCell id="1" parent="0"/>
        <mxCell id="o1" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="scheduled" target="preparing"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="o2" value="session invalid" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="preparing" target="auth"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="o3" value="reconnected" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="auth" target="preparing"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="250" y="190"/><mxPoint x="250" y="470"/></Array></mxGeometry></mxCell>
        <mxCell id="o4" value="ambiguous" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="preparing" target="input"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="o5" value="resolved" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="input" target="preparing"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="250" y="740"/><mxPoint x="250" y="470"/></Array></mxGeometry></mxCell>
        <mxCell id="o6" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="preparing" target="cart"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="o7" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="cart" target="slot"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="o8" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="slot" target="review"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="o9" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="review" target="changes"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="o10" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="changes" target="preparing"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="1000" y="850"/><mxPoint x="450" y="850"/><mxPoint x="450" y="520"/></Array></mxGeometry></mxCell>
        <mxCell id="o11" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="review" target="skip"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="o12" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="review" target="approved"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="o13" value="hash must match" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="snapshot" target="approved"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="o14" value="Phase 2 only" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="approved" target="checkout"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="o15" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="checkout" target="pending"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="o16" value="verified" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="pending" target="confirmed"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="o17" value="ambiguous response" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="pending" target="unknown"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="o18" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="preparing" target="failed"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="o19" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="cart" target="failed"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="o20" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9AB8AD;strokeWidth=2;dashed=0;endArrow=block;endFill=1;fontColor=#547067;fontFamily=Helvetica;fontSize=12;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="slot" target="failed"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell>
        <mxCell id="scheduled" value="scheduled" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#F2F5F3;strokeColor=#80928B;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;shape=ellipse;perimeter=ellipsePerimeter;" vertex="1" parent="1"><mxGeometry x="60" y="430" width="170" height="80" as="geometry"/></mxCell>
        <mxCell id="preparing" value="preparing" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#FFF1D6;strokeColor=#C58A2C;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="310" y="430" width="180" height="80" as="geometry"/></mxCell>
        <mxCell id="auth" value="needs authentication" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#FDE7E0;strokeColor=#C8755E;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="310" y="150" width="210" height="80" as="geometry"/></mxCell>
        <mxCell id="input" value="needs user input" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#FDE7E0;strokeColor=#C8755E;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="310" y="700" width="210" height="80" as="geometry"/></mxCell>
        <mxCell id="cart" value="cart ready" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#DDF4E6;strokeColor=#4F8B6B;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="590" y="430" width="180" height="80" as="geometry"/></mxCell>
        <mxCell id="slot" value="slot selected" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#E4EFFB;strokeColor=#5F88B5;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="850" y="430" width="180" height="80" as="geometry"/></mxCell>
        <mxCell id="review" value="awaiting review" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#EEE9FA;strokeColor=#7D68AA;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="1110" y="430" width="200" height="80" as="geometry"/></mxCell>
        <mxCell id="changes" value="changes requested" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#FFF1D6;strokeColor=#C58A2C;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="1110" y="700" width="220" height="80" as="geometry"/></mxCell>
        <mxCell id="skip" value="skipped / expired" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#F2F5F3;strokeColor=#80928B;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;shape=ellipse;perimeter=ellipsePerimeter;" vertex="1" parent="1"><mxGeometry x="1110" y="150" width="210" height="80" as="geometry"/></mxCell>
        <mxCell id="approved" value="approved snapshot" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#DDF4E6;strokeColor=#4F8B6B;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="1390" y="430" width="210" height="80" as="geometry"/></mxCell>
        <mxCell id="checkout" value="checkout started" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#FFF1D6;strokeColor=#C58A2C;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="1390" y="700" width="210" height="80" as="geometry"/></mxCell>
        <mxCell id="pending" value="confirmation pending" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#FFF1D6;strokeColor=#C58A2C;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="1640" y="700" width="220" height="80" as="geometry"/></mxCell>
        <mxCell id="confirmed" value="confirmed" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#DDF4E6;strokeColor=#4F8B6B;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;shape=ellipse;perimeter=ellipsePerimeter;" vertex="1" parent="1"><mxGeometry x="1640" y="430" width="190" height="80" as="geometry"/></mxCell>
        <mxCell id="unknown" value="checkout unknown&#xa;manual verification only" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#FDE7E0;strokeColor=#C8755E;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;shape=ellipse;perimeter=ellipsePerimeter;" vertex="1" parent="1"><mxGeometry x="1610" y="930" width="250" height="90" as="geometry"/></mxCell>
        <mxCell id="failed" value="failed safely" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#FDE7E0;strokeColor=#C8755E;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;shape=ellipse;perimeter=ellipsePerimeter;" vertex="1" parent="1"><mxGeometry x="600" y="900" width="190" height="80" as="geometry"/></mxCell>
        <mxCell id="snapshot" value="Review snapshot hash&#xa;items · total · slot · versions" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#F2F5F3;strokeColor=#80928B;fontColor=#17352B;fontFamily=Helvetica;fontSize=14;fontStyle=1;spacing=10;strokeWidth=1.5;shape=cylinder3;boundedLbl=1;backgroundOutline=1;size=14;" vertex="1" parent="1"><mxGeometry x="1360" y="120" width="250" height="110" as="geometry"/></mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
