<mxfile host="drawgen" type="device"><diagram id="architecture" name="Care Insights POC - solution architecture"><mxGraphModel dx="1780" dy="1030" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1780" pageHeight="1030" background="#FFFFFF" math="0" shadow="0"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="title" value="Care Insights POC - solution architecture" style="text;html=1;fontFamily=Helvetica;fontSize=20;fontStyle=1;fontColor=#111827;align=left;verticalAlign=middle;drawgenRole=title;" vertex="1" parent="1"><mxGeometry x="30" y="20" width="1720" height="32" as="geometry"/></mxCell><mxCell id="subtitle" value="Open lakehouse - ADLS Gen2 holds every layer, Microsoft Fabric is the compute, no Power BI" style="text;html=1;fontFamily=Helvetica;fontSize=12;fontColor=#4B5563;align=left;verticalAlign=top;whiteSpace=wrap;drawgenRole=title;" vertex="1" parent="1"><mxGeometry x="30" y="52" width="1720" height="36" as="geometry"/></mxCell><mxCell id="z_src" value="Source systems (synthetic)" style="swimlane;html=1;startSize=30;rounded=1;arcSize=4;fontFamily=Helvetica;fontSize=13;fontStyle=1;fillColor=#F9FAFB;swimlaneFillColor=#F9FAFB;strokeColor=#C4C9D1;fontColor=#1F2937;align=left;spacingLeft=12;collapsible=0;container=1;drawgenRole=zone;" vertex="1" parent="1"><mxGeometry x="40" y="100" width="240" height="520" as="geometry"/></mxCell><mxCell id="z_fabric" value="Microsoft Fabric - workspace care-insights-poc" style="swimlane;html=1;startSize=30;rounded=1;arcSize=4;fontFamily=Helvetica;fontSize=13;fontStyle=1;fillColor=#FAF5FE;swimlaneFillColor=#FAF5FE;strokeColor=#C9A8EC;fontColor=#1F2937;align=left;spacingLeft=12;collapsible=0;container=1;drawgenRole=zone;" vertex="1" parent="1"><mxGeometry x="360" y="100" width="760" height="300" as="geometry"/></mxCell><mxCell id="z_azure" value="Azure subscription - rg-care-insights-poc (Australia East)" style="swimlane;html=1;startSize=30;rounded=1;arcSize=4;fontFamily=Helvetica;fontSize=13;fontStyle=1;fillColor=#F5F8FE;swimlaneFillColor=#F5F8FE;strokeColor=#9DB4E3;fontColor=#1F2937;align=left;spacingLeft=12;collapsible=0;container=1;drawgenRole=zone;" vertex="1" parent="1"><mxGeometry x="360" y="460" width="760" height="320" as="geometry"/></mxCell><mxCell id="z_cons" value="Consumers" style="swimlane;html=1;startSize=30;rounded=1;arcSize=4;fontFamily=Helvetica;fontSize=13;fontStyle=1;fillColor=#F2FBFA;swimlaneFillColor=#F2FBFA;strokeColor=#8FD1CC;fontColor=#1F2937;align=left;spacingLeft=12;collapsible=0;container=1;drawgenRole=zone;" vertex="1" parent="1"><mxGeometry x="1200" y="100" width="300" height="680" as="geometry"/></mxCell><mxCell id="z_id" value="Identity - Entra ID (keyless)" style="swimlane;html=1;startSize=30;rounded=1;arcSize=4;fontFamily=Helvetica;fontSize=13;fontStyle=1;fillColor=#FEF7F7;swimlaneFillColor=#FEF7F7;strokeColor=#E5A3A3;fontColor=#1F2937;align=left;spacingLeft=12;collapsible=0;container=1;drawgenRole=zone;" vertex="1" parent="1"><mxGeometry x="40" y="680" width="240" height="240" as="geometry"/></mxCell><mxCell id="crm" value="&lt;b&gt;CRM extracts&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;participants, workers - CSV&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#F3F4F6;strokeColor=#6B7280;fontColor=#1F2937;strokeWidth=1.5;rounded=1;arcSize=12;dashed=1;dashPattern=6 4;drawgenRole=node;" vertex="1" parent="z_src"><mxGeometry x="20" y="60" width="200" height="64" as="geometry"/></mxCell><mxCell id="roster" value="&lt;b&gt;Rostering system&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;bookings - monthly CSV&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#F3F4F6;strokeColor=#6B7280;fontColor=#1F2937;strokeWidth=1.5;rounded=1;arcSize=12;dashed=1;dashPattern=6 4;drawgenRole=node;" vertex="1" parent="z_src"><mxGeometry x="20" y="170" width="200" height="64" as="geometry"/></mxCell><mxCell id="mobile" value="&lt;b&gt;Worker mobile app&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;check-in / out - JSON Lines&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#F3F4F6;strokeColor=#6B7280;fontColor=#1F2937;strokeWidth=1.5;rounded=1;arcSize=12;dashed=1;dashPattern=6 4;drawgenRole=node;" vertex="1" parent="z_src"><mxGeometry x="20" y="280" width="200" height="64" as="geometry"/></mxCell><mxCell id="invoices" value="&lt;b&gt;Provider invoices&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;CSV - dd/MM/yyyy dates&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#F3F4F6;strokeColor=#6B7280;fontColor=#1F2937;strokeWidth=1.5;rounded=1;arcSize=12;dashed=1;dashPattern=6 4;drawgenRole=node;" vertex="1" parent="z_src"><mxGeometry x="20" y="390" width="200" height="64" as="geometry"/></mxCell><mxCell id="sched" value="&lt;b&gt;Daily schedule&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;06:00 AEST - RunNotebook&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FFFFFF;strokeColor=#374151;fontColor=#111827;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_fabric"><mxGeometry x="20" y="40" width="180" height="64" as="geometry"/></mxCell><mxCell id="nb" value="&lt;b&gt;Notebook nb_care_medallion&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;PySpark - bronze &amp;gt; silver &amp;gt; gold&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FFF4E0;strokeColor=#C27C0E;fontColor=#4A2F05;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_fabric"><mxGeometry x="240" y="100" width="280" height="90" as="geometry"/></mxCell><mxCell id="lh" value="&lt;b&gt;Lakehouse lh_care&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;Files/raw + Files/lake shortcuts&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E6F4EA;strokeColor=#2E7D4F;fontColor=#14361F;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_fabric"><mxGeometry x="580" y="50" width="160" height="64" as="geometry"/></mxCell><mxCell id="sql" value="&lt;b&gt;SQL endpoint&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;Tables/gold_* shortcuts&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E6F4EA;strokeColor=#2E7D4F;fontColor=#14361F;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_fabric"><mxGeometry x="580" y="200" width="160" height="64" as="geometry"/></mxCell><mxCell id="raw" value="&lt;b&gt;raw container&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;landing zone - files as received&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E3F2FD;strokeColor=#1E6FB8;fontColor=#0B2A47;strokeWidth=1.5;shape=cylinder3;boundedLbl=1;size=10;drawgenRole=node;" vertex="1" parent="z_azure"><mxGeometry x="40" y="60" width="180" height="100" as="geometry"/></mxCell><mxCell id="lake" value="&lt;b&gt;lake container&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;bronze / silver / gold Delta + _pipeline SQL&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E3F2FD;strokeColor=#1E6FB8;fontColor=#0B2A47;strokeWidth=1.5;shape=cylinder3;boundedLbl=1;size=10;drawgenRole=node;" vertex="1" parent="z_azure"><mxGeometry x="270" y="60" width="220" height="100" as="geometry"/></mxCell><mxCell id="cap" value="&lt;b&gt;Fabric capacity F2&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;paused when idle (~US$0.36/h)&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E6F4EA;strokeColor=#2E7D4F;fontColor=#14361F;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_azure"><mxGeometry x="540" y="230" width="200" height="64" as="geometry"/></mxCell><mxCell id="ops" value="&lt;b&gt;Care and finance team&lt;/b&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E8EEF9;strokeColor=#3B5BA9;fontColor=#1F2A44;strokeWidth=1.5;rounded=1;arcSize=50;drawgenRole=node;" vertex="1" parent="z_cons"><mxGeometry x="90" y="50" width="120" height="80" as="geometry"/></mxCell><mxCell id="dash" value="&lt;b&gt;Care Insights dashboard&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;Streamlit + DuckDB - no Power BI&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E0F7F6;strokeColor=#0F8A84;fontColor=#073B38;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_cons"><mxGeometry x="30" y="430" width="240" height="76" as="geometry"/></mxCell><mxCell id="other" value="&lt;b&gt;Other Delta engines&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;Databricks - Synapse - Polars&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#F3F4F6;strokeColor=#6B7280;fontColor=#1F2937;strokeWidth=1.5;rounded=1;arcSize=12;dashed=1;dashPattern=6 4;drawgenRole=node;" vertex="1" parent="z_cons"><mxGeometry x="30" y="580" width="240" height="64" as="geometry"/></mxCell><mxCell id="user" value="&lt;b&gt;Entra user login&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;uploads + dashboard reads&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FDF2F8;strokeColor=#A23B72;fontColor=#4A1030;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_id"><mxGeometry x="20" y="50" width="200" height="64" as="geometry"/></mxCell><mxCell id="wsid" value="&lt;b&gt;Workspace identity&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;Fabric -&amp;gt; ADLS&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FDF2F8;strokeColor=#A23B72;fontColor=#4A1030;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_id"><mxGeometry x="20" y="150" width="200" height="64" as="geometry"/></mxCell><mxCell id="status" value="Status Oct 2026: ADLS, data, pipeline SQL and dashboard deployed + tested. Fabric run pending tenant enablement" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FFFBEB;strokeColor=#D4B106;fontColor=#3D3000;strokeWidth=1.5;shape=note;size=14;align=left;spacingLeft=8;spacingRight=8;drawgenRole=node;" vertex="1" parent="1"><mxGeometry x="360" y="930" width="760" height="60" as="geometry"/></mxCell><mxCell id="edge-1" value="batch files" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="z_src" target="raw"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="320" y="360"/><mxPoint x="320" y="570"/></Array></mxGeometry></mxCell><mxCell id="edge-2" value="read via Files/raw" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="raw" target="nb"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="490" y="245"/></Array></mxGeometry></mxCell><mxCell id="edge-3" value="read SQL / write Delta via Files/lake" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;startArrow=block;startFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="nb" target="lake"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-4" value="trigger" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#B23A3A;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;dashed=1;dashPattern=6 4;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="sched" target="nb"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="740" y="172"/></Array></mxGeometry></mxCell><mxCell id="edge-5" value="default lakehouse" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#9CA3AF;strokeWidth=1.0;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;dashed=1;dashPattern=6 4;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="lh" target="nb"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-6" value="gold tables" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#9CA3AF;strokeWidth=1.0;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;dashed=1;dashPattern=6 4;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="lh" target="sql"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-7" value="compute" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#9CA3AF;strokeWidth=1.0;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;dashed=1;dashPattern=6 4;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="cap" target="z_fabric"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="1150" y="722"/><mxPoint x="1150" y="250"/></Array></mxGeometry></mxCell><mxCell id="edge-8" value="delta_scan (Entra auth)" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="lake" target="dash"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-9" value="open Delta / Parquet" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#9CA3AF;strokeWidth=1.0;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;dashed=1;dashPattern=6 4;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="lake" target="other"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="740" y="650"/><mxPoint x="1190" y="650"/><mxPoint x="1190" y="712"/></Array></mxGeometry></mxCell><mxCell id="edge-10" value="HTTPS" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#374151;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="dash" target="ops"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-11" value="ad-hoc T-SQL" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#9CA3AF;strokeWidth=1.0;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;dashed=1;dashPattern=6 4;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="sql" target="ops"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-12" value="upload (azcopy)" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#9CA3AF;strokeWidth=1.0;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;dashed=1;dashPattern=6 4;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="user" target="raw"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="490" y="762"/></Array></mxGeometry></mxCell><mxCell id="edge-13" value="RBAC (no keys)" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#9CA3AF;strokeWidth=1.0;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;dashed=1;dashPattern=6 4;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="wsid" target="z_azure"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="740" y="862"/></Array></mxGeometry></mxCell><mxCell id="legend" value="&lt;b&gt;Legend&lt;/b&gt;" style="rounded=1;arcSize=6;html=1;fillColor=#FFFFFF;strokeColor=#D1D5DB;fontFamily=Helvetica;fontSize=11;align=left;verticalAlign=top;spacingLeft=10;spacingTop=6;drawgenRole=legend-box;" vertex="1" parent="1"><mxGeometry x="1540" y="100" width="200" height="348" as="geometry"/></mxCell><mxCell id="legend_k_external" value="" style="rounded=1;arcSize=20;fillColor=#F3F4F6;strokeColor=#6B7280;dashed=1;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1550" y="133" width="26" height="16" as="geometry"/></mxCell><mxCell id="legend_kt_external" value="External system" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1584" y="130" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_k_step" value="" style="rounded=1;arcSize=20;fillColor=#FFFFFF;strokeColor=#374151;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1550" y="157" width="26" height="16" as="geometry"/></mxCell><mxCell id="legend_kt_step" value="Process step" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1584" y="154" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_k_worker" value="" style="rounded=1;arcSize=20;fillColor=#FFF4E0;strokeColor=#C27C0E;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1550" y="181" width="26" height="16" as="geometry"/></mxCell><mxCell id="legend_kt_worker" value="Background worker" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1584" y="178" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_k_service" value="" style="rounded=1;arcSize=20;fillColor=#E6F4EA;strokeColor=#2E7D4F;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1550" y="205" width="26" height="16" as="geometry"/></mxCell><mxCell id="legend_kt_service" value="Service" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1584" y="202" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_k_datastore" value="" style="rounded=1;arcSize=20;fillColor=#E3F2FD;strokeColor=#1E6FB8;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1550" y="229" width="26" height="16" as="geometry"/></mxCell><mxCell id="legend_kt_datastore" value="Data store" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1584" y="226" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_k_actor" value="" style="rounded=1;arcSize=20;fillColor=#E8EEF9;strokeColor=#3B5BA9;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1550" y="253" width="26" height="16" as="geometry"/></mxCell><mxCell id="legend_kt_actor" value="Person / role" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1584" y="250" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_k_ui" value="" style="rounded=1;arcSize=20;fillColor=#E0F7F6;strokeColor=#0F8A84;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1550" y="277" width="26" height="16" as="geometry"/></mxCell><mxCell id="legend_kt_ui" value="User interface" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1584" y="274" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_k_security" value="" style="rounded=1;arcSize=20;fillColor=#FDF2F8;strokeColor=#A23B72;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1550" y="301" width="26" height="16" as="geometry"/></mxCell><mxCell id="legend_kt_security" value="Security control" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1584" y="298" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_k_note" value="" style="rounded=1;arcSize=20;fillColor=#FFFBEB;strokeColor=#D4B106;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1550" y="325" width="26" height="16" as="geometry"/></mxCell><mxCell id="legend_kt_note" value="Note" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1584" y="322" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_e_data" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#1E6FB8;strokeWidth=1.5;drawgenRole=legend;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="1550" y="357" as="sourcePoint"/><mxPoint x="1576" y="357" as="targetPoint"/></mxGeometry></mxCell><mxCell id="legend_et_data" value="Data flow" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1584" y="346" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_e_async" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#B23A3A;strokeWidth=1.5;dashed=1;dashPattern=6 4;drawgenRole=legend;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="1550" y="381" as="sourcePoint"/><mxPoint x="1576" y="381" as="targetPoint"/></mxGeometry></mxCell><mxCell id="legend_et_async" value="Async / event" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1584" y="370" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_e_weak" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#9CA3AF;strokeWidth=1.0;dashed=1;dashPattern=6 4;drawgenRole=legend;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="1550" y="405" as="sourcePoint"/><mxPoint x="1576" y="405" as="targetPoint"/></mxGeometry></mxCell><mxCell id="legend_et_weak" value="Optional / manual" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1584" y="394" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_e_sync" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#374151;strokeWidth=1.5;drawgenRole=legend;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="1550" y="429" as="sourcePoint"/><mxPoint x="1576" y="429" as="targetPoint"/></mxGeometry></mxCell><mxCell id="legend_et_sync" value="Synchronous call" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1584" y="418" width="150" height="22" as="geometry"/></mxCell></root></mxGraphModel></diagram><diagram id="medallion" name="Medallion lineage - bronze &gt; silver &gt; gold"><mxGraphModel dx="1720" dy="904" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1720" pageHeight="904" background="#FFFFFF" math="0" shadow="0"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="title" value="Medallion lineage - bronze &amp;gt; silver &amp;gt; gold" style="text;html=1;fontFamily=Helvetica;fontSize=20;fontStyle=1;fontColor=#111827;align=left;verticalAlign=middle;drawgenRole=title;" vertex="1" parent="1"><mxGeometry x="30" y="20" width="1660" height="32" as="geometry"/></mxCell><mxCell id="subtitle" value="Every table is Delta in ADLS (lake container). Silver and gold are plain Spark SQL files, run in order" style="text;html=1;fontFamily=Helvetica;fontSize=12;fontColor=#4B5563;align=left;verticalAlign=top;whiteSpace=wrap;drawgenRole=title;" vertex="1" parent="1"><mxGeometry x="30" y="52" width="1660" height="36" as="geometry"/></mxCell><mxCell id="z_b" value="Bronze - raw as Delta" style="swimlane;html=1;startSize=30;rounded=1;arcSize=4;fontFamily=Helvetica;fontSize=13;fontStyle=1;fillColor=#FFFBF2;swimlaneFillColor=#FFFBF2;strokeColor=#E6C27A;fontColor=#1F2937;align=left;spacingLeft=12;collapsible=0;container=1;drawgenRole=zone;" vertex="1" parent="1"><mxGeometry x="40" y="100" width="260" height="720" as="geometry"/></mxCell><mxCell id="z_s" value="Silver - typed, de-duplicated, conformed" style="swimlane;html=1;startSize=30;rounded=1;arcSize=4;fontFamily=Helvetica;fontSize=13;fontStyle=1;fillColor=#F9FAFB;swimlaneFillColor=#F9FAFB;strokeColor=#C4C9D1;fontColor=#1F2937;align=left;spacingLeft=12;collapsible=0;container=1;drawgenRole=zone;" vertex="1" parent="1"><mxGeometry x="340" y="100" width="760" height="720" as="geometry"/></mxCell><mxCell id="z_g" value="Gold - business answers" style="swimlane;html=1;startSize=30;rounded=1;arcSize=4;fontFamily=Helvetica;fontSize=13;fontStyle=1;fillColor=#F4FAF6;swimlaneFillColor=#F4FAF6;strokeColor=#9CCBAE;fontColor=#1F2937;align=left;spacingLeft=12;collapsible=0;container=1;drawgenRole=zone;" vertex="1" parent="1"><mxGeometry x="1140" y="100" width="300" height="720" as="geometry"/></mxCell><mxCell id="b_part" value="&lt;b&gt;participants&lt;/b&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E3F2FD;strokeColor=#1E6FB8;fontColor=#0B2A47;strokeWidth=1.5;shape=cylinder3;boundedLbl=1;size=10;drawgenRole=node;" vertex="1" parent="z_b"><mxGeometry x="40" y="60" width="180" height="60" as="geometry"/></mxCell><mxCell id="b_svc" value="&lt;b&gt;service_types&lt;/b&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E3F2FD;strokeColor=#1E6FB8;fontColor=#0B2A47;strokeWidth=1.5;shape=cylinder3;boundedLbl=1;size=10;drawgenRole=node;" vertex="1" parent="z_b"><mxGeometry x="40" y="150" width="180" height="60" as="geometry"/></mxCell><mxCell id="b_book" value="&lt;b&gt;bookings&lt;/b&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E3F2FD;strokeColor=#1E6FB8;fontColor=#0B2A47;strokeWidth=1.5;shape=cylinder3;boundedLbl=1;size=10;drawgenRole=node;" vertex="1" parent="z_b"><mxGeometry x="40" y="240" width="180" height="60" as="geometry"/></mxCell><mxCell id="b_ev" value="&lt;b&gt;visit_events&lt;/b&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E3F2FD;strokeColor=#1E6FB8;fontColor=#0B2A47;strokeWidth=1.5;shape=cylinder3;boundedLbl=1;size=10;drawgenRole=node;" vertex="1" parent="z_b"><mxGeometry x="40" y="330" width="180" height="60" as="geometry"/></mxCell><mxCell id="b_wk" value="&lt;b&gt;workers&lt;/b&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E3F2FD;strokeColor=#1E6FB8;fontColor=#0B2A47;strokeWidth=1.5;shape=cylinder3;boundedLbl=1;size=10;drawgenRole=node;" vertex="1" parent="z_b"><mxGeometry x="40" y="420" width="180" height="60" as="geometry"/></mxCell><mxCell id="b_inv" value="&lt;b&gt;invoices&lt;/b&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E3F2FD;strokeColor=#1E6FB8;fontColor=#0B2A47;strokeWidth=1.5;shape=cylinder3;boundedLbl=1;size=10;drawgenRole=node;" vertex="1" parent="z_b"><mxGeometry x="40" y="510" width="180" height="60" as="geometry"/></mxCell><mxCell id="b_prov" value="&lt;b&gt;providers&lt;/b&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E3F2FD;strokeColor=#1E6FB8;fontColor=#0B2A47;strokeWidth=1.5;shape=cylinder3;boundedLbl=1;size=10;drawgenRole=node;" vertex="1" parent="z_b"><mxGeometry x="40" y="600" width="180" height="60" as="geometry"/></mxCell><mxCell id="s_part" value="&lt;b&gt;01 participants&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;budget as DOUBLE&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FFFFFF;strokeColor=#374151;fontColor=#111827;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_s"><mxGeometry x="40" y="60" width="200" height="60" as="geometry"/></mxCell><mxCell id="s_svc" value="&lt;b&gt;04 service_types&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;price caps&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FFFFFF;strokeColor=#374151;fontColor=#111827;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_s"><mxGeometry x="40" y="150" width="200" height="60" as="geometry"/></mxCell><mxCell id="s_book" value="&lt;b&gt;05 bookings&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;latest version per booking&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FFFFFF;strokeColor=#374151;fontColor=#111827;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_s"><mxGeometry x="40" y="240" width="200" height="60" as="geometry"/></mxCell><mxCell id="s_ev" value="&lt;b&gt;06 visit_events&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;drop mobile retries&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FFFFFF;strokeColor=#374151;fontColor=#111827;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_s"><mxGeometry x="40" y="330" width="200" height="60" as="geometry"/></mxCell><mxCell id="s_wk" value="&lt;b&gt;02 workers&lt;/b&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FFFFFF;strokeColor=#374151;fontColor=#111827;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_s"><mxGeometry x="40" y="420" width="200" height="60" as="geometry"/></mxCell><mxCell id="s_inv" value="&lt;b&gt;08 invoices&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;AU dates, duplicate / cap flags&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FFFFFF;strokeColor=#374151;fontColor=#111827;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_s"><mxGeometry x="40" y="510" width="200" height="60" as="geometry"/></mxCell><mxCell id="s_prov" value="&lt;b&gt;03 providers&lt;/b&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FFFFFF;strokeColor=#374151;fontColor=#111827;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_s"><mxGeometry x="40" y="600" width="200" height="60" as="geometry"/></mxCell><mxCell id="s_visits" value="&lt;b&gt;07 visits&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;on_time / late / missed / future + cost&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FFFFFF;strokeColor=#374151;fontColor=#111827;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_s"><mxGeometry x="300" y="275" width="220" height="70" as="geometry"/></mxCell><mxCell id="s_spend" value="&lt;b&gt;09 spend&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;visits + accepted invoices&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FFFFFF;strokeColor=#374151;fontColor=#111827;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_s"><mxGeometry x="520" y="500" width="200" height="64" as="geometry"/></mxCell><mxCell id="g_budget" value="&lt;b&gt;budget_utilisation&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;forecast vs budget per quarter&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E3F2FD;strokeColor=#1E6FB8;fontColor=#0B2A47;strokeWidth=1.5;shape=cylinder3;boundedLbl=1;size=10;drawgenRole=node;" vertex="1" parent="z_g"><mxGeometry x="30" y="70" width="240" height="80" as="geometry"/></mxCell><mxCell id="g_rel" value="&lt;b&gt;visit_reliability&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;daily by region + service&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E3F2FD;strokeColor=#1E6FB8;fontColor=#0B2A47;strokeWidth=1.5;shape=cylinder3;boundedLbl=1;size=10;drawgenRole=node;" vertex="1" parent="z_g"><mxGeometry x="30" y="250" width="240" height="80" as="geometry"/></mxCell><mxCell id="g_punct" value="&lt;b&gt;worker_punctuality&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;late rate, needs_review flag&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E3F2FD;strokeColor=#1E6FB8;fontColor=#0B2A47;strokeWidth=1.5;shape=cylinder3;boundedLbl=1;size=10;drawgenRole=node;" vertex="1" parent="z_g"><mxGeometry x="30" y="390" width="240" height="80" as="geometry"/></mxCell><mxCell id="g_exc" value="&lt;b&gt;invoice_exceptions&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;one row per problem + $ at risk&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E3F2FD;strokeColor=#1E6FB8;fontColor=#0B2A47;strokeWidth=1.5;shape=cylinder3;boundedLbl=1;size=10;drawgenRole=node;" vertex="1" parent="z_g"><mxGeometry x="30" y="605" width="240" height="80" as="geometry"/></mxCell><mxCell id="t_note" value="Budget forecast = spend to date + in-house visits already booked + invoices at current run rate. Lookups to participants / service_types not all drawn." style="text;html=1;fontFamily=Helvetica;fontSize=11;fontStyle=0;fontColor=#4B5563;align=left;verticalAlign=middle;whiteSpace=wrap;drawgenRole=text;" vertex="1" parent="1"><mxGeometry x="40" y="840" width="1400" height="24" as="geometry"/></mxCell><mxCell id="edge-1" value="" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;drawgenRole=edge;" edge="1" parent="1" source="b_part" target="s_part"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-2" value="" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;drawgenRole=edge;" edge="1" parent="1" source="b_svc" target="s_svc"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-3" value="" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;drawgenRole=edge;" edge="1" parent="1" source="b_book" target="s_book"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-4" value="" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;drawgenRole=edge;" edge="1" parent="1" source="b_ev" target="s_ev"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-5" value="" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;drawgenRole=edge;" edge="1" parent="1" source="b_wk" target="s_wk"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-6" value="" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;drawgenRole=edge;" edge="1" parent="1" source="b_inv" target="s_inv"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-7" value="" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;drawgenRole=edge;" edge="1" parent="1" source="b_prov" target="s_prov"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-8" value="" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="s_book" target="s_visits"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-9" value="" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="s_ev" target="s_visits"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-10" value="price cap" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#9CA3AF;strokeWidth=1.0;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;dashed=1;dashPattern=6 4;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="s_svc" target="s_visits"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="750" y="280"/></Array></mxGeometry></mxCell><mxCell id="edge-11" value="delivered visits" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="s_visits" target="s_spend"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="750" y="632"/></Array></mxGeometry></mxCell><mxCell id="edge-12" value="accepted amount" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="s_inv" target="s_spend"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-13" value="quarterly budget" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="s_part" target="g_budget"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="1100" y="190"/></Array></mxGeometry></mxCell><mxCell id="edge-14" value="spend to date" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="s_spend" target="g_budget"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="960" y="300"/><mxPoint x="1290" y="300"/></Array></mxGeometry></mxCell><mxCell id="edge-15" value="status per visit" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="s_visits" target="g_rel"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-16" value="per worker" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="s_visits" target="g_punct"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="1000" y="410"/><mxPoint x="1000" y="530"/></Array></mxGeometry></mxCell><mxCell id="edge-17" value="home region" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#9CA3AF;strokeWidth=1.0;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;dashed=1;dashPattern=6 4;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="s_wk" target="g_punct"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="620" y="550"/><mxPoint x="620" y="585"/><mxPoint x="1290" y="585"/></Array></mxGeometry></mxCell><mxCell id="edge-18" value="flagged invoices" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="s_inv" target="g_exc"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="610" y="640"/><mxPoint x="610" y="685"/><mxPoint x="1290" y="685"/></Array></mxGeometry></mxCell><mxCell id="edge-19" value="provider name" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#9CA3AF;strokeWidth=1.0;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;dashed=1;dashPattern=6 4;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="s_prov" target="g_exc"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="legend" value="&lt;b&gt;Legend&lt;/b&gt;" style="rounded=1;arcSize=6;html=1;fillColor=#FFFFFF;strokeColor=#D1D5DB;fontFamily=Helvetica;fontSize=11;align=left;verticalAlign=top;spacingLeft=10;spacingTop=6;drawgenRole=legend-box;" vertex="1" parent="1"><mxGeometry x="1480" y="100" width="200" height="132" as="geometry"/></mxCell><mxCell id="legend_k_datastore" value="" style="rounded=1;arcSize=20;fillColor=#E3F2FD;strokeColor=#1E6FB8;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1490" y="133" width="26" height="16" as="geometry"/></mxCell><mxCell id="legend_kt_datastore" value="Data store" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1524" y="130" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_k_step" value="" style="rounded=1;arcSize=20;fillColor=#FFFFFF;strokeColor=#374151;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1490" y="157" width="26" height="16" as="geometry"/></mxCell><mxCell id="legend_kt_step" value="Process step" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1524" y="154" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_e_data" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#1E6FB8;strokeWidth=1.5;drawgenRole=legend;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="1490" y="189" as="sourcePoint"/><mxPoint x="1516" y="189" as="targetPoint"/></mxGeometry></mxCell><mxCell id="legend_et_data" value="Data flow" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1524" y="178" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_e_weak" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#9CA3AF;strokeWidth=1.0;dashed=1;dashPattern=6 4;drawgenRole=legend;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="1490" y="213" as="sourcePoint"/><mxPoint x="1516" y="213" as="targetPoint"/></mxGeometry></mxCell><mxCell id="legend_et_weak" value="Optional / manual" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1524" y="202" width="150" height="22" as="geometry"/></mxCell></root></mxGraphModel></diagram><diagram id="deployment" name="Deployment and identity"><mxGraphModel dx="1580" dy="820" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1580" pageHeight="820" background="#FFFFFF" math="0" shadow="0"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="title" value="Deployment and identity" style="text;html=1;fontFamily=Helvetica;fontSize=20;fontStyle=1;fontColor=#111827;align=left;verticalAlign=middle;drawgenRole=title;" vertex="1" parent="1"><mxGeometry x="30" y="20" width="1520" height="32" as="geometry"/></mxCell><mxCell id="subtitle" value="What each script creates, how it authenticates, and where the POC is blocked today" style="text;html=1;fontFamily=Helvetica;fontSize=12;fontColor=#4B5563;align=left;verticalAlign=top;whiteSpace=wrap;drawgenRole=title;" vertex="1" parent="1"><mxGeometry x="30" y="52" width="1520" height="36" as="geometry"/></mxCell><mxCell id="z_dev" value="Developer workstation" style="swimlane;html=1;startSize=30;rounded=1;arcSize=4;fontFamily=Helvetica;fontSize=13;fontStyle=1;fillColor=#F9FAFB;swimlaneFillColor=#F9FAFB;strokeColor=#C4C9D1;fontColor=#1F2937;align=left;spacingLeft=12;collapsible=0;container=1;drawgenRole=zone;" vertex="1" parent="1"><mxGeometry x="40" y="100" width="280" height="520" as="geometry"/></mxCell><mxCell id="z_arm" value="Azure subscription - rg-care-insights-poc" style="swimlane;html=1;startSize=30;rounded=1;arcSize=4;fontFamily=Helvetica;fontSize=13;fontStyle=1;fillColor=#F5F8FE;swimlaneFillColor=#F5F8FE;strokeColor=#9DB4E3;fontColor=#1F2937;align=left;spacingLeft=12;collapsible=0;container=1;drawgenRole=zone;" vertex="1" parent="1"><mxGeometry x="400" y="100" width="520" height="330" as="geometry"/></mxCell><mxCell id="z_fab" value="Microsoft Fabric (not yet provisioned)" style="swimlane;html=1;startSize=30;rounded=1;arcSize=4;fontFamily=Helvetica;fontSize=13;fontStyle=1;fillColor=#FAF5FE;swimlaneFillColor=#FAF5FE;strokeColor=#C9A8EC;fontColor=#1F2937;align=left;spacingLeft=12;collapsible=0;container=1;drawgenRole=zone;" vertex="1" parent="1"><mxGeometry x="400" y="480" width="520" height="300" as="geometry"/></mxCell><mxCell id="z_entra" value="Entra ID tenant" style="swimlane;html=1;startSize=30;rounded=1;arcSize=4;fontFamily=Helvetica;fontSize=13;fontStyle=1;fillColor=#FEF7F7;swimlaneFillColor=#FEF7F7;strokeColor=#E5A3A3;fontColor=#1F2937;align=left;spacingLeft=12;collapsible=0;container=1;drawgenRole=zone;" vertex="1" parent="1"><mxGeometry x="1000" y="100" width="300" height="660" as="geometry"/></mxCell><mxCell id="d_infra" value="&lt;b&gt;infra/deploy.ps1&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;Bicep + pause capacity&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FFFFFF;strokeColor=#374151;fontColor=#111827;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_dev"><mxGeometry x="30" y="50" width="220" height="64" as="geometry"/></mxCell><mxCell id="d_upload" value="&lt;b&gt;infra/upload-data.ps1&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;azcopy - Entra login&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FFFFFF;strokeColor=#374151;fontColor=#111827;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_dev"><mxGeometry x="30" y="160" width="220" height="64" as="geometry"/></mxCell><mxCell id="d_cap" value="&lt;b&gt;infra/capacity.ps1&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;status / resume / suspend&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FFFFFF;strokeColor=#374151;fontColor=#111827;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_dev"><mxGeometry x="30" y="270" width="220" height="64" as="geometry"/></mxCell><mxCell id="d_fabric" value="&lt;b&gt;fabric/deploy-fabric.ps1&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;Fabric REST API&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FFFFFF;strokeColor=#374151;fontColor=#111827;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_dev"><mxGeometry x="30" y="440" width="220" height="64" as="geometry"/></mxCell><mxCell id="a_st" value="&lt;b&gt;Storage account&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;ADLS Gen2 - raw + lake - TLS 1.2&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E3F2FD;strokeColor=#1E6FB8;fontColor=#0B2A47;strokeWidth=1.5;shape=cylinder3;boundedLbl=1;size=10;drawgenRole=node;" vertex="1" parent="z_arm"><mxGeometry x="40" y="60" width="200" height="90" as="geometry"/></mxCell><mxCell id="a_cap" value="&lt;b&gt;Fabric capacity F2&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;FAILED: tenant not signed up&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E6F4EA;strokeColor=#2E7D4F;fontColor=#14361F;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_arm"><mxGeometry x="290" y="200" width="200" height="64" as="geometry"/></mxCell><mxCell id="a_rbac" value="&lt;b&gt;RBAC on storage&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;Storage Blob Data Contributor&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FDF2F8;strokeColor=#A23B72;fontColor=#4A1030;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_arm"><mxGeometry x="290" y="70" width="200" height="64" as="geometry"/></mxCell><mxCell id="f_ws" value="&lt;b&gt;Workspace + lakehouse&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;care-insights-poc / lh_care&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E6F4EA;strokeColor=#2E7D4F;fontColor=#14361F;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_fab"><mxGeometry x="40" y="60" width="200" height="64" as="geometry"/></mxCell><mxCell id="f_conn" value="&lt;b&gt;ADLS connections + shortcuts&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;workspace identity creds&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E6F4EA;strokeColor=#2E7D4F;fontColor=#14361F;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_fab"><mxGeometry x="290" y="60" width="200" height="64" as="geometry"/></mxCell><mxCell id="f_nb" value="&lt;b&gt;Notebook + run + schedule&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;RunNotebook job&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FFF4E0;strokeColor=#C27C0E;fontColor=#4A2F05;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_fab"><mxGeometry x="40" y="190" width="200" height="64" as="geometry"/></mxCell><mxCell id="f_tbl" value="&lt;b&gt;Gold table shortcuts&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;SQL endpoint&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E6F4EA;strokeColor=#2E7D4F;fontColor=#14361F;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_fab"><mxGeometry x="290" y="190" width="200" height="64" as="geometry"/></mxCell><mxCell id="e_user" value="&lt;b&gt;itauditor (CLI user)&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;Owner on subscription&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E8EEF9;strokeColor=#3B5BA9;fontColor=#1F2A44;strokeWidth=1.5;rounded=1;arcSize=50;drawgenRole=node;" vertex="1" parent="z_entra"><mxGeometry x="90" y="50" width="120" height="80" as="geometry"/></mxCell><mxCell id="e_pbi" value="&lt;b&gt;Power BI Service app&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;DISABLED - Fabric runs on it&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FDF2F8;strokeColor=#A23B72;fontColor=#4A1030;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_entra"><mxGeometry x="40" y="200" width="220" height="70" as="geometry"/></mxCell><mxCell id="e_admin" value="&lt;b&gt;Fix - Entra admin&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:11px&quot; color=&quot;#3D3000&quot;&gt;enable app + sign up for Fabric&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FFFBEB;strokeColor=#D4B106;fontColor=#3D3000;strokeWidth=1.5;shape=note;size=14;align=left;spacingLeft=8;spacingRight=8;drawgenRole=node;" vertex="1" parent="z_entra"><mxGeometry x="40" y="330" width="220" height="70" as="geometry"/></mxCell><mxCell id="e_wsid" value="&lt;b&gt;Workspace identity&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;service principal per workspace&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FDF2F8;strokeColor=#A23B72;fontColor=#4A1030;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_entra"><mxGeometry x="40" y="440" width="220" height="64" as="geometry"/></mxCell><mxCell id="edge-1" value="az deployment group create" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#374151;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="d_infra" target="a_st"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-2" value="create + suspend" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#9CA3AF;strokeWidth=1.0;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;dashed=1;dashPattern=6 4;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="d_infra" target="a_cap"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="180" y="88"/><mxPoint x="960" y="88"/><mxPoint x="960" y="332"/></Array></mxGeometry></mxCell><mxCell id="edge-3" value="raw files + SQL" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="d_upload" target="a_st"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="540" y="292"/></Array></mxGeometry></mxCell><mxCell id="edge-4" value="resume / suspend" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#9CA3AF;strokeWidth=1.0;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;dashed=1;dashPattern=6 4;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="d_cap" target="a_cap"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="660" y="402"/><mxPoint x="660" y="332"/></Array></mxGeometry></mxCell><mxCell id="edge-5" value="REST + Fabric token" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#374151;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="d_fabric" target="f_ws"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-6" value="" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#374151;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;drawgenRole=edge;" edge="1" parent="1" source="f_ws" target="f_conn"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-7" value="" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#374151;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;drawgenRole=edge;" edge="1" parent="1" source="f_ws" target="f_nb"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-8" value="" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#374151;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;drawgenRole=edge;" edge="1" parent="1" source="f_nb" target="f_tbl"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-9" value="shortcuts" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="f_conn" target="a_st"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="790" y="455"/><mxPoint x="665" y="455"/><mxPoint x="665" y="205"/></Array></mxGeometry></mxCell><mxCell id="edge-10" value="token blocked (AADSTS500014)" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#B23A3A;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;dashed=1;dashPattern=6 4;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="e_pbi" target="z_fab"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="945" y="335"/><mxPoint x="945" y="630"/></Array></mxGeometry></mxCell><mxCell id="edge-11" value="unblock" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#9CA3AF;strokeWidth=1.0;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;dashed=1;dashPattern=6 4;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="e_admin" target="e_pbi"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-12" value="role assignments" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#9CA3AF;strokeWidth=1.0;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;dashed=1;dashPattern=6 4;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="e_user" target="a_rbac"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-13" value="credentials" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#9CA3AF;strokeWidth=1.0;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;dashed=1;dashPattern=6 4;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="e_wsid" target="f_conn"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="legend" value="&lt;b&gt;Legend&lt;/b&gt;" style="rounded=1;arcSize=6;html=1;fillColor=#FFFFFF;strokeColor=#D1D5DB;fontFamily=Helvetica;fontSize=11;align=left;verticalAlign=top;spacingLeft=10;spacingTop=6;drawgenRole=legend-box;" vertex="1" parent="1"><mxGeometry x="1340" y="100" width="200" height="300" as="geometry"/></mxCell><mxCell id="legend_k_step" value="" style="rounded=1;arcSize=20;fillColor=#FFFFFF;strokeColor=#374151;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1350" y="133" width="26" height="16" as="geometry"/></mxCell><mxCell id="legend_kt_step" value="Process step" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1384" y="130" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_k_datastore" value="" style="rounded=1;arcSize=20;fillColor=#E3F2FD;strokeColor=#1E6FB8;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1350" y="157" width="26" height="16" as="geometry"/></mxCell><mxCell id="legend_kt_datastore" value="Data store" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1384" y="154" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_k_service" value="" style="rounded=1;arcSize=20;fillColor=#E6F4EA;strokeColor=#2E7D4F;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1350" y="181" width="26" height="16" as="geometry"/></mxCell><mxCell id="legend_kt_service" value="Service" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1384" y="178" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_k_security" value="" style="rounded=1;arcSize=20;fillColor=#FDF2F8;strokeColor=#A23B72;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1350" y="205" width="26" height="16" as="geometry"/></mxCell><mxCell id="legend_kt_security" value="Security control" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1384" y="202" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_k_worker" value="" style="rounded=1;arcSize=20;fillColor=#FFF4E0;strokeColor=#C27C0E;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1350" y="229" width="26" height="16" as="geometry"/></mxCell><mxCell id="legend_kt_worker" value="Background worker" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1384" y="226" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_k_actor" value="" style="rounded=1;arcSize=20;fillColor=#E8EEF9;strokeColor=#3B5BA9;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1350" y="253" width="26" height="16" as="geometry"/></mxCell><mxCell id="legend_kt_actor" value="Person / role" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1384" y="250" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_k_note" value="" style="rounded=1;arcSize=20;fillColor=#FFFBEB;strokeColor=#D4B106;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1350" y="277" width="26" height="16" as="geometry"/></mxCell><mxCell id="legend_kt_note" value="Note" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1384" y="274" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_e_sync" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#374151;strokeWidth=1.5;drawgenRole=legend;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="1350" y="309" as="sourcePoint"/><mxPoint x="1376" y="309" as="targetPoint"/></mxGeometry></mxCell><mxCell id="legend_et_sync" value="Synchronous call" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1384" y="298" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_e_weak" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#9CA3AF;strokeWidth=1.0;dashed=1;dashPattern=6 4;drawgenRole=legend;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="1350" y="333" as="sourcePoint"/><mxPoint x="1376" y="333" as="targetPoint"/></mxGeometry></mxCell><mxCell id="legend_et_weak" value="Optional / manual" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1384" y="322" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_e_data" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#1E6FB8;strokeWidth=1.5;drawgenRole=legend;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="1350" y="357" as="sourcePoint"/><mxPoint x="1376" y="357" as="targetPoint"/></mxGeometry></mxCell><mxCell id="legend_et_data" value="Data flow" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1384" y="346" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_e_async" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#B23A3A;strokeWidth=1.5;dashed=1;dashPattern=6 4;drawgenRole=legend;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="1350" y="381" as="sourcePoint"/><mxPoint x="1376" y="381" as="targetPoint"/></mxGeometry></mxCell><mxCell id="legend_et_async" value="Async / event" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1384" y="370" width="150" height="22" as="geometry"/></mxCell></root></mxGraphModel></diagram><diagram id="devloop" name="Same SQL, two engines"><mxGraphModel dx="1760" dy="700" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1760" pageHeight="700" background="#FFFFFF" math="0" shadow="0"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="title" value="Same SQL, two engines" style="text;html=1;fontFamily=Helvetica;fontSize=20;fontStyle=1;fontColor=#111827;align=left;verticalAlign=middle;drawgenRole=title;" vertex="1" parent="1"><mxGeometry x="30" y="20" width="1700" height="32" as="geometry"/></mxCell><mxCell id="subtitle" value="Transform logic is tested on a laptop with DuckDB before it runs on Fabric Spark" style="text;html=1;fontFamily=Helvetica;fontSize=12;fontColor=#4B5563;align=left;verticalAlign=top;whiteSpace=wrap;drawgenRole=title;" vertex="1" parent="1"><mxGeometry x="30" y="52" width="1700" height="36" as="geometry"/></mxCell><mxCell id="z_local" value="Local - no cloud cost" style="swimlane;html=1;startSize=30;rounded=1;arcSize=4;fontFamily=Helvetica;fontSize=13;fontStyle=1;fillColor=#F4FAF6;swimlaneFillColor=#F4FAF6;strokeColor=#9CCBAE;fontColor=#1F2937;align=left;spacingLeft=12;collapsible=0;container=1;drawgenRole=zone;" vertex="1" parent="1"><mxGeometry x="40" y="100" width="1440" height="210" as="geometry"/></mxCell><mxCell id="z_cloud" value="Cloud - ADLS Gen2 + Microsoft Fabric" style="swimlane;html=1;startSize=30;rounded=1;arcSize=4;fontFamily=Helvetica;fontSize=13;fontStyle=1;fillColor=#F5F8FE;swimlaneFillColor=#F5F8FE;strokeColor=#9DB4E3;fontColor=#1F2937;align=left;spacingLeft=12;collapsible=0;container=1;drawgenRole=zone;" vertex="1" parent="1"><mxGeometry x="40" y="450" width="1440" height="210" as="geometry"/></mxCell><mxCell id="gen" value="&lt;b&gt;datagen/generate.py&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;synthetic files + planted problems&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FFF4E0;strokeColor=#C27C0E;fontColor=#4A2F05;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_local"><mxGeometry x="40" y="80" width="210" height="70" as="geometry"/></mxCell><mxCell id="lraw" value="&lt;b&gt;data/raw&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;CSV + JSON Lines&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E3F2FD;strokeColor=#1E6FB8;fontColor=#0B2A47;strokeWidth=1.5;shape=cylinder3;boundedLbl=1;size=10;drawgenRole=node;" vertex="1" parent="z_local"><mxGeometry x="340" y="70" width="160" height="90" as="geometry"/></mxCell><mxCell id="runl" value="&lt;b&gt;transform/run_local.py&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;DuckDB + sqlglot (spark &amp;gt; duckdb)&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FFF4E0;strokeColor=#C27C0E;fontColor=#4A2F05;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_local"><mxGeometry x="600" y="80" width="240" height="70" as="geometry"/></mxCell><mxCell id="lgold" value="&lt;b&gt;data/lake&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;silver + gold Parquet&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E3F2FD;strokeColor=#1E6FB8;fontColor=#0B2A47;strokeWidth=1.5;shape=cylinder3;boundedLbl=1;size=10;drawgenRole=node;" vertex="1" parent="z_local"><mxGeometry x="940" y="70" width="160" height="90" as="geometry"/></mxCell><mxCell id="dash_l" value="&lt;b&gt;Dashboard&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;CARE_SOURCE=local&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E0F7F6;strokeColor=#0F8A84;fontColor=#073B38;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_local"><mxGeometry x="1200" y="80" width="200" height="70" as="geometry"/></mxCell><mxCell id="sqlf" value="&lt;b&gt;transform/sql/*.sql&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:11px&quot; color=&quot;#3D3000&quot;&gt;Spark SQL - the single source of logic&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FFFBEB;strokeColor=#D4B106;fontColor=#3D3000;strokeWidth=1.5;shape=note;size=14;align=left;spacingLeft=8;spacingRight=8;drawgenRole=node;" vertex="1" parent="1"><mxGeometry x="640" y="350" width="240" height="60" as="geometry"/></mxCell><mxCell id="craw" value="&lt;b&gt;ADLS raw&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;landing zone&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E3F2FD;strokeColor=#1E6FB8;fontColor=#0B2A47;strokeWidth=1.5;shape=cylinder3;boundedLbl=1;size=10;drawgenRole=node;" vertex="1" parent="z_cloud"><mxGeometry x="340" y="70" width="160" height="90" as="geometry"/></mxCell><mxCell id="fnb" value="&lt;b&gt;Fabric notebook&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;Spark SQL on F2 capacity&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#FFF4E0;strokeColor=#C27C0E;fontColor=#4A2F05;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_cloud"><mxGeometry x="600" y="80" width="240" height="70" as="geometry"/></mxCell><mxCell id="cgold" value="&lt;b&gt;ADLS lake&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;bronze / silver / gold Delta&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E3F2FD;strokeColor=#1E6FB8;fontColor=#0B2A47;strokeWidth=1.5;shape=cylinder3;boundedLbl=1;size=10;drawgenRole=node;" vertex="1" parent="z_cloud"><mxGeometry x="940" y="70" width="160" height="90" as="geometry"/></mxCell><mxCell id="dash_c" value="&lt;b&gt;Dashboard&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px&quot; color=&quot;#4B5563&quot;&gt;CARE_SOURCE=adls&lt;/font&gt;" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=12;fillColor=#E0F7F6;strokeColor=#0F8A84;fontColor=#073B38;strokeWidth=1.5;rounded=1;arcSize=12;drawgenRole=node;" vertex="1" parent="z_cloud"><mxGeometry x="1200" y="80" width="200" height="70" as="geometry"/></mxCell><mxCell id="edge-1" value="" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;drawgenRole=edge;" edge="1" parent="1" source="gen" target="lraw"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-2" value="bronze" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;drawgenRole=edge;" edge="1" parent="1" source="lraw" target="runl"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-3" value="COPY parquet" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;drawgenRole=edge;" edge="1" parent="1" source="runl" target="lgold"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-4" value="read_parquet" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;drawgenRole=edge;" edge="1" parent="1" source="lgold" target="dash_l"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-5" value="transpiled" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#9CA3AF;strokeWidth=1.0;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;dashed=1;dashPattern=6 4;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="sqlf" target="runl"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-6" value="as-is (lake/_pipeline)" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#9CA3AF;strokeWidth=1.0;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;dashed=1;dashPattern=6 4;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="sqlf" target="fnb"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-7" value="upload-data.ps1" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;drawgenRole=edge;" edge="1" parent="1" source="lraw" target="craw"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-8" value="bronze" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;drawgenRole=edge;" edge="1" parent="1" source="craw" target="fnb"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-9" value="Delta" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;drawgenRole=edge;" edge="1" parent="1" source="fnb" target="cgold"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="edge-10" value="delta_scan" style="html=1;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;fontFamily=Helvetica;fontSize=10;fontColor=#374151;strokeColor=#1E6FB8;strokeWidth=1.5;endArrow=block;endFill=1;labelBackgroundColor=#FFFFFF;drawgenRole=edge;" edge="1" parent="1" source="cgold" target="dash_c"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="legend" value="&lt;b&gt;Legend&lt;/b&gt;" style="rounded=1;arcSize=6;html=1;fillColor=#FFFFFF;strokeColor=#D1D5DB;fontFamily=Helvetica;fontSize=11;align=left;verticalAlign=top;spacingLeft=10;spacingTop=6;drawgenRole=legend-box;" vertex="1" parent="1"><mxGeometry x="1520" y="100" width="200" height="180" as="geometry"/></mxCell><mxCell id="legend_k_worker" value="" style="rounded=1;arcSize=20;fillColor=#FFF4E0;strokeColor=#C27C0E;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1530" y="133" width="26" height="16" as="geometry"/></mxCell><mxCell id="legend_kt_worker" value="Background worker" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1564" y="130" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_k_datastore" value="" style="rounded=1;arcSize=20;fillColor=#E3F2FD;strokeColor=#1E6FB8;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1530" y="157" width="26" height="16" as="geometry"/></mxCell><mxCell id="legend_kt_datastore" value="Data store" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1564" y="154" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_k_ui" value="" style="rounded=1;arcSize=20;fillColor=#E0F7F6;strokeColor=#0F8A84;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1530" y="181" width="26" height="16" as="geometry"/></mxCell><mxCell id="legend_kt_ui" value="User interface" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1564" y="178" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_k_note" value="" style="rounded=1;arcSize=20;fillColor=#FFFBEB;strokeColor=#D4B106;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1530" y="205" width="26" height="16" as="geometry"/></mxCell><mxCell id="legend_kt_note" value="Note" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1564" y="202" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_e_data" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#1E6FB8;strokeWidth=1.5;drawgenRole=legend;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="1530" y="237" as="sourcePoint"/><mxPoint x="1556" y="237" as="targetPoint"/></mxGeometry></mxCell><mxCell id="legend_et_data" value="Data flow" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1564" y="226" width="150" height="22" as="geometry"/></mxCell><mxCell id="legend_e_weak" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#9CA3AF;strokeWidth=1.0;dashed=1;dashPattern=6 4;drawgenRole=legend;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="1530" y="261" as="sourcePoint"/><mxPoint x="1556" y="261" as="targetPoint"/></mxGeometry></mxCell><mxCell id="legend_et_weak" value="Optional / manual" style="text;html=1;fontFamily=Helvetica;fontSize=10;fontColor=#4B5563;align=left;verticalAlign=middle;drawgenRole=legend;" vertex="1" parent="1"><mxGeometry x="1564" y="250" width="150" height="22" as="geometry"/></mxCell></root></mxGraphModel></diagram></mxfile>
