{
  "title": "JSON schema for routerMap.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "routerMap": {
      "description": "Indicates the router map",
      "type": "array",
      "maxItems": 512,
      "items": {
        "type": "object",
        "uniqueItems": true,
        "propertyNames": {
          "enum": [
            "name",
            "pageSourceFile",
            "buildFunction",
            "data",
            "customData"
          ]
        },
        "properties": {
          "name": {
            "description": "Indicates the name of the page that needs to be redirected",
            "type":"string",
            "maxLength": 1023
          },
          "pageSourceFile": {
            "description": "Indicates the file path of the current page within the module",
            "type": "string",
            "maxLength": 255
          },
          "buildFunction": {
            "description": "Indicates the name of the function @Builder decorated. The function describe UI of current page",
            "type": "string",
            "maxLength": 1023
          },
          "data": {
            "description": "Indicates the data, which can only be configured to accommodate custom data of string type.",
            "type": "object",
            "maxProperties": 128,
            "additionalProperties": {
              "type": "string"
            }
          },
          "customData": {
            "description": "Indicates the custom data, which can be configured to accommodate any type of custom data.",
            "type": "object"
          }
        },
        "additionalProperties": false,
        "required": [
          "name",
          "pageSourceFile",
          "buildFunction"
        ]
      }
    }
  },
  "required": [
    "routerMap"
  ]
}