<mxfile host="drawio.lan">
  <diagram id="pdao-proposals-timeline" name="pDAO Proposals - Timeline">
    <mxGraphModel dx="1000" dy="800" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2560" pageHeight="1250" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />

        <!-- Phase header labels -->
        <mxCell id="lbl_challenge" parent="1" style="text;html=1;align=center;verticalAlign=middle;fontStyle=1;fontSize=16;" value="Challenge Period&#10;(Vote Delay Time)" vertex="1">
          <mxGeometry height="40" width="400" x="605" y="20" as="geometry" />
        </mxCell>
        <mxCell id="lbl_phase1" parent="1" style="text;html=1;align=center;verticalAlign=middle;fontStyle=1;fontSize=16;" value="Vote Phase 1" vertex="1">
          <mxGeometry height="30" width="210" x="1430" y="30" as="geometry" />
        </mxCell>
        <mxCell id="lbl_phase2" parent="1" style="text;html=1;align=center;verticalAlign=middle;fontStyle=1;fontSize=16;" value="Vote Phase 2" vertex="1">
          <mxGeometry height="30" width="220" x="1660" y="30" as="geometry" />
        </mxCell>
        <mxCell id="lbl_execute" parent="1" style="text;html=1;align=center;verticalAlign=middle;fontStyle=1;fontSize=16;" value="Execute" vertex="1">
          <mxGeometry height="30" width="480" x="1900" y="30" as="geometry" />
        </mxCell>

        <!-- Phase header arrows -->
        <mxCell id="arr_challenge" parent="1" style="shape=singleArrow;html=1;arrowWidth=0.55;arrowSize=0.12;fillColor=#F5F5F5;strokeColor=#999999;" value="" vertex="1">
          <mxGeometry height="45" width="1210" x="200" y="95" as="geometry" />
        </mxCell>
        <mxCell id="arr_phase1" parent="1" style="shape=singleArrow;html=1;arrowWidth=0.55;arrowSize=0.18;fillColor=#F5F5F5;strokeColor=#999999;" value="" vertex="1">
          <mxGeometry height="45" width="210" x="1430" y="95" as="geometry" />
        </mxCell>
        <mxCell id="arr_phase2" parent="1" style="shape=singleArrow;html=1;arrowWidth=0.55;arrowSize=0.18;fillColor=#F5F5F5;strokeColor=#999999;" value="" vertex="1">
          <mxGeometry height="45" width="220" x="1660" y="95" as="geometry" />
        </mxCell>
        <mxCell id="arr_execute" parent="1" style="shape=singleArrow;html=1;arrowWidth=0.55;arrowSize=0.12;fillColor=#F5F5F5;strokeColor=#999999;" value="" vertex="1">
          <mxGeometry height="45" width="480" x="1900" y="95" as="geometry" />
        </mxCell>

        <!-- Swimlane actors -->
        <mxCell id="actor_proposer" parent="1" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;fontStyle=1;fontSize=13;" value="Proposer&#10;(node operator)" vertex="1">
          <mxGeometry height="110" width="60" x="60" y="175" as="geometry" />
        </mxCell>
        <mxCell id="actor_verifier" parent="1" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;fontStyle=1;fontSize=13;" value="Verifier&#10;(node operator)" vertex="1">
          <mxGeometry height="110" width="60" x="60" y="405" as="geometry" />
        </mxCell>
        <mxCell id="actor_delegate" parent="1" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;fontStyle=1;fontSize=13;" value="Delegate&#10;(node operator)" vertex="1">
          <mxGeometry height="110" width="60" x="60" y="600" as="geometry" />
        </mxCell>
        <mxCell id="actor_voter" parent="1" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;fontStyle=1;fontSize=13;" value="Voter&#10;(node operator)" vertex="1">
          <mxGeometry height="110" width="60" x="60" y="820" as="geometry" />
        </mxCell>
        <mxCell id="actor_delegatee" parent="1" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;fontStyle=1;fontSize=13;" value="Delegatee&#10;(node operator)" vertex="1">
          <mxGeometry height="110" width="60" x="60" y="1005" as="geometry" />
        </mxCell>

        <!-- Swimlane dividers -->
        <mxCell id="div1" parent="1" style="endArrow=none;html=1;strokeColor=#999999;dashed=1;" edge="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="20" y="345" as="sourcePoint" />
            <mxPoint x="2540" y="345" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="div2" parent="1" style="endArrow=none;html=1;strokeColor=#999999;dashed=1;" edge="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="20" y="565" as="sourcePoint" />
            <mxPoint x="2540" y="565" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="div3" parent="1" style="endArrow=none;html=1;strokeColor=#999999;dashed=1;" edge="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="20" y="765" as="sourcePoint" />
            <mxPoint x="2540" y="765" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="div4" parent="1" style="endArrow=none;html=1;strokeColor=#999999;dashed=1;" edge="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="20" y="985" as="sourcePoint" />
            <mxPoint x="2540" y="985" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="div5" parent="1" style="endArrow=none;html=1;strokeColor=#999999;dashed=1;" edge="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="20" y="1175" as="sourcePoint" />
            <mxPoint x="2540" y="1175" as="targetPoint" />
          </mxGeometry>
        </mxCell>

        <!-- Proposer activities -->
        <mxCell id="vote_proposal" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFE6CC;strokeColor=#D79B00;fontSize=14;" value="Vote Proposal&lt;br&gt;&lt;i&gt;(propose)&lt;/i&gt;" vertex="1">
          <mxGeometry height="95" width="185" x="198" y="180" as="geometry" />
        </mxCell>
        <mxCell id="defend1" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#666666;dashed=1;fontSize=14;" value="Defend Challenge&lt;br&gt;&lt;i&gt;(submit root)&lt;/i&gt;" vertex="1">
          <mxGeometry height="95" width="185" x="473" y="180" as="geometry" />
        </mxCell>
        <mxCell id="defend2" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#666666;dashed=1;fontSize=14;" value="Defend Challenge&lt;br&gt;&lt;i&gt;(submit root)&lt;/i&gt;" vertex="1">
          <mxGeometry height="95" width="185" x="750" y="180" as="geometry" />
        </mxCell>
        <mxCell id="execute_proposal" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFE6CC;strokeColor=#D79B00;fontSize=14;" value="Execute Proposal&lt;br&gt;&lt;i&gt;(execute)&lt;/i&gt;" vertex="1">
          <mxGeometry height="95" width="185" x="1933" y="180" as="geometry" />
        </mxCell>
        <mxCell id="claim_bond" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFE6CC;strokeColor=#D79B00;fontSize=14;" value="Claim Bond&lt;br&gt;&lt;i&gt;(claim bond proposer)&lt;/i&gt;" vertex="1">
          <mxGeometry height="95" width="185" x="2138" y="180" as="geometry" />
        </mxCell>

        <!-- Verifier activities -->
        <mxCell id="challenge1" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#666666;dashed=1;fontSize=14;" value="Challenge&lt;br&gt;&lt;i&gt;(create challenge)&lt;/i&gt;" vertex="1">
          <mxGeometry height="95" width="185" x="473" y="410" as="geometry" />
        </mxCell>
        <mxCell id="challenge2" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#666666;dashed=1;fontSize=14;" value="Challenge&lt;br&gt;&lt;i&gt;(create challenge)&lt;/i&gt;" vertex="1">
          <mxGeometry height="95" width="185" x="750" y="410" as="geometry" />
        </mxCell>
        <mxCell id="defeat_proposal" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#666666;dashed=1;fontSize=14;" value="Defeat Proposal&lt;br&gt;&lt;i&gt;(defeat proposal)&lt;/i&gt;" vertex="1">
          <mxGeometry height="95" width="185" x="991" y="410" as="geometry" />
        </mxCell>
        <mxCell id="claim_challenger" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#666666;dashed=1;fontSize=14;" value="Claim Challenger Reward&lt;br&gt;&lt;i&gt;(claim bond challenger)&lt;/i&gt;" vertex="1">
          <mxGeometry height="95" width="185" x="1211" y="410" as="geometry" />
        </mxCell>

        <!-- Challenge -> Defend arrows -->
        <mxCell id="arr_c1" parent="1" style="endArrow=classic;html=1;strokeColor=#333333;" edge="1" source="challenge1" target="defend1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="arr_c2" parent="1" style="endArrow=classic;html=1;strokeColor=#333333;" edge="1" source="challenge2" target="defend2">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>

        <!-- Delegate activity (stacked vote) -->
        <mxCell id="delegate_vote_back" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFE6CC;strokeColor=#D79B00;fontSize=14;" value="" vertex="1">
          <mxGeometry height="95" width="185" x="1455" y="591" as="geometry" />
        </mxCell>
        <mxCell id="delegate_vote" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFE6CC;strokeColor=#D79B00;fontSize=14;" value="Vote&lt;br&gt;&lt;i&gt;(vote)&lt;/i&gt;" vertex="1">
          <mxGeometry height="95" width="185" x="1443" y="603" as="geometry" />
        </mxCell>

        <!-- Voter activities (stacked votes + finalise) -->
        <mxCell id="voter_vote1_back" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFE6CC;strokeColor=#D79B00;fontSize=14;" value="" vertex="1">
          <mxGeometry height="95" width="185" x="1455" y="809" as="geometry" />
        </mxCell>
        <mxCell id="voter_vote1" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFE6CC;strokeColor=#D79B00;fontSize=14;" value="Vote&lt;br&gt;&lt;i&gt;(vote)&lt;/i&gt;" vertex="1">
          <mxGeometry height="95" width="185" x="1443" y="821" as="geometry" />
        </mxCell>
        <mxCell id="voter_vote2_back" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFE6CC;strokeColor=#D79B00;fontSize=14;" value="" vertex="1">
          <mxGeometry height="95" width="185" x="1700" y="809" as="geometry" />
        </mxCell>
        <mxCell id="voter_vote2" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFE6CC;strokeColor=#D79B00;fontSize=14;" value="Vote&lt;br&gt;&lt;i&gt;(vote)&lt;/i&gt;" vertex="1">
          <mxGeometry height="95" width="185" x="1688" y="821" as="geometry" />
        </mxCell>
        <mxCell id="finalise" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#666666;dashed=1;fontSize=14;" value="Finalise Proposal&lt;br&gt;Veto Execute&lt;br&gt;&lt;i&gt;(finalise)&lt;/i&gt;" vertex="1">
          <mxGeometry height="95" width="185" x="1933" y="821" as="geometry" />
        </mxCell>

        <!-- Delegatee activity -->
        <mxCell id="vote_override" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#666666;dashed=1;fontSize=14;" value="Vote Override&lt;br&gt;&lt;i&gt;(vote override)&lt;/i&gt;" vertex="1">
          <mxGeometry height="95" width="185" x="1688" y="1008" as="geometry" />
        </mxCell>

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