<mxfile host="app.diagrams.net" agent="architecture-diagram" version="24.0.0">
  <diagram name="Identity Flow — Who May Increase a Counter" id="20-write-authorisation-flow">
    <mxGraphModel dx="1400" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1500" pageHeight="990" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="n.mem2" value="&lt;b&gt;Member&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#08427b;strokeColor=#073b6f;fontColor=#ffffff;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="60" y="80" width="150" height="790" as="geometry" />
        </mxCell>
        <mxCell id="_plate1" value="" style="rounded=1;arcSize=22;html=1;fillColor=#ffffff;strokeColor=none;movable=0;resizable=0;connectable=0;" vertex="1" parent="n.mem2">
          <mxGeometry x="5" y="13" width="32" height="32" as="geometry" />
        </mxCell>
        <mxCell id="_ico2" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAACWklEQVRoge3Zz4tNYRzH8dfIrwmJGcZMIgpJEjZsiA1pLGhK2VDEcpLFWCkrG3tr/8GQHRNWipRhocxmombIaESNjDFj8XTrNHPunXueOfec2zTv+m7Ovd9z3p/uvec8z/eyRLm05Hy+lTiBbuzEFvzGKF6hH0M5XzMXVuAaRjAzTz3BwXI002nHc/OLJ2sKfSW4zqELw7LJJ+te4cYJWoXvdax8pa4WLV7hdp2C89UEthbsrh0/FyierPvF6nM9J/FK/cKqGJFlkQHORvZVYy2OxzTGBtgX2Zf7OWMDdET21aIzpik2wHRkXy3+xTTFBhiN7KvFSExTbIB3kX21eN+Ac1blknxvo9+xvMgA6zGWY4BS1kQ3ImVn1zjaCnZH+MifZpSdXdO4ULR4ko3Cjy9W/lbxynNZh0eyyU/gYhmytTiPD2qLT+EBtuV10bw39XAIZ7BLWHL8wWe8xmPhlrnEoiH2K7RfGI10YgMm8RBv6uhtRY+wfJ7CV3zCC/zIKpIlwBr04oowtErjozD3GRSmFePCTqsNe3EUJ4U712z+4hnuCmOaXOlW39Aqr+oXnjG5cFNYqxclX6kh7Fmo/OUSxJM1jM2x8oeFe3iZAWYwEBtgoAnkK3Uuq/yxJpBO1ttqotW2lD1ZEzeYA9id9kK1AKcb5xLNqbSDaQFasL2xLlHsSDuYFqBN+Kuo2ehKO5gWYHWDRWJJ9YqdCzUNizLAZOEW9ZHqlRZgTGNmnwtlMMube5X/9E3WN2zKEqAFdzTHYm5IWFhWFa1FB44o77nwBS+FrecSTcl/+F0YjmstwYwAAAAASUVORK5CYII=;" vertex="1" parent="n.mem2">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.cl3" value="&lt;b&gt;Product client&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#f5f5f5;strokeColor=#8c8c8c;fontColor=#333333;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="230" y="80" width="150" height="790" as="geometry" />
        </mxCell>
        <mxCell id="_ico3" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAAB40lEQVRoge3Yz6sOURzH8dfjXlfuQkoW6ooiIUk2imRna+kvYCMLUlIsWNhYKFtZKUp3y80/YGOHKD+6RCGJErnyazF3MsbM85z73HnmTDnv+tQ0c2bm8znnzJyZL4lEIpH4n+k1dJ21mMJKfMFjvG7o2iNjChfwFL8q9ARnsTqWwTrGcE7W01XGy/qEo5ob7UWxAjPCjJd1DRPtW/7DOG4bznyuqyKOxPkAgyE6jD24IXtOPmMWV7B9VObX4WtDAb73OfYDZ4xglC41ZD5UJ5s038PLlgPMYUOIuSUBbTbJ3vltMoFDIQ1DArRtPmdvSKOQALFW0kXfdxlO4IV253+uOyEmx2v2b8U0tgTHbZ57w564Ex/E6fWynuE4loeaX4VXHTBe1kNsCwlwuQNm6/RuUIg1+NYBo/30SGk6FV+jB7G0X8IOsBlH6g5Oi9/DIZotmi6OQKwVd6Gsl33e4O8AUf+WFsjGfKMYoPNVhAKT+UYxwIMIRoblTdXO3eI/oCGakxUX/qGHux0wOEg3q8zn7JP9l8Y2Waef2NUvAJzqgNE6XRxknmwqnZ5PG9twUdfVf/5Xsh/3O2D8I46pKbUMqr+MzQc5gB2y1Xqy7xnN8BbPcUtWknzfwj0TiUQikWif37lJeEKjXHZHAAAAAElFTkSuQmCC;" vertex="1" parent="n.cl3">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.idp2" value="&lt;b&gt;Identity Platform&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#e1d5e7;strokeColor=#9673a6;fontColor=#3a2b44;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="410" y="80" width="150" height="790" as="geometry" />
        </mxCell>
        <mxCell id="_ico4" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,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;" vertex="1" parent="n.idp2">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.edge" value="&lt;b&gt;Edge policy&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#e1d5e7;strokeColor=#9673a6;fontColor=#3a2b44;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="590" y="80" width="150" height="790" as="geometry" />
        </mxCell>
        <mxCell id="_ico5" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAADDUlEQVRoge3azatVVRjH8Y+aebMX4Q6EQKQXaiBRDkS46TCLZgbpIMgKylHQC6HYX+BMmgS90BvhoJpEgmiFoNmk0sAyiKK07GVwzTJLUe9tsN1w2j37nL32XvvcBn5hDc5z1lrP73fWWnuvtThcZm6Z11O/a/EwVuIP7MJrONlTvixMYBMOYzYoZ/EW1syVwDpuwXZMi4VH5VNsxuI50Avm4y68h5lAYNPyG57DjeMSvhRb8X0H0VG5iPexAQv6EL4GO3EuUdi04ldOafMNnsFkV9GjFmWTsn+gn0OJbVsv+iuwDac6CB80MMidePOSuJR+DigeyY14IYPwOgMlS/EsjiX09TtuGyX+dt2eKk0NlCzAeuxtmPfdUQYezyi+iYFBbsUOwxf9qWqj+ZXP1yQkzM3XeArLFC+5r4I6/9FXNXA2v65kzuAlvBh891c1UDXwdx+KWnJdEBtpYDqziC673ehFdroaqBo40SFhxGyHtsuD2PFqoGrgxw4JI7qMwE1B7IdqIBqBMx2S5mIxVgTxY9VA1cAMvsgopO0UWoWFQfxwNVA1AJ+3TBrRdgqtrokfqgYiAwdbJs3JVBD7VYNFDB9ml5PG1bg7iH8QVY4M/IQvcypK5D7xlmZPVDkyAO9kk5POg0HsghoDdayQZzd6IFH8sktiq/3sqmtQNwJH8Uli8hxsEx/qX2/T2SbjHYEbxJcGJ3BlGwMT+HmMBl6p6WNLG/ElT47JwJR47p/Eki4GrlJs8Po0cK3iLihq/3QX8SUPdDDwUYP+X61p+y0W5TAwD/t6MrC5pt0M1uUQX3Kz4jSU08AG8byfxcs5xZc8mtHAPervWY/q8Xakbr6mGHhsiPjT4oNMNhbh45YGFuL5IXXP494+xZdM4kiigSl8NqTeBTw0DvEl1yuOnqMMHFG8YYfde57D/eMUXzIpbTpF5U+ZH5epTEhf2GX5Tv3Zd+w8ori/byr+DR33OH2wHG8bLvw4Ns6VwKasxW7/Fv4LnpBpbzNIX381oNh+3KGYWgf9P67uL5OdfwCdL2jqexBRtgAAAABJRU5ErkJggg==;" vertex="1" parent="n.edge">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.capi3" value="&lt;b&gt;Counting API&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#4a3200;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="760" y="80" width="150" height="790" as="geometry" />
        </mxCell>
        <mxCell id="_ico6" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,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;" vertex="1" parent="n.capi3">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.cfg2" value="&lt;b&gt;Counter definition&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#1e3a1e;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="940" y="80" width="150" height="790" as="geometry" />
        </mxCell>
        <mxCell id="_ico7" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,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;" vertex="1" parent="n.cfg2">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.hold2" value="&lt;b&gt;Quarantine&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#e1d5e7;strokeColor=#9673a6;fontColor=#3a2b44;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="1120" y="80" width="150" height="790" as="geometry" />
        </mxCell>
        <mxCell id="_ico8" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAADDUlEQVRoge3azatVVRjH8Y+aebMX4Q6EQKQXaiBRDkS46TCLZgbpIMgKylHQC6HYX+BMmgS90BvhoJpEgmiFoNmk0sAyiKK07GVwzTJLUe9tsN1w2j37nL32XvvcBn5hDc5z1lrP73fWWnuvtThcZm6Z11O/a/EwVuIP7MJrONlTvixMYBMOYzYoZ/EW1syVwDpuwXZMi4VH5VNsxuI50Avm4y68h5lAYNPyG57DjeMSvhRb8X0H0VG5iPexAQv6EL4GO3EuUdi04ldOafMNnsFkV9GjFmWTsn+gn0OJbVsv+iuwDac6CB80MMidePOSuJR+DigeyY14IYPwOgMlS/EsjiX09TtuGyX+dt2eKk0NlCzAeuxtmPfdUQYezyi+iYFBbsUOwxf9qWqj+ZXP1yQkzM3XeArLFC+5r4I6/9FXNXA2v65kzuAlvBh891c1UDXwdx+KWnJdEBtpYDqziC673ehFdroaqBo40SFhxGyHtsuD2PFqoGrgxw4JI7qMwE1B7IdqIBqBMx2S5mIxVgTxY9VA1cAMvsgopO0UWoWFQfxwNVA1AJ+3TBrRdgqtrokfqgYiAwdbJs3JVBD7VYNFDB9ml5PG1bg7iH8QVY4M/IQvcypK5D7xlmZPVDkyAO9kk5POg0HsghoDdayQZzd6IFH8sktiq/3sqmtQNwJH8Uli8hxsEx/qX2/T2SbjHYEbxJcGJ3BlGwMT+HmMBl6p6WNLG/ElT47JwJR47p/Eki4GrlJs8Po0cK3iLihq/3QX8SUPdDDwUYP+X61p+y0W5TAwD/t6MrC5pt0M1uUQX3Kz4jSU08AG8byfxcs5xZc8mtHAPervWY/q8Xakbr6mGHhsiPjT4oNMNhbh45YGFuL5IXXP494+xZdM4kiigSl8NqTeBTw0DvEl1yuOnqMMHFG8YYfde57D/eMUXzIpbTpF5U+ZH5epTEhf2GX5Tv3Zd+w8ori/byr+DR33OH2wHG8bLvw4Ns6VwKasxW7/Fv4LnpBpbzNIX381oNh+3KGYWgf9P67uL5OdfwCdL2jqexBRtgAAAABJRU5ErkJggg==;" vertex="1" parent="n.hold2">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.log2" value="&lt;b&gt;Event log&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#4a3200;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="1290" y="80" width="150" height="790" as="geometry" />
        </mxCell>
        <mxCell id="_ico9" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,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;" vertex="1" parent="n.log2">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="_m10" value="1. completes an action" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.1165;exitDx=0;exitDy=0;entryX=0.5;entryY=0.1165;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.mem2" target="n.cl3">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m11" value="2. member token (cached)" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.1671;exitDx=0;exitDy=0;entryX=0.5;entryY=0.1671;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.cl3" target="n.idp2">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m12" value="3. short-lived JWT" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#5a6570;exitX=0.5;exitY=0.2177;exitDx=0;exitDy=0;entryX=0.5;entryY=0.2177;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.idp2" target="n.cl3">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m13" value="4. sign event with attestation key" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.2684;exitDx=0;exitDy=0;entryX=0.5;entryY=0.2987;entryDx=0;entryDy=0;align=left;spacingLeft=6;" edge="1" parent="1" source="n.cl3" target="n.cl3">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="390" y="290" />
              <mxPoint x="390" y="320" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_m14" value="5. POST /events" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.3342;exitDx=0;exitDy=0;entryX=0.5;entryY=0.3342;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.cl3" target="n.edge">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m15" value="6. rate limit, bot score" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.3848;exitDx=0;exitDy=0;entryX=0.5;entryY=0.4152;entryDx=0;entryDy=0;align=left;spacingLeft=6;" edge="1" parent="1" source="n.edge" target="n.edge">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="740" y="390" />
              <mxPoint x="740" y="410" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_m16" value="7. admitted" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.4506;exitDx=0;exitDy=0;entryX=0.5;entryY=0.4506;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.edge" target="n.capi3">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m17" value="8. subject must equal member_ref" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.5013;exitDx=0;exitDy=0;entryX=0.5;entryY=0.5316;entryDx=0;entryDy=0;align=left;spacingLeft=6;" edge="1" parent="1" source="n.capi3" target="n.capi3">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="920" y="480" />
              <mxPoint x="920" y="500" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_m18" value="9. is this counter client-writable?" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.5671;exitDx=0;exitDy=0;entryX=0.5;entryY=0.5671;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.capi3" target="n.cfg2">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m19" value="10. type, bounds, version" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#5a6570;exitX=0.5;exitY=0.6177;exitDx=0;exitDy=0;entryX=0.5;entryY=0.6177;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.cfg2" target="n.capi3">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m20" value="11. 403 if not client-writable" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;dashed=1;strokeColor=#b85450;fontColor=#b85450;exitX=0.5;exitY=0.6684;exitDx=0;exitDy=0;entryX=0.5;entryY=0.6684;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.capi3" target="n.cl3">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m21" value="12. inflation signal matched" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;dashed=1;strokeColor=#b85450;fontColor=#b85450;exitX=0.5;exitY=0.7190;exitDx=0;exitDy=0;entryX=0.5;entryY=0.7190;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.capi3" target="n.hold2">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m22" value="13. held, reversible" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#5a6570;exitX=0.5;exitY=0.7696;exitDx=0;exitDy=0;entryX=0.5;entryY=0.7696;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.hold2" target="n.capi3">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m23" value="14. publish accepted event" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.8203;exitDx=0;exitDy=0;entryX=0.5;entryY=0.8203;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.capi3" target="n.log2">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m24" value="15. durable" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#5a6570;exitX=0.5;exitY=0.8709;exitDx=0;exitDy=0;entryX=0.5;entryY=0.8709;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.log2" target="n.capi3">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m25" value="16. 202 + idempotency echo" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#5a6570;exitX=0.5;exitY=0.9215;exitDx=0;exitDy=0;entryX=0.5;entryY=0.9215;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.capi3" target="n.cl3">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="title" value="Identity Flow — Who May Increase a Counter" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=20;fontStyle=1;fontColor=#16202c;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="20" width="1410" height="30" as="geometry" />
        </mxCell>
        <mxCell id="rule" value="" style="line;strokeWidth=1;html=1;strokeColor=#c9d3de;" vertex="1" parent="1">
          <mxGeometry x="40" y="50" width="1410" height="10" as="geometry" />
        </mxCell>
        <mxCell id="note" value="Four independent refusals before anything is logged: the token's subject, the counter's client-writability, the declared bounds, and the inflation signal. Only the fourth is reversible." style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#8a97a5;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="920" width="1410" height="20" as="geometry" />
        </mxCell>
        <mxCell id="foot-rule" value="" style="line;strokeWidth=1;html=1;strokeColor=#e3e9ef;" vertex="1" parent="1">
          <mxGeometry x="40" y="940" width="1410" height="10" as="geometry" />
        </mxCell>
        <mxCell id="foot" value="v 1.0   ·   owner Platform Architecture   ·   date 2026-10" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=9;fontColor=#9aa7b4;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="950" width="1410" height="10" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
