{
    "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"
        ]
    }
}
