{
  "format": "epicdraw-workspace",
  "version": 1,
  "charts": [
    {
      "id": "blog-interface-state-board",
      "name": "Search states · worked example",
      "nodes": [
        {
          "id": "title",
          "type": "text",
          "text": "Search states · keep the task available",
          "x": 40,
          "y": 20,
          "w": 2120,
          "h": 80,
          "fill": "none",
          "font": "sans",
          "fs": 42,
          "ink": "navy",
          "seed": 6200
        },
        {
          "id": "fiction",
          "type": "text",
          "text": "FICTIONAL WORKSHOP SEARCH · Proposed messages and behaviour for review.",
          "x": 40,
          "y": 115,
          "w": 2120,
          "h": 65,
          "fill": "none",
          "font": "sans",
          "fs": 30,
          "ink": "navy",
          "seed": 6201
        },
        {
          "id": "initial",
          "type": "round",
          "text": "INITIAL EMPTY\nTrigger: open search, no query\n\nFind a workshop\nEnter a topic to search.\n\nAction: Enter topic + Search\nNext: Loading",
          "x": 40,
          "y": 220,
          "w": 600,
          "h": 510,
          "fill": "white",
          "font": "sans",
          "fs": 32,
          "ink": "navy",
          "seed": 6202
        },
        {
          "id": "loading",
          "type": "round",
          "text": "LOADING\nTrigger: submit a query\n\nSearching...\nKeep the submitted topic visible\n\nAction: Wait for a response\nNext: Results / No results / Error",
          "x": 800,
          "y": 220,
          "w": 600,
          "h": 510,
          "fill": "sun",
          "font": "sans",
          "fs": 31,
          "ink": "navy",
          "seed": 6203
        },
        {
          "id": "results",
          "type": "round",
          "text": "RESULTS\nTrigger: response has matches\n\n2 workshops for pottery\nPottery for beginners\nHand-building workshop\n\nAction: View a workshop\nNext: Workshop details [separate]",
          "x": 1560,
          "y": 220,
          "w": 600,
          "h": 510,
          "fill": "mint",
          "font": "sans",
          "fs": 31,
          "ink": "navy",
          "seed": 6204
        },
        {
          "id": "no-results",
          "type": "round",
          "text": "NO RESULTS\nTrigger: completed, zero matches\n\nNo workshops found for glass fusing.\nTry another topic.\nQuery retained: glass fusing\n\nAction: Edit topic + Search\nNext: Loading",
          "x": 800,
          "y": 1000,
          "w": 600,
          "h": 535,
          "fill": "white",
          "font": "sans",
          "fs": 30,
          "ink": "navy",
          "seed": 6205
        },
        {
          "id": "failure",
          "type": "round",
          "text": "CONNECTION FAILURE\nTrigger: search request fails\n\nWe could not load results.\nYour search is still here: pottery\n\nAction: Try again\nNext: Loading with same query\nConfirm retry behaviour [open]",
          "x": 1560,
          "y": 1000,
          "w": 600,
          "h": 535,
          "fill": "peach",
          "font": "sans",
          "fs": 31,
          "ink": "navy",
          "seed": 6206
        },
        {
          "id": "review",
          "type": "round",
          "text": "REVIEW + OPEN RULES\nWhat can the user do in each state?\n\nNo request ≠ no matches ≠ failure.\nPreserve query during recovery.\nAgree stale-response handling.\nAgree slow-request recovery.\nTest status announcements.\nBoard describes design, not an app.",
          "x": 40,
          "y": 1000,
          "w": 600,
          "h": 535,
          "fill": "white",
          "font": "sans",
          "fs": 29,
          "ink": "navy",
          "seed": 6207
        },
        {
          "id": "submit-label",
          "type": "text",
          "text": "Search",
          "x": 665,
          "y": 395,
          "w": 110,
          "h": 65,
          "fill": "none",
          "font": "sans",
          "fs": 28,
          "ink": "navy",
          "seed": 6208
        },
        {
          "id": "matches-label",
          "type": "text",
          "text": "Matches",
          "x": 1420,
          "y": 395,
          "w": 130,
          "h": 65,
          "fill": "none",
          "font": "sans",
          "fs": 26,
          "ink": "navy",
          "seed": 6209
        },
        {
          "id": "zero-label",
          "type": "text",
          "text": "Zero matches",
          "x": 825,
          "y": 800,
          "w": 450,
          "h": 65,
          "fill": "none",
          "font": "sans",
          "fs": 28,
          "ink": "navy",
          "seed": 6210
        },
        {
          "id": "failure-label",
          "type": "text",
          "text": "Request failed",
          "x": 1450,
          "y": 805,
          "w": 460,
          "h": 65,
          "fill": "none",
          "font": "sans",
          "fs": 28,
          "ink": "navy",
          "seed": 6211
        }
      ],
      "edges": [
        {
          "id": "submit",
          "from": "initial",
          "to": "loading",
          "sa": "r",
          "ea": "l",
          "style": "straight",
          "label": "",
          "head": "end",
          "ink": "navy",
          "seed": 6600
        },
        {
          "id": "matches",
          "from": "loading",
          "to": "results",
          "sa": "r",
          "ea": "l",
          "style": "straight",
          "label": "",
          "head": "end",
          "ink": "navy",
          "seed": 6601
        },
        {
          "id": "zero",
          "from": "loading",
          "to": "no-results",
          "sa": "b",
          "ea": "t",
          "style": "straight",
          "label": "",
          "head": "end",
          "ink": "navy",
          "seed": 6602
        },
        {
          "id": "failed",
          "from": "loading",
          "to": "failure",
          "sa": "b",
          "ea": "t",
          "style": "straight",
          "label": "",
          "head": "end",
          "ink": "navy",
          "seed": 6603
        }
      ],
      "paper": "white",
      "pattern": "none",
      "ink": "navy",
      "wobble": 0.25
    }
  ],
  "cur": 0
}
