[
  {
    "type": "input",
    "schema": {
      "$ref": "schema#/properties/class1"
    },
    "label": {
      "text": "class1"
    },
    "onChange": "onClass1Change"
  },
  {
    "type": "reusable-element",
    "schema": {
      "$ref": "schema#/properties/class2"
    },
    "alias": "class2",
    "moduleResolver": "resolveClass2"
  },
  {
    "type": "reusable-element",
    "schema": {
      "$ref": "schema#/properties/subjects"
    },
    "dataContext": {
      "schoolName": {
        "$ref": "data#/properties/schoolName"
      }
    },
    "functionCallbacks": {
      "updateStudentName": {
        "$ref": "parentFunctions#/updateStudentName"
      }
    },
    "alias": "subjects",
    "moduleResolver": "resolveSubjects"
  }
]
