<mxfile host="app.diagrams.net" agent="architecture-diagram" version="24.0.0">
  <diagram name="Identity — Who Proves What, and Where Nobody Has To" id="23-identity-and-access">
    <mxGraphModel dx="1400" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1740" pageHeight="850" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="n.clicker" value="&lt;b&gt;Clicker&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="210" height="650" 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.clicker">
          <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.clicker">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.devu" value="&lt;b&gt;Customer developer&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="290" y="80" width="210" height="650" as="geometry" />
        </mxCell>
        <mxCell id="_plate3" value="" style="rounded=1;arcSize=22;html=1;fillColor=#ffffff;strokeColor=none;movable=0;resizable=0;connectable=0;" vertex="1" parent="n.devu">
          <mxGeometry x="5" y="13" width="32" height="32" 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,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.devu">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.edge" value="&lt;b&gt;Front Door&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="530" y="80" width="210" height="650" 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,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;" vertex="1" parent="n.edge">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.apis" value="&lt;b&gt;Link 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=#dae8fc;strokeColor=#6c8ebf;fontColor=#1a2b45;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="770" y="80" width="210" height="650" 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,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAACpUlEQVRoge3YTYhNYRzH8Y+3iLzkbZoSdhJZkI1YUWzYWbCxJCU1ZShlpVhQKIoFG28pKxaKDUnyUtTQZJCExZSJEYMMFs+cXMe5955z7jn3jppf/evWfc7/+f6e5/+8nMOIWqsxJeWdhA3YhMUYQG9JfRWqZTiJfvyKxRPsxuyW0VXRHAGsx7/QSfED17ER41rACyYMAVwZAkoDnhTvhRlb2izwWiXSaJRWYvOxDy9yQOWZnW+4jPUaKLFGS+QBdmIGFuGgsAuVXmLTcUS+EnmDA1hQJff4oUG5mnNQ7mNdLfjJeJQx6QDOY61sZ0o7dqErY38/saVa0r0ZEt3BVkzLAF1Ny3EcfSn77sOUpEQ36zz4FkexpADoJI0XFu4lfK/DsjopwdOEhgO4INReWdeOJEUl9iSB6Rc2Rw1H10n0CS/RjcEySKuoF8/wOstDSTMQxaA/x//YIkljahcOs1c1WP6agbQG4mvhIOYWBD0aa6Sr/UIMRFF5KcuzPqYJh93zjP0WZqAyeoSpn5UCPLpPfWmgv8INRPEV57Aqljsa7ax9DDbbQGV0oQOn8Tnjs++wHwtbaSBP3Pb3i87EegbK3BLT6oOwAx0TDq5MaqWBhziFs8KCzqVmG+jHRZzA4yISNtPAGewQFnRhqncXKlLdCoanuQZK0YiBVuu/NzAcDrJqasOeeo0qDXwsjyWT2tCJbcJVIkkfoh+VJXSrRKg0asNh4RW2Q3X4r7iX9Mds4R20rItaZx3wtDfWvbVGYR6uNclAVvA+bMeoWgYirRC+i5ZhYKbwTp0WvH+ofa6PaCtxoyADh2Qf8X2Ymgc8rjJmpJQRb6WRUsHLNNJU8LgaMdJS8LiyGBlW4HHVMjKsweNaKXyW78Zd4atdIdvhiEZUsH4D+zfN9JHFLwAAAAAASUVORK5CYII=;" vertex="1" parent="n.apis">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.idp" value="&lt;b&gt;Entra ID&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="1000" y="80" width="210" height="650" 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.idp">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.kv" value="&lt;b&gt;Key Vault&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="1240" y="80" width="210" height="650" 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,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;" vertex="1" parent="n.kv">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.data" value="&lt;b&gt;Link table&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="1470" y="80" width="210" height="650" 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,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAADIUlEQVRoge3aTWwVVRjG8V9LkW+kwYDY6kLxC5QNJEIMECEGNSa6MCaGHStXrtyqxI0xJLCCDTGBBRuCiSQuTIgxhAUsABP5SAQlCFhlYaB82AqNdfFO06E9U+5M7+29rf0nbyY9M3Pmee85M/Ocd8o0zaVtHOfOwoosuvBEFp2YjTnZMf9kx9/AAK7jGv7ErziHK1VFlEmgE5vwOtbjOXRUvfAIbuI0vscRnMK/9ei4TQg+KH7JwQmKK/hMjGxlVuCHCRSdir/xqZiKpXgFt5osPh9HxH01ihkFbSfwWNmsG8jT6MexkTvaEwcvFU+TVmN1qjGVQKqtFUjqalWxNTMlE7gt7vxWo7fMwV9p/qMzH31YWyaBDuxrAeGD+AtvlRGfZzOON0n4HezG4qri86zCTpxvsOi7+A4fYmFVsV3Yj2UF+7vxAb7At7ikmtG7IVznfnyM1xTYBbyNHakdKTvdjavixjmAPfixoOM8S8RbfEnW76Jc//1Zf/1iHfB79vdYzMF7+AhrcBjv1qBDt9G/1gV8iS1YUEsnFVmObTgkplNewzepE8YagSIGREIXcBG/ZNurYmHSl108da1FmCsWR89msTzbvihGsIjkCFRZUXUYXkqORa9IZpaYDkXze1zUa0mY4tEsGsqU9EKTilQCdakGNICkrlQC19HTWC2VOF3m4LWGbXUrROGifixewtEmC+/D9irih2jDG/ga9yZQ+DV8jieriF6A5xPti/E+9uJn8Uaul+BbYrQ/wTqjyz3tCqoSRVbikjBxu/BbQaJzxdt4ZXbO49l2vmEj1+lBI3dXPCT+EA+Ky/gp2w4mrtGON0WZsUcFMzcgTNRWE/BWzfGyKClezGlJmrmHWYkZeCeL+zgpqmMnDRu5O+MU2yXM3At4FRvwVK0nl/FCM8X8XDeivUckc1lMlV4xVfrE3J4pptVCYermibLlM8KJziuhYRT1MHNDHzY21qGv0kxJLzSpmJIJTJcWGxDTpcVmCP9/lBarfKnvFh+6VwnPMvSl/pGS/dwUpvEszogy43Fh+mpmPP9qMJJ6lxanmRT8B1M0bJ9FjBNdAAAAAElFTkSuQmCC;" vertex="1" parent="n.data">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="_m10" value="1. GET /{code} — no credential, by design" 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.1415;exitDx=0;exitDy=0;entryX=0.5;entryY=0.1415;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.clicker" target="n.edge">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m11" value="2. 302; every field treated as hostile" 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.2031;exitDx=0;exitDy=0;entryX=0.5;entryY=0.2031;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.edge" target="n.clicker">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m12" value="3. console sign-in, MFA" 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.2646;exitDx=0;exitDy=0;entryX=0.5;entryY=0.2646;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.devu" target="n.idp">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m13" value="4. token with one tenant claim" 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.3262;exitDx=0;exitDy=0;entryX=0.5;entryY=0.3262;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.idp" target="n.devu">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m14" value="5. POST /links with tenant-scoped API 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.3877;exitDx=0;exitDy=0;entryX=0.5;entryY=0.3877;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.devu" target="n.apis">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m15" value="6. resolve key hash and scopes" 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.4492;exitDx=0;exitDy=0;entryX=0.5;entryY=0.4492;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.apis" target="n.kv">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m16" value="7. scopes: links:write on 2 domains" 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.5108;exitDx=0;exitDy=0;entryX=0.5;entryY=0.5108;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.kv" target="n.apis">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m17" value="8. reject if key spans more than one tenant" 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.5723;exitDx=0;exitDy=0;entryX=0.5;entryY=0.6092;entryDx=0;entryDy=0;align=left;spacingLeft=6;" edge="1" parent="1" source="n.apis" target="n.apis">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="950" y="450" />
              <mxPoint x="950" y="480" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_m18" value="9. workload identity for data access" 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.6523;exitDx=0;exitDy=0;entryX=0.5;entryY=0.6523;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.apis" target="n.idp">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m19" value="10. managed identity token" 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.7138;exitDx=0;exitDy=0;entryX=0.5;entryY=0.7138;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.idp" target="n.apis">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m20" value="11. write, partitioned by code hash" 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.7754;exitDx=0;exitDy=0;entryX=0.5;entryY=0.7754;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.apis" target="n.data">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m21" value="12. committed, audit entry appended" 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.8369;exitDx=0;exitDy=0;entryX=0.5;entryY=0.8369;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.data" target="n.apis">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m22" value="13. 201 — actor recorded on the link" 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.8985;exitDx=0;exitDy=0;entryX=0.5;entryY=0.8985;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.apis" target="n.devu">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="title" value="Identity — Who Proves What, and Where Nobody Has To" 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="1650" 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="1650" height="10" as="geometry" />
        </mxCell>
        <mxCell id="note" value="The clicker has no identity and must never need one. Every other actor is scoped to exactly one tenant, and the resolver appears nowhere in this diagram because it holds no credential at all." 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="780" width="1650" 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="800" width="1650" height="10" as="geometry" />
        </mxCell>
        <mxCell id="foot" value="v 1.0   ·   owner Platform Architecture   ·   date 2026-09" 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="810" width="1650" height="10" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
