{
  "format": "epicdraw-workspace",
  "version": 1,
  "charts": [
    {
      "id": "blog-wireframe-handoff-example",
      "name": "Wireframe handoff pack",
      "nodes": [
        {
          "id": "title",
          "type": "text",
          "text": "Registration handoff · states, behaviour and questions",
          "x": 40,
          "y": 20,
          "w": 2120,
          "h": 90,
          "fill": "none",
          "font": "sans",
          "fs": 46,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9700
        },
        {
          "id": "fiction",
          "type": "text",
          "text": "FICTIONAL FEATURE · Proposed flow and draft copy for discussion. Open questions are not agreed requirements.",
          "x": 40,
          "y": 120,
          "w": 2120,
          "h": 80,
          "fill": "none",
          "font": "sans",
          "fs": 30,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9701
        },
        {
          "id": "context",
          "type": "round",
          "text": "HANDOFF SCOPE\nVisitor task: create an account, verify email and reach the first project action.\nThis pack ends at email verification. The next project screen is outside scope.\nVersion / reviewed date / design owner / developer reviewer: [blank]",
          "x": 40,
          "y": 230,
          "w": 2120,
          "h": 230,
          "fill": "white",
          "font": "sans",
          "fs": 32,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 9702
        },
        {
          "id": "entry",
          "type": "round",
          "text": "",
          "x": 40,
          "y": 520,
          "w": 620,
          "h": 690,
          "fill": "white",
          "font": "sans",
          "fs": 31,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 9703
        },
        {
          "id": "entry-heading",
          "type": "text",
          "text": "ENTRY",
          "x": 66,
          "y": 540,
          "w": 568,
          "h": 50,
          "fill": "none",
          "font": "sans",
          "fs": 34,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9704
        },
        {
          "id": "entry-trigger",
          "type": "text",
          "text": "Trigger: open registration",
          "x": 66,
          "y": 603,
          "w": 568,
          "h": 80,
          "fill": "none",
          "font": "sans",
          "fs": 28,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9705
        },
        {
          "id": "verification",
          "type": "round",
          "text": "",
          "x": 790,
          "y": 520,
          "w": 620,
          "h": 690,
          "fill": "white",
          "font": "sans",
          "fs": 31,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 9706
        },
        {
          "id": "verification-heading",
          "type": "text",
          "text": "VERIFICATION",
          "x": 816,
          "y": 540,
          "w": 568,
          "h": 50,
          "fill": "none",
          "font": "sans",
          "fs": 34,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9707
        },
        {
          "id": "verification-trigger",
          "type": "text",
          "text": "Trigger: submission accepted",
          "x": 816,
          "y": 603,
          "w": 568,
          "h": 80,
          "fill": "none",
          "font": "sans",
          "fs": 28,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9708
        },
        {
          "id": "success",
          "type": "round",
          "text": "",
          "x": 1540,
          "y": 520,
          "w": 620,
          "h": 690,
          "fill": "white",
          "font": "sans",
          "fs": 31,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 9709
        },
        {
          "id": "success-heading",
          "type": "text",
          "text": "SUCCESS",
          "x": 1566,
          "y": 540,
          "w": 568,
          "h": 50,
          "fill": "none",
          "font": "sans",
          "fs": 34,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9710
        },
        {
          "id": "success-trigger",
          "type": "text",
          "text": "Trigger: valid verification link",
          "x": 1566,
          "y": 603,
          "w": 568,
          "h": 80,
          "fill": "none",
          "font": "sans",
          "fs": 28,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9711
        },
        {
          "id": "invalid",
          "type": "round",
          "text": "",
          "x": 40,
          "y": 1350,
          "w": 620,
          "h": 690,
          "fill": "white",
          "font": "sans",
          "fs": 31,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 9712
        },
        {
          "id": "invalid-heading",
          "type": "text",
          "text": "INVALID DETAILS",
          "x": 66,
          "y": 1370,
          "w": 568,
          "h": 50,
          "fill": "none",
          "font": "sans",
          "fs": 34,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9713
        },
        {
          "id": "invalid-trigger",
          "type": "text",
          "text": "Trigger: submit an invalid email",
          "x": 66,
          "y": 1433,
          "w": 568,
          "h": 80,
          "fill": "none",
          "font": "sans",
          "fs": 28,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9714
        },
        {
          "id": "expired",
          "type": "round",
          "text": "",
          "x": 790,
          "y": 1350,
          "w": 620,
          "h": 690,
          "fill": "white",
          "font": "sans",
          "fs": 31,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 9715
        },
        {
          "id": "expired-heading",
          "type": "text",
          "text": "EXPIRED LINK",
          "x": 816,
          "y": 1370,
          "w": 568,
          "h": 50,
          "fill": "none",
          "font": "sans",
          "fs": 34,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9716
        },
        {
          "id": "expired-trigger",
          "type": "text",
          "text": "Trigger: open an expired link",
          "x": 816,
          "y": 1433,
          "w": 568,
          "h": 80,
          "fill": "none",
          "font": "sans",
          "fs": 28,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9717
        },
        {
          "id": "email",
          "type": "round",
          "text": "Email\n[name@example.com]",
          "x": 66,
          "y": 700,
          "w": 568,
          "h": 108,
          "fill": "none",
          "font": "sans",
          "fs": 31,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9718
        },
        {
          "id": "password",
          "type": "round",
          "text": "Password\n[masked]",
          "x": 66,
          "y": 830,
          "w": 568,
          "h": 108,
          "fill": "none",
          "font": "sans",
          "fs": 31,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9719
        },
        {
          "id": "create",
          "type": "round",
          "text": "Create account",
          "x": 66,
          "y": 960,
          "w": 568,
          "h": 80,
          "fill": "sun",
          "font": "sans",
          "fs": 32,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9720
        },
        {
          "id": "entry-notes",
          "type": "text",
          "text": "Accepted → Verification\nInvalid email → Invalid details\nPending / password rules: [open]",
          "x": 66,
          "y": 1060,
          "w": 568,
          "h": 128,
          "fill": "none",
          "font": "sans",
          "fs": 28,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9721
        },
        {
          "id": "verify-copy",
          "type": "text",
          "text": "Check your email\nLook for a verification link.\nAddress: [submitted address]",
          "x": 816,
          "y": 700,
          "w": 568,
          "h": 158,
          "fill": "none",
          "font": "sans",
          "fs": 32,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9722
        },
        {
          "id": "resend",
          "type": "round",
          "text": "Resend verification email",
          "x": 816,
          "y": 880,
          "w": 568,
          "h": 80,
          "fill": "sun",
          "font": "sans",
          "fs": 30,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9723
        },
        {
          "id": "change-email",
          "type": "text",
          "text": "Change email → Entry\nDraft action; retention rule open",
          "x": 816,
          "y": 980,
          "w": 568,
          "h": 80,
          "fill": "none",
          "font": "sans",
          "fs": 28,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9724
        },
        {
          "id": "verify-notes",
          "type": "text",
          "text": "Valid link → Success\nExpired link → Expired link\nResend accepted → stay here\nSend failure / cooldown: [open]",
          "x": 816,
          "y": 1070,
          "w": 568,
          "h": 134,
          "fill": "none",
          "font": "sans",
          "fs": 26,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9725
        },
        {
          "id": "success-copy",
          "type": "text",
          "text": "Your email is verified.\nYou can start your first project.",
          "x": 1566,
          "y": 700,
          "w": 568,
          "h": 150,
          "fill": "none",
          "font": "sans",
          "fs": 32,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9726
        },
        {
          "id": "first-project",
          "type": "round",
          "text": "Create a project",
          "x": 1566,
          "y": 880,
          "w": 568,
          "h": 80,
          "fill": "sun",
          "font": "sans",
          "fs": 32,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9727
        },
        {
          "id": "success-notes",
          "type": "text",
          "text": "Next: new project draft\n(destination proposed; out of scope)\nAlready-used link: [open]",
          "x": 1566,
          "y": 1000,
          "w": 568,
          "h": 160,
          "fill": "none",
          "font": "sans",
          "fs": 29,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9728
        },
        {
          "id": "invalid-copy",
          "type": "text",
          "text": "Email: alex@\nEnter a complete email address.\nKeep the email available to edit.",
          "x": 66,
          "y": 1530,
          "w": 568,
          "h": 170,
          "fill": "none",
          "font": "sans",
          "fs": 31,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9729
        },
        {
          "id": "retry",
          "type": "round",
          "text": "Edit email + Create account",
          "x": 66,
          "y": 1730,
          "w": 568,
          "h": 80,
          "fill": "sun",
          "font": "sans",
          "fs": 30,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9730
        },
        {
          "id": "invalid-notes",
          "type": "text",
          "text": "Corrected submission → retry Entry\nThen evaluate the same rules.\nPassword retention / focus: [open]",
          "x": 66,
          "y": 1840,
          "w": 568,
          "h": 160,
          "fill": "none",
          "font": "sans",
          "fs": 29,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9731
        },
        {
          "id": "expired-copy",
          "type": "text",
          "text": "That link has expired.\nRequest a new verification email.",
          "x": 816,
          "y": 1530,
          "w": 568,
          "h": 150,
          "fill": "none",
          "font": "sans",
          "fs": 32,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9732
        },
        {
          "id": "new-link",
          "type": "round",
          "text": "Send a new link",
          "x": 816,
          "y": 1730,
          "w": 568,
          "h": 80,
          "fill": "sun",
          "font": "sans",
          "fs": 32,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9733
        },
        {
          "id": "expired-notes",
          "type": "text",
          "text": "Accepted request → Verification\nSend failure: [open]\nExpiry / older-link rules: [open]",
          "x": 816,
          "y": 1840,
          "w": 568,
          "h": 160,
          "fill": "none",
          "font": "sans",
          "fs": 29,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 1,
          "seed": 9734
        },
        {
          "id": "questions",
          "type": "round",
          "text": "OPEN BEFORE IMPLEMENTATION\n\nQ1. Password rules and field retention?\nQ2. Expiry, resend limit and older links?\nQ3. Existing address, send/network failure?\nQ4. Keyboard focus and announcements?\n\nFor each: decision + evidence, owner,\nneeded-by date and affected states.\nAll owners / dates / decisions: [blank]",
          "x": 1540,
          "y": 1350,
          "w": 620,
          "h": 690,
          "fill": "peach",
          "font": "sans",
          "fs": 30,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 9735
        },
        {
          "id": "checklist",
          "type": "round",
          "text": "DEVELOPER WALKTHROUGH\nExplain Entry → Verification → Success, then the invalid-details and expired-link routes.\nCheck every trigger, draft message, action, destination and retained field.\nRecord blocked work separately from agreed work. Confirm owners before sharing.\nVersion / review outcome / next check: [blank]",
          "x": 40,
          "y": 2130,
          "w": 2120,
          "h": 310,
          "fill": "white",
          "font": "sans",
          "fs": 32,
          "ink": "navy",
          "align": "left",
          "bold": false,
          "z": 0,
          "seed": 9736
        }
      ],
      "edges": [
        {
          "id": "accepted",
          "from": "entry",
          "to": "verification",
          "sa": "r",
          "ea": "l",
          "style": "straight",
          "label": "",
          "head": "end",
          "ink": "navy",
          "seed": 9800
        },
        {
          "id": "verified",
          "from": "verification",
          "to": "success",
          "sa": "r",
          "ea": "l",
          "style": "straight",
          "label": "",
          "head": "end",
          "ink": "navy",
          "seed": 9801
        },
        {
          "id": "invalid-path",
          "from": "entry",
          "to": "invalid",
          "sa": "b",
          "ea": "t",
          "style": "straight",
          "label": "",
          "head": "end",
          "ink": "navy",
          "seed": 9802
        },
        {
          "id": "expiry-path",
          "from": "verification",
          "to": "expired",
          "sa": "b",
          "ea": "t",
          "style": "straight",
          "label": "",
          "head": "end",
          "ink": "navy",
          "seed": 9803
        }
      ],
      "paper": "white",
      "pattern": "none",
      "ink": "navy",
      "wobble": 0.25
    }
  ],
  "cur": 0
}
