{
  "type": "object",
  "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
  "options": {
    "propertyEncodings": {
      "custom_commands_path": {
        "type": "enum",
        "encoding": "CONST_NONE",
        "options": {
          "value": null
        }
      },
      "custom_assertions_path": {
        "type": "enum",
        "encoding": "CONST_NONE",
        "options": {
          "value": null
        }
      },
      "page_objects_path": {
        "type": "enum",
        "encoding": "CONST_NONE",
        "options": {
          "value": null
        }
      },
      "globals_path": {
        "type": "enum",
        "encoding": "CONST_NONE",
        "options": {
          "value": null
        }
      },
      "globals": {
        "type": "object",
        "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
        "options": {
          "propertyEncodings": {
            "abortOnAssertionFailure": {
              "type": "enum",
              "encoding": "BOUNDED_CHOICE_INDEX",
              "options": {
                "choices": [
                  false,
                  true
                ]
              }
            },
            "abortOnElementLocateError": {
              "type": "enum",
              "encoding": "BOUNDED_CHOICE_INDEX",
              "options": {
                "choices": [
                  false,
                  true
                ]
              }
            },
            "waitForConditionPollInterval": {
              "type": "integer",
              "encoding": "FLOOR_MULTIPLE_ENUM_VARINT",
              "options": {
                "minimum": 0,
                "multiplier": 1
              }
            },
            "waitForConditionTimeout": {
              "type": "integer",
              "encoding": "FLOOR_MULTIPLE_ENUM_VARINT",
              "options": {
                "minimum": 0,
                "multiplier": 1
              }
            },
            "throwOnMultipleElementsReturned": {
              "type": "enum",
              "encoding": "BOUNDED_CHOICE_INDEX",
              "options": {
                "choices": [
                  false,
                  true
                ]
              }
            },
            "suppressWarningsOnMultipleElementsReturned": {
              "type": "enum",
              "encoding": "BOUNDED_CHOICE_INDEX",
              "options": {
                "choices": [
                  false,
                  true
                ]
              }
            },
            "asyncHookTimeout": {
              "type": "integer",
              "encoding": "FLOOR_MULTIPLE_ENUM_VARINT",
              "options": {
                "minimum": 0,
                "multiplier": 1
              }
            },
            "unitTestsTimeout": {
              "type": "integer",
              "encoding": "FLOOR_MULTIPLE_ENUM_VARINT",
              "options": {
                "minimum": 0,
                "multiplier": 1
              }
            },
            "customReporterCallbackTimeout": {
              "type": "integer",
              "encoding": "FLOOR_MULTIPLE_ENUM_VARINT",
              "options": {
                "minimum": 0,
                "multiplier": 1
              }
            },
            "retryAssertionTimeout": {
              "type": "integer",
              "encoding": "FLOOR_MULTIPLE_ENUM_VARINT",
              "options": {
                "minimum": 0,
                "multiplier": 1
              }
            }
          },
          "requiredProperties": [
            "asyncHookTimeout",
            "customReporterCallbackTimeout",
            "retryAssertionTimeout",
            "unitTestsTimeout",
            "waitForConditionPollInterval",
            "waitForConditionTimeout"
          ],
          "booleanRequiredProperties": [
            "abortOnAssertionFailure",
            "abortOnElementLocateError",
            "suppressWarningsOnMultipleElementsReturned",
            "throwOnMultipleElementsReturned"
          ]
        }
      },
      "dotenv": {
        "type": "object",
        "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
        "options": {
          "propertyEncodings": {},
          "requiredProperties": [],
          "booleanRequiredProperties": []
        }
      },
      "persist_globals": {
        "type": "enum",
        "encoding": "BOUNDED_CHOICE_INDEX",
        "options": {
          "choices": [
            false,
            true
          ]
        }
      },
      "output_folder": {
        "type": "string",
        "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
        "options": {
          "minimum": 0
        }
      },
      "src_folders": {
        "type": "enum",
        "encoding": "CONST_NONE",
        "options": {
          "value": null
        }
      },
      "live_output": {
        "type": "enum",
        "encoding": "BOUNDED_CHOICE_INDEX",
        "options": {
          "choices": [
            false,
            true
          ]
        }
      },
      "disable_colors": {
        "type": "enum",
        "encoding": "BOUNDED_CHOICE_INDEX",
        "options": {
          "choices": [
            false,
            true
          ]
        }
      },
      "parallel_process_delay": {
        "type": "integer",
        "encoding": "FLOOR_MULTIPLE_ENUM_VARINT",
        "options": {
          "minimum": 0,
          "multiplier": 1
        }
      },
      "selenium": {
        "type": "object",
        "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
        "options": {
          "propertyEncodings": {
            "start_process": {
              "type": "enum",
              "encoding": "BOUNDED_CHOICE_INDEX",
              "options": {
                "choices": [
                  false,
                  true
                ]
              }
            },
            "cli_args": {
              "type": "object",
              "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
              "options": {
                "propertyEncodings": {},
                "requiredProperties": [],
                "booleanRequiredProperties": []
              }
            },
            "server_path": {
              "type": "enum",
              "encoding": "CONST_NONE",
              "options": {
                "value": null
              }
            },
            "log_path": {
              "type": "string",
              "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
              "options": {
                "minimum": 0
              }
            },
            "check_process_delay": {
              "type": "integer",
              "encoding": "FLOOR_MULTIPLE_ENUM_VARINT",
              "options": {
                "minimum": 0,
                "multiplier": 1
              }
            },
            "max_status_poll_tries": {
              "type": "integer",
              "encoding": "FLOOR_MULTIPLE_ENUM_VARINT",
              "options": {
                "minimum": 0,
                "multiplier": 1
              }
            },
            "status_poll_interval": {
              "type": "integer",
              "encoding": "FLOOR_MULTIPLE_ENUM_VARINT",
              "options": {
                "minimum": 0,
                "multiplier": 1
              }
            }
          },
          "requiredProperties": [
            "check_process_delay",
            "cli_args",
            "log_path",
            "max_status_poll_tries",
            "server_path",
            "status_poll_interval"
          ],
          "booleanRequiredProperties": [
            "start_process"
          ]
        }
      },
      "start_session": {
        "type": "enum",
        "encoding": "BOUNDED_CHOICE_INDEX",
        "options": {
          "choices": [
            false,
            true
          ]
        }
      },
      "end_session_on_fail": {
        "type": "enum",
        "encoding": "BOUNDED_CHOICE_INDEX",
        "options": {
          "choices": [
            false,
            true
          ]
        }
      },
      "test_workers": {
        "type": "enum",
        "encoding": "BOUNDED_CHOICE_INDEX",
        "options": {
          "choices": [
            false,
            true
          ]
        }
      },
      "test_runner": {
        "type": "string",
        "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
        "options": {
          "minimum": 0
        }
      },
      "webdriver": {
        "type": "object",
        "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
        "options": {
          "propertyEncodings": {
            "start_process": {
              "type": "enum",
              "encoding": "BOUNDED_CHOICE_INDEX",
              "options": {
                "choices": [
                  false,
                  true
                ]
              }
            },
            "cli_args": {
              "type": "object",
              "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
              "options": {
                "propertyEncodings": {},
                "requiredProperties": [],
                "booleanRequiredProperties": []
              }
            },
            "server_path": {
              "type": "enum",
              "encoding": "CONST_NONE",
              "options": {
                "value": null
              }
            },
            "log_path": {
              "type": "string",
              "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
              "options": {
                "minimum": 0
              }
            },
            "check_process_delay": {
              "type": "integer",
              "encoding": "FLOOR_MULTIPLE_ENUM_VARINT",
              "options": {
                "minimum": 0,
                "multiplier": 1
              }
            },
            "max_status_poll_tries": {
              "type": "integer",
              "encoding": "FLOOR_MULTIPLE_ENUM_VARINT",
              "options": {
                "minimum": 0,
                "multiplier": 1
              }
            },
            "status_poll_interval": {
              "type": "integer",
              "encoding": "FLOOR_MULTIPLE_ENUM_VARINT",
              "options": {
                "minimum": 0,
                "multiplier": 1
              }
            },
            "process_create_timeout": {
              "type": "integer",
              "encoding": "FLOOR_MULTIPLE_ENUM_VARINT",
              "options": {
                "minimum": 0,
                "multiplier": 1
              }
            },
            "timeout_options": {
              "type": "object",
              "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
              "options": {
                "propertyEncodings": {},
                "requiredProperties": [],
                "booleanRequiredProperties": []
              }
            }
          },
          "requiredProperties": [
            "check_process_delay",
            "cli_args",
            "log_path",
            "max_status_poll_tries",
            "process_create_timeout",
            "server_path",
            "status_poll_interval",
            "timeout_options"
          ],
          "booleanRequiredProperties": [
            "start_process"
          ]
        }
      },
      "test_settings": {
        "type": "object",
        "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
        "options": {
          "propertyEncodings": {},
          "requiredProperties": [],
          "booleanRequiredProperties": []
        }
      },
      "launch_url": {
        "type": "string",
        "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
        "options": {
          "minimum": 0
        }
      },
      "silent": {
        "type": "enum",
        "encoding": "BOUNDED_CHOICE_INDEX",
        "options": {
          "choices": [
            false,
            true
          ]
        }
      },
      "output": {
        "type": "enum",
        "encoding": "BOUNDED_CHOICE_INDEX",
        "options": {
          "choices": [
            false,
            true
          ]
        }
      },
      "detailed_output": {
        "type": "enum",
        "encoding": "BOUNDED_CHOICE_INDEX",
        "options": {
          "choices": [
            false,
            true
          ]
        }
      },
      "output_timestamp": {
        "type": "enum",
        "encoding": "BOUNDED_CHOICE_INDEX",
        "options": {
          "choices": [
            false,
            true
          ]
        }
      },
      "disable_error_log": {
        "type": "enum",
        "encoding": "BOUNDED_CHOICE_INDEX",
        "options": {
          "choices": [
            false,
            true
          ]
        }
      },
      "screenshots": {
        "type": "enum",
        "encoding": "BOUNDED_CHOICE_INDEX",
        "options": {
          "choices": [
            false,
            true
          ]
        }
      },
      "log_screenshot_data": {
        "type": "enum",
        "encoding": "BOUNDED_CHOICE_INDEX",
        "options": {
          "choices": [
            false,
            true
          ]
        }
      },
      "desiredCapabilities": {
        "type": "object",
        "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
        "options": {
          "propertyEncodings": {
            "browserName": {
              "type": "string",
              "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
              "options": {
                "minimum": 0
              }
            }
          },
          "requiredProperties": [
            "browserName"
          ],
          "booleanRequiredProperties": []
        }
      },
      "exclude": {
        "type": "enum",
        "encoding": "CONST_NONE",
        "options": {
          "value": null
        }
      },
      "filter": {
        "type": "enum",
        "encoding": "CONST_NONE",
        "options": {
          "value": null
        }
      },
      "skipgroup": {
        "type": "string",
        "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
        "options": {
          "minimum": 0
        }
      },
      "sync_test_names": {
        "type": "enum",
        "encoding": "BOUNDED_CHOICE_INDEX",
        "options": {
          "choices": [
            false,
            true
          ]
        }
      },
      "skiptags": {
        "type": "string",
        "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
        "options": {
          "minimum": 0
        }
      },
      "use_xpath": {
        "type": "enum",
        "encoding": "BOUNDED_CHOICE_INDEX",
        "options": {
          "choices": [
            false,
            true
          ]
        }
      },
      "parallel_mode": {
        "type": "enum",
        "encoding": "BOUNDED_CHOICE_INDEX",
        "options": {
          "choices": [
            false,
            true
          ]
        }
      },
      "report_prefix": {
        "type": "string",
        "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
        "options": {
          "minimum": 0
        }
      },
      "unit_tests_mode": {
        "type": "enum",
        "encoding": "BOUNDED_CHOICE_INDEX",
        "options": {
          "choices": [
            false,
            true
          ]
        }
      },
      "default_reporter": {
        "type": "string",
        "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
        "options": {
          "minimum": 0
        }
      }
    },
    "requiredProperties": [
      "custom_assertions_path",
      "custom_commands_path",
      "default_reporter",
      "desiredCapabilities",
      "dotenv",
      "exclude",
      "filter",
      "globals",
      "globals_path",
      "launch_url",
      "output_folder",
      "page_objects_path",
      "parallel_process_delay",
      "report_prefix",
      "selenium",
      "skipgroup",
      "skiptags",
      "src_folders",
      "test_runner",
      "test_settings",
      "webdriver"
    ],
    "booleanRequiredProperties": [
      "detailed_output",
      "disable_colors",
      "disable_error_log",
      "end_session_on_fail",
      "live_output",
      "log_screenshot_data",
      "output",
      "output_timestamp",
      "parallel_mode",
      "persist_globals",
      "screenshots",
      "silent",
      "start_session",
      "sync_test_names",
      "test_workers",
      "unit_tests_mode",
      "use_xpath"
    ]
  }
}
