[
  {
    "name": "media",
    "type": "group",
    "label": "Media",
    "importance": "medium",
    "fields": [
      {
        "name": "type",
        "type": "library",
        "label": "Type",
        "importance": "medium",
        "options": [
          "H5P.Image 1.1",
          "H5P.Video 1.5"
        ],
        "optional": true,
        "description": "Optional media to display above the question."
      },
      {
        "name": "disableImageZooming",
        "type": "boolean",
        "label": "Disable image zooming",
        "importance": "low",
        "default": false,
        "optional": true,
        "widget": "showWhen",
        "showWhen": {
          "rules": [
            {
              "field": "type",
              "equals": "H5P.Image 1.1"
            }
          ]
        }
      }
    ]
  },
  {
    "name": "taskDescription",
    "label": "Task description",
    "type": "text",
    "widget": "html",
    "importance": "high",
    "description": "Describe your task here.",
    "placeholder": "Please listen carefully and write what you hear.",
    "enterMode": "div",
    "tags": [
      "strong",
      "em",
      "u",
      "a",
      "ul",
      "ol",
      "h2",
      "h3",
      "hr"
    ]
  },
  {
    "name": "sentences",
    "label": "Sentences",
    "importance": "high",
    "type": "list",
    "widgets": [
      {
        "name": "VerticalTabs",
        "label": "Default"
      }
    ],
    "min": 1,
    "entity": "Sentence",
    "field": {
      "name": "sentence",
      "type": "group",
      "label": "Sentence",
      "fields": [
        {
          "name": "sample",
          "type": "audio",
          "label": "Sound sample",
          "description": "Sentence spoken in normal speed",
          "importance": "medium"
        },
        {
          "name": "sampleAlternative",
          "type": "audio",
          "label": "Sound sample slow",
          "description": "Sentence spoken in slow speed",
          "importance": "medium",
          "optional": true
        },
        {
          "name": "text",
          "type": "text",
          "label": "Text",
          "description": "Text that should be written",
          "importance": "medium"
        }
      ]
    }
  },
  {
    "name": "overallFeedback",
    "type": "group",
    "label": "Overall Feedback",
    "importance": "low",
    "expanded": true,
    "fields": [
      {
        "name": "overallFeedback",
        "type": "list",
        "widgets": [
          {
            "name": "RangeList",
            "label": "Default"
          }
        ],
        "importance": "high",
        "label": "Define custom feedback for any score range",
        "description": "Click the \"Add range\" button to add as many ranges as you need. Example: 0-20% Bad score, 21-91% Average Score, 91-100% Great Score!",
        "entity": "range",
        "min": 1,
        "defaultNum": 1,
        "optional": true,
        "field": {
          "name": "overallFeedback",
          "type": "group",
          "importance": "low",
          "fields": [
            {
              "name": "from",
              "type": "number",
              "label": "Score Range",
              "min": 0,
              "max": 100,
              "default": 0,
              "unit": "%"
            },
            {
              "name": "to",
              "type": "number",
              "min": 0,
              "max": 100,
              "default": 100,
              "unit": "%"
            },
            {
              "name": "feedback",
              "type": "text",
              "label": "Feedback for defined score range",
              "importance": "low",
              "placeholder": "Fill in the feedback",
              "optional": true
            }
          ]
        }
      }
    ]
  },
  {
    "name": "behaviour",
    "type": "group",
    "label": "Behavioural settings",
    "importance": "low",
    "description": "These options will let you control how the task behaves.",
    "fields": [
      {
        "name": "tries",
        "type": "number",
        "label": "Maximum tries",
        "description": "Will limit the number of times the samples for each sentence can be listened to.",
        "optional": true,
        "min": 1
      },
      {
        "name": "triesAlternative",
        "type": "number",
        "label": "Maximum tries for slow speed",
        "description": "Will limit the number of times the slow samples for each sentence can be listened to.",
        "optional": true,
        "min": 1
      },
      {
        "name": "ignorePunctuation",
        "type": "boolean",
        "label": "Ignore Punctuation",
        "description": "If checked, the punctuation will not be considerd for scoring",
        "optional": false,
        "default": true
      },
      {
        "name": "typoFactor",
        "type": "select",
        "label": "Value of typos",
        "description": "Determine to which extend typing errors count as a mistake.",
        "options": [
            {
              "value": "100",
              "label": "100 %"
            },
            {
              "value": "50",
              "label": "50 %"
            },
            {
              "value": "0",
              "label": "0 %"
            }
          ],
        "default": "50"
      },
      {
        "name": "enableRetry",
        "label": "Enable \"Retry\"",
        "type": "boolean",
        "importance": "low",
        "default": true,
        "optional": true
      },
      {
        "name": "enableSolution",
        "label": "Enable \"Show solution\" button",
        "type": "boolean",
        "importance": "low",
        "default": true,
        "optional": true
      }
    ]
  },
  {
    "name": "l10n",
    "type": "group",
    "common": true,
    "label": "User interface",
    "importance": "low",
    "fields": [
      {
        "name": "generalFeedback",
        "type": "text",
        "label": "General feedback",
        "description": "You can use several placeholders that will be replaced with the adequate number: @matches = number of matches, @total = total mistakes, @capped = capped total mistakes, @wrong = wrong words, @added = additional words, @missing = missing words, @typo = typing errors",
        "importance": "low",
        "default": "You have made @total mistake(s)."
      },
      {
        "name": "checkAnswer",
        "type": "text",
        "label": "Text for \"Check\" button",
        "importance": "low",
        "default": "Check"
      },
      {
        "name": "tryAgain",
        "label": "Text for \"Retry\" button",
        "type": "text",
        "importance": "low",
        "default": "Retry"
      },
      {
        "name": "showSolution",
        "type": "text",
        "label": "Text for \"Show solution\" button",
        "importance": "low",
        "default": "Show solution"
      },
      {
        "name": "audioNotSupported",
        "type": "text",
        "label": "Audio not supported message",
        "importance": "low",
        "default": "Your browser does not support this audio."
      }
    ]
  },
  {
    "name": "a11y",
    "type": "group",
    "common": true,
    "label": "Readspeaker",
    "importance": "low",
    "fields": [
      {
        "name": "play",
        "type": "text",
        "label": "Play button",
        "importance": "low",
        "default": "Play"
      },
      {
        "name": "playSlowly",
        "type": "text",
        "label": "Play slowly button",
        "importance": "low",
        "default": "Play slowly"
      },
      {
        "name": "triesLeft",
        "type": "text",
        "label": "Tries left (text for readspeakers and hover text)",
        "description": "@number will be replaced by the current number of tries left.",
        "importance": "low",
        "default": "Number of tries left: @number"
      },
      {
        "name": "infinite",
        "type": "text",
        "label": "Infinite (text for readspeakers and hover text)",
        "importance": "low",
        "default": "infinite"
      },
      {
        "name": "enterText",
        "type": "text",
        "label": "Enter text field",
        "importance": "low",
        "default": "Enter what you have heard."
      },
      {
        "name": "yourResult",
        "type": "text",
        "label": "Your result",
        "description": "@score will be replaced by the number of points. @total will be replaced by the maximum possible points.",
        "importance": "low",
        "default": "You got @score out of @total points"
      },
      {
        "name": "solution",
        "type": "text",
        "label": "Solution",
        "importance": "low",
        "default": "Solution"
      },
      {
        "name": "sentence",
        "type": "text",
        "label": "Sentence",
        "importance": "low",
        "default": "Sentence"
      },
      {
        "name": "item",
        "type": "text",
        "label": "Item",
        "importance": "low",
        "default": "Item"
      },
      {
        "name": "correct",
        "type": "text",
        "label": "Correct",
        "importance": "low",
        "default": "correct"
      },
      {
        "name": "wrong",
        "type": "text",
        "label": "Wrong",
        "importance": "low",
        "default": "wrong"
      },
      {
        "name": "typo",
        "type": "text",
        "label": "Small mistake",
        "importance": "low",
        "default": "small mistake"
      },
      {
        "name": "missing",
        "type": "text",
        "label": "Missing word or symbol",
        "importance": "low",
        "default": "missing"
      },
      {
        "name": "added",
        "type": "text",
        "label": "Added word or symbol",
        "importance": "low",
        "default": "added"
      },
      {
        "name": "shouldHaveBeen",
        "type": "text",
        "label": "CorrectSolution",
        "importance": "low",
        "default": "Should have been"
      },
      {
        "name": "point",
        "type": "text",
        "label": "Point",
        "importance": "low",
        "default": "point"
      },
      {
        "name": "points",
        "type": "text",
        "label": "Points",
        "importance": "low",
        "default": "points"
      },
      {
        "name": "period",
        "type": "text",
        "label": "Period",
        "importance": "low",
        "default": "period"
      },
      {
        "name": "exclamationPoint",
        "type": "text",
        "label": "Exclamation point",
        "importance": "low",
        "default": "exclamation point"
      },
      {
        "name": "questionMark",
        "type": "text",
        "label": "Question mark",
        "importance": "low",
        "default": "question mark"
      },
      {
        "name": "comma",
        "type": "text",
        "label": "Comma",
        "importance": "low",
        "default": "comma"
      },
      {
        "name": "singleQuote",
        "type": "text",
        "label": "Single quote",
        "importance": "low",
        "default": "single quote"
      },
      {
        "name": "doubleQuote",
        "type": "text",
        "label": "Double quote",
        "importance": "low",
        "default": "double quote"
      },
      {
        "name": "colon",
        "type": "text",
        "label": "Colon",
        "importance": "low",
        "default": "colon"
      },
      {
        "name": "semicolon",
        "type": "text",
        "label": "Semicolon",
        "importance": "low",
        "default": "semicolon"
      },
      {
        "name": "plus",
        "type": "text",
        "label": "Plus",
        "importance": "low",
        "default": "plus"
      },
      {
        "name": "minus",
        "type": "text",
        "label": "Minus",
        "importance": "low",
        "default": "minus"
      },
      {
        "name": "asterisk",
        "type": "text",
        "label": "Asterisk",
        "importance": "low",
        "default": "asterisk"
      },
      {
        "name": "forwardSlash",
        "type": "text",
        "label": "Forward slash",
        "importance": "low",
        "default": "forward slash"
      }
    ]
  }
]
