<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="drawio" version="26.0.0">
  <diagram name="Ignium-Request-Hysteresis">
    <mxGraphModel dx="1500" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1500" pageHeight="900" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />

        <mxCell id="title" value="Ignium-Request Hysteresis Circuit" style="text;html=1;align=center;verticalAlign=middle;fontSize=22;fontStyle=1;" vertex="1" parent="1">
          <mxGeometry x="150" y="30" width="1200" height="35" as="geometry" />
        </mxCell>
        <mxCell id="subtitle" value="Drives the train dispatch signal I from local buffer level — all data cabling stays at the drop-off site" style="text;html=1;align=center;verticalAlign=middle;fontSize=14;fontColor=#666666;fontStyle=2;" vertex="1" parent="1">
          <mxGeometry x="150" y="68" width="1200" height="25" as="geometry" />
        </mxCell>

        <mxCell id="container" value="LOCAL DATA NETWORK — drop-off A site" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f9f9fb;strokeColor=#9aa3b2;dashed=1;fontSize=11;fontStyle=1;verticalAlign=top;align=left;spacingLeft=14;spacingTop=8;fontColor=#666666;" vertex="1" parent="1">
          <mxGeometry x="120" y="120" width="1260" height="540" as="geometry" />
        </mxCell>

        <mxCell id="buffer" value="Ignium Buffer&#xa;(broadcasts item count)" style="shape=cylinder3;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=13;fontStyle=1;" vertex="1" parent="1">
          <mxGeometry x="600" y="170" width="200" height="80" as="geometry" />
        </mxCell>

        <mxCell id="eval1" value="Eval 1 — Request&#xa;&#xa;condition:&#xa;Ignium ≤ 200" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=13;fontStyle=1;verticalAlign=middle;" vertex="1" parent="1">
          <mxGeometry x="290" y="320" width="240" height="110" as="geometry" />
        </mxCell>
        <mxCell id="eval2" value="Eval 2 — Satisfied&#xa;&#xa;condition:&#xa;Ignium ≥ 1000" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=13;fontStyle=1;verticalAlign=middle;" vertex="1" parent="1">
          <mxGeometry x="870" y="320" width="240" height="110" as="geometry" />
        </mxCell>

        <mxCell id="memcell" value="Memory Cell&#xa;&#xa;red input  = SET  (I → 1)&#xa;green input = RESET (I → 0)&#xa;output: I" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontSize=13;fontStyle=1;verticalAlign=middle;" vertex="1" parent="1">
          <mxGeometry x="500" y="490" width="400" height="120" as="geometry" />
        </mxCell>

        <mxCell id="station" value="Drop-off A Station&#xa;&#xa;enable input ← I" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=13;fontStyle=1;verticalAlign=middle;" vertex="1" parent="1">
          <mxGeometry x="150" y="700" width="280" height="100" as="geometry" />
        </mxCell>
        <mxCell id="train" value="Train at Drop-off A&#xa;&#xa;wait until (cargo empty  AND  I = 1)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=13;fontStyle=1;verticalAlign=middle;" vertex="1" parent="1">
          <mxGeometry x="970" y="700" width="380" height="100" as="geometry" />
        </mxCell>

        <mxCell id="ed_buf_e1" value="item count" style="endArrow=classic;html=1;rounded=1;strokeColor=#6c8ebf;strokeWidth=2;fontSize=11;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="buffer" target="eval1">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="410" y="290" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="ed_buf_e2" value="item count" style="endArrow=classic;html=1;rounded=1;strokeColor=#6c8ebf;strokeWidth=2;fontSize=11;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="buffer" target="eval2">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="990" y="290" />
            </Array>
          </mxGeometry>
        </mxCell>

        <mxCell id="ed_e1_mem" value="SET (red)" style="endArrow=classic;html=1;rounded=1;strokeColor=#b85450;strokeWidth=3;fontSize=12;fontStyle=1;fontColor=#b85450;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="eval1" target="memcell">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="410" y="460" />
              <mxPoint x="600" y="460" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="ed_e2_mem" value="RESET (green)" style="endArrow=classic;html=1;rounded=1;strokeColor=#82b366;strokeWidth=3;fontSize=12;fontStyle=1;fontColor=#5a8a44;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="eval2" target="memcell">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="990" y="460" />
              <mxPoint x="800" y="460" />
            </Array>
          </mxGeometry>
        </mxCell>

        <mxCell id="ed_mem_st" value="I" style="endArrow=classic;html=1;rounded=1;strokeColor=#d79b00;strokeWidth=3;fontSize=14;fontStyle=1;fontColor=#d79b00;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="memcell" target="station">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="600" y="660" />
              <mxPoint x="290" y="660" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="ed_mem_tr" value="I" style="endArrow=classic;html=1;rounded=1;strokeColor=#d79b00;strokeWidth=3;fontSize=14;fontStyle=1;fontColor=#d79b00;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="memcell" target="train">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="800" y="660" />
              <mxPoint x="1160" y="660" />
            </Array>
          </mxGeometry>
        </mxCell>

        <mxCell id="legend_title" value="Legend" style="text;html=1;align=left;verticalAlign=middle;fontSize=13;fontStyle=1;" vertex="1" parent="1">
          <mxGeometry x="120" y="830" width="80" height="20" as="geometry" />
        </mxCell>
        <mxCell id="leg_set" value="" style="endArrow=classic;html=1;rounded=0;strokeColor=#b85450;strokeWidth=3;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="210" y="862" as="sourcePoint" />
            <mxPoint x="260" y="862" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="leg_set_t" value="SET — drives latch to I=1 when buffer is low" style="text;html=1;align=left;verticalAlign=middle;fontSize=12;" vertex="1" parent="1">
          <mxGeometry x="270" y="850" width="350" height="24" as="geometry" />
        </mxCell>
        <mxCell id="leg_rst" value="" style="endArrow=classic;html=1;rounded=0;strokeColor=#82b366;strokeWidth=3;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="630" y="862" as="sourcePoint" />
            <mxPoint x="680" y="862" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="leg_rst_t" value="RESET — drives latch to I=0 when buffer is full" style="text;html=1;align=left;verticalAlign=middle;fontSize=12;" vertex="1" parent="1">
          <mxGeometry x="690" y="850" width="380" height="24" as="geometry" />
        </mxCell>
        <mxCell id="leg_out" value="" style="endArrow=classic;html=1;rounded=0;strokeColor=#d79b00;strokeWidth=3;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1080" y="862" as="sourcePoint" />
            <mxPoint x="1130" y="862" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="leg_out_t" value="I — dispatch signal" style="text;html=1;align=left;verticalAlign=middle;fontSize=12;" vertex="1" parent="1">
          <mxGeometry x="1140" y="850" width="200" height="24" as="geometry" />
        </mxCell>

      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
