<mxfile host="app.diagrams.net" agent="architecture-diagram" version="24.0.0">
  <diagram name="Discord Bot Platform — Identity: Install and Token Use" id="19-identity-and-install">
    <mxGraphModel dx="1400" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1700" pageHeight="730" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="n.a" value="&lt;b&gt;Administrator&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="240" height="560" 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.a">
          <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.a">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.c" value="&lt;b&gt;Consent Screen&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="330" y="80" width="240" height="560" 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+gvaeTAAABzklEQVRoge3XsYsUMRjG4efURgQbQQ4OxSu2EEEEwVo7Qey8VlGxFnv/BnsFCy0Ee7sDRXsrUQQREexszgOFc3HXIg7sjJPc3TK7k4H8IEXyzYT3JfnyJRQKhUKhznEc6FvEPBzBa0zxEaN+5eyf64L4qn2zBxM5LdWxRn8Nb3A69VNOBtpYxUsJE7kbYBcTh1rGjuLgIhVFOJyIrWITl/Ap9tF5fFZPpNxaMrE3MxC4l/ZV2CWo58BazFlmnMTFqjNr4OfSpczHb7yvOrMGHgtLlDMT3BFyFaw0PjinvxJ+BTcS8Qlu4uly5Oyfe+KJ+0fE3BAK2QS38KQtmLuBpHjaK3Ff7DT6ne75q/iAt7jQxYQtrOOHsOfHwvW6Ezb+TVgl1LuuJm7hFG7jbFcTNsVPDafguSZUveaRNggDMfGDMJASn52B5lViA8+kj9cpvixMUZotPMLDtuBl/ydsjm0i3NlQr8T35VXYYqzgTNWZNfB9+VrmZtw2uC68OfveIru1bTOvx2YSj/BK+nk5xoNEfJHs4LlwrYkykl6JrI7RGCkTgzBA3MRgDNBuYrtXRXPQNPGiXzl1mqdQjBO4i1/CCbS1MEWFQqFQWCZ/AdclH6RcD+9yAAAAAElFTkSuQmCC;" vertex="1" parent="n.c">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.i" value="&lt;b&gt;Installation Service&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="600" y="80" width="240" height="560" 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+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.i">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.t" value="&lt;b&gt;Token Service&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="870" y="80" width="240" height="560" 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.t">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.g" value="&lt;b&gt;Gateway&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="1130" y="80" width="240" height="560" 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+gvaeTAAABkUlEQVRoge2Zu0oDURCGv1UJCjYSGwVvIFhZiZ1YqI2vYLAQ1MJGtPJVfAMrwUoEaysJKNhYWNlIGkHBFCGx2ESOq7vOmjl7EpgPBnbD5J/5yTl7mYBhGEZIBj3qLgObQBl48lRHjQhYBA6BC+AVaDlxEq61dOaBfeAMeOF7w8l49NXEUI7cSWAdWGvHdI7vjuVpKg9SA6fALjCgUHOG9L3XBJ6BhkKdL1bIXh6SqDl6tT9y31HeM5WCDXRiW9KcZElEEiEP7EiSNNa0L+YkSXmuQlpspNTdAo6dc9EvH8LAXcrnq/8R6+UlJMIMhMYMJKgC98qamWgauCZ+B1gCbhR1M9E0cE78MNZoHxeCpoGyczyuqJuJ5o3sALgESsCeom4mmgYmgFtFPRF2GQ2NGQiNGQiNGQhN3xtw78SjwMIvObPFtPKDEvGTbZI3UmatV3Q/wJIMttI4Emo1cQYA7hKaEhTpBSKcwXLf7wHXQDVYF/moAw+dk+T0y9ccv0X8r00Ww8CIQKsOfHTdkWEYhgqfzyqDzDcUYCYAAAAASUVORK5CYII=;" vertex="1" parent="n.g">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.b" value="&lt;b&gt;Bot&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="1400" y="80" width="240" height="560" 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,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABmJLR0QA/wD/AP+gvaeTAAANuElEQVR4nO1ba3BV13X+1j6v+xRCLySQQLJRsI1tKLjGHuxJIOkksUn50bSTtiaZTuu68UMumSGd5k9pOtM8mDoY2cRM3PE0ZKYZzySTNrVxag/EmbiYGBwcGwdiQDJCQo+rF7q6j/PYqz/O4x7dq9fVlQBP+80ctrhnnXP2Wnvtvdde+9vA/3HQtf7g+hdZT4+malWb4yBaBgBgHrdVmkxcqRs+s5fMa1mfJTVA6wtdESWTuFcIbFOE2ETE6whoBaCS/2UGGN7FsB1GFzPOSea3pYNjKo8dP9/Rnl+qOi66Ada/yLo1PPwgCXxRJXxGCIoIAgQBAoCvePjDnvKQfsmAwwxHAg4j60h5xJLi+1Wp2iOL7SGLZoDm58drYo7ZoRIeU4WoUwSgkHsJIghylRezGcDzBocBKRkOA44EbM8YluSUxegEtM5Lj1aPLka9KzbAin398eoq9e9VgQ5NUFIVgCIIKgGKcBVWQgYg/6NFFmC4BnAvV3nJgC0BRzJs1wBeiQlT8n5Htb7Z98jKTCX1r8gAa59L7dQFntYUWqMJQBMEVQC+ERTf9b2LQIERwmDvHwkOPMHtBp7yniEsybAdt7QkYDroztvc0ddR/9NraoDWF7oiETP5LU2hDl0AmkJwDQCoghC4v3BbviEucEedipuXK1iVEKiPCyQ0gqG6n8/bjAmTMZiR6EtLnB918M6AjcGM448DgQEsCViObwCG5QCmw4fzWefLA3saJ5fcAOsODq1TVPqRrtB6XXFb3S/dlnddvikh8InVGu5r0bEyIcr9DACgd0LiFz0mjnZbuDLp+O4Py2GYfukw8g5gOXjXtuUfXX6y4YNyvlGWAW56buiuqEIvGwrV64qruC4ImuK6vUqEm5Yr2NluYGuzFgx4lYIZODVg49/P5HB22A5a3/RLx/Ui0+YRC2JH7+O1x+f77nlX8WPPpT6pK/iJoVBCVwiGAuiKrzyhOkLYtT6C7a36kgUXDOD1SxaeP51BKssF5UNlzua0LWln7xN1R+fzznnV9aZnU78f03HUUChhqCHlvf7/8RYND2+MIqZdm8AybTEOnsri55dM5N0xAHnb7Qo5m5F3OGOz+NR8PGHOGrcdHFoX0/BLQxF1EU95w2v5qEp4eGMUn2rVF0ezMnHkgonv/jqDjBW0fmAE0+Yhx+Gtc40Jsxqg9YWuSMSqejOqYkNEIRgqEPGUT+oCX70nhg0N6uJqVSZ+M2jjH385ifG8a4Cc5w05G8jZ8j2p21tmixVmHZ4NM3nQULDBH/D8lq/SBfbeH7/uygPAnQ0q/vnjCVQZhTr6Y5Om0O0wtf2zPT+jAdY+l9qpK/QXugB0UejzEZWw554Y2pcri6/NArGuVsE/3BdHXCuMS7p3qQIPr3pmaMdMz07bBVYe6ostJ+09QxVtUZUQUV33NwTh0c3l9fmMI9F5YQQjlrMA1aZHQhF4sDGJTdWRKb+/fCGP/W9lkbMZWZu9EsjZfMnOObdNFyhN68NJ6F9TBLW51gT8MPf+1VrZA96vRrN4sfdqWc/MB//Vn8YP725GW0wLfnvgZgNnhhy80mXC9hdSgmELrKaIsgfA3uL3lHSB5ufHaxRChxaEuG6EVxsh/PXGaNkVZS77kXnBZsap0WzJ71/eFEV9zO0KaqjxAOxefXBsebF8iQfELLND1URSVQoLG1UQvnRnBPEFzPMblkWwpSaKq5Ys+9lipG2JnqwV/N+exroJnfBXG6L45vEMbAHYAlAFQwhUOY71OIB/CstP0Wj9i6zLsVRvVBV1UZUQ09x5f12tin3bE9c+f1YEmxn3vt4F6em9p70WX2heViLHAB792QTeT9nIWoyMzchajLyDoerhuuZwUmVKF8iODO9QiOoKS1p3RffHtxjXXXnAXWuIedSEAPzprYaXkyCo3kWE+tHa1GfCslMMoAK7VEFQiIL1fFNc4O4mDR813NeioymhuA1JCJboRLQrLBcYoPWFrogi8GnhCateEmPbGi3I432UIAj4gzY9lJZzSzA/sPbAB0Yg5//BmcS9ghCd+gDhvpbZp73Xhiax62QvHjrZi++cH146jRaAbWvcJbnwvFq4LRnLi2VbfJnAAKrANj956V/1cTFnMuO/B9J4fyKP307k8ZMrE0umzEKwukrBirhSkppjpu2+TKCdILFJBBlcN3e3oX7uWJ9n+PtGwaYVapCNFl4+koHf8+8HBvA2LdykpSd88w0U7y8U7TWKux+Bgm4grPPvCwBYv5d1AlqnpK2BBefybiQ0J0WguG8EMG7afIg1wIsEr9am6uIgNbAS3BT2injlBsg6jO9fGsO5dB63JQ3sWl0NY4ZkYc5h/KBnDO9P5HFL0sCulmp3VK4ATUklaNRQSl7ryQ7WABhQAUASElOe8qQqTXExgN3v9uMtL2Z/PZXBb67mceDOxmnl97w3gP8ZyQSyp8dyeHZjU0VBWGIGHXSNkgAGBAAoAsnphCJqZQb4MGMFyvt4YziDvpxdItubtQLlfZwYzeJSxiqRLQfRGcZxyVQFzJQQWaThfCbzTfdRmiHaWqzU+kwQAOBITIS2qL3tajehUAlWxzRsWT51Cb21NobGSGmzrIyo2Fobm/LblpoomqOVheFZe8r2e7A8F8RXAW8QFIy0fzMsmLEYSX3hTUAAnrqjEYd7xnB2wsT6KgN/3lK6evOx7/YV+EHPON6/msetSR0PtVRXvAhLm4wpunm/mxZPAJ4BqobrUmbjsM0MVfr79AD6J2XFM0FEITzcWpKHmBaGIPzlmuqKvleMvrQDXydZ8ACrJdowMgivC5zZS6ZkdEtmFC53b+6jjp6rMtht9kkYIFw89QhZQGg8ksznCvvz7nV+dPESmdcL54btoEEDD2Cc8+8HBnAkTvmkBEe65enByqagpUB4sqB5jBAnB2yPbMFwPP9n4G3/fsgDcMynpPjEhIG0xOUbrBv8yaoq3Jo0sHFZBPfUzJ6k7R53MJCWCOsFAMwcbJwG81GEx447sjrrMKIuL4fgMPCLSyb+bH2k9O3XCV9ZWztv2VdD6XGXdwQAyMQx/itfJvCA8x3teYf5iC0RUFIcCbzWbQZJyI8SJAM/u2jCkexxjNibAumlMO1uyhwnpThsS1d5WzIsybiSljjee+ONBXPh55dM9KUlwg0KAMx8OCw3xQBVw7UvW5JTtsfG8q8f/jY3r+jYYb4hkiIM4N/ezXmcIpdP5HnxYJNR90pYdkpMemYvmc3PDj1jSexVJaBKhiqBD0YcHO028ck5tsVyDuPzJ3oQVSpfRtfoCr5xWwPiavnvOnIhj9+NOIVGLIx+nf7876MkKNdVZb9tO7stwjKVyMuqMr53Oou7V2olobFatIjprnD1FsbZtInN1eUNwBMm47u/zrot77iXwwABV1VHe6ZYvsS8Fx+pGbckDlgSMD0XMiUwnGM8e6qUZ7BljqmoEizEj/adyGBwUrr0OY9VBgCS8C/du5ePFctPu1omK/cNiyIPKURtbkaVIQg4+qGFOxvyeODmIK2OnU1JqAScGMnCXMSd0EZDxe1VxtyCIfz4d3m82mXCdHwOIft9/4IeT397umdmDKVWHhj6nK7gPyMBP4AQUYC4Tvj6/XFsbryxdotO9FnYcyyNSdOjynh8IQAg4gcvP97w8nTPzehlfR31P7Ul/tUlIjJM74WTJuPrb2Rwdrg0q3O9cCZl42uvTyJjckCZM/0AlnBoJuWBObqZmkg/bjo47XPw8h4rczwn8dVjkzjZf/3jg1P9Fv72tTTG83IKX9DtjfQumbndsz0/52qi+enBdij0hqFQvU+R0z26XEwjPLYpih1ry+uri4Ufn8tj/1sZZKxC4+Rt9mP+QRK89fJjDedne8e8Ei4tnUN3MeGooVCywMRyiVO6ALa36ui4K1ZR9qgcTJiMb7+ZwWvdptfqBbqswwAIE9LBtitP1p+a613zrvGqztR2Av+HriChByysAlm6JiLwpTsi+MN2Y8l2kxnuAqfzZAYDGekzxQO2qPSUh4OdvU/WH5vPO8uqakvn0F0SeEkTaPC5eD5Z2ucStS9X8YXbDHxijbs1vRhgBt7ss/D8O1mcSTlFdHk3TnH7PA+DlM8tCVnaR/PTg+0sxI8U4juCcwJe6fOJVAGsTCj4dJuO7a0aVlctbI+xe9zBq10mXrnoLmxKD0xwsMgB8A4J/vxcfb4YCz4wYU4mv0XMAZssrLxPTfGZGSviApsbNXysRkFLUkFjQqDKIES9jZeM5R6Y6E9LfHjVwblhGyf7bfSnJRwOL8x4ysGJIO5iHGbD+puFHJ+pyElXPTO0gxgHQGhTKWSAoiMzHjUl2J4uHiPC6fhw/q74yIxvgFB+4iIRPzHbPD8XKu6lzU/1RKFF/g7AbgBV4eMyvgcIouDI3HRnhoDCiTEZMkI4PWeHNjUAjDPhKWHm9l3+SkspWbAMLNp43fqd0WpLtZ8A8ASAegpRbURR6/sf9cgKAArK+17gJ2iLslGDYO40DLXz4iM144tR70WfsDYfYu2Kmfosgb4I8GcBxPwPBYcm/RKFE2PhbbkiZAB6iZkPNxl1rxSv5yvFkkYuaw98YOTFsi3MtN2jpdwCoA3ATCspC0AXgLMMvM3MR2tG6k8s5Xnia06A23yItZ7sYI0hkLBZVAOASnIsL5FuiTaMLHYL/z/mwP8CaY6Wo212s3EAAAAASUVORK5CYII=;" vertex="1" parent="n.b">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="_m8" value="1. open invite link" 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.1643;exitDx=0;exitDy=0;entryX=0.5;entryY=0.1643;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.a" target="n.c">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m9" value="2. list scopes + perms" 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.2357;exitDx=0;exitDy=0;entryX=0.5;entryY=0.2357;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.c" target="n.a">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m10" value="3. approve" 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.3071;exitDx=0;exitDy=0;entryX=0.5;entryY=0.3071;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.a" target="n.c">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m11" value="4. create installation" 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.3786;exitDx=0;exitDy=0;entryX=0.5;entryY=0.3786;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.c" target="n.i">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m12" value="5. entitlement push" 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=#d79b00;exitX=0.5;exitY=0.4500;exitDx=0;exitDy=0;entryX=0.5;entryY=0.4500;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.i" target="n.g">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m13" value="6. identify(token, intents)" 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.5214;exitDx=0;exitDy=0;entryX=0.5;entryY=0.5214;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.b" target="n.g">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m14" value="7. verify 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.5929;exitDx=0;exitDy=0;entryX=0.5;entryY=0.5929;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.g" target="n.t">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m15" value="8. application id" 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.6643;exitDx=0;exitDy=0;entryX=0.5;entryY=0.6643;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.t" target="n.g">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m16" value="9. ready (guilds)" 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.7357;exitDx=0;exitDy=0;entryX=0.5;entryY=0.7357;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.g" target="n.b">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m17" value="10. revoke" 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.8071;exitDx=0;exitDy=0;entryX=0.5;entryY=0.8071;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.a" target="n.i">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m18" value="11. close session ≤ 10 s" 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.8786;exitDx=0;exitDy=0;entryX=0.5;entryY=0.8786;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.i" target="n.g">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="title" value="Discord Bot Platform — Identity: Install and Token Use" 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="1610" 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="1610" height="10" as="geometry" />
        </mxCell>
        <mxCell id="foot-rule" value="" style="line;strokeWidth=1;html=1;strokeColor=#e3e9ef;" vertex="1" parent="1">
          <mxGeometry x="40" y="690" width="1610" height="10" as="geometry" />
        </mxCell>
        <mxCell id="foot" value="v 1.0   ·   owner Integration 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="700" width="1610" height="10" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
