{
  "nodes": [
    {
      "ID": "guide",
      "name": "Start here",
      "type": "Guide",
      "properties": {},
      "description": "This is a fill-in template for an online course: the course and its runs, its modules, lessons and assessments, the instructors who teach it, the skills it builds and what you should know before you start. The nodes around this one are samples, one of each type. Edit them, or replace them with your own.\n\nHow to add your own node:\n1) Right-click the empty canvas where the node should go and choose Create node here. Shortcut: Cmd/Ctrl-click the empty canvas.\n2) In Add new node, enter a unique ID, a Name and a Description, and pick a Type from the list below. The ID cannot be changed later.\n3) Fill in the fields that appear for that type, then confirm. Drag the new node next to the nodes it belongs with.\n4) To link two nodes, Cmd/Ctrl-click the first node, then the second. In Add new link, enter a short name such as \"is about\" in Name1. Add Name2 if it reads differently from the other side, such as \"is covered in\". Set Direction 0 (no arrow), like the sample links, and confirm.\n5) Click Save in the top toolbar after each change and keep the address it shows. A reload loses anything not saved.\n\nTypes in this template:\n- Course: the course itself, what it teaches, who offers it and how much work it takes.\n- Course run: one dated offering of the course, such as a spring cohort.\n- Module: a section or week of the course that groups its lessons.\n- Lesson: one lesson in a module: a video, reading, discussion or lab.\n- Assessment: a quiz, assignment, exam or project that checks what learners can do.\n- Instructor: a person who teaches the course.\n- Skill: something learners can do after the course, taught in lessons and checked in assessments.\n- Prerequisite: a course, skill or piece of knowledge you need before starting.\n\nEvery date (YYYY-MM-DD) and every number needs a value; text and list fields may stay empty. Level is Beginner, Intermediate or Advanced; Workload is free text such as 4 hours a week. Dates belong on a Course run, not on the Course: Start and End are its first and last day, and Mode is Online, Self-paced, Blended or Onsite. Order counts from 1 within its course or module. Lesson Format is Video, Reading, Discussion or Lab. For an Assessment, Kind is Quiz, Assignment, Exam or Project, and Weight and Passing score are percentages such as 20% (0% when it is not graded). For a Prerequisite, Kind is Course, Skill or Knowledge.\n\nDelete a sample only once one of your own nodes has its type: a type that no node uses is dropped at Save.",
      "size": 3,
      "position": {
        "x": 0,
        "y": 0,
        "z": 0
      }
    },
    {
      "ID": "course-1",
      "name": "Foundations of Sourdough Baking",
      "type": "Course",
      "properties": {
        "URL": "https://learn.example.org/courses/sourdough-foundations",
        "Provider": "Riverside Baking School",
        "Level": "Beginner",
        "Language": "English",
        "Credential": "Certificate",
        "Workload": "3 hours a week for 6 weeks"
      },
      "description": "An online course for home bakers who want to bake reliable sourdough bread without commercial yeast. It starts with making and keeping a starter, moves through mixing, folding and shaping, and ends with baking an open, crusty loaf in a home oven. Learners bake along each week and share photos of their results for feedback.",
      "size": 2.4,
      "position": {
        "x": 10,
        "y": 0,
        "z": 0
      }
    },
    {
      "ID": "run-1",
      "name": "Spring 2026 cohort",
      "type": "Course run",
      "properties": {
        "Start": "2026-03-02",
        "End": "2026-04-12",
        "Mode": "Online",
        "Schedule": "New lessons every Monday, live Q&A on Thursday evenings"
      },
      "description": "The spring offering of the course, taught to a group of about two hundred learners who started on the same day. Lessons opened week by week, the instructor answered questions in a live session each Thursday, and a certificate went to everyone who passed the final quiz before the closing date.",
      "size": 1.5,
      "position": {
        "x": 14,
        "y": -8,
        "z": 0
      }
    },
    {
      "ID": "module-1",
      "name": "Building a Starter",
      "type": "Module",
      "properties": {
        "Order": 2
      },
      "description": "The second module, where learners make their own sourdough starter from flour and water and learn to keep it healthy. It covers the first week of daily feeds, how temperature changes the pace of fermentation and how to store a starter between bakes.",
      "size": [6, 1.4],
      "position": {
        "x": 23.5,
        "y": 9,
        "z": 0
      }
    },
    {
      "ID": "lesson-1",
      "name": "Feeding Schedules and Hydration",
      "type": "Lesson",
      "properties": {
        "URL": "https://learn.example.org/courses/sourdough-foundations/lessons/feeding",
        "Order": 3,
        "Format": "Video",
        "Duration minutes": 14
      },
      "description": "The instructor shows how much flour and water to feed a starter and how often, and why a stiff starter rises more slowly than a runny one. She weighs each feed on camera, marks the jar with a rubber band to track the rise, and explains how to move from two feeds a day to one once the starter doubles reliably within eight hours.",
      "size": 2,
      "position": {
        "x": 27,
        "y": 0,
        "z": 0
      }
    },
    {
      "ID": "assessment-1",
      "name": "Starter Health Quiz",
      "type": "Assessment",
      "properties": {
        "Kind": "Quiz",
        "Graded": true,
        "Weight": "20%",
        "Passing score": "70%"
      },
      "description": "A ten-question quiz at the end of the module in which learners look at photos and short descriptions of starters and decide which are ready to bake with, which need more feeds and which have gone wrong. It counts towards the certificate and can be retaken once.",
      "size": 1.5,
      "position": {
        "x": 37.5,
        "y": 0,
        "z": 0
      }
    },
    {
      "ID": "instructor-1",
      "name": "Ines Okafor",
      "type": "Instructor",
      "properties": {
        "URL": "https://learn.example.org/instructors/ines-okafor",
        "Affiliation": "Riverside Baking School"
      },
      "description": "Ines Okafor is a baker who ran a neighbourhood bakery for ten years before turning to teaching. She bakes in an ordinary home kitchen on camera on purpose, so learners see the same oven and tools they have, and she is known for explaining why each step works rather than giving fixed recipes.",
      "size": 1.5,
      "position": {
        "x": 14,
        "y": -16.5,
        "z": 0
      }
    },
    {
      "ID": "skill-1",
      "name": "Reading starter activity",
      "type": "Skill",
      "properties": {
        "Level": "Beginner"
      },
      "description": "The ability to judge from a starter's rise, bubbles, smell and texture whether it is active enough to raise a loaf. Bakers who have it can adjust feeds and timing to their own kitchen instead of following a schedule blindly, which is the main reason sourdough loaves fail or succeed.",
      "size": 1.5,
      "position": {
        "x": 33.128,
        "y": -5.142,
        "z": 0
      }
    },
    {
      "ID": "prereq-1",
      "name": "Basic yeasted bread",
      "type": "Prerequisite",
      "properties": {
        "Kind": "Knowledge",
        "URL": "https://learn.example.org/courses/bread-basics"
      },
      "description": "Having baked at least a simple loaf with commercial yeast, so that kneading, proving and shaping dough are already familiar. The course builds on these steps instead of teaching them from the start, and learners without them are pointed to a free introductory course first.",
      "size": 1.5,
      "position": {
        "x": 10,
        "y": 8,
        "z": 0
      }
    }
  ],
  "links": [
    {
      "node1": "guide",
      "node2": "course-1",
      "name1": "is explained by",
      "name2": "explains",
      "direction": 0
    },
    {
      "node1": "course-1",
      "node2": "run-1",
      "name1": "is a run of",
      "name2": "has run",
      "direction": 0
    },
    {
      "node1": "course-1",
      "node2": "module-1",
      "name1": "is part of",
      "name2": "contains",
      "direction": 0
    },
    {
      "node1": "module-1",
      "node2": "lesson-1",
      "name1": "is in",
      "name2": "contains",
      "direction": 0
    },
    {
      "node1": "module-1",
      "node2": "assessment-1",
      "name1": "is in",
      "name2": "contains",
      "direction": 0
    },
    {
      "node1": "instructor-1",
      "node2": "run-1",
      "name1": "is taught by",
      "name2": "teaches",
      "direction": 0
    },
    {
      "node1": "skill-1",
      "node2": "lesson-1",
      "name1": "teaches",
      "name2": "is taught in",
      "direction": 0
    },
    {
      "node1": "skill-1",
      "node2": "assessment-1",
      "name1": "assesses",
      "name2": "is assessed by",
      "direction": 0
    },
    {
      "node1": "prereq-1",
      "node2": "course-1",
      "name1": "requires",
      "name2": "is required for",
      "direction": 0
    }
  ],
  "visuals": [
    {
      "nodeType": "Guide",
      "shape": "star",
      "borderColor": "#e8684a"
    },
    {
      "nodeType": "Course",
      "shape": "circle",
      "borderColor": "#7262fd"
    },
    {
      "nodeType": "Course run",
      "shape": "hex[11]",
      "borderColor": "#c41d7f"
    },
    {
      "nodeType": "Module",
      "shape": "rectangle",
      "borderColor": "#008685"
    },
    {
      "nodeType": "Lesson",
      "shape": "hex",
      "borderColor": "#5b8ff9"
    },
    {
      "nodeType": "Assessment",
      "shape": "hex[12]",
      "borderColor": "#8b5e3c"
    },
    {
      "nodeType": "Instructor",
      "shape": "hex[7]",
      "borderColor": "#9661bc"
    },
    {
      "nodeType": "Skill",
      "shape": "hex[5]",
      "borderColor": "#61ddaa"
    },
    {
      "nodeType": "Prerequisite",
      "shape": "hex[13]",
      "borderColor": "#a0d911"
    }
  ],
  "dataTypes": {
    "URL": "string",
    "Provider": "string",
    "Level": "typelist",
    "Language": "typelist",
    "Credential": "typelist",
    "Workload": "string",
    "Start": "datetime",
    "End": "datetime",
    "Mode": "typelist",
    "Schedule": "string",
    "Order": "int",
    "Format": "typelist",
    "Duration minutes": "int",
    "Kind": "typelist",
    "Graded": "bool",
    "Weight": "perc",
    "Passing score": "perc",
    "Affiliation": "string"
  },
  "detailView": [
    {
      "nodeType": "*",
      "own": "*",
      "others": []
    }
  ]
}
