{
  "nodes": [
    {
      "ID": "start",
      "name": "Start here",
      "type": "Start",
      "properties": {},
      "description": "This flow teaches Mindshare by doing. Follow the arrows. In each step, do the clicks on the empty canvas to the right of this flow. Click a step to see its screenshots.\nPractice content: a garden with a Tomato and a Basil plant.\nOpen this template from its file (start page → paste or drop → Continue), never from a shared address. Then Save makes your own copy.",
      "size": 1.2,
      "position": {
        "x": 0,
        "y": 0,
        "z": 0
      }
    },
    {
      "ID": "node-type",
      "name": "Create a node type",
      "type": "Sub-process",
      "properties": {
        "Lane": "User",
        "Where": "Left toolbar",
        "Shortcut": "",
        "Kept in": "Model"
      },
      "description": "1. Left toolbar: click Legend.\n2. In the Legend, click Manage node types.\n3. In Node Types, click Add a node type.\n4. Identity: type \"Plant\".\n5. Appearance: choose Hexagon and a red colour.\n6. Properties: click Create a new property, name \"Light\", data type string. Do the same for \"Water\" and \"Bed\".\n7. Click Save changes.\nPlant is kept only once a node uses it. The next step creates one.",
      "size": 1.5,
      "position": {
        "x": 0,
        "y": -4,
        "z": 0
      },
      "features": {
        "resizeTextToFit": true
      }
    },
    {
      "ID": "node",
      "name": "Create a node",
      "type": "Step",
      "properties": {
        "Lane": "User",
        "Where": "Canvas",
        "Shortcut": "Cmd/Ctrl-click empty canvas",
        "Kept in": "Model"
      },
      "description": "1. Right-click the empty canvas where the plant should go.\n2. Choose Create node here. Shortcut: Cmd/Ctrl-click the empty canvas.\n3. In Add new node, enter ID \"tomato\", Name \"Tomato\", Description \"Red cherry tomato by the fence.\", Type \"Plant\".\n4. The Plant fields appear. Enter Light \"Full sun\", Water \"Daily\", Bed \"Bed 1\".\n5. Confirm. Tomato appears where you right-clicked.\nSecond pass: ID \"basil\", Name \"Basil\", Description \"Sweet basil next to the tomato.\", Light \"Full sun\", Water \"Every 2 days\", Bed \"Bed 1\".\nClose or Escape cancels. The ID cannot be changed later.",
      "size": [5, 1.2],
      "position": {
        "x": 0,
        "y": -8,
        "z": 0
      }
    },
    {
      "ID": "move",
      "name": "Move it into place",
      "type": "Step",
      "properties": {
        "Lane": "User",
        "Where": "Canvas",
        "Shortcut": "Hold Alt/Option to place freely",
        "Kept in": "Model"
      },
      "description": "1. Drag the new node next to the others.\n2. Grey dashed guides show when it lines up with another node. Release there.\n3. To place it freely, hold Alt/Option while dragging.\nCmd/Ctrl+Z puts it back.",
      "size": [5, 1.2],
      "position": {
        "x": 0,
        "y": -12,
        "z": 0
      }
    },
    {
      "ID": "another",
      "name": "Add another node?",
      "type": "Decision",
      "properties": {
        "Lane": "User"
      },
      "description": "Only Tomato on the canvas: follow yes, back to Create a node, and add Basil.\nTomato and Basil both there: follow no.",
      "size": 1.2,
      "position": {
        "x": 8,
        "y": -10,
        "z": 0
      },
      "features": {
        "resizeTextToFit": true
      }
    },
    {
      "ID": "link",
      "name": "Link two nodes",
      "type": "Step",
      "properties": {
        "Lane": "User",
        "Where": "Canvas",
        "Shortcut": "Cmd/Ctrl-click both nodes",
        "Kept in": "Model"
      },
      "description": "1. Cmd/Ctrl-click Basil.\n2. Cmd/Ctrl-click Tomato.\n3. In Add new link, enter Name1 \"grows next to\". Leave Name2 empty: one name then reads both ways. Direction: \"0\" (no arrow).\n4. Confirm. The link draws in from Basil to Tomato.\nA link cannot be edited later. To change it, hold L, click the link, press Delete, and draw it again.",
      "size": [5, 1.2],
      "position": {
        "x": 0,
        "y": -16,
        "z": 0
      }
    },
    {
      "ID": "split",
      "name": "Split",
      "type": "Parallel",
      "properties": {},
      "description": "Do both branches, in any order.",
      "size": [6, 0.6],
      "position": {
        "x": 0,
        "y": -20,
        "z": 0
      },
      "features": {
        "resizeTextToFit": true
      }
    },
    {
      "ID": "detail-show",
      "name": "Choose what the Detail panel shows",
      "type": "Step",
      "properties": {
        "Lane": "User",
        "Where": "Detail panel",
        "Shortcut": "",
        "Kept in": "Model"
      },
      "description": "1. Click Tomato. The Detail panel opens on the right with Light, Water and Bed.\n2. Click the gear (Edit detail settings). The change applies to every Plant node.\n3. Own detail: switch off All.\n4. Drag Bed from Displayed to Available.\n5. Click Save changes. Tomato's Detail panel now shows only Light and Water.",
      "size": [5, 1.2],
      "position": {
        "x": -6,
        "y": -24,
        "z": 0
      },
      "features": {
        "resizeTextToFit": true
      }
    },
    {
      "ID": "detail-order",
      "name": "Reorder the Detail panel",
      "type": "Step",
      "properties": {
        "Lane": "User",
        "Where": "Detail panel",
        "Shortcut": "Alt+arrows",
        "Kept in": "Model"
      },
      "description": "1. Click Tomato, then the gear (Edit detail settings).\n2. Own detail, Displayed: drag Water above Light. Keyboard: focus Water and press Alt+Up arrow.\n3. Click Save changes. Water now shows first on every Plant node.",
      "size": [5, 1.2],
      "position": {
        "x": -6,
        "y": -28,
        "z": 0
      }
    },
    {
      "ID": "arrange",
      "name": "Arrange the nodes",
      "type": "Step",
      "properties": {
        "Lane": "User",
        "Where": "Left toolbar",
        "Shortcut": "",
        "Kept in": "Model"
      },
      "description": "1. Click Tomato, then Shift-click Basil.\n2. Left toolbar: click Arrange nodes.\n3. Scope: Selection (2). Strategy: Row.\n4. Click Apply. Tomato and Basil glide into one row.\nKeep Scope on Selection. Everything would rearrange this whole flow. Cmd/Ctrl+Z glides them back.",
      "size": [5, 1.2],
      "position": {
        "x": 6,
        "y": -24,
        "z": 0
      }
    },
    {
      "ID": "filter",
      "name": "Filter the graph",
      "type": "Step",
      "properties": {
        "Lane": "User",
        "Where": "Top toolbar",
        "Shortcut": "",
        "Kept in": "Session"
      },
      "description": "1. Top toolbar: click Filter.\n2. Condition: AND. Node: Plant. Property: Water. Value: \"Daily\".\n3. Click Add filter. Basil fades and Tomato stays bright. A chip appears in Active filters.\n4. Click the chip to switch the filter off and on. Click Reset to remove it.\nFilters are not saved with the graph.",
      "size": [5, 1.2],
      "position": {
        "x": 6,
        "y": -28,
        "z": 0
      }
    },
    {
      "ID": "wait",
      "name": "Wait for all",
      "type": "Parallel",
      "properties": {},
      "description": "Go on when both branches are done.",
      "size": [6, 0.6],
      "position": {
        "x": 0,
        "y": -32,
        "z": 0
      },
      "features": {
        "resizeTextToFit": true
      }
    },
    {
      "ID": "save",
      "name": "Save your graph",
      "type": "Step",
      "properties": {
        "Lane": "User",
        "Where": "Top toolbar",
        "Shortcut": "",
        "Kept in": "Model"
      },
      "description": "1. Top toolbar: click Save.\n2. \"File was saved.\" appears and the address changes to /visualization/<id>/<name>.\n3. Copy that address and keep it. Mindshare has no list of graphs.\nUntil the first Save, a reload loses everything.",
      "size": [5, 1.2],
      "position": {
        "x": 0,
        "y": -36,
        "z": 0
      }
    },
    {
      "ID": "model-address",
      "name": "Model address",
      "type": "Data",
      "properties": {},
      "description": "The address of your saved graph, /visualization/<id>/<name>. It is the only way back in. Anyone who has it can open the graph and save over it.",
      "size": 1.2,
      "position": {
        "x": 8,
        "y": -36,
        "z": 0
      },
      "features": {
        "resizeTextToFit": true
      }
    },
    {
      "ID": "done",
      "name": "Done",
      "type": "End",
      "properties": {},
      "description": "You have created a node type, nodes and a link, set up the Detail panel, arranged, filtered and saved.",
      "size": 1.5,
      "position": {
        "x": 0,
        "y": -40,
        "z": 0
      }
    },
    {
      "ID": "own-process",
      "name": "Start your own process",
      "type": "Note",
      "properties": {},
      "description": "1. Zoom out (mouse wheel) until the whole graph shows.\n2. Shift-drag around all of it to select every node.\n3. Press Delete and confirm \"Delete N nodes?\".\n4. Cmd/Ctrl-click the empty canvas and create your first node with Type \"Start\". Build your flow with Step, Decision, Parallel, Sub-process, Data, Note and End.\n5. Click Save.\nSave only after your own nodes exist. A type that no node uses is dropped at Save.",
      "size": 1.2,
      "position": {
        "x": 8,
        "y": -40,
        "z": 0
      },
      "features": {
        "resizeTextToFit": true
      }
    }
  ],
  "links": [
    {
      "node1": "start",
      "node2": "node-type",
      "name1": "comes after",
      "name2": "leads to",
      "direction": 1
    },
    {
      "node1": "node-type",
      "node2": "node",
      "name1": "comes after",
      "name2": "leads to",
      "direction": 1
    },
    {
      "node1": "node",
      "node2": "move",
      "name1": "comes after",
      "name2": "leads to",
      "direction": 1
    },
    {
      "node1": "move",
      "node2": "another",
      "name1": "comes after",
      "name2": "leads to",
      "direction": 1
    },
    {
      "node1": "another",
      "node2": "node",
      "name1": "follows a yes from",
      "name2": "yes",
      "direction": 1
    },
    {
      "node1": "another",
      "node2": "link",
      "name1": "follows a no from",
      "name2": "no",
      "direction": 1
    },
    {
      "node1": "link",
      "node2": "split",
      "name1": "comes after",
      "name2": "leads to",
      "direction": 1
    },
    {
      "node1": "split",
      "node2": "detail-show",
      "name1": "comes after",
      "name2": "leads to",
      "direction": 1
    },
    {
      "node1": "detail-show",
      "node2": "detail-order",
      "name1": "comes after",
      "name2": "leads to",
      "direction": 1
    },
    {
      "node1": "split",
      "node2": "arrange",
      "name1": "comes after",
      "name2": "leads to",
      "direction": 1
    },
    {
      "node1": "arrange",
      "node2": "filter",
      "name1": "comes after",
      "name2": "leads to",
      "direction": 1
    },
    {
      "node1": "detail-order",
      "node2": "wait",
      "name1": "comes after",
      "name2": "leads to",
      "direction": 1
    },
    {
      "node1": "filter",
      "node2": "wait",
      "name1": "comes after",
      "name2": "leads to",
      "direction": 1
    },
    {
      "node1": "wait",
      "node2": "save",
      "name1": "comes after",
      "name2": "leads to",
      "direction": 1
    },
    {
      "node1": "save",
      "node2": "done",
      "name1": "comes after",
      "name2": "leads to",
      "direction": 1
    },
    {
      "node1": "save",
      "node2": "model-address",
      "name1": "is created by",
      "name2": "creates",
      "direction": 1
    },
    {
      "node1": "done",
      "node2": "own-process",
      "name1": "follows",
      "name2": "is followed by",
      "direction": 0
    }
  ],
  "visuals": [
    {
      "nodeType": "Start",
      "shape": "circle",
      "borderColor": "#61ddaa"
    },
    {
      "nodeType": "Step",
      "shape": "rectangle",
      "borderColor": "#5b8ff9"
    },
    {
      "nodeType": "Decision",
      "shape": "hex",
      "borderColor": "#f6bd16"
    },
    {
      "nodeType": "Parallel",
      "shape": "rectangle",
      "borderColor": "#7262fd"
    },
    {
      "nodeType": "Sub-process",
      "shape": "hex[8]",
      "borderColor": "#008685"
    },
    {
      "nodeType": "Data",
      "shape": "hex[5]",
      "borderColor": "#f6903d"
    },
    {
      "nodeType": "End",
      "shape": "circle",
      "borderColor": "#e8684a"
    },
    {
      "nodeType": "Note",
      "shape": "hex[7]",
      "borderColor": "#f08bb4"
    }
  ],
  "dataTypes": {
    "Lane": "typelist",
    "Where": "typelist",
    "Shortcut": "string",
    "Kept in": "typelist"
  },
  "detailView": [
    {
      "nodeType": "*",
      "own": "*",
      "others": []
    }
  ]
}
