{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/pantsbuild/versions/2.20.0.json",
  "description": "Pants configuration file schema: <https://www.pantsbuild.org/>",
  "x-lintel": {
    "source": "https://www.schemastore.org/pantsbuild-2.20.0.json",
    "sourceSha256": "cd838eb92c408c0e15c71ad9b9261429a97aa7ece170989a0bbe690a99e47d76",
    "fileMatch": [
      "pants*.toml"
    ],
    "parsers": [
      "toml"
    ]
  },
  "type": "object",
  "properties": {
    "GLOBAL": {
      "description": "Options to control the overall behavior of Pants.",
      "properties": {
        "backend_packages": {
          "default": [],
          "description": "Register functionality from these backends\n<https://www.pantsbuild.org/v2.20/docs/reference-global#backend_packages>",
          "type": "array"
        },
        "build_file_prelude_globs": {
          "default": [],
          "description": "Python files to evaluate and whose symbols should be exposed to all BUILD files\n<https://www.pantsbuild.org/v2.20/docs/reference-global#build_file_prelude_globs>",
          "type": "array"
        },
        "build_ignore": {
          "default": [],
          "description": "Path globs or literals to ignore when identifying BUILD files\n<https://www.pantsbuild.org/v2.20/docs/reference-global#build_ignore>",
          "type": "array"
        },
        "build_patterns": {
          "default": [
            "BUILD",
            "BUILD.*"
          ],
          "description": "The naming scheme for BUILD files, i.e. where you define targets\n<https://www.pantsbuild.org/v2.20/docs/reference-global#build_patterns>",
          "type": "array"
        },
        "ca_certs_path": {
          "default": null,
          "description": "Path to a file containing PEM-format CA certificates used for verifying secure connections when downloading files required by a build\n<https://www.pantsbuild.org/v2.20/docs/reference-global#ca_certs_path>",
          "type": "string"
        },
        "cache_content_behavior": {
          "default": "fetch",
          "description": "Controls how the content of cache entries is handled during process execution\n<https://www.pantsbuild.org/v2.20/docs/reference-global#cache_content_behavior>",
          "enum": [
            "fetch",
            "validate",
            "defer"
          ]
        },
        "colors": {
          "default": false,
          "description": "Whether Pants should use colors in output or not\n<https://www.pantsbuild.org/v2.20/docs/reference-global#colors>",
          "type": "boolean"
        },
        "concurrent": {
          "default": false,
          "description": "Enable concurrent runs of Pants\n<https://www.pantsbuild.org/v2.20/docs/reference-global#concurrent>",
          "type": "boolean"
        },
        "docker_execution": {
          "default": true,
          "description": "If true, `docker_environment` targets can be used to run builds inside a Docker container\n<https://www.pantsbuild.org/v2.20/docs/reference-global#docker_execution>",
          "type": "boolean"
        },
        "dynamic_ui": {
          "default": true,
          "description": "Display a dynamically-updating console UI as Pants runs\n<https://www.pantsbuild.org/v2.20/docs/reference-global#dynamic_ui>",
          "type": "boolean"
        },
        "dynamic_ui_renderer": {
          "default": "indicatif-spinner",
          "description": "If `--dynamic-ui` is enabled, selects the renderer\n<https://www.pantsbuild.org/v2.20/docs/reference-global#dynamic_ui_renderer>",
          "enum": [
            "indicatif-spinner",
            "experimental-prodash"
          ]
        },
        "engine_visualize_to": {
          "default": null,
          "description": "A directory to write execution and rule graphs to as `dot` files\n<https://www.pantsbuild.org/v2.20/docs/reference-global#engine_visualize_to>"
        },
        "ignore_warnings": {
          "default": [],
          "description": "Ignore logs and warnings matching these strings\n<https://www.pantsbuild.org/v2.20/docs/reference-global#ignore_warnings>",
          "type": "array"
        },
        "keep_sandboxes": {
          "default": "never",
          "description": "Controls whether Pants will clean up local directories used as chroots for running processes\n<https://www.pantsbuild.org/v2.20/docs/reference-global#keep_sandboxes>",
          "enum": [
            "always",
            "on_failure",
            "never"
          ]
        },
        "level": {
          "default": "info",
          "description": "Set the logging level\n<https://www.pantsbuild.org/v2.20/docs/reference-global#level>",
          "enum": [
            "trace",
            "debug",
            "info",
            "warn",
            "error"
          ]
        },
        "local_cache": {
          "default": true,
          "description": "Whether to cache process executions in a local cache persisted to disk at `--local-store-dir`\n<https://www.pantsbuild.org/v2.20/docs/reference-global#local_cache>",
          "type": "boolean"
        },
        "local_execution_root_dir": {
          "default": "<tmp_dir>",
          "description": "Directory to use for local process execution sandboxing\n<https://www.pantsbuild.org/v2.20/docs/reference-global#local_execution_root_dir>",
          "type": "string"
        },
        "local_store_dir": {
          "default": "$XDG_CACHE_HOME/lmdb_store",
          "description": "Directory to use for the local file store, which stores the results of subprocesses run by Pants\n<https://www.pantsbuild.org/v2.20/docs/reference-global#local_store_dir>",
          "type": "string"
        },
        "local_store_directories_max_size_bytes": {
          "default": 16000000000,
          "description": "The maximum size in bytes of the local store containing directories\n<https://www.pantsbuild.org/v2.20/docs/reference-global#local_store_directories_max_size_bytes>",
          "type": "number"
        },
        "local_store_files_max_size_bytes": {
          "default": 256000000000,
          "description": "The maximum size in bytes of the local store containing files\n<https://www.pantsbuild.org/v2.20/docs/reference-global#local_store_files_max_size_bytes>",
          "type": "number"
        },
        "local_store_processes_max_size_bytes": {
          "default": 16000000000,
          "description": "The maximum size in bytes of the local store containing process cache entries\n<https://www.pantsbuild.org/v2.20/docs/reference-global#local_store_processes_max_size_bytes>",
          "type": "number"
        },
        "local_store_shard_count": {
          "default": 16,
          "description": "The number of LMDB shards created for the local store\n<https://www.pantsbuild.org/v2.20/docs/reference-global#local_store_shard_count>",
          "type": "number"
        },
        "log_levels_by_target": {
          "default": {},
          "description": "Set a more specific logging level for one or more logging targets\n<https://www.pantsbuild.org/v2.20/docs/reference-global#log_levels_by_target>",
          "type": "object"
        },
        "log_show_rust_3rdparty": {
          "default": false,
          "description": "Whether to show/hide logging done by 3rdparty Rust crates used by the Pants engine\n<https://www.pantsbuild.org/v2.20/docs/reference-global#log_show_rust_3rdparty>",
          "type": "boolean"
        },
        "logdir": {
          "default": null,
          "description": "Write logs to files under this directory\n<https://www.pantsbuild.org/v2.20/docs/reference-global#logdir>",
          "type": "string"
        },
        "loop": {
          "default": false,
          "description": "Run goals continuously as file changes are detected\n<https://www.pantsbuild.org/v2.20/docs/reference-global#loop>",
          "type": "boolean"
        },
        "loop_max": {
          "default": 4294967296,
          "description": "The maximum number of times to loop when `--loop` is specified\n<https://www.pantsbuild.org/v2.20/docs/reference-global#loop_max>",
          "type": "number"
        },
        "named_caches_dir": {
          "default": "$XDG_CACHE_HOME/named_caches",
          "description": "Directory to use for named global caches for tools and processes with trusted, concurrency-safe caches\n<https://www.pantsbuild.org/v2.20/docs/reference-global#named_caches_dir>",
          "type": "string"
        },
        "pants_bin_name": {
          "default": "pants",
          "description": "The name of the script or binary used to invoke Pants\n<https://www.pantsbuild.org/v2.20/docs/reference-global#pants_bin_name>",
          "type": "string"
        },
        "pants_config_files": {
          "default": [
            "<buildroot>/pants.toml"
          ],
          "description": "Paths to Pants config files\n<https://www.pantsbuild.org/v2.20/docs/reference-global#pants_config_files>",
          "type": "array"
        },
        "pants_distdir": {
          "default": "<buildroot>/dist",
          "description": "Write end products, such as the results of `pants package`, to this dir\n<https://www.pantsbuild.org/v2.20/docs/reference-global#pants_distdir>",
          "type": "string"
        },
        "pants_ignore": {
          "default": [
            ".*/",
            "/dist/",
            "__pycache__",
            "!.semgrep/",
            "!.github/"
          ],
          "description": "Paths to ignore for all filesystem operations performed by pants (e.g\n<https://www.pantsbuild.org/v2.20/docs/reference-global#pants_ignore>",
          "type": "array"
        },
        "pants_ignore_use_gitignore": {
          "default": true,
          "description": "Include patterns from `.gitignore`, `.git/info/exclude`, and the global gitignore files in the option `[GLOBAL].pants_ignore`, which is used for Pants to ignore filesystem operations on those patterns\n<https://www.pantsbuild.org/v2.20/docs/reference-global#pants_ignore_use_gitignore>",
          "type": "boolean"
        },
        "pants_physical_workdir_base": {
          "default": null,
          "description": "When set, a base directory in which to store `--pants-workdir` contents\n<https://www.pantsbuild.org/v2.20/docs/reference-global#pants_physical_workdir_base>",
          "type": "string"
        },
        "pants_subprocessdir": {
          "default": "<buildroot>/.pants.d/pids",
          "description": "The directory to use for tracking subprocess metadata\n<https://www.pantsbuild.org/v2.20/docs/reference-global#pants_subprocessdir>",
          "type": "string"
        },
        "pants_version": {
          "default": "<pants_version>",
          "description": "Use this Pants version\n<https://www.pantsbuild.org/v2.20/docs/reference-global#pants_version>",
          "type": "string"
        },
        "pants_workdir": {
          "default": "<buildroot>/.pants.d/workdir",
          "description": "Write intermediate logs and output files to this dir\n<https://www.pantsbuild.org/v2.20/docs/reference-global#pants_workdir>",
          "type": "string"
        },
        "pantsd": {
          "default": true,
          "description": "Enables use of the Pants daemon (pantsd). pantsd can significantly improve runtime performance by lowering per-run startup cost, and by memoizing filesystem operations and rule execution\n<https://www.pantsbuild.org/v2.20/docs/reference-global#pantsd>",
          "type": "boolean"
        },
        "pantsd_invalidation_globs": {
          "default": [],
          "description": "Filesystem events matching any of these globs will trigger a daemon restart\n<https://www.pantsbuild.org/v2.20/docs/reference-global#pantsd_invalidation_globs>",
          "type": "array"
        },
        "pantsd_max_memory_usage": {
          "default": "4GiB",
          "description": "The maximum memory usage of the pantsd process\n<https://www.pantsbuild.org/v2.20/docs/reference-global#pantsd_max_memory_usage>"
        },
        "pantsd_pailgun_port": {
          "default": 0,
          "description": "The port to bind the Pants nailgun server to\n<https://www.pantsbuild.org/v2.20/docs/reference-global#pantsd_pailgun_port>",
          "type": "number"
        },
        "pantsd_timeout_when_multiple_invocations": {
          "default": 60.0,
          "description": "The maximum amount of time to wait for the invocation to start until raising a timeout exception\n<https://www.pantsbuild.org/v2.20/docs/reference-global#pantsd_timeout_when_multiple_invocations>",
          "type": "number"
        },
        "pantsrc": {
          "default": true,
          "description": "Use pantsrc files located at the paths specified in the global option `pantsrc_files`\n<https://www.pantsbuild.org/v2.20/docs/reference-global#pantsrc>",
          "type": "boolean"
        },
        "pantsrc_files": {
          "default": [
            "/etc/pantsrc",
            "~/.pants.rc",
            ".pants.rc"
          ],
          "description": "Override config with values from these files, using syntax matching that of `--pants-config-files`\n<https://www.pantsbuild.org/v2.20/docs/reference-global#pantsrc_files>",
          "type": "array"
        },
        "plugins": {
          "default": [],
          "description": "Allow backends to be loaded from these plugins (usually released through PyPI). The default backends for each plugin will be loaded automatically\n<https://www.pantsbuild.org/v2.20/docs/reference-global#plugins>",
          "type": "array"
        },
        "plugins_force_resolve": {
          "default": false,
          "description": "Re-resolve plugins, even if previously resolved\n<https://www.pantsbuild.org/v2.20/docs/reference-global#plugins_force_resolve>",
          "type": "boolean"
        },
        "print_stacktrace": {
          "default": false,
          "description": "Print the full exception stack trace for any errors\n<https://www.pantsbuild.org/v2.20/docs/reference-global#print_stacktrace>",
          "type": "boolean"
        },
        "process_execution_cache_namespace": {
          "default": null,
          "description": "The cache namespace for process execution\n<https://www.pantsbuild.org/v2.20/docs/reference-global#process_execution_cache_namespace>",
          "type": "string"
        },
        "process_execution_graceful_shutdown_timeout": {
          "default": 3,
          "description": "The time in seconds to wait when gracefully shutting down an interactive process (such as one opened using `pants run`) before killing it\n<https://www.pantsbuild.org/v2.20/docs/reference-global#process_execution_graceful_shutdown_timeout>",
          "type": "number"
        },
        "process_execution_local_enable_nailgun": {
          "default": true,
          "description": "Whether or not to use nailgun to run JVM requests that are marked as supporting nailgun\n<https://www.pantsbuild.org/v2.20/docs/reference-global#process_execution_local_enable_nailgun>",
          "type": "boolean"
        },
        "process_execution_local_parallelism": {
          "default": "#cores",
          "description": "Number of concurrent processes that may be executed locally\n<https://www.pantsbuild.org/v2.20/docs/reference-global#process_execution_local_parallelism>",
          "type": "number"
        },
        "process_execution_remote_parallelism": {
          "default": 128,
          "description": "Number of concurrent processes that may be executed remotely\n<https://www.pantsbuild.org/v2.20/docs/reference-global#process_execution_remote_parallelism>",
          "type": "number"
        },
        "process_per_child_memory_usage": {
          "default": "512MiB",
          "description": "The default memory usage for a single \"pooled\" child process\n<https://www.pantsbuild.org/v2.20/docs/reference-global#process_per_child_memory_usage>"
        },
        "process_total_child_memory_usage": {
          "default": null,
          "description": "The maximum memory usage for all \"pooled\" child processes\n<https://www.pantsbuild.org/v2.20/docs/reference-global#process_total_child_memory_usage>"
        },
        "pythonpath": {
          "default": [],
          "description": "Add these directories to PYTHONPATH to search for plugins\n<https://www.pantsbuild.org/v2.20/docs/reference-global#pythonpath>",
          "type": "array"
        },
        "remote_ca_certs_path": {
          "default": null,
          "description": "Path to a PEM file containing CA certificates used for verifying secure connections to `[GLOBAL].remote_execution_address` and `[GLOBAL].remote_store_address`\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_ca_certs_path>",
          "type": "string"
        },
        "remote_cache_read": {
          "default": false,
          "description": "Whether to enable reading from a remote cache\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_cache_read>",
          "type": "boolean"
        },
        "remote_cache_rpc_concurrency": {
          "default": 128,
          "description": "The number of concurrent requests allowed to the remote cache service\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_cache_rpc_concurrency>",
          "type": "number"
        },
        "remote_cache_rpc_timeout_millis": {
          "default": 1500,
          "description": "Timeout value for remote cache RPCs in milliseconds\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_cache_rpc_timeout_millis>",
          "type": "number"
        },
        "remote_cache_warnings": {
          "default": "backoff",
          "description": "How frequently to log remote cache failures at the `warn` log level\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_cache_warnings>",
          "enum": [
            "ignore",
            "first_only",
            "backoff",
            "always"
          ]
        },
        "remote_cache_write": {
          "default": false,
          "description": "Whether to enable writing results to a remote cache\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_cache_write>",
          "type": "boolean"
        },
        "remote_client_certs_path": {
          "default": null,
          "description": "Path to a PEM file containing client certificates used for verifying secure connections to `[GLOBAL].remote_execution_address` and `[GLOBAL].remote_store_address` when using client authentication (mTLS)\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_client_certs_path>",
          "type": "string"
        },
        "remote_client_key_path": {
          "default": null,
          "description": "Path to a PEM file containing a private key used for verifying secure connections to `[GLOBAL].remote_execution_address` and `[GLOBAL].remote_store_address` when using client authentication (mTLS)\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_client_key_path>",
          "type": "string"
        },
        "remote_execution": {
          "default": false,
          "description": "Enables remote workers for increased parallelism. (Alpha)\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_execution>",
          "type": "boolean"
        },
        "remote_execution_address": {
          "default": null,
          "description": "The URI of a server/entity used as a remote execution scheduler\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_execution_address>",
          "type": "string"
        },
        "remote_execution_append_only_caches_base_path": {
          "default": null,
          "description": "Sets the base path to use when setting up an append-only cache for a process running remotely\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_execution_append_only_caches_base_path>",
          "type": "string"
        },
        "remote_execution_extra_platform_properties": {
          "default": [],
          "description": "Platform properties to set on remote execution requests\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_execution_extra_platform_properties>",
          "type": "array"
        },
        "remote_execution_headers": {
          "default": "{'user-agent': 'pants/<pants_version>'}",
          "description": "Headers to set on remote execution requests\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_execution_headers>",
          "type": "object"
        },
        "remote_execution_overall_deadline_secs": {
          "default": 3600,
          "description": "Overall timeout in seconds for each remote execution request from time of submission\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_execution_overall_deadline_secs>",
          "type": "number"
        },
        "remote_execution_rpc_concurrency": {
          "default": 128,
          "description": "The number of concurrent requests allowed to the remote execution service\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_execution_rpc_concurrency>",
          "type": "number"
        },
        "remote_instance_name": {
          "default": null,
          "description": "Name of the remote instance to use by remote caching and remote execution\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_instance_name>",
          "type": "string"
        },
        "remote_oauth_bearer_token": {
          "default": null,
          "description": "An oauth token to use for gGRPC connections to `[GLOBAL].remote_execution_address` and `[GLOBAL].remote_store_address`\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_oauth_bearer_token>",
          "type": "string"
        },
        "remote_provider": {
          "default": "reapi",
          "description": "The type of provider to use, if using a remote cache and/or remote execution, See <https://www.pantsbuild.org/2.20/docs/using-pants/remote-caching-and-execution> for details\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_provider>",
          "enum": [
            "reapi",
            "experimental-file",
            "experimental-github-actions-cache"
          ]
        },
        "remote_store_address": {
          "default": null,
          "description": "The URI of a server/entity used as a remote file store\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_store_address>",
          "type": "string"
        },
        "remote_store_batch_api_size_limit": {
          "default": 4194304,
          "description": "The maximum total size of blobs allowed to be sent in a single batch API call to the remote store\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_store_batch_api_size_limit>",
          "type": "number"
        },
        "remote_store_chunk_bytes": {
          "default": 1048576,
          "description": "Size in bytes of chunks transferred to/from the remote file store\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_store_chunk_bytes>",
          "type": "number"
        },
        "remote_store_headers": {
          "default": "{'user-agent': 'pants/<pants_version>'}",
          "description": "Headers to set on remote store requests\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_store_headers>",
          "type": "object"
        },
        "remote_store_rpc_concurrency": {
          "default": 128,
          "description": "The number of concurrent requests allowed to the remote store service\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_store_rpc_concurrency>",
          "type": "number"
        },
        "remote_store_rpc_retries": {
          "default": 2,
          "description": "Number of times to retry any RPC to the remote store before giving up\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_store_rpc_retries>",
          "type": "number"
        },
        "remote_store_rpc_timeout_millis": {
          "default": 30000,
          "description": "Timeout value for remote store RPCs (not including streaming requests) in milliseconds\n<https://www.pantsbuild.org/v2.20/docs/reference-global#remote_store_rpc_timeout_millis>",
          "type": "number"
        },
        "rule_threads_core": {
          "default": "max(2, #cores/2)",
          "description": "The number of threads to keep active and ready to execute `@rule` logic (see also: `--rule-threads-max`)\n<https://www.pantsbuild.org/v2.20/docs/reference-global#rule_threads_core>",
          "type": "number"
        },
        "rule_threads_max": {
          "default": null,
          "description": "The maximum number of threads to use to execute `@rule` logic\n<https://www.pantsbuild.org/v2.20/docs/reference-global#rule_threads_max>",
          "type": "number"
        },
        "session_end_tasks_timeout": {
          "default": 3.0,
          "description": "The time in seconds to wait for still-running \"session end\" tasks to complete before finishing completion of a Pants invocation. \"Session end\" tasks include, for example, writing data that was generated during the applicable Pants invocation to a configured remote cache\n<https://www.pantsbuild.org/v2.20/docs/reference-global#session_end_tasks_timeout>",
          "type": "number"
        },
        "show_log_target": {
          "default": false,
          "description": "Display the target where a log message originates in that log message's output\n<https://www.pantsbuild.org/v2.20/docs/reference-global#show_log_target>",
          "type": "boolean"
        },
        "spec_files": {
          "default": [],
          "description": "Read additional specs (target addresses, files, and/or globs), one per line, from these files\n<https://www.pantsbuild.org/v2.20/docs/reference-global#spec_files>",
          "type": "array"
        },
        "stats_record_option_scopes": {
          "default": [
            "*"
          ],
          "description": "Option scopes to record in stats on run completion\n<https://www.pantsbuild.org/v2.20/docs/reference-global#stats_record_option_scopes>",
          "type": "array"
        },
        "streaming_workunits_complete_async": {
          "default": true,
          "description": "True if stats recording should be allowed to complete asynchronously when `pantsd` is enabled\n<https://www.pantsbuild.org/v2.20/docs/reference-global#streaming_workunits_complete_async>",
          "type": "boolean"
        },
        "streaming_workunits_level": {
          "default": "debug",
          "description": "The level of workunits that will be reported to streaming workunit event receivers\n<https://www.pantsbuild.org/v2.20/docs/reference-global#streaming_workunits_level>",
          "enum": [
            "trace",
            "debug",
            "info",
            "warn",
            "error"
          ]
        },
        "streaming_workunits_report_interval": {
          "default": 1.0,
          "description": "Interval in seconds between when streaming workunit event receivers will be polled\n<https://www.pantsbuild.org/v2.20/docs/reference-global#streaming_workunits_report_interval>",
          "type": "number"
        },
        "subproject_roots": {
          "default": [],
          "description": "Paths that correspond with build roots for any subproject that this project depends on\n<https://www.pantsbuild.org/v2.20/docs/reference-global#subproject_roots>",
          "type": "array"
        },
        "tag": {
          "default": [],
          "description": "Include only targets with these tags (optional '+' prefix) or without these tags ('-' prefix)\n<https://www.pantsbuild.org/v2.20/docs/reference-global#tag>",
          "type": "array"
        },
        "unmatched_build_file_globs": {
          "default": "warn",
          "description": "What to do when files and globs specified in BUILD files, such as in the `sources` field, cannot be found\n<https://www.pantsbuild.org/v2.20/docs/reference-global#unmatched_build_file_globs>",
          "enum": [
            "ignore",
            "warn",
            "error"
          ]
        },
        "unmatched_cli_globs": {
          "default": "error",
          "description": "What to do when command line arguments, e.g. files and globs like `dir::`, cannot be found\n<https://www.pantsbuild.org/v2.20/docs/reference-global#unmatched_cli_globs>",
          "enum": [
            "ignore",
            "warn",
            "error"
          ]
        },
        "verify_config": {
          "default": true,
          "description": "Verify that all config file values correspond to known options\n<https://www.pantsbuild.org/v2.20/docs/reference-global#verify_config>",
          "type": "boolean"
        },
        "watch_filesystem": {
          "default": true,
          "description": "Set to False if Pants should not watch the filesystem for changes. `pantsd` or `loop` may not be enabled\n<https://www.pantsbuild.org/v2.20/docs/reference-global#watch_filesystem>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "anonymous-telemetry": {
      "description": "Options related to sending anonymous stats to the Pants project, to aid development.",
      "properties": {
        "enabled": {
          "default": false,
          "description": "Whether to send anonymous telemetry to the Pants project\n<https://www.pantsbuild.org/v2.20/docs/reference-anonymous-telemetry#enabled>",
          "type": "boolean"
        },
        "repo_id": {
          "default": null,
          "description": "An anonymized ID representing this repo\n<https://www.pantsbuild.org/v2.20/docs/reference-anonymous-telemetry#repo_id>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "autoflake": {
      "description": "The Autoflake Python code formatter (https://github.com/myint/autoflake).",
      "properties": {
        "args": {
          "default": [
            "--remove-all-unused-imports"
          ],
          "description": "Arguments to pass directly to Autoflake, e.g. `--autoflake-args='--remove-all-unused-imports --target-version=py37 --quiet'`\n<https://www.pantsbuild.org/v2.20/docs/reference-autoflake#args>",
          "type": "array"
        },
        "console_script": {
          "default": "autoflake",
          "description": "The console script for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-autoflake#console_script>",
          "type": "string"
        },
        "entry_point": {
          "default": null,
          "description": "The entry point for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-autoflake#entry_point>",
          "type": "string"
        },
        "install_from_resolve": {
          "default": null,
          "description": "If specified, install the tool using the lockfile for this named resolve\n<https://www.pantsbuild.org/v2.20/docs/reference-autoflake#install_from_resolve>",
          "type": "string"
        },
        "interpreter_constraints": {
          "default": [
            "CPython>=3.7,<4"
          ],
          "description": "Python interpreter constraints for this tool\n<https://www.pantsbuild.org/v2.20/docs/reference-autoflake#interpreter_constraints>",
          "type": "array"
        },
        "requirements": {
          "default": [],
          "description": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile\n<https://www.pantsbuild.org/v2.20/docs/reference-autoflake#requirements>",
          "type": "array"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use Autoflake when running `pants fmt` and `pants lint`\n<https://www.pantsbuild.org/v2.20/docs/reference-autoflake#skip>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "black": {
      "description": "The Black Python code formatter (https://black.readthedocs.io/).",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to Black, e.g. `--black-args='--target-version=py37 --quiet'`\n<https://www.pantsbuild.org/v2.20/docs/reference-black#args>",
          "type": "array"
        },
        "config": {
          "default": null,
          "description": "Path to a TOML config file understood by Black (https://github.com/psf/black#configuration-format)\n<https://www.pantsbuild.org/v2.20/docs/reference-black#config>"
        },
        "config_discovery": {
          "default": true,
          "description": "If true, Pants will include any relevant pyproject.toml config files during runs\n<https://www.pantsbuild.org/v2.20/docs/reference-black#config_discovery>",
          "type": "boolean"
        },
        "console_script": {
          "default": "black",
          "description": "The console script for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-black#console_script>",
          "type": "string"
        },
        "entry_point": {
          "default": null,
          "description": "The entry point for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-black#entry_point>",
          "type": "string"
        },
        "install_from_resolve": {
          "default": null,
          "description": "If specified, install the tool using the lockfile for this named resolve\n<https://www.pantsbuild.org/v2.20/docs/reference-black#install_from_resolve>",
          "type": "string"
        },
        "interpreter_constraints": {
          "default": [
            "CPython>=3.7,<4"
          ],
          "description": "Python interpreter constraints for this tool\n<https://www.pantsbuild.org/v2.20/docs/reference-black#interpreter_constraints>",
          "type": "array"
        },
        "requirements": {
          "default": [],
          "description": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile\n<https://www.pantsbuild.org/v2.20/docs/reference-black#requirements>",
          "type": "array"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use Black when running `pants fmt` and `pants lint`\n<https://www.pantsbuild.org/v2.20/docs/reference-black#skip>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "build-deprecations-fixer": {
      "description": "A tool/plugin for fixing BUILD file deprecations (where possible).\n\nThis includes deprecations for:\n\n  - Renamed targets\n  - Renamed fields",
      "properties": {
        "skip": {
          "default": false,
          "description": "If true, don't use BUILD Deprecations Fixer when running `pants fix`\n<https://www.pantsbuild.org/v2.20/docs/reference-build-deprecations-fixer#skip>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "changed": {
      "description": "Tell Pants to detect what files and targets have changed from Git.\n\nSee <https://www.pantsbuild.org/2.20/docs/using-pants/advanced-target-selection>.",
      "properties": {
        "dependents": {
          "default": "none",
          "description": "Include direct or transitive dependents of changed targets\n<https://www.pantsbuild.org/v2.20/docs/reference-changed#dependents>",
          "enum": [
            "none",
            "direct",
            "transitive"
          ]
        },
        "diffspec": {
          "default": null,
          "description": "Calculate changes contained within a given Git spec (commit range/SHA/ref)\n<https://www.pantsbuild.org/v2.20/docs/reference-changed#diffspec>",
          "type": "string"
        },
        "since": {
          "default": null,
          "description": "Calculate changes since this Git spec (commit range/SHA/ref)\n<https://www.pantsbuild.org/v2.20/docs/reference-changed#since>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "check": {
      "description": "Run type checking or the lightest variant of compilation available for a language.",
      "properties": {
        "only": {
          "default": [],
          "description": "Only run these checkers and skip all others\n<https://www.pantsbuild.org/v2.20/docs/reference-check#only>",
          "type": "array"
        }
      },
      "type": "object"
    },
    "check-default-tools": {
      "description": "Options for checking that external tool default locations are correctly typed.",
      "properties": {},
      "type": "object"
    },
    "cli": {
      "description": "Options for configuring CLI behavior, such as command line aliases.",
      "properties": {
        "alias": {
          "default": {},
          "description": "Register command line aliases\n<https://www.pantsbuild.org/v2.20/docs/reference-cli#alias>",
          "type": "object"
        }
      },
      "type": "object"
    },
    "count-loc": {
      "description": "Count lines of code.",
      "properties": {},
      "type": "object"
    },
    "coursier": {
      "description": "A dependency resolver for the Maven ecosystem. (https://get-coursier.io/)",
      "properties": {
        "jvm_index": {
          "default": "",
          "description": "The JVM index to be used by Coursier\n<https://www.pantsbuild.org/v2.20/docs/reference-coursier#jvm_index>",
          "type": "string"
        },
        "known_versions": {
          "default": [
            "v2.1.6|macos_arm64 |746b3e346fa2c0107fdbc8a627890d495cb09dee4f8dcc87146bdb45941088cf|20829782|https://github.com/VirtusLab/coursier-m1/releases/download/v2.1.6/cs-aarch64-apple-darwin.gz",
            "v2.1.6|linux_arm64 |33330ca433781c9db9458e15d2d32e5d795de3437771647e26835e8b1391af82|20899290|https://github.com/VirtusLab/coursier-m1/releases/download/v2.1.6/cs-aarch64-pc-linux.gz",
            "v2.1.6|linux_x86_64|af7234f8802107f5e1130307ef8a5cc90262d392f16ddff7dce27a4ed0ddd292|20681688",
            "v2.1.6|macos_x86_64|36a5d42a0724be2ac39d0ebd8869b985e3d58ceb121bc60389ee2d6d7408dd56|20037412",
            "v2.1.0-M5-18-gfebf9838c|linux_arm64 |d4ad15ba711228041ad8a46d848c83c8fbc421d7b01c415d8022074dd609760f|19264005",
            "v2.1.0-M5-18-gfebf9838c|linux_x86_64|3e1a1ad1010d5582e9e43c5a26b273b0147baee5ebd27d3ac1ab61964041c90b|19551533",
            "v2.1.0-M5-18-gfebf9838c|macos_arm64 |d13812c5a5ef4c9b3e25cc046d18addd09bacd149f95b20a14e4d2a73e358ecf|18826510",
            "v2.1.0-M5-18-gfebf9838c|macos_x86_64|d13812c5a5ef4c9b3e25cc046d18addd09bacd149f95b20a14e4d2a73e358ecf|18826510",
            "v2.0.16-169-g194ebc55c|linux_arm64 |da38c97d55967505b8454c20a90370c518044829398b9bce8b637d194d79abb3|18114472",
            "v2.0.16-169-g194ebc55c|linux_x86_64|4c61a634c4bd2773b4543fe0fc32210afd343692891121cddb447204b48672e8|18486946",
            "v2.0.16-169-g194ebc55c|macos_arm64 |15bce235d223ef1d022da30b67b4c64e9228d236b876c834b64e029bbe824c6f|17957182",
            "v2.0.16-169-g194ebc55c|macos_x86_64|15bce235d223ef1d022da30b67b4c64e9228d236b876c834b64e029bbe824c6f|17957182"
          ],
          "description": "Known versions to verify downloads against\n<https://www.pantsbuild.org/v2.20/docs/reference-coursier#known_versions>",
          "type": "array"
        },
        "repos": {
          "default": [
            "https://maven-central.storage-download.googleapis.com/maven2",
            "https://repo1.maven.org/maven2"
          ],
          "description": "Maven style repositories to resolve artifacts from\n<https://www.pantsbuild.org/v2.20/docs/reference-coursier#repos>",
          "type": "array"
        },
        "url_platform_mapping": {
          "default": {
            "linux_arm64": "aarch64-pc-linux",
            "linux_x86_64": "x86_64-pc-linux",
            "macos_arm64": "x86_64-apple-darwin",
            "macos_x86_64": "x86_64-apple-darwin"
          },
          "description": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-coursier#url_platform_mapping>",
          "type": "object"
        },
        "url_template": {
          "default": "https://github.com/coursier/coursier/releases/download/{version}/cs-{platform}.gz",
          "description": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file)\n<https://www.pantsbuild.org/v2.20/docs/reference-coursier#url_template>",
          "type": "string"
        },
        "use_unsupported_version": {
          "default": "error",
          "description": "What action to take in case the requested version of coursier is not supported\n<https://www.pantsbuild.org/v2.20/docs/reference-coursier#use_unsupported_version>",
          "enum": [
            "error",
            "warning"
          ]
        },
        "version": {
          "default": "v2.1.6",
          "description": "Use this version of coursier\n<https://www.pantsbuild.org/v2.20/docs/reference-coursier#version>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "coverage-py": {
      "description": "Configuration for Python test coverage measurement.",
      "properties": {
        "config": {
          "default": null,
          "description": "Path to an INI or TOML config file understood by coverage.py (https://coverage.readthedocs.io/en/stable/config.html)\n<https://www.pantsbuild.org/v2.20/docs/reference-coverage-py#config>"
        },
        "config_discovery": {
          "default": true,
          "description": "If true, Pants will include any relevant config files during runs (`.coveragerc`, `setup.cfg`, `tox.ini`, and `pyproject.toml`)\n<https://www.pantsbuild.org/v2.20/docs/reference-coverage-py#config_discovery>",
          "type": "boolean"
        },
        "console_script": {
          "default": "coverage",
          "description": "The console script for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-coverage-py#console_script>",
          "type": "string"
        },
        "entry_point": {
          "default": null,
          "description": "The entry point for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-coverage-py#entry_point>",
          "type": "string"
        },
        "fail_under": {
          "default": null,
          "description": "Fail if the total combined coverage percentage for all tests is less than this number\n<https://www.pantsbuild.org/v2.20/docs/reference-coverage-py#fail_under>",
          "type": "number"
        },
        "filter": {
          "default": [],
          "description": "A list of Python modules or filesystem paths to use in the coverage report, e.g. `['helloworld_test', 'helloworld/util/dirutil']`\n<https://www.pantsbuild.org/v2.20/docs/reference-coverage-py#filter>",
          "type": "array"
        },
        "global_report": {
          "default": false,
          "description": "If true, Pants will generate a global coverage report\n<https://www.pantsbuild.org/v2.20/docs/reference-coverage-py#global_report>",
          "type": "boolean"
        },
        "install_from_resolve": {
          "default": null,
          "description": "If specified, install the tool using the lockfile for this named resolve\n<https://www.pantsbuild.org/v2.20/docs/reference-coverage-py#install_from_resolve>",
          "type": "string"
        },
        "interpreter_constraints": {
          "default": [
            "CPython>=3.7,<4"
          ],
          "description": "Python interpreter constraints for this tool\n<https://www.pantsbuild.org/v2.20/docs/reference-coverage-py#interpreter_constraints>",
          "type": "array"
        },
        "output_dir": {
          "default": "{distdir}/coverage/python",
          "description": "Path to write the Pytest Coverage report to\n<https://www.pantsbuild.org/v2.20/docs/reference-coverage-py#output_dir>",
          "type": "string"
        },
        "report": {
          "default": [
            "console"
          ],
          "description": "Which coverage report type(s) to emit\n<https://www.pantsbuild.org/v2.20/docs/reference-coverage-py#report>",
          "type": "array",
          "items": {
            "enum": [
              "console",
              "xml",
              "html",
              "raw",
              "json",
              "lcov"
            ]
          }
        },
        "requirements": {
          "default": [],
          "description": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile\n<https://www.pantsbuild.org/v2.20/docs/reference-coverage-py#requirements>",
          "type": "array"
        }
      },
      "type": "object"
    },
    "debug-adapter": {
      "description": "Options used to configure and launch a Debug Adapter server.\n\nSee <https://microsoft.github.io/debug-adapter-protocol/> for more information.",
      "properties": {
        "host": {
          "default": "127.0.0.1",
          "description": "The hostname to use when launching the server\n<https://www.pantsbuild.org/v2.20/docs/reference-debug-adapter#host>",
          "type": "string"
        },
        "port": {
          "default": 5678,
          "description": "The port to use when launching the server\n<https://www.pantsbuild.org/v2.20/docs/reference-debug-adapter#port>",
          "type": "number"
        }
      },
      "type": "object"
    },
    "debugpy": {
      "description": "An implementation of the Debug Adapter Protocol for Python (https://github.com/microsoft/debugpy).",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to debugpy, e.g. `--debugpy-args='--log-to-stderr'`\n<https://www.pantsbuild.org/v2.20/docs/reference-debugpy#args>",
          "type": "array"
        },
        "console_script": {
          "default": null,
          "description": "The console script for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-debugpy#console_script>",
          "type": "string"
        },
        "entry_point": {
          "default": "debugpy",
          "description": "The entry point for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-debugpy#entry_point>",
          "type": "string"
        },
        "install_from_resolve": {
          "default": null,
          "description": "If specified, install the tool using the lockfile for this named resolve\n<https://www.pantsbuild.org/v2.20/docs/reference-debugpy#install_from_resolve>",
          "type": "string"
        },
        "interpreter_constraints": {
          "default": [
            "CPython>=3.7,<4"
          ],
          "description": "Python interpreter constraints for this tool\n<https://www.pantsbuild.org/v2.20/docs/reference-debugpy#interpreter_constraints>",
          "type": "array"
        },
        "requirements": {
          "default": [],
          "description": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile\n<https://www.pantsbuild.org/v2.20/docs/reference-debugpy#requirements>",
          "type": "array"
        }
      },
      "type": "object"
    },
    "dependees": {
      "description": "List all targets that depend on any of the input files/targets.",
      "properties": {
        "closed": {
          "default": false,
          "description": "Include the input targets in the output, along with the dependents\n<https://www.pantsbuild.org/v2.20/docs/reference-dependees#closed>",
          "type": "boolean"
        },
        "format": {
          "default": "text",
          "description": "Output format for listing dependents\n<https://www.pantsbuild.org/v2.20/docs/reference-dependees#format>",
          "enum": [
            "text",
            "json"
          ]
        },
        "output_file": {
          "default": null,
          "description": "Output the goal's stdout to this file\n<https://www.pantsbuild.org/v2.20/docs/reference-dependees#output_file>",
          "type": "string"
        },
        "sep": {
          "default": "\\n",
          "description": "String to use to separate lines in line-oriented output\n<https://www.pantsbuild.org/v2.20/docs/reference-dependees#sep>",
          "type": "string"
        },
        "transitive": {
          "default": false,
          "description": "List all transitive dependents\n<https://www.pantsbuild.org/v2.20/docs/reference-dependees#transitive>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "dependencies": {
      "description": "List the dependencies of the input files/targets.",
      "properties": {
        "closed": {
          "default": false,
          "description": "Include the input targets in the output, along with the dependencies\n<https://www.pantsbuild.org/v2.20/docs/reference-dependencies#closed>",
          "type": "boolean"
        },
        "format": {
          "default": "text",
          "description": "Output format for listing dependencies\n<https://www.pantsbuild.org/v2.20/docs/reference-dependencies#format>",
          "enum": [
            "text",
            "json"
          ]
        },
        "output_file": {
          "default": null,
          "description": "Output the goal's stdout to this file\n<https://www.pantsbuild.org/v2.20/docs/reference-dependencies#output_file>",
          "type": "string"
        },
        "sep": {
          "default": "\\n",
          "description": "String to use to separate lines in line-oriented output\n<https://www.pantsbuild.org/v2.20/docs/reference-dependencies#sep>",
          "type": "string"
        },
        "transitive": {
          "default": false,
          "description": "List all transitive dependencies\n<https://www.pantsbuild.org/v2.20/docs/reference-dependencies#transitive>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "dependents": {
      "description": "List all targets that depend on any of the input files/targets.",
      "properties": {
        "closed": {
          "default": false,
          "description": "Include the input targets in the output, along with the dependents\n<https://www.pantsbuild.org/v2.20/docs/reference-dependents#closed>",
          "type": "boolean"
        },
        "format": {
          "default": "text",
          "description": "Output format for listing dependents\n<https://www.pantsbuild.org/v2.20/docs/reference-dependents#format>",
          "enum": [
            "text",
            "json"
          ]
        },
        "output_file": {
          "default": null,
          "description": "Output the goal's stdout to this file\n<https://www.pantsbuild.org/v2.20/docs/reference-dependents#output_file>",
          "type": "string"
        },
        "sep": {
          "default": "\\n",
          "description": "String to use to separate lines in line-oriented output\n<https://www.pantsbuild.org/v2.20/docs/reference-dependents#sep>",
          "type": "string"
        },
        "transitive": {
          "default": false,
          "description": "List all transitive dependents\n<https://www.pantsbuild.org/v2.20/docs/reference-dependents#transitive>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "docformatter": {
      "description": "The Python docformatter tool (https://github.com/myint/docformatter).",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to docformatter, e.g. `--docformatter-args='--wrap-summaries=100 --pre-summary-newline'`\n<https://www.pantsbuild.org/v2.20/docs/reference-docformatter#args>",
          "type": "array"
        },
        "console_script": {
          "default": "docformatter",
          "description": "The console script for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-docformatter#console_script>",
          "type": "string"
        },
        "entry_point": {
          "default": null,
          "description": "The entry point for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-docformatter#entry_point>",
          "type": "string"
        },
        "install_from_resolve": {
          "default": null,
          "description": "If specified, install the tool using the lockfile for this named resolve\n<https://www.pantsbuild.org/v2.20/docs/reference-docformatter#install_from_resolve>",
          "type": "string"
        },
        "interpreter_constraints": {
          "default": [
            "CPython>=3.7,<4"
          ],
          "description": "Python interpreter constraints for this tool\n<https://www.pantsbuild.org/v2.20/docs/reference-docformatter#interpreter_constraints>",
          "type": "array"
        },
        "requirements": {
          "default": [],
          "description": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile\n<https://www.pantsbuild.org/v2.20/docs/reference-docformatter#requirements>",
          "type": "array"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use docformatter when running `pants fmt` and `pants lint`\n<https://www.pantsbuild.org/v2.20/docs/reference-docformatter#skip>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "docker": {
      "description": "Options for interacting with Docker.",
      "properties": {
        "build_args": {
          "default": [],
          "description": "Global build arguments (for Docker `--build-arg` options) to use for all `docker build` invocations\n<https://www.pantsbuild.org/v2.20/docs/reference-docker#build_args>",
          "type": "array"
        },
        "build_hosts": {
          "default": {},
          "description": "Hosts entries to be added to the `/etc/hosts` file in all built images\n<https://www.pantsbuild.org/v2.20/docs/reference-docker#build_hosts>",
          "type": "object"
        },
        "build_no_cache": {
          "default": false,
          "description": "Do not use the Docker cache when building images\n<https://www.pantsbuild.org/v2.20/docs/reference-docker#build_no_cache>",
          "type": "boolean"
        },
        "build_target_stage": {
          "default": null,
          "description": "Global default value for `target_stage` on `docker_image` targets, overriding the field value on the targets, if there is a matching stage in the `Dockerfile`\n<https://www.pantsbuild.org/v2.20/docs/reference-docker#build_target_stage>",
          "type": "string"
        },
        "build_verbose": {
          "default": false,
          "description": "Whether to log the Docker output to the console\n<https://www.pantsbuild.org/v2.20/docs/reference-docker#build_verbose>",
          "type": "boolean"
        },
        "default_context_root": {
          "default": "",
          "description": "Provide a default Docker build context root path for `docker_image` targets that does not specify their own `context_root` field\n<https://www.pantsbuild.org/v2.20/docs/reference-docker#default_context_root>"
        },
        "default_repository": {
          "default": "{name}",
          "description": "Configure the default repository name used in the Docker image tag\n<https://www.pantsbuild.org/v2.20/docs/reference-docker#default_repository>",
          "type": "string"
        },
        "env_vars": {
          "default": [],
          "description": "Environment variables to set for `docker` invocations\n<https://www.pantsbuild.org/v2.20/docs/reference-docker#env_vars>",
          "type": "array"
        },
        "executable_search_paths": {
          "default": [
            "<PATH>"
          ],
          "description": "The PATH value that will be used to find the Docker client and any tools required\n<https://www.pantsbuild.org/v2.20/docs/reference-docker#executable_search_paths>",
          "type": "array"
        },
        "registries": {
          "default": {},
          "description": "Configure Docker registries\n<https://www.pantsbuild.org/v2.20/docs/reference-docker#registries>",
          "oneOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ]
        },
        "run_args": {
          "default": [],
          "description": "Additional arguments to use for `docker run` invocations\n<https://www.pantsbuild.org/v2.20/docs/reference-docker#run_args>",
          "type": "array"
        },
        "tailor": {
          "default": true,
          "description": "If true, add `docker_image` targets with the `tailor` goal\n<https://www.pantsbuild.org/v2.20/docs/reference-docker#tailor>",
          "type": "boolean"
        },
        "tools": {
          "default": [],
          "description": "List any additional executable tools required for Docker to work\n<https://www.pantsbuild.org/v2.20/docs/reference-docker#tools>",
          "type": "array"
        },
        "use_buildx": {
          "default": false,
          "description": "Use [buildx](https://github.com/docker/buildx#buildx) (and BuildKit) for builds\n<https://www.pantsbuild.org/v2.20/docs/reference-docker#use_buildx>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "dockerfile-parser": {
      "description": "Used to parse Dockerfile build specs to infer their dependencies.",
      "properties": {
        "install_from_resolve": {
          "default": null,
          "description": "If specified, install the tool using the lockfile for this named resolve\n<https://www.pantsbuild.org/v2.20/docs/reference-dockerfile-parser#install_from_resolve>",
          "type": "string"
        },
        "interpreter_constraints": {
          "default": [
            "CPython>=3.7,<4"
          ],
          "description": "Python interpreter constraints for this tool\n<https://www.pantsbuild.org/v2.20/docs/reference-dockerfile-parser#interpreter_constraints>",
          "type": "array"
        },
        "requirements": {
          "default": [],
          "description": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile\n<https://www.pantsbuild.org/v2.20/docs/reference-dockerfile-parser#requirements>",
          "type": "array"
        }
      },
      "type": "object"
    },
    "environments-preview": {
      "description": "A highly experimental subsystem to allow setting environment variables and executable search paths for different environments, e.g. macOS vs. Linux.",
      "properties": {
        "names": {
          "default": {},
          "description": "A mapping of logical names to addresses to environment targets\n<https://www.pantsbuild.org/v2.20/docs/reference-environments-preview#names>",
          "type": "object"
        }
      },
      "type": "object"
    },
    "experimental-bsp": {
      "description": "Setup repository for Build Server Protocol (https://build-server-protocol.github.io/).",
      "properties": {
        "groups_config_files": {
          "default": [],
          "description": "A list of config files that define groups of Pants targets to expose to IDEs via Build Server Protocol\n<https://www.pantsbuild.org/v2.20/docs/reference-experimental-bsp#groups_config_files>",
          "type": "array"
        },
        "runner_env_vars": {
          "default": [
            "PATH"
          ],
          "description": "Environment variables to set in the BSP runner script when setting up BSP in a repository\n<https://www.pantsbuild.org/v2.20/docs/reference-experimental-bsp#runner_env_vars>",
          "type": "array"
        },
        "server": {
          "default": false,
          "description": "Run the Build Server Protocol server\n<https://www.pantsbuild.org/v2.20/docs/reference-experimental-bsp#server>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "experimental-deploy": {
      "description": "Perform a deployment process.",
      "properties": {},
      "type": "object"
    },
    "experimental-explorer": {
      "description": "Run the Pants Explorer Web UI server.",
      "properties": {
        "address": {
          "default": "localhost",
          "description": "Server address to bind to\n<https://www.pantsbuild.org/v2.20/docs/reference-experimental-explorer#address>",
          "type": "string"
        },
        "port": {
          "default": 8000,
          "description": "Server port to bind to\n<https://www.pantsbuild.org/v2.20/docs/reference-experimental-explorer#port>",
          "type": "number"
        }
      },
      "type": "object"
    },
    "export": {
      "description": "Export Pants data for use in other tools, such as IDEs.\n\n:::caution Exporting tools requires creating a custom lockfile for them\n\nFollow [the instructions for creating tool lockfiles](../../docs/python/overview/lockfiles#lockfiles-for-tools)\n\n:::",
      "properties": {
        "py_editable_in_resolve": {
          "default": [],
          "description": "When exporting a mutable virtualenv for a resolve, do PEP-660 editable installs of all 'python_distribution' targets that own code in the exported resolve\n<https://www.pantsbuild.org/v2.20/docs/reference-export#py_editable_in_resolve>",
          "type": "array"
        },
        "py_resolve_format": {
          "default": "mutable_virtualenv",
          "description": "Export Python resolves using this format\n<https://www.pantsbuild.org/v2.20/docs/reference-export#py_resolve_format>",
          "enum": [
            "mutable_virtualenv",
            "symlinked_immutable_virtualenv"
          ]
        },
        "resolve": {
          "default": [],
          "description": "Export the specified resolve(s)\n<https://www.pantsbuild.org/v2.20/docs/reference-export#resolve>",
          "type": "array"
        }
      },
      "type": "object"
    },
    "export-codegen": {
      "description": "Write generated files to `dist/codegen` for use outside of Pants.",
      "properties": {},
      "type": "object"
    },
    "filedeps": {
      "description": "List all source and BUILD files a target depends on.",
      "properties": {
        "absolute": {
          "default": false,
          "description": "If True, output with absolute path\n<https://www.pantsbuild.org/v2.20/docs/reference-filedeps#absolute>",
          "type": "boolean"
        },
        "globs": {
          "default": false,
          "description": "Instead of outputting filenames, output the original globs used in the BUILD file\n<https://www.pantsbuild.org/v2.20/docs/reference-filedeps#globs>",
          "type": "boolean"
        },
        "output_file": {
          "default": null,
          "description": "Output the goal's stdout to this file\n<https://www.pantsbuild.org/v2.20/docs/reference-filedeps#output_file>",
          "type": "string"
        },
        "sep": {
          "default": "\\n",
          "description": "String to use to separate lines in line-oriented output\n<https://www.pantsbuild.org/v2.20/docs/reference-filedeps#sep>",
          "type": "string"
        },
        "transitive": {
          "default": false,
          "description": "If True, list files from all dependencies, including transitive dependencies\n<https://www.pantsbuild.org/v2.20/docs/reference-filedeps#transitive>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "filter": {
      "description": "Filter the input targets based on various criteria.\n\nMost of the filtering options below are comma-separated lists of filtering criteria, with an implied logical OR between them, so that a target passes the filter if it matches any of the criteria in the list. A '-' prefix inverts the sense of the entire comma-separated list, so that a target passes the filter only if it matches none of the criteria in the list.\n\nEach of the filtering options may be specified multiple times, with an implied logical AND between them.",
      "properties": {
        "address_regex": {
          "default": [],
          "description": "Filter on target addresses matching these regexes\n<https://www.pantsbuild.org/v2.20/docs/reference-filter#address_regex>",
          "type": "array"
        },
        "granularity": {
          "default": "all",
          "description": "Filter to rendering only targets declared in BUILD files, only file-level targets, or all targets\n<https://www.pantsbuild.org/v2.20/docs/reference-filter#granularity>",
          "enum": [
            "all",
            "file",
            "BUILD"
          ]
        },
        "output_file": {
          "default": null,
          "description": "Output the goal's stdout to this file\n<https://www.pantsbuild.org/v2.20/docs/reference-filter#output_file>",
          "type": "string"
        },
        "sep": {
          "default": "\\n",
          "description": "String to use to separate lines in line-oriented output\n<https://www.pantsbuild.org/v2.20/docs/reference-filter#sep>",
          "type": "string"
        },
        "tag_regex": {
          "default": [],
          "description": "Filter on targets with tags matching these regexes\n<https://www.pantsbuild.org/v2.20/docs/reference-filter#tag_regex>",
          "type": "array"
        },
        "target_type": {
          "default": [],
          "description": "Filter on these target types, e.g. `resources` or `python_sources`\n<https://www.pantsbuild.org/v2.20/docs/reference-filter#target_type>",
          "type": "array"
        }
      },
      "type": "object"
    },
    "fix": {
      "description": "Autofix source code.",
      "properties": {
        "batch_size": {
          "default": 128,
          "description": "The target number of files to be included in each fixer batch\n<https://www.pantsbuild.org/v2.20/docs/reference-fix#batch_size>",
          "type": "number"
        },
        "only": {
          "default": [],
          "description": "Only run these fixers and skip all others\n<https://www.pantsbuild.org/v2.20/docs/reference-fix#only>",
          "type": "array"
        },
        "skip_formatters": {
          "default": false,
          "description": "If true, skip running all formatters\n<https://www.pantsbuild.org/v2.20/docs/reference-fix#skip_formatters>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "flake8": {
      "description": "The Flake8 Python linter (https://flake8.pycqa.org/).",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to Flake8, e.g. `--flake8-args='--ignore E123,W456 --enable-extensions H111'`\n<https://www.pantsbuild.org/v2.20/docs/reference-flake8#args>",
          "type": "array"
        },
        "config": {
          "default": null,
          "description": "Path to an INI config file understood by Flake8 (https://flake8.pycqa.org/en/latest/user/configuration.html)\n<https://www.pantsbuild.org/v2.20/docs/reference-flake8#config>"
        },
        "config_discovery": {
          "default": true,
          "description": "If true, Pants will include any relevant config files during runs (`.flake8`, `flake8`, `setup.cfg`, and `tox.ini`)\n<https://www.pantsbuild.org/v2.20/docs/reference-flake8#config_discovery>",
          "type": "boolean"
        },
        "console_script": {
          "default": "flake8",
          "description": "The console script for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-flake8#console_script>",
          "type": "string"
        },
        "entry_point": {
          "default": null,
          "description": "The entry point for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-flake8#entry_point>",
          "type": "string"
        },
        "extra_files": {
          "default": [],
          "description": "Paths to extra files to include in the sandbox\n<https://www.pantsbuild.org/v2.20/docs/reference-flake8#extra_files>",
          "type": "array"
        },
        "install_from_resolve": {
          "default": null,
          "description": "If specified, install the tool using the lockfile for this named resolve\n<https://www.pantsbuild.org/v2.20/docs/reference-flake8#install_from_resolve>",
          "type": "string"
        },
        "requirements": {
          "default": [],
          "description": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile\n<https://www.pantsbuild.org/v2.20/docs/reference-flake8#requirements>",
          "type": "array"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use Flake8 when running `pants lint`\n<https://www.pantsbuild.org/v2.20/docs/reference-flake8#skip>",
          "type": "boolean"
        },
        "source_plugins": {
          "default": [],
          "description": "An optional list of `python_sources` target addresses to load first-party plugins\n<https://www.pantsbuild.org/v2.20/docs/reference-flake8#source_plugins>",
          "type": "array"
        }
      },
      "type": "object"
    },
    "fmt": {
      "description": "Autoformat source code.",
      "properties": {
        "batch_size": {
          "default": 128,
          "description": "The target number of files to be included in each formatter batch\n<https://www.pantsbuild.org/v2.20/docs/reference-fmt#batch_size>",
          "type": "number"
        },
        "only": {
          "default": [],
          "description": "Only run these formatters and skip all others\n<https://www.pantsbuild.org/v2.20/docs/reference-fmt#only>",
          "type": "array"
        }
      },
      "type": "object"
    },
    "generate-lockfiles": {
      "description": "Generate lockfiles for third-party dependencies.",
      "properties": {
        "custom_command": {
          "default": null,
          "description": "If set, lockfile headers will say to run this command to regenerate the lockfile, rather than running `pants generate-lockfiles --resolve=<name>` like normal\n<https://www.pantsbuild.org/v2.20/docs/reference-generate-lockfiles#custom_command>",
          "type": "string"
        },
        "diff": {
          "default": true,
          "description": "Print a summary of changed distributions after generating the lockfile\n<https://www.pantsbuild.org/v2.20/docs/reference-generate-lockfiles#diff>",
          "type": "boolean"
        },
        "diff_include_unchanged": {
          "default": false,
          "description": "Include unchanged distributions in the diff summary output\n<https://www.pantsbuild.org/v2.20/docs/reference-generate-lockfiles#diff_include_unchanged>",
          "type": "boolean"
        },
        "resolve": {
          "default": [],
          "description": "Only generate lockfiles for the specified resolve(s)\n<https://www.pantsbuild.org/v2.20/docs/reference-generate-lockfiles#resolve>",
          "type": "array"
        }
      },
      "type": "object"
    },
    "generate-snapshots": {
      "description": "Generate test snapshots.",
      "properties": {},
      "type": "object"
    },
    "go-generate": {
      "description": "Run each command in a package described by a `//go:generate` directive. This is equivalent to running `go generate` on a Go package.\n\nNote: Just like with `go generate`, the `go-generate` goal is never run as part of the build and must be run manually to invoke the commands described by the `//go:generate` directives.\n\nSee <https://go.dev/blog/generate> for details.",
      "properties": {
        "env_vars": {
          "default": [
            "LANG",
            "LC_CTYPE",
            "LC_ALL",
            "PATH"
          ],
          "description": "Environment variables to set when invoking generator programs\n<https://www.pantsbuild.org/v2.20/docs/reference-go-generate#env_vars>",
          "type": "array"
        }
      },
      "type": "object"
    },
    "go-test": {
      "description": "Options for Go tests.",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to Go test binary, e.g. `--go-test-args='-run TestFoo -v'`\n<https://www.pantsbuild.org/v2.20/docs/reference-go-test#args>",
          "type": "array"
        },
        "block_profile": {
          "default": false,
          "description": "Capture a goroutine blocking profile from the execution of the test runner\n<https://www.pantsbuild.org/v2.20/docs/reference-go-test#block_profile>",
          "type": "boolean"
        },
        "cover_mode": {
          "default": "set",
          "description": "Coverage mode to use when running Go tests with coverage analysis enabled via `--test-use-coverage`\n<https://www.pantsbuild.org/v2.20/docs/reference-go-test#cover_mode>",
          "enum": [
            "set",
            "count",
            "atomic"
          ]
        },
        "coverage_html": {
          "default": true,
          "description": "If true, then convert coverage reports to HTML format and write a `coverage.html` file next to the raw coverage data\n<https://www.pantsbuild.org/v2.20/docs/reference-go-test#coverage_html>",
          "type": "boolean"
        },
        "coverage_output_dir": {
          "default": "{distdir}/coverage/go/{target_spec}",
          "description": "Path to write the Go coverage reports to\n<https://www.pantsbuild.org/v2.20/docs/reference-go-test#coverage_output_dir>",
          "type": "string"
        },
        "coverage_packages": {
          "default": [],
          "description": "A list of \"import path patterns\" for determining which import paths will be instrumented for code coverage\n<https://www.pantsbuild.org/v2.20/docs/reference-go-test#coverage_packages>",
          "type": "array"
        },
        "cpu_profile": {
          "default": false,
          "description": "Capture a CPU profile from the execution of the test runner\n<https://www.pantsbuild.org/v2.20/docs/reference-go-test#cpu_profile>",
          "type": "boolean"
        },
        "force_asan": {
          "default": false,
          "description": "If true, then always enable interoperation between Go and the C/C++ \"address sanitizer\" when running tests regardless of the test-by-test `asan` field on the relevant `go_package` target\n<https://www.pantsbuild.org/v2.20/docs/reference-go-test#force_asan>",
          "type": "boolean"
        },
        "force_msan": {
          "default": false,
          "description": "If true, then always enable interoperation between Go and the C/C++ \"memory sanitizer\" when running tests regardless of the test-by-test `msan` field on the relevant `go_package` target\n<https://www.pantsbuild.org/v2.20/docs/reference-go-test#force_msan>",
          "type": "boolean"
        },
        "force_race": {
          "default": false,
          "description": "If true, then always enable the Go data race detector when running tests regardless of the test-by-test `test_race` field on the relevant `go_package` target\n<https://www.pantsbuild.org/v2.20/docs/reference-go-test#force_race>",
          "type": "boolean"
        },
        "mem_profile": {
          "default": false,
          "description": "Capture an allocation profile from the execution of the test runner after tests have passed\n<https://www.pantsbuild.org/v2.20/docs/reference-go-test#mem_profile>",
          "type": "boolean"
        },
        "mutex_profile": {
          "default": false,
          "description": "Capture a mutex contention profile from the execution of the test runner when all tests are complete\n<https://www.pantsbuild.org/v2.20/docs/reference-go-test#mutex_profile>",
          "type": "boolean"
        },
        "output_test_binary": {
          "default": false,
          "description": "Write the test binary to the test extra output directory\n<https://www.pantsbuild.org/v2.20/docs/reference-go-test#output_test_binary>",
          "type": "boolean"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use Go test binary when running `pants test`\n<https://www.pantsbuild.org/v2.20/docs/reference-go-test#skip>",
          "type": "boolean"
        },
        "trace": {
          "default": false,
          "description": "Capture an execution trace from the execution of the test runner\n<https://www.pantsbuild.org/v2.20/docs/reference-go-test#trace>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "gofmt": {
      "description": "Gofmt-specific options.",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to gofmt, e.g. `--gofmt-args='-s -e'`\n<https://www.pantsbuild.org/v2.20/docs/reference-gofmt#args>",
          "type": "array"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use gofmt when running `pants fmt` and `pants lint`\n<https://www.pantsbuild.org/v2.20/docs/reference-gofmt#skip>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "golang": {
      "description": "Options for Golang support.",
      "properties": {
        "asdf_bin_relpath": {
          "default": "bin",
          "description": "The path relative to an ASDF install directory to use to find the `bin` directory within an installed Go distribution\n<https://www.pantsbuild.org/v2.20/docs/reference-golang#asdf_bin_relpath>",
          "type": "string"
        },
        "asdf_tool_name": {
          "default": "go-sdk",
          "description": "The ASDF tool name to use when searching for installed Go distributions using the ASDF tool manager (https://asdf-vm.com/)\n<https://www.pantsbuild.org/v2.20/docs/reference-golang#asdf_tool_name>",
          "type": "string"
        },
        "cgo_c_flags": {
          "default": [
            "-g",
            "-O2"
          ],
          "description": "Compiler options used when compiling C code when Cgo is enabled\n<https://www.pantsbuild.org/v2.20/docs/reference-golang#cgo_c_flags>",
          "type": "array"
        },
        "cgo_cxx_flags": {
          "default": [
            "-g",
            "-O2"
          ],
          "description": "Compiler options used when compiling C++ code when Cgo is enabled\n<https://www.pantsbuild.org/v2.20/docs/reference-golang#cgo_cxx_flags>",
          "type": "array"
        },
        "cgo_enabled": {
          "default": true,
          "description": "Enable Cgo support, which allows Go and C code to interact\n<https://www.pantsbuild.org/v2.20/docs/reference-golang#cgo_enabled>",
          "type": "boolean"
        },
        "cgo_fortran_binary_name": {
          "default": "gfortran",
          "description": "Name of the tool to use to compile fortran code included via CGo in a Go package\n<https://www.pantsbuild.org/v2.20/docs/reference-golang#cgo_fortran_binary_name>",
          "type": "string"
        },
        "cgo_fortran_flags": {
          "default": [
            "-g",
            "-O2"
          ],
          "description": "Compiler options used when compiling Fortran code when Cgo is enabled\n<https://www.pantsbuild.org/v2.20/docs/reference-golang#cgo_fortran_flags>",
          "type": "array"
        },
        "cgo_gcc_binary_name": {
          "default": "gcc",
          "description": "Name of the tool to use to compile C code included via CGo in a Go package\n<https://www.pantsbuild.org/v2.20/docs/reference-golang#cgo_gcc_binary_name>",
          "type": "string"
        },
        "cgo_gxx_binary_name": {
          "default": "g++",
          "description": "Name of the tool to use to compile C++ code included via CGo in a Go package\n<https://www.pantsbuild.org/v2.20/docs/reference-golang#cgo_gxx_binary_name>",
          "type": "string"
        },
        "cgo_linker_flags": {
          "default": [
            "-g",
            "-O2"
          ],
          "description": "Compiler options used when linking native code when Cgo is enabled\n<https://www.pantsbuild.org/v2.20/docs/reference-golang#cgo_linker_flags>",
          "type": "array"
        },
        "cgo_tool_search_paths": {
          "default": [
            "<PATH>"
          ],
          "description": "A list of paths to search for tools needed by CGo (e.g., gcc, g++)\n<https://www.pantsbuild.org/v2.20/docs/reference-golang#cgo_tool_search_paths>",
          "type": "array"
        },
        "external_linker_binary_name": {
          "default": "gcc",
          "description": "Name of the tool to use as the \"external linker\" when invoking `go tool link`\n<https://www.pantsbuild.org/v2.20/docs/reference-golang#external_linker_binary_name>",
          "type": "string"
        },
        "go_search_paths": {
          "default": [
            "<PATH>"
          ],
          "description": "A list of paths to search for Go\n<https://www.pantsbuild.org/v2.20/docs/reference-golang#go_search_paths>",
          "type": "array"
        },
        "minimum_expected_version": {
          "default": "1.17",
          "description": "The minimum Go version the distribution discovered by Pants must support\n<https://www.pantsbuild.org/v2.20/docs/reference-golang#minimum_expected_version>",
          "type": "string"
        },
        "subprocess_env_vars": {
          "default": [
            "LANG",
            "LC_CTYPE",
            "LC_ALL",
            "PATH"
          ],
          "description": "Environment variables to set when invoking the `go` tool\n<https://www.pantsbuild.org/v2.20/docs/reference-golang#subprocess_env_vars>",
          "type": "array"
        },
        "tailor_binary_targets": {
          "default": true,
          "description": "If true, add a `go_binary` target with the `tailor` goal in every directory with a `.go` file with `package main`\n<https://www.pantsbuild.org/v2.20/docs/reference-golang#tailor_binary_targets>",
          "type": "boolean"
        },
        "tailor_go_mod_targets": {
          "default": true,
          "description": "If true, add a `go_mod` target with the `tailor` goal wherever there is a `go.mod` file\n<https://www.pantsbuild.org/v2.20/docs/reference-golang#tailor_go_mod_targets>",
          "type": "boolean"
        },
        "tailor_package_targets": {
          "default": true,
          "description": "If true, add a `go_package` target with the `tailor` goal in every directory with a `.go` file\n<https://www.pantsbuild.org/v2.20/docs/reference-golang#tailor_package_targets>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "google-java-format": {
      "description": "Google Java Format (https://github.com/google/google-java-format)",
      "properties": {
        "aosp": {
          "default": false,
          "description": "Use AOSP style instead of Google Style (4-space indentation). (\"AOSP\" is the Android Open Source Project.)\n<https://www.pantsbuild.org/v2.20/docs/reference-google-java-format#aosp>",
          "type": "boolean"
        },
        "artifacts": {
          "default": [
            "com.google.googlejavaformat:google-java-format:{version}"
          ],
          "description": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`)\n<https://www.pantsbuild.org/v2.20/docs/reference-google-java-format#artifacts>",
          "type": "array"
        },
        "jvm_options": {
          "default": [],
          "description": "List of JVM options to pass to `google-java-format` JVM processes\n<https://www.pantsbuild.org/v2.20/docs/reference-google-java-format#jvm_options>",
          "type": "array"
        },
        "lockfile": {
          "default": "<default>",
          "description": "Path to a lockfile used for installing the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-google-java-format#lockfile>",
          "type": "string"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use Google Java Format when running `pants fmt` and `pants lint`\n<https://www.pantsbuild.org/v2.20/docs/reference-google-java-format#skip>",
          "type": "boolean"
        },
        "version": {
          "default": "1.13.0",
          "description": "Version string for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-google-java-format#version>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "graphql": {
      "description": "Options for the explorer GraphQL API.",
      "properties": {
        "open_graphiql": {
          "default": false,
          "description": "Open a new web browser tab with GraphiQL\n<https://www.pantsbuild.org/v2.20/docs/reference-graphql#open_graphiql>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "hadolint": {
      "description": "A linter for Dockerfiles.",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to Hadolint, e.g. `--hadolint-args='--format json'`\n<https://www.pantsbuild.org/v2.20/docs/reference-hadolint#args>",
          "type": "array"
        },
        "config": {
          "default": null,
          "description": "Path to an YAML config file understood by Hadolint (https://github.com/hadolint/hadolint#configure)\n<https://www.pantsbuild.org/v2.20/docs/reference-hadolint#config>"
        },
        "config_discovery": {
          "default": true,
          "description": "If true, Pants will include all relevant config files during runs (`.hadolint.yaml` and `.hadolint.yml`)\n<https://www.pantsbuild.org/v2.20/docs/reference-hadolint#config_discovery>",
          "type": "boolean"
        },
        "known_versions": {
          "default": [
            "v2.12.1-beta|macos_x86_64 |911008b09e88b9ce62dbd12345af8f4c933370ebcfb01211d934f1e0a4d9aecc|19743768",
            "v2.12.1-beta|macos_arm64 |911008b09e88b9ce62dbd12345af8f4c933370ebcfb01211d934f1e0a4d9aecc|19743768",
            "v2.12.1-beta|linux_x86_64|d0779284293475905cfa4b3a7b5c433eca6d731e45b5df0e157f46b4e6311888|2426420",
            "v2.12.1-beta|linux_arm64 |5997119de9b8332a003be938baff3ebd2ff17dfb62e2bceccd59bd9c112599ce|24002600"
          ],
          "description": "Known versions to verify downloads against\n<https://www.pantsbuild.org/v2.20/docs/reference-hadolint#known_versions>",
          "type": "array"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use Hadolint when running `pants lint`\n<https://www.pantsbuild.org/v2.20/docs/reference-hadolint#skip>",
          "type": "boolean"
        },
        "url_platform_mapping": {
          "default": {
            "linux_arm64": "Linux-arm64",
            "linux_x86_64": "Linux-x86_64",
            "macos_arm64": "Darwin-x86_64",
            "macos_x86_64": "Darwin-x86_64"
          },
          "description": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-hadolint#url_platform_mapping>",
          "type": "object"
        },
        "url_template": {
          "default": "https://github.com/hadolint/hadolint/releases/download/{version}/hadolint-{platform}",
          "description": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file)\n<https://www.pantsbuild.org/v2.20/docs/reference-hadolint#url_template>",
          "type": "string"
        },
        "use_unsupported_version": {
          "default": "error",
          "description": "What action to take in case the requested version of Hadolint is not supported\n<https://www.pantsbuild.org/v2.20/docs/reference-hadolint#use_unsupported_version>",
          "enum": [
            "error",
            "warning"
          ]
        },
        "version": {
          "default": "v2.12.1-beta",
          "description": "Use this version of Hadolint\n<https://www.pantsbuild.org/v2.20/docs/reference-hadolint#version>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "help": {
      "description": "Display usage message.",
      "properties": {},
      "type": "object"
    },
    "help-advanced": {
      "description": "Help for advanced options.",
      "properties": {},
      "type": "object"
    },
    "help-all": {
      "description": "Print a JSON object containing all help info.",
      "properties": {},
      "type": "object"
    },
    "internal-generate-test-lockfile-fixtures": {
      "description": "[Internal] Generate test lockfile fixtures for Pants tests.",
      "properties": {},
      "type": "object"
    },
    "ipython": {
      "description": "The IPython enhanced REPL (https://ipython.org/).",
      "properties": {
        "console_script": {
          "default": "ipython",
          "description": "The console script for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-ipython#console_script>",
          "type": "string"
        },
        "entry_point": {
          "default": null,
          "description": "The entry point for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-ipython#entry_point>",
          "type": "string"
        },
        "ignore_cwd": {
          "default": true,
          "description": "Whether to tell IPython not to put the CWD on the import path\n<https://www.pantsbuild.org/v2.20/docs/reference-ipython#ignore_cwd>",
          "type": "boolean"
        },
        "install_from_resolve": {
          "default": null,
          "description": "If specified, install the tool using the lockfile for this named resolve\n<https://www.pantsbuild.org/v2.20/docs/reference-ipython#install_from_resolve>",
          "type": "string"
        },
        "requirements": {
          "default": [],
          "description": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile\n<https://www.pantsbuild.org/v2.20/docs/reference-ipython#requirements>",
          "type": "array"
        }
      },
      "type": "object"
    },
    "isort": {
      "description": "The Python import sorter tool (https://pycqa.github.io/isort/).",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to isort, e.g. `--isort-args='--case-sensitive --trailing-comma'`\n<https://www.pantsbuild.org/v2.20/docs/reference-isort#args>",
          "type": "array"
        },
        "config": {
          "default": [],
          "description": "Path to config file understood by isort (https://pycqa.github.io/isort/docs/configuration/config_files/)\n<https://www.pantsbuild.org/v2.20/docs/reference-isort#config>",
          "type": "array"
        },
        "config_discovery": {
          "default": true,
          "description": "If true, Pants will include any relevant config files during runs (`.isort.cfg`, `pyproject.toml`, `setup.cfg`, `tox.ini` and `.editorconfig`)\n<https://www.pantsbuild.org/v2.20/docs/reference-isort#config_discovery>",
          "type": "boolean"
        },
        "console_script": {
          "default": "isort",
          "description": "The console script for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-isort#console_script>",
          "type": "string"
        },
        "entry_point": {
          "default": null,
          "description": "The entry point for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-isort#entry_point>",
          "type": "string"
        },
        "install_from_resolve": {
          "default": null,
          "description": "If specified, install the tool using the lockfile for this named resolve\n<https://www.pantsbuild.org/v2.20/docs/reference-isort#install_from_resolve>",
          "type": "string"
        },
        "interpreter_constraints": {
          "default": [
            "CPython>=3.7,<4"
          ],
          "description": "Python interpreter constraints for this tool\n<https://www.pantsbuild.org/v2.20/docs/reference-isort#interpreter_constraints>",
          "type": "array"
        },
        "requirements": {
          "default": [],
          "description": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile\n<https://www.pantsbuild.org/v2.20/docs/reference-isort#requirements>",
          "type": "array"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use isort when running `pants fmt` and `pants lint`\n<https://www.pantsbuild.org/v2.20/docs/reference-isort#skip>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "jarjar": {
      "description": "The Jar Jar Abrams tool (https://github.com/eed3si9n/jarjar-abrams)",
      "properties": {
        "artifacts": {
          "default": [
            "com.eed3si9n.jarjar:jarjar-assembly:{version}"
          ],
          "description": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`)\n<https://www.pantsbuild.org/v2.20/docs/reference-jarjar#artifacts>",
          "type": "array"
        },
        "jvm_options": {
          "default": [],
          "description": "List of JVM options to pass to `jarjar` JVM processes\n<https://www.pantsbuild.org/v2.20/docs/reference-jarjar#jvm_options>",
          "type": "array"
        },
        "lockfile": {
          "default": "<default>",
          "description": "Path to a lockfile used for installing the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-jarjar#lockfile>",
          "type": "string"
        },
        "misplaced_class_strategy": {
          "default": null,
          "description": "The strategy to use when processing class files that are in the wrong package\n<https://www.pantsbuild.org/v2.20/docs/reference-jarjar#misplaced_class_strategy>",
          "enum": [
            "fatal",
            "skip",
            "omit",
            "move"
          ]
        },
        "skip_manifest": {
          "default": false,
          "description": "Skip the processing of the JAR manifest\n<https://www.pantsbuild.org/v2.20/docs/reference-jarjar#skip_manifest>",
          "type": "boolean"
        },
        "version": {
          "default": "1.8.1",
          "description": "Version string for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-jarjar#version>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "java-dump-source-analysis": {
      "description": "Dump source analysis for java_source[s] targets.",
      "properties": {},
      "type": "object"
    },
    "java-infer": {
      "description": "Options controlling which dependencies will be inferred for Java targets.",
      "properties": {
        "consumed_types": {
          "default": true,
          "description": "Infer a target's dependencies by parsing consumed types from sources\n<https://www.pantsbuild.org/v2.20/docs/reference-java-infer#consumed_types>",
          "type": "boolean"
        },
        "imports": {
          "default": true,
          "description": "Infer a target's dependencies by parsing import statements from sources\n<https://www.pantsbuild.org/v2.20/docs/reference-java-infer#imports>",
          "type": "boolean"
        },
        "third_party_import_mapping": {
          "default": {},
          "description": "A dictionary mapping a Java package path to a JVM artifact coordinate (GROUP:ARTIFACT) without the version\n<https://www.pantsbuild.org/v2.20/docs/reference-java-infer#third_party_import_mapping>",
          "type": "object"
        }
      },
      "type": "object"
    },
    "javac": {
      "description": "The javac Java source compiler.",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to javac, e.g. `--javac-args='-g -deprecation'`\n<https://www.pantsbuild.org/v2.20/docs/reference-javac#args>",
          "type": "array"
        },
        "tailor_source_targets": {
          "default": true,
          "description": "If true, add `java_sources` and `java_tests` targets with the `tailor` goal\n<https://www.pantsbuild.org/v2.20/docs/reference-javac#tailor_source_targets>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "junit": {
      "description": "The JUnit test framework (https://junit.org)",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to JUnit, e.g. `--junit-args='--disable-ansi-colors'`\n<https://www.pantsbuild.org/v2.20/docs/reference-junit#args>",
          "type": "array"
        },
        "artifacts": {
          "default": [
            "org.junit.platform:junit-platform-console:1.7.2",
            "org.junit.jupiter:junit-jupiter-engine:{version}",
            "org.junit.vintage:junit-vintage-engine:{version}"
          ],
          "description": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`)\n<https://www.pantsbuild.org/v2.20/docs/reference-junit#artifacts>",
          "type": "array"
        },
        "jvm_options": {
          "default": [],
          "description": "List of JVM options to pass to `junit` JVM processes\n<https://www.pantsbuild.org/v2.20/docs/reference-junit#jvm_options>",
          "type": "array"
        },
        "lockfile": {
          "default": "<default>",
          "description": "Path to a lockfile used for installing the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-junit#lockfile>",
          "type": "string"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use JUnit when running `pants test`\n<https://www.pantsbuild.org/v2.20/docs/reference-junit#skip>",
          "type": "boolean"
        },
        "version": {
          "default": "5.7.2",
          "description": "Version string for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-junit#version>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "jvm": {
      "description": "Options for general JVM functionality.\n\nJDK strings will be passed directly to Coursier's `--jvm` parameter. Run `cs java --available` to see a list of available JVM versions on your platform.\n\nIf the string `'system'` is passed, Coursier's `--system-jvm` option will be used instead, but note that this can lead to inconsistent behavior since the JVM version will be whatever happens to be found first on the system's PATH.",
      "properties": {
        "debug_args": {
          "default": [],
          "description": "Extra JVM arguments to use when running tests in debug mode\n<https://www.pantsbuild.org/v2.20/docs/reference-jvm#debug_args>",
          "type": "array"
        },
        "default_resolve": {
          "default": "jvm-default",
          "description": "The default value used for the `resolve` and `compatible_resolves` fields\n<https://www.pantsbuild.org/v2.20/docs/reference-jvm#default_resolve>",
          "type": "string"
        },
        "global_options": {
          "default": [],
          "description": "List of JVM options to pass to all JVM processes\n<https://www.pantsbuild.org/v2.20/docs/reference-jvm#global_options>",
          "type": "array"
        },
        "jdk": {
          "default": "temurin:1.11",
          "description": "The JDK to use\n<https://www.pantsbuild.org/v2.20/docs/reference-jvm#jdk>",
          "type": "string"
        },
        "nailgun_remote_cache_speculation_delay": {
          "default": 1000,
          "description": "The time in milliseconds to delay speculation of nailgun processes while reading from the remote cache\n<https://www.pantsbuild.org/v2.20/docs/reference-jvm#nailgun_remote_cache_speculation_delay>",
          "type": "number"
        },
        "reproducible_jars": {
          "default": false,
          "description": "When enabled, JAR files produced by JVM tools will have timestamps stripped\n<https://www.pantsbuild.org/v2.20/docs/reference-jvm#reproducible_jars>",
          "type": "boolean"
        },
        "resolves": {
          "default": {
            "jvm-default": "3rdparty/jvm/default.lock"
          },
          "description": "A dictionary mapping resolve names to the path of their lockfile\n<https://www.pantsbuild.org/v2.20/docs/reference-jvm#resolves>",
          "type": "object"
        },
        "tool_jdk": {
          "default": "temurin:1.11",
          "description": "The JDK to use when building and running Pants' internal JVM support code and other non-compiler tools\n<https://www.pantsbuild.org/v2.20/docs/reference-jvm#tool_jdk>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "jvm-symbol-map": {
      "description": "Dump the JVM dependency inference symbol mapping.",
      "properties": {},
      "type": "object"
    },
    "lint": {
      "description": "Run linters/formatters/fixers in check mode.",
      "properties": {
        "batch_size": {
          "default": 128,
          "description": "The target number of files to be included in each linter batch\n<https://www.pantsbuild.org/v2.20/docs/reference-lint#batch_size>",
          "type": "number"
        },
        "only": {
          "default": [],
          "description": "Only run these linters and skip all others\n<https://www.pantsbuild.org/v2.20/docs/reference-lint#only>",
          "type": "array"
        },
        "skip_fixers": {
          "default": false,
          "description": "If true, skip running all fixers in check-only mode\n<https://www.pantsbuild.org/v2.20/docs/reference-lint#skip_fixers>",
          "type": "boolean"
        },
        "skip_formatters": {
          "default": false,
          "description": "If true, skip running all formatters in check-only mode\n<https://www.pantsbuild.org/v2.20/docs/reference-lint#skip_formatters>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "list": {
      "description": "Lists all targets matching the file or target arguments.",
      "properties": {
        "documented": {
          "default": false,
          "description": "Print only targets that are documented with a description\n<https://www.pantsbuild.org/v2.20/docs/reference-list#documented>",
          "type": "boolean"
        },
        "output_file": {
          "default": null,
          "description": "Output the goal's stdout to this file\n<https://www.pantsbuild.org/v2.20/docs/reference-list#output_file>",
          "type": "string"
        },
        "sep": {
          "default": "\\n",
          "description": "String to use to separate lines in line-oriented output\n<https://www.pantsbuild.org/v2.20/docs/reference-list#sep>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "mypy": {
      "description": "The MyPy Python type checker (http://mypy-lang.org/).",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to MyPy, e.g. `--mypy-args='--python-version 3.7 --disallow-any-expr'`\n<https://www.pantsbuild.org/v2.20/docs/reference-mypy#args>",
          "type": "array"
        },
        "config": {
          "default": null,
          "description": "Path to a config file understood by MyPy (https://mypy.readthedocs.io/en/stable/config_file.html)\n<https://www.pantsbuild.org/v2.20/docs/reference-mypy#config>"
        },
        "config_discovery": {
          "default": true,
          "description": "If true, Pants will include any relevant config files during runs (`mypy.ini`, `.mypy.ini`, and `setup.cfg`)\n<https://www.pantsbuild.org/v2.20/docs/reference-mypy#config_discovery>",
          "type": "boolean"
        },
        "console_script": {
          "default": "mypy",
          "description": "The console script for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-mypy#console_script>",
          "type": "string"
        },
        "entry_point": {
          "default": null,
          "description": "The entry point for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-mypy#entry_point>",
          "type": "string"
        },
        "install_from_resolve": {
          "default": null,
          "description": "If specified, install the tool using the lockfile for this named resolve\n<https://www.pantsbuild.org/v2.20/docs/reference-mypy#install_from_resolve>",
          "type": "string"
        },
        "interpreter_constraints": {
          "default": [
            "CPython>=3.7,<4"
          ],
          "description": "Python interpreter constraints for this tool\n<https://www.pantsbuild.org/v2.20/docs/reference-mypy#interpreter_constraints>",
          "type": "array"
        },
        "requirements": {
          "default": [],
          "description": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile\n<https://www.pantsbuild.org/v2.20/docs/reference-mypy#requirements>",
          "type": "array"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use MyPy when running `pants check`\n<https://www.pantsbuild.org/v2.20/docs/reference-mypy#skip>",
          "type": "boolean"
        },
        "source_plugins": {
          "default": [],
          "description": "An optional list of `python_sources` target addresses to load first-party plugins\n<https://www.pantsbuild.org/v2.20/docs/reference-mypy#source_plugins>",
          "type": "array"
        }
      },
      "type": "object"
    },
    "nodejs": {
      "description": "The Node.js Javascript runtime (including Corepack).",
      "properties": {
        "corepack_env_vars": {
          "default": [],
          "description": "Environment variables to set for `corepack` invocations\n<https://www.pantsbuild.org/v2.20/docs/reference-nodejs#corepack_env_vars>",
          "type": "array"
        },
        "executable_search_paths": {
          "default": [
            "<PATH>"
          ],
          "description": "The PATH value that will be used to find any tools required to run nodejs processes\n<https://www.pantsbuild.org/v2.20/docs/reference-nodejs#executable_search_paths>",
          "type": "array"
        },
        "known_versions": {
          "default": [
            "v16.15.0|macos_arm64|ad8d8fc5330ef47788f509c2af398c8060bb59acbe914070d0df684cd2d8d39b|29126014",
            "v16.15.0|macos_x86_64|a6bb12bbf979d32137598e49d56d61bcddf8a8596c3442b44a9b3ace58dd4de8|30561503",
            "v16.15.0|linux_arm64|b4080b86562c5397f32da7a0723b95b1df523cab4c757688a184e3f733a7df56|21403276",
            "v16.15.0|linux_x86_64|ebdf4dc9d992d19631f0931cca2fc33c6d0d382543639bc6560d31d5060a8372|22031988"
          ],
          "description": "Known versions to verify downloads against\n<https://www.pantsbuild.org/v2.20/docs/reference-nodejs#known_versions>",
          "type": "array"
        },
        "package_manager": {
          "default": "npm",
          "description": "Default Node.js package manager to use\n<https://www.pantsbuild.org/v2.20/docs/reference-nodejs#package_manager>",
          "type": "string"
        },
        "package_managers": {
          "default": {
            "npm": "8.5.5"
          },
          "description": "A mapping of package manager versions to semver releases\n<https://www.pantsbuild.org/v2.20/docs/reference-nodejs#package_managers>",
          "type": "object"
        },
        "resolves": {
          "default": {},
          "description": "A mapping of names to lockfile paths used in your project\n<https://www.pantsbuild.org/v2.20/docs/reference-nodejs#resolves>",
          "type": "object"
        },
        "search_path": {
          "default": [
            "<PATH>"
          ],
          "description": "A list of paths to search for Node.js distributions\n<https://www.pantsbuild.org/v2.20/docs/reference-nodejs#search_path>",
          "type": "array"
        },
        "url_platform_mapping": {
          "default": {
            "linux_arm64": "linux-arm64",
            "linux_x86_64": "linux-x64",
            "macos_arm64": "darwin-arm64",
            "macos_x86_64": "darwin-x64"
          },
          "description": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-nodejs#url_platform_mapping>",
          "type": "object"
        },
        "url_template": {
          "default": "https://nodejs.org/dist/{version}/node-{version}-{platform}.tar",
          "description": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file)\n<https://www.pantsbuild.org/v2.20/docs/reference-nodejs#url_template>",
          "type": "string"
        },
        "version": {
          "default": "v16.15.0",
          "description": "Use this version of nodejs\n<https://www.pantsbuild.org/v2.20/docs/reference-nodejs#version>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "nodejs-infer": {
      "description": "Options controlling which dependencies will be inferred for javascript targets.",
      "properties": {
        "imports": {
          "default": true,
          "description": "Infer a target's imported dependencies by parsing import statements from sources\n<https://www.pantsbuild.org/v2.20/docs/reference-nodejs-infer#imports>",
          "type": "boolean"
        },
        "package_json_entry_points": {
          "default": true,
          "description": "Infer a `package_json`'s dependencies by parsing entry point statements from the package.json file\n<https://www.pantsbuild.org/v2.20/docs/reference-nodejs-infer#package_json_entry_points>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "nodejs-test": {
      "description": "Options for package.json script configured tests.\n\nYour preferred test runner is configured via the `package.json#scripts.test` field.\n\nThe only expectation from pants is that the `test` script can accept a variadic number of path arguments, relative to the package.json, and that any configuration files are `file` dependencies to the `package_json`.\n\nSimple example:\n\nConsider a directory-layout:\n\n├── BUILD\n├── src/\n│   ├── BUILD\n│   ├── test/\n│   │   ├── BUILD\n│   │   └── index.test.js\n│   └── index.js\n└── package.json\n\nwhere package.json contains\n\n# package.json\n{\n    ...\n    \"scripts\": {\n        \"test\": \"mocha\"\n    },\n    \"devDependencies: {\n        ...\n    }\n}\n\n\nExecuting `pants test src/test/index.test.js` will cause the equivalent of `mocha src/test/index.test.js` to run.",
      "properties": {
        "coverage_output_dir": {
          "default": "{distdir}/coverage/js/{target_spec}",
          "description": "Path to write the NodeJS coverage reports to\n<https://www.pantsbuild.org/v2.20/docs/reference-nodejs-test#coverage_output_dir>",
          "type": "string"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use Node.js tests when running `pants test`\n<https://www.pantsbuild.org/v2.20/docs/reference-nodejs-test#skip>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "package": {
      "description": "Create a distributable package.",
      "properties": {},
      "type": "object"
    },
    "paths": {
      "description": "List the paths between two addresses. Either address may represent a group of targets, e.g. `--from=src/app/main.py --to=src/library::`.",
      "properties": {
        "from": {
          "default": null,
          "description": "The path starting address\n<https://www.pantsbuild.org/v2.20/docs/reference-paths#from>",
          "type": "string"
        },
        "output_file": {
          "default": null,
          "description": "Output the goal's stdout to this file\n<https://www.pantsbuild.org/v2.20/docs/reference-paths#output_file>",
          "type": "string"
        },
        "to": {
          "default": null,
          "description": "The path end address\n<https://www.pantsbuild.org/v2.20/docs/reference-paths#to>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "peek": {
      "description": "Display BUILD target info",
      "properties": {
        "exclude_defaults": {
          "default": false,
          "description": "Whether to leave off values that match the target-defined default values\n<https://www.pantsbuild.org/v2.20/docs/reference-peek#exclude_defaults>",
          "type": "boolean"
        },
        "include_dep_rules": {
          "default": false,
          "description": "Whether to include `_dependencies_rules`, `_dependents_rules` and `_applicable_dep_rules` that apply to the target and its dependencies\n<https://www.pantsbuild.org/v2.20/docs/reference-peek#include_dep_rules>",
          "type": "boolean"
        },
        "output_file": {
          "default": null,
          "description": "Output the goal's stdout to this file\n<https://www.pantsbuild.org/v2.20/docs/reference-peek#output_file>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "pex": {
      "description": "How Pants uses Pex to run Python subprocesses.",
      "properties": {
        "emit_warnings": {
          "default": false,
          "description": "If warnings from Pex should be logged by Pants to the console\n<https://www.pantsbuild.org/v2.20/docs/reference-pex#emit_warnings>",
          "type": "boolean"
        },
        "executable_search_paths": {
          "default": [
            "<PATH>"
          ],
          "description": "The PATH value that will be used by the PEX subprocess and any subprocesses it spawns\n<https://www.pantsbuild.org/v2.20/docs/reference-pex#executable_search_paths>",
          "type": "array"
        },
        "venv_use_symlinks": {
          "default": false,
          "description": "When possible, use venvs whose site-packages directories are populated with symlinks\n<https://www.pantsbuild.org/v2.20/docs/reference-pex#venv_use_symlinks>",
          "type": "boolean"
        },
        "verbosity": {
          "default": 0,
          "description": "Set the verbosity level of PEX logging, from 0 (no logging) up to 9 (max logging)\n<https://www.pantsbuild.org/v2.20/docs/reference-pex#verbosity>",
          "type": "number"
        }
      },
      "type": "object"
    },
    "pex-binary-defaults": {
      "description": "Default settings for creating PEX executables.",
      "properties": {
        "emit_warnings": {
          "default": true,
          "description": "Whether built PEX binaries should emit PEX warnings at runtime by default\n<https://www.pantsbuild.org/v2.20/docs/reference-pex-binary-defaults#emit_warnings>",
          "type": "boolean"
        },
        "resolve_local_platforms": {
          "default": false,
          "description": "For each of the `platforms` specified for a `pex_binary` target, attempt to find a local interpreter that matches\n<https://www.pantsbuild.org/v2.20/docs/reference-pex-binary-defaults#resolve_local_platforms>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "pex-cli": {
      "description": "The PEX (Python EXecutable) tool (https://github.com/pex-tool/pex).",
      "properties": {
        "known_versions": {
          "default": [
            "v2.2.1|macos_arm64|e38e7052282f1855606880333a8f8c8a09458fabc5b5e5fb6c48ce11a4564a34|4113219",
            "v2.2.1|macos_x86_64|e38e7052282f1855606880333a8f8c8a09458fabc5b5e5fb6c48ce11a4564a34|4113219",
            "v2.2.1|linux_x86_64|e38e7052282f1855606880333a8f8c8a09458fabc5b5e5fb6c48ce11a4564a34|4113219",
            "v2.2.1|linux_arm64|e38e7052282f1855606880333a8f8c8a09458fabc5b5e5fb6c48ce11a4564a34|4113219"
          ],
          "description": "Known versions to verify downloads against\n<https://www.pantsbuild.org/v2.20/docs/reference-pex-cli#known_versions>",
          "type": "array"
        },
        "url_platform_mapping": {
          "default": {},
          "description": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-pex-cli#url_platform_mapping>",
          "type": "object"
        },
        "url_template": {
          "default": "https://github.com/pex-tool/pex/releases/download/{version}/pex",
          "description": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file)\n<https://www.pantsbuild.org/v2.20/docs/reference-pex-cli#url_template>",
          "type": "string"
        },
        "use_unsupported_version": {
          "default": "error",
          "description": "What action to take in case the requested version of pex is not supported\n<https://www.pantsbuild.org/v2.20/docs/reference-pex-cli#use_unsupported_version>",
          "enum": [
            "error",
            "warning"
          ]
        },
        "version": {
          "default": "v2.2.1",
          "description": "Use this version of pex\n<https://www.pantsbuild.org/v2.20/docs/reference-pex-cli#version>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "preamble": {
      "description": "Formats files with a preamble, with the preamble looked up based on path.\n\nThis is useful for things such as copyright headers or shebang lines.\n\nPants substitutes the following identifiers (following Python's `string.Template` substitutions): - $year: The current year (only used when actually writing the year to the file).",
      "properties": {
        "skip": {
          "default": false,
          "description": "If true, don't use preamble when running `pants fmt`\n<https://www.pantsbuild.org/v2.20/docs/reference-preamble#skip>",
          "type": "boolean"
        },
        "template_by_globs": {
          "default": {},
          "description": "Which preamble template to use based on the path globs (relative to the build root)\n<https://www.pantsbuild.org/v2.20/docs/reference-preamble#template_by_globs>",
          "oneOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ]
        }
      },
      "type": "object"
    },
    "prettier": {
      "description": "The Prettier utility for formatting JS/TS (and others) code (https://prettier.io/).",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to Prettier, e.g. `--prettier-args='--version'`\n<https://www.pantsbuild.org/v2.20/docs/reference-prettier#args>",
          "type": "array"
        },
        "install_from_resolve": {
          "default": null,
          "description": "If specified, install the tool using the lockfile for this named resolve, instead of the version configured in this subsystem\n<https://www.pantsbuild.org/v2.20/docs/reference-prettier#install_from_resolve>",
          "type": "string"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use Prettier when running `pants fmt` and `pants lint`\n<https://www.pantsbuild.org/v2.20/docs/reference-prettier#skip>",
          "type": "boolean"
        },
        "version": {
          "default": "prettier@2.6.2",
          "description": "Version string for the tool in the form package@version (e.g. prettier@2.6.2)\n<https://www.pantsbuild.org/v2.20/docs/reference-prettier#version>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "publish": {
      "description": "Publish deliverables (assets, distributions, images, etc).",
      "properties": {
        "output": {
          "default": null,
          "description": "Filename for JSON structured publish information\n<https://www.pantsbuild.org/v2.20/docs/reference-publish#output>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "py-constraints": {
      "description": "Determine what Python interpreter constraints are used by files/targets.",
      "properties": {
        "output_file": {
          "default": null,
          "description": "Output the goal's stdout to this file\n<https://www.pantsbuild.org/v2.20/docs/reference-py-constraints#output_file>",
          "type": "string"
        },
        "summary": {
          "default": false,
          "description": "Output a CSV summary of interpreter constraints for your whole repository\n<https://www.pantsbuild.org/v2.20/docs/reference-py-constraints#summary>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "pyoxidizer": {
      "description": "The PyOxidizer utility for packaging Python code in a Rust binary (https://pyoxidizer.readthedocs.io/en/stable/pyoxidizer.html).\n\nUsed with the `pyoxidizer_binary` target.",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to PyOxidizer, e.g. `--pyoxidizer-args='--release'`\n<https://www.pantsbuild.org/v2.20/docs/reference-pyoxidizer#args>",
          "type": "array"
        },
        "console_script": {
          "default": "pyoxidizer",
          "description": "The console script for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-pyoxidizer#console_script>",
          "type": "string"
        },
        "entry_point": {
          "default": null,
          "description": "The entry point for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-pyoxidizer#entry_point>",
          "type": "string"
        },
        "install_from_resolve": {
          "default": null,
          "description": "If specified, install the tool using the lockfile for this named resolve\n<https://www.pantsbuild.org/v2.20/docs/reference-pyoxidizer#install_from_resolve>",
          "type": "string"
        },
        "interpreter_constraints": {
          "default": [
            "CPython>=3.8,<4"
          ],
          "description": "Python interpreter constraints for this tool\n<https://www.pantsbuild.org/v2.20/docs/reference-pyoxidizer#interpreter_constraints>",
          "type": "array"
        },
        "requirements": {
          "default": [],
          "description": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile\n<https://www.pantsbuild.org/v2.20/docs/reference-pyoxidizer#requirements>",
          "type": "array"
        }
      },
      "type": "object"
    },
    "pytest": {
      "description": "The pytest Python test framework (https://docs.pytest.org/).",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to Pytest, e.g. `--pytest-args='-k test_foo --quiet'`\n<https://www.pantsbuild.org/v2.20/docs/reference-pytest#args>",
          "type": "array"
        },
        "config": {
          "default": null,
          "description": "Path to a config file understood by Pytest (https://docs.pytest.org/en/latest/reference/customize.html#configuration-file-formats)\n<https://www.pantsbuild.org/v2.20/docs/reference-pytest#config>"
        },
        "config_discovery": {
          "default": true,
          "description": "If true, Pants will include all relevant Pytest config files (e.g. `pytest.ini`) during runs\n<https://www.pantsbuild.org/v2.20/docs/reference-pytest#config_discovery>",
          "type": "boolean"
        },
        "console_script": {
          "default": "pytest",
          "description": "The console script for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-pytest#console_script>",
          "type": "string"
        },
        "entry_point": {
          "default": null,
          "description": "The entry point for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-pytest#entry_point>",
          "type": "string"
        },
        "execution_slot_var": {
          "default": null,
          "description": "If a non-empty string, the process execution slot id (an integer) will be exposed to tests under this environment variable name\n<https://www.pantsbuild.org/v2.20/docs/reference-pytest#execution_slot_var>",
          "type": "string"
        },
        "install_from_resolve": {
          "default": null,
          "description": "If specified, install the tool using the lockfile for this named resolve\n<https://www.pantsbuild.org/v2.20/docs/reference-pytest#install_from_resolve>",
          "type": "string"
        },
        "junit_family": {
          "default": "xunit2",
          "description": "The format of generated junit XML files\n<https://www.pantsbuild.org/v2.20/docs/reference-pytest#junit_family>",
          "type": "string"
        },
        "requirements": {
          "default": [],
          "description": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile\n<https://www.pantsbuild.org/v2.20/docs/reference-pytest#requirements>",
          "type": "array"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use Pytest when running `pants test`\n<https://www.pantsbuild.org/v2.20/docs/reference-pytest#skip>",
          "type": "boolean"
        },
        "xdist_enabled": {
          "default": false,
          "description": "If true, Pants will use `pytest-xdist` (https://pytest-xdist.readthedocs.io/en/latest/) to parallelize tests within each `python_test` target\n<https://www.pantsbuild.org/v2.20/docs/reference-pytest#xdist_enabled>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "python": {
      "description": "Options for Pants's Python backend.",
      "properties": {
        "default_resolve": {
          "default": "python-default",
          "description": "The default value used for the `resolve` field\n<https://www.pantsbuild.org/v2.20/docs/reference-python#default_resolve>",
          "type": "string"
        },
        "default_run_goal_use_sandbox": {
          "default": true,
          "description": "The default value used for the `run_goal_use_sandbox` field of Python targets\n<https://www.pantsbuild.org/v2.20/docs/reference-python#default_run_goal_use_sandbox>",
          "type": "boolean"
        },
        "enable_lockfile_targets": {
          "default": true,
          "description": "Create targets for all Python lockfiles defined in `[python].resolves`\n<https://www.pantsbuild.org/v2.20/docs/reference-python#enable_lockfile_targets>",
          "type": "boolean"
        },
        "enable_resolves": {
          "default": false,
          "description": "Set to true to enable lockfiles for user code\n<https://www.pantsbuild.org/v2.20/docs/reference-python#enable_resolves>",
          "type": "boolean"
        },
        "interpreter_constraints": {
          "default": [],
          "description": "The Python interpreters your codebase is compatible with\n<https://www.pantsbuild.org/v2.20/docs/reference-python#interpreter_constraints>",
          "type": "array"
        },
        "interpreter_versions_universe": {
          "default": [
            "2.7",
            "3.5",
            "3.6",
            "3.7",
            "3.8",
            "3.9",
            "3.10",
            "3.11",
            "3.12"
          ],
          "description": "All known Python major/minor interpreter versions that may be used by either your code or tools used by your code\n<https://www.pantsbuild.org/v2.20/docs/reference-python#interpreter_versions_universe>",
          "type": "array"
        },
        "invalid_lockfile_behavior": {
          "default": "error",
          "description": "The behavior when a lockfile has requirements or interpreter constraints that are not compatible with what the current build is using\n<https://www.pantsbuild.org/v2.20/docs/reference-python#invalid_lockfile_behavior>",
          "enum": [
            "error",
            "ignore",
            "warn"
          ]
        },
        "macos_big_sur_compatibility": {
          "default": false,
          "description": "If set, and if running on macOS Big Sur, use `macosx_10_16` as the platform when building wheels\n<https://www.pantsbuild.org/v2.20/docs/reference-python#macos_big_sur_compatibility>",
          "type": "boolean"
        },
        "pip_version": {
          "default": "23.1.2",
          "description": "Use this version of Pip for resolving requirements and generating lockfiles\n<https://www.pantsbuild.org/v2.20/docs/reference-python#pip_version>",
          "type": "string"
        },
        "repl_history": {
          "default": true,
          "description": "Whether to use the standard Python command history file when running a repl\n<https://www.pantsbuild.org/v2.20/docs/reference-python#repl_history>",
          "type": "boolean"
        },
        "resolver_manylinux": {
          "default": "manylinux2014",
          "description": "Whether to allow resolution of manylinux wheels when resolving requirements for foreign linux platforms\n<https://www.pantsbuild.org/v2.20/docs/reference-python#resolver_manylinux>",
          "type": "string"
        },
        "resolves": {
          "default": {
            "python-default": "3rdparty/python/default.lock"
          },
          "description": "A mapping of logical names to lockfile paths used in your project\n<https://www.pantsbuild.org/v2.20/docs/reference-python#resolves>",
          "type": "object"
        },
        "resolves_generate_lockfiles": {
          "default": true,
          "description": "If False, Pants will not attempt to generate lockfiles for `[python].resolves` when running the `generate-lockfiles` goal\n<https://www.pantsbuild.org/v2.20/docs/reference-python#resolves_generate_lockfiles>",
          "type": "boolean"
        },
        "resolves_to_constraints_file": {
          "default": {},
          "description": "When generating a resolve's lockfile, use a constraints file to pin the version of certain requirements\n<https://www.pantsbuild.org/v2.20/docs/reference-python#resolves_to_constraints_file>",
          "type": "object"
        },
        "resolves_to_interpreter_constraints": {
          "default": {},
          "description": "Override the interpreter constraints to use when generating a resolve's lockfile with the `generate-lockfiles` goal\n<https://www.pantsbuild.org/v2.20/docs/reference-python#resolves_to_interpreter_constraints>",
          "type": "object"
        },
        "resolves_to_no_binary": {
          "default": {},
          "description": "When generating a resolve's lockfile, do not use binary packages (i.e. wheels) for these 3rdparty project names\n<https://www.pantsbuild.org/v2.20/docs/reference-python#resolves_to_no_binary>",
          "type": "object"
        },
        "resolves_to_only_binary": {
          "default": {},
          "description": "When generating a resolve's lockfile, do not use source packages (i.e. sdists) for these 3rdparty project names, e.g `['django', 'requests']`\n<https://www.pantsbuild.org/v2.20/docs/reference-python#resolves_to_only_binary>",
          "type": "object"
        },
        "run_against_entire_lockfile": {
          "default": false,
          "description": "If enabled, when running binaries, tests, and repls, Pants will use the entire lockfile file instead of just the relevant subset\n<https://www.pantsbuild.org/v2.20/docs/reference-python#run_against_entire_lockfile>",
          "type": "boolean"
        },
        "tailor_ignore_empty_init_files": {
          "default": true,
          "description": "If true, don't add `python_sources` targets for `__init__.py` files that are both empty and where there are no other Python files in the directory\n<https://www.pantsbuild.org/v2.20/docs/reference-python#tailor_ignore_empty_init_files>",
          "type": "boolean"
        },
        "tailor_pex_binary_targets": {
          "default": false,
          "description": "If true, add `pex_binary` targets for Python files named `__main__.py` or with a `__main__` clause with the `tailor` goal\n<https://www.pantsbuild.org/v2.20/docs/reference-python#tailor_pex_binary_targets>",
          "type": "boolean"
        },
        "tailor_py_typed_targets": {
          "default": true,
          "description": "If true, add `resource` targets for marker files named `py.typed` with the `tailor` goal\n<https://www.pantsbuild.org/v2.20/docs/reference-python#tailor_py_typed_targets>",
          "type": "boolean"
        },
        "tailor_requirements_targets": {
          "default": true,
          "description": "If true, add `python_requirements`, `poetry_requirements`, and `pipenv_requirements` target generators with the `tailor` goal\n<https://www.pantsbuild.org/v2.20/docs/reference-python#tailor_requirements_targets>",
          "type": "boolean"
        },
        "tailor_source_targets": {
          "default": true,
          "description": "If true, add `python_sources`, `python_tests`, and `python_test_utils` targets with the `tailor` goal\n<https://www.pantsbuild.org/v2.20/docs/reference-python#tailor_source_targets>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "python-bootstrap": {
      "description": "Options used to locate Python interpreters.\n\nThis subsystem controls where and how Pants will locate Python, but beyond that it does not control which Python interpreter versions are actually used for your code: see the `python` subsystem for that.",
      "properties": {
        "internal_python_build_standalone_info": {
          "default": {
            "linux_arm64": [
              "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.9.16+20230116-aarch64-unknown-linux-gnu-install_only.tar.gz",
              "1ba520c0db431c84305677f56eb9a4254f5097430ed443e92fc8617f8fba973d",
              23873387
            ],
            "linux_x86_64": [
              "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.9.16+20230116-x86_64-unknown-linux-gnu-install_only.tar.gz",
              "7ba397787932393e65fc2fb9fcfabf54f2bb6751d5da2b45913cb25b2d493758",
              26129729
            ],
            "macos_arm64": [
              "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.9.16+20230116-aarch64-apple-darwin-install_only.tar.gz",
              "d732d212d42315ac27c6da3e0b69636737a8d72086c980daf844344c010cab80",
              17084463
            ],
            "macos_x86_64": [
              "https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.9.16+20230116-x86_64-apple-darwin-install_only.tar.gz",
              "3948384af5e8d4ee7e5ccc648322b99c1c5cf4979954ed5e6b3382c69d6db71e",
              17059474
            ]
          },
          "description": "A map from platform to the information needed to download Python Build Standalone\n<https://www.pantsbuild.org/v2.20/docs/reference-python-bootstrap#internal_python_build_standalone_info>",
          "type": "object"
        },
        "names": {
          "default": [
            "python",
            "python3"
          ],
          "description": "The names of Python binaries to search for\n<https://www.pantsbuild.org/v2.20/docs/reference-python-bootstrap#names>",
          "type": "array"
        },
        "search_path": {
          "default": [
            "<PYENV>",
            "<ASDF>",
            "<PATH>"
          ],
          "description": "A list of paths to search for Python interpreters\n<https://www.pantsbuild.org/v2.20/docs/reference-python-bootstrap#search_path>",
          "type": "array"
        }
      },
      "type": "object"
    },
    "python-dump-source-analysis": {
      "description": "Dump source analysis for python_source targets.",
      "properties": {
        "analysis_flavor": {
          "default": "dependency_inference",
          "description": "The type of information that should be returned\n<https://www.pantsbuild.org/v2.20/docs/reference-python-dump-source-analysis#analysis_flavor>",
          "enum": [
            "raw_dependency_inference",
            "dependency_inference"
          ]
        }
      },
      "type": "object"
    },
    "python-infer": {
      "description": "Options controlling which dependencies will be inferred for Python targets.",
      "properties": {
        "ambiguity_resolution": {
          "default": "none",
          "description": "When multiple sources provide the same symbol, how to choose the provider to use\n<https://www.pantsbuild.org/v2.20/docs/reference-python-infer#ambiguity_resolution>",
          "enum": [
            "none",
            "by_source_root"
          ]
        },
        "assets": {
          "default": false,
          "description": "Infer a target's asset dependencies based on strings that look like Posix filepaths, such as those given to `open` or `pkgutil.get_data`\n<https://www.pantsbuild.org/v2.20/docs/reference-python-infer#assets>",
          "type": "boolean"
        },
        "assets_min_slashes": {
          "default": 1,
          "description": "If `--assets` is True, treat valid-looking strings with at least this many forward slash characters as potential assets\n<https://www.pantsbuild.org/v2.20/docs/reference-python-infer#assets_min_slashes>",
          "type": "number"
        },
        "conftests": {
          "default": true,
          "description": "Infer a test target's dependencies on any `conftest.py` files in the current directory and ancestor directories\n<https://www.pantsbuild.org/v2.20/docs/reference-python-infer#conftests>",
          "type": "boolean"
        },
        "entry_points": {
          "default": true,
          "description": "Infer dependencies on targets' entry points, e.g. `pex_binary`'s `entry_point` field, `python_aws_lambda_function`'s `handler` field and `python_distribution`'s `entry_points` field\n<https://www.pantsbuild.org/v2.20/docs/reference-python-infer#entry_points>",
          "type": "boolean"
        },
        "ignored_unowned_imports": {
          "default": [],
          "description": "Unowned imports that should be ignored\n<https://www.pantsbuild.org/v2.20/docs/reference-python-infer#ignored_unowned_imports>",
          "type": "array"
        },
        "imports": {
          "default": true,
          "description": "Infer a target's imported dependencies by parsing import statements from sources\n<https://www.pantsbuild.org/v2.20/docs/reference-python-infer#imports>",
          "type": "boolean"
        },
        "init_files": {
          "default": "content_only",
          "description": "Infer a target's dependencies on any `__init__.py` files in the packages it is located in (recursively upward in the directory structure)\n<https://www.pantsbuild.org/v2.20/docs/reference-python-infer#init_files>",
          "enum": [
            "always",
            "content_only",
            "never"
          ]
        },
        "string_imports": {
          "default": false,
          "description": "Infer a target's dependencies based on strings that look like dynamic dependencies, such as Django settings files expressing dependencies as strings or pytest plugins listed in the `pytest_plugins` variable in a test module or a conftest file\n<https://www.pantsbuild.org/v2.20/docs/reference-python-infer#string_imports>",
          "type": "boolean"
        },
        "string_imports_min_dots": {
          "default": 2,
          "description": "If `--string-imports` is True, treat valid-looking strings with at least this many dots in them as potential dynamic dependencies\n<https://www.pantsbuild.org/v2.20/docs/reference-python-infer#string_imports_min_dots>",
          "type": "number"
        },
        "unowned_dependency_behavior": {
          "default": "warning",
          "description": "How to handle imports that don't have an inferable owner\n<https://www.pantsbuild.org/v2.20/docs/reference-python-infer#unowned_dependency_behavior>",
          "enum": [
            "error",
            "warning",
            "ignore"
          ]
        },
        "use_rust_parser": {
          "default": true,
          "description": "Use the new Rust-based, multithreaded, in-process dependency parser\n<https://www.pantsbuild.org/v2.20/docs/reference-python-infer#use_rust_parser>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "python-native-code": {
      "description": "Options for building native code using Python, e.g. when resolving distributions.",
      "properties": {
        "cpp_flags": {
          "default": [
            "<CPPFLAGS>"
          ],
          "description": "Override the `CPPFLAGS` environment variable for any forked subprocesses\n<https://www.pantsbuild.org/v2.20/docs/reference-python-native-code#cpp_flags>",
          "type": "array"
        },
        "ld_flags": {
          "default": [
            "<LDFLAGS>"
          ],
          "description": "Override the `LDFLAGS` environment variable for any forked subprocesses\n<https://www.pantsbuild.org/v2.20/docs/reference-python-native-code#ld_flags>",
          "type": "array"
        }
      },
      "type": "object"
    },
    "python-repos": {
      "description": "External Python code repositories, such as PyPI.\n\nThese options may be used to point to custom package indexes when resolving requirements.",
      "properties": {
        "find_links": {
          "default": [],
          "description": "URLs and/or file paths corresponding to pip's `--find-links` option\n<https://www.pantsbuild.org/v2.20/docs/reference-python-repos#find_links>",
          "type": "array"
        },
        "indexes": {
          "default": [
            "https://pypi.org/simple/"
          ],
          "description": "URLs of [PEP-503 compatible](https://peps.python.org/pep-0503/) code repository indexes to look for requirements\n<https://www.pantsbuild.org/v2.20/docs/reference-python-repos#indexes>",
          "type": "array"
        },
        "path_mappings": {
          "default": [],
          "description": "Mappings to facilitate using local Python requirements when the absolute file paths are different on different users' machines\n<https://www.pantsbuild.org/v2.20/docs/reference-python-repos#path_mappings>",
          "type": "array"
        }
      },
      "type": "object"
    },
    "pyupgrade": {
      "description": "Upgrade syntax for newer versions of the language (https://github.com/asottile/pyupgrade).",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to pyupgrade, e.g. `--pyupgrade-args='--py39-plus --keep-runtime-typing'`\n<https://www.pantsbuild.org/v2.20/docs/reference-pyupgrade#args>",
          "type": "array"
        },
        "console_script": {
          "default": "pyupgrade",
          "description": "The console script for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-pyupgrade#console_script>",
          "type": "string"
        },
        "entry_point": {
          "default": null,
          "description": "The entry point for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-pyupgrade#entry_point>",
          "type": "string"
        },
        "install_from_resolve": {
          "default": null,
          "description": "If specified, install the tool using the lockfile for this named resolve\n<https://www.pantsbuild.org/v2.20/docs/reference-pyupgrade#install_from_resolve>",
          "type": "string"
        },
        "interpreter_constraints": {
          "default": [
            "CPython>=3.7,<4"
          ],
          "description": "Python interpreter constraints for this tool\n<https://www.pantsbuild.org/v2.20/docs/reference-pyupgrade#interpreter_constraints>",
          "type": "array"
        },
        "requirements": {
          "default": [],
          "description": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile\n<https://www.pantsbuild.org/v2.20/docs/reference-pyupgrade#requirements>",
          "type": "array"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use pyupgrade when running `pants fmt` and `pants lint`\n<https://www.pantsbuild.org/v2.20/docs/reference-pyupgrade#skip>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "regex-lint": {
      "description": "Lint your code using regex patterns, e.g. to check for copyright headers.\n\nTo activate this with the `lint` goal, you must set `[regex-lint].config`.\n\nUnlike other linters, this can run on files not owned by targets, such as BUILD files.",
      "properties": {
        "config": {
          "default": {},
          "description": "Config schema is as follows:\n<https://www.pantsbuild.org/v2.20/docs/reference-regex-lint#config>",
          "oneOf": [
            {
              "type": "object"
            },
            {
              "type": "string"
            }
          ]
        },
        "detail_level": {
          "default": "nonmatching",
          "description": "How much detail to include in the result\n<https://www.pantsbuild.org/v2.20/docs/reference-regex-lint#detail_level>",
          "enum": [
            "none",
            "summary",
            "nonmatching",
            "names",
            "all"
          ]
        },
        "skip": {
          "default": false,
          "description": "If true, don't use regex-lint when running `pants lint`\n<https://www.pantsbuild.org/v2.20/docs/reference-regex-lint#skip>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "repl": {
      "description": "Open a REPL with the specified code loadable.",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to the repl program, e.g. `--repl-args='-i helloworld/main.py'`\n<https://www.pantsbuild.org/v2.20/docs/reference-repl#args>",
          "type": "array"
        },
        "restartable": {
          "default": false,
          "description": "True if the REPL should be restarted if its inputs have changed\n<https://www.pantsbuild.org/v2.20/docs/reference-repl#restartable>",
          "type": "boolean"
        },
        "shell": {
          "default": null,
          "description": "Override the automatically-detected REPL program for the target(s) specified\n<https://www.pantsbuild.org/v2.20/docs/reference-repl#shell>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "roots": {
      "description": "List the repo's registered source roots.",
      "properties": {
        "output_file": {
          "default": null,
          "description": "Output the goal's stdout to this file\n<https://www.pantsbuild.org/v2.20/docs/reference-roots#output_file>",
          "type": "string"
        },
        "sep": {
          "default": "\\n",
          "description": "String to use to separate lines in line-oriented output\n<https://www.pantsbuild.org/v2.20/docs/reference-roots#sep>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ruff": {
      "description": "The Ruff Python formatter (https://github.com/astral-sh/ruff).",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to Ruff, e.g. `--ruff-args='--exclude=foo --ignore=E501'`\n<https://www.pantsbuild.org/v2.20/docs/reference-ruff#args>",
          "type": "array"
        },
        "config": {
          "default": null,
          "description": "Path to the `pyproject.toml` or `ruff.toml` file to use for configuration (https://github.com/astral-sh/ruff#configuration)\n<https://www.pantsbuild.org/v2.20/docs/reference-ruff#config>"
        },
        "config_discovery": {
          "default": true,
          "description": "If true, Pants will include any relevant config files during runs (`pyproject.toml`, and `ruff.toml`)\n<https://www.pantsbuild.org/v2.20/docs/reference-ruff#config_discovery>",
          "type": "boolean"
        },
        "console_script": {
          "default": "ruff",
          "description": "The console script for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-ruff#console_script>",
          "type": "string"
        },
        "entry_point": {
          "default": null,
          "description": "The entry point for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-ruff#entry_point>",
          "type": "string"
        },
        "install_from_resolve": {
          "default": null,
          "description": "If specified, install the tool using the lockfile for this named resolve\n<https://www.pantsbuild.org/v2.20/docs/reference-ruff#install_from_resolve>",
          "type": "string"
        },
        "interpreter_constraints": {
          "default": [
            "CPython>=3.7,<4"
          ],
          "description": "Python interpreter constraints for this tool\n<https://www.pantsbuild.org/v2.20/docs/reference-ruff#interpreter_constraints>",
          "type": "array"
        },
        "requirements": {
          "default": [],
          "description": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile\n<https://www.pantsbuild.org/v2.20/docs/reference-ruff#requirements>",
          "type": "array"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use Ruff when running `pants fmt` and `pants fix` and `pants lint`\n<https://www.pantsbuild.org/v2.20/docs/reference-ruff#skip>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "run": {
      "description": "Runs a binary target.\n\nThis goal propagates the return code of the underlying executable.\n\nIf your application can safely be restarted while it is running, you can pass `restartable=True` on your binary target (for supported types), and the `run` goal will automatically restart them as all relevant files change. This can be particularly useful for server applications.",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to the executed target, e.g. `--run-args='val1 val2 --debug'`\n<https://www.pantsbuild.org/v2.20/docs/reference-run#args>",
          "type": "array"
        },
        "debug_adapter": {
          "default": false,
          "description": "Run the interactive process using a Debug Adapter (https://microsoft.github.io/debug-adapter-protocol/) for the language if supported\n<https://www.pantsbuild.org/v2.20/docs/reference-run#debug_adapter>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "scala": {
      "description": "Scala programming language",
      "properties": {
        "tailor_source_targets": {
          "default": true,
          "description": "If true, add `scala_sources`, `scala_junit_tests`, and `scalatest_tests` targets with the `tailor` goal\n<https://www.pantsbuild.org/v2.20/docs/reference-scala#tailor_source_targets>",
          "type": "boolean"
        },
        "version_for_resolve": {
          "default": {},
          "description": "A dictionary mapping the name of a resolve to the Scala version to use for all Scala targets consuming that resolve\n<https://www.pantsbuild.org/v2.20/docs/reference-scala#version_for_resolve>",
          "type": "object"
        }
      },
      "type": "object"
    },
    "scala-dump-source-analysis": {
      "description": "Dump source analysis for scala_source targets.",
      "properties": {},
      "type": "object"
    },
    "scala-infer": {
      "description": "Options controlling which dependencies will be inferred for Scala targets.",
      "properties": {
        "consumed_types": {
          "default": true,
          "description": "Infer a target's dependencies by parsing consumed types from sources\n<https://www.pantsbuild.org/v2.20/docs/reference-scala-infer#consumed_types>",
          "type": "boolean"
        },
        "force_add_siblings_as_dependencies": {
          "default": false,
          "description": "If true, add a dependency on all `scala_source` targets generated by the same `scala_sources` target generator\n<https://www.pantsbuild.org/v2.20/docs/reference-scala-infer#force_add_siblings_as_dependencies>",
          "type": "boolean"
        },
        "imports": {
          "default": true,
          "description": "Infer a target's dependencies by parsing import statements from sources\n<https://www.pantsbuild.org/v2.20/docs/reference-scala-infer#imports>",
          "type": "boolean"
        },
        "package_objects": {
          "default": true,
          "description": "Add dependency on the package object to every target\n<https://www.pantsbuild.org/v2.20/docs/reference-scala-infer#package_objects>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "scalac": {
      "description": "The Scala compiler.",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to scalac, e.g. `--scalac-args='-encoding UTF-8'`\n<https://www.pantsbuild.org/v2.20/docs/reference-scalac#args>",
          "type": "array"
        },
        "plugins_for_resolve": {
          "default": {},
          "description": "A dictionary, whose keys are the names of each JVM resolve that requires default `scalac` plugins, and the value is a comma-separated string consisting of scalac plugin names\n<https://www.pantsbuild.org/v2.20/docs/reference-scalac#plugins_for_resolve>",
          "type": "object"
        }
      },
      "type": "object"
    },
    "scalafmt": {
      "description": "scalafmt (https://scalameta.org/scalafmt/)",
      "properties": {
        "artifacts": {
          "default": [
            "org.scalameta:scalafmt-cli_2.13:{version}"
          ],
          "description": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`)\n<https://www.pantsbuild.org/v2.20/docs/reference-scalafmt#artifacts>",
          "type": "array"
        },
        "config_file_name": {
          "default": ".scalafmt.conf",
          "description": "Name of a config file understood by scalafmt (https://scalameta.org/scalafmt/docs/configuration.html)\n<https://www.pantsbuild.org/v2.20/docs/reference-scalafmt#config_file_name>",
          "type": "string"
        },
        "jvm_options": {
          "default": [],
          "description": "List of JVM options to pass to `scalafmt` JVM processes\n<https://www.pantsbuild.org/v2.20/docs/reference-scalafmt#jvm_options>",
          "type": "array"
        },
        "lockfile": {
          "default": "<default>",
          "description": "Path to a lockfile used for installing the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-scalafmt#lockfile>",
          "type": "string"
        },
        "orphan_files_behavior": {
          "default": "error",
          "description": "Whether to ignore, error or show a warning when files are found that are not covered by the config file provided in `[scalafmt].config_file_name` setting\n<https://www.pantsbuild.org/v2.20/docs/reference-scalafmt#orphan_files_behavior>",
          "enum": [
            "ignore",
            "error",
            "warn"
          ]
        },
        "skip": {
          "default": false,
          "description": "If true, don't use scalafmt when running `pants fmt` and `pants lint`\n<https://www.pantsbuild.org/v2.20/docs/reference-scalafmt#skip>",
          "type": "boolean"
        },
        "version": {
          "default": "3.2.1",
          "description": "Version string for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-scalafmt#version>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "scalatest": {
      "description": "The Scalatest test framework (https://www.scalatest.org/)",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to Scalatest, e.g. `--scalatest-args='-t $testname'`\n<https://www.pantsbuild.org/v2.20/docs/reference-scalatest#args>",
          "type": "array"
        },
        "artifacts": {
          "default": [
            "org.scalatest:scalatest_2.13:{version}"
          ],
          "description": "Artifact requirements for this tool using specified as either the address of a `jvm_artifact` target or, alternatively, as a colon-separated Maven coordinates (e.g., `group:name:version`)\n<https://www.pantsbuild.org/v2.20/docs/reference-scalatest#artifacts>",
          "type": "array"
        },
        "jvm_options": {
          "default": [],
          "description": "List of JVM options to pass to `scalatest` JVM processes\n<https://www.pantsbuild.org/v2.20/docs/reference-scalatest#jvm_options>",
          "type": "array"
        },
        "lockfile": {
          "default": "<default>",
          "description": "Path to a lockfile used for installing the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-scalatest#lockfile>",
          "type": "string"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use Scalatest when running `pants test`\n<https://www.pantsbuild.org/v2.20/docs/reference-scalatest#skip>",
          "type": "boolean"
        },
        "version": {
          "default": "3.2.10",
          "description": "Version string for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-scalatest#version>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "scc": {
      "description": "The Succinct Code Counter, aka `scc` (https://github.com/boyter/scc).",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to SCC, e.g. `--scc-args='--no-cocomo'`\n<https://www.pantsbuild.org/v2.20/docs/reference-scc#args>",
          "type": "array"
        },
        "known_versions": {
          "default": [
            "3.0.0|macos_arm64 |846cb1b25025a0794d455719bc17cfb3f588576a58af1d95036f6c654e294f98|2006145",
            "3.0.0|macos_x86_64|9c3064e477ab36e16204ad34f649372034bca4df669615eff5de4aa05b2ddf1a|2048134",
            "3.0.0|linux_arm64 |04f9e797b70a678833e49df5e744f95080dfb7f963c0cd34f5b5d4712d290f33|1768037",
            "3.0.0|linux_x86_64|13ca47ce00b5bd032f97f3af7aa8eb3c717b8972b404b155a378b09110e4aa0c|1948341"
          ],
          "description": "Known versions to verify downloads against\n<https://www.pantsbuild.org/v2.20/docs/reference-scc#known_versions>",
          "type": "array"
        },
        "url_platform_mapping": {
          "default": {
            "linux_arm64": "arm64-unknown-linux",
            "linux_x86_64": "x86_64-unknown-linux",
            "macos_arm64": "arm64-apple-darwin",
            "macos_x86_64": "x86_64-apple-darwin"
          },
          "description": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-scc#url_platform_mapping>",
          "type": "object"
        },
        "url_template": {
          "default": "https://github.com/boyter/scc/releases/download/v{version}/scc-{version}-{platform}.zip",
          "description": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file)\n<https://www.pantsbuild.org/v2.20/docs/reference-scc#url_template>",
          "type": "string"
        },
        "use_unsupported_version": {
          "default": "error",
          "description": "What action to take in case the requested version of SCC is not supported\n<https://www.pantsbuild.org/v2.20/docs/reference-scc#use_unsupported_version>",
          "enum": [
            "error",
            "warning"
          ]
        },
        "version": {
          "default": "3.0.0",
          "description": "Use this version of SCC\n<https://www.pantsbuild.org/v2.20/docs/reference-scc#version>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "setup-py-generation": {
      "description": "Options to control how setup.py is generated from a `python_distribution` target.",
      "properties": {
        "first_party_dependency_version_scheme": {
          "default": "exact",
          "description": "What version to set in `install_requires` when a `python_distribution` depends on other `python_distribution`s\n<https://www.pantsbuild.org/v2.20/docs/reference-setup-py-generation#first_party_dependency_version_scheme>",
          "enum": [
            "exact",
            "compatible",
            "any"
          ]
        },
        "generate_setup_default": {
          "default": true,
          "description": "The default value for the `generate_setup` field on `python_distribution` targets\n<https://www.pantsbuild.org/v2.20/docs/reference-setup-py-generation#generate_setup_default>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "setuptools": {
      "description": "Python setuptools, used to package `python_distribution` targets.",
      "properties": {
        "install_from_resolve": {
          "default": null,
          "description": "If specified, install the tool using the lockfile for this named resolve\n<https://www.pantsbuild.org/v2.20/docs/reference-setuptools#install_from_resolve>",
          "type": "string"
        },
        "requirements": {
          "default": [],
          "description": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile\n<https://www.pantsbuild.org/v2.20/docs/reference-setuptools#requirements>",
          "type": "array"
        }
      },
      "type": "object"
    },
    "setuptools-scm": {
      "description": "A tool for generating versions from VCS metadata (https://github.com/pypa/setuptools_scm).",
      "properties": {
        "console_script": {
          "default": null,
          "description": "The console script for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-setuptools-scm#console_script>",
          "type": "string"
        },
        "entry_point": {
          "default": "setuptools_scm",
          "description": "The entry point for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-setuptools-scm#entry_point>",
          "type": "string"
        },
        "install_from_resolve": {
          "default": null,
          "description": "If specified, install the tool using the lockfile for this named resolve\n<https://www.pantsbuild.org/v2.20/docs/reference-setuptools-scm#install_from_resolve>",
          "type": "string"
        },
        "interpreter_constraints": {
          "default": [
            "CPython>=3.7,<4"
          ],
          "description": "Python interpreter constraints for this tool\n<https://www.pantsbuild.org/v2.20/docs/reference-setuptools-scm#interpreter_constraints>",
          "type": "array"
        },
        "requirements": {
          "default": [],
          "description": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile\n<https://www.pantsbuild.org/v2.20/docs/reference-setuptools-scm#requirements>",
          "type": "array"
        }
      },
      "type": "object"
    },
    "shell-setup": {
      "description": "Options for Pants's Shell support.",
      "properties": {
        "dependency_inference": {
          "default": true,
          "description": "Infer Shell dependencies on other Shell files by analyzing `source` statements\n<https://www.pantsbuild.org/v2.20/docs/reference-shell-setup#dependency_inference>",
          "type": "boolean"
        },
        "executable_search_paths": {
          "default": [
            "<PATH>"
          ],
          "description": "The PATH value that will be used to find shells and to run certain processes like the shunit2 test runner\n<https://www.pantsbuild.org/v2.20/docs/reference-shell-setup#executable_search_paths>",
          "type": "array"
        },
        "tailor": {
          "default": true,
          "description": "If true, add `shell_sources` and `shunit2_tests` targets with the `tailor` goal\n<https://www.pantsbuild.org/v2.20/docs/reference-shell-setup#tailor>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "shell-test": {
      "description": "Options for Pants' Shell test support.",
      "properties": {
        "skip": {
          "default": false,
          "description": "If true, don't use Test with shell scripts when running `pants test`\n<https://www.pantsbuild.org/v2.20/docs/reference-shell-test#skip>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "shellcheck": {
      "description": "A linter for shell scripts.",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to Shellcheck, e.g. `--shellcheck-args='-e SC20529'`\n<https://www.pantsbuild.org/v2.20/docs/reference-shellcheck#args>",
          "type": "array"
        },
        "config_discovery": {
          "default": true,
          "description": "If true, Pants will include all relevant `.shellcheckrc` and `shellcheckrc` files during runs\n<https://www.pantsbuild.org/v2.20/docs/reference-shellcheck#config_discovery>",
          "type": "boolean"
        },
        "known_versions": {
          "default": [
            "v0.8.0|macos_arm64 |36dffd536b801c8bab2e9fa468163037e0c7f7e0a05298e5ad6299b4dde67e31|14525367",
            "v0.8.0|macos_x86_64|4e93a76ee116b2f08c88e25011830280ad0d61615d8346364a4ea564b29be3f0|6310442",
            "v0.8.0|linux_arm64 |8f4810485425636eadce2ec23441fd29d5b1b58d239ffda0a5faf8dd499026f5|4884430",
            "v0.8.0|linux_x86_64|01d181787ffe63ebb0a2293f63bdc8455c5c30d3a6636320664bfa278424638f|2082242"
          ],
          "description": "Known versions to verify downloads against\n<https://www.pantsbuild.org/v2.20/docs/reference-shellcheck#known_versions>",
          "type": "array"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use Shellcheck when running `pants lint`\n<https://www.pantsbuild.org/v2.20/docs/reference-shellcheck#skip>",
          "type": "boolean"
        },
        "url_platform_mapping": {
          "default": {
            "linux_arm64": "linux.aarch64",
            "linux_x86_64": "linux.x86_64",
            "macos_arm64": "darwin.aarch64",
            "macos_x86_64": "darwin.x86_64"
          },
          "description": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-shellcheck#url_platform_mapping>",
          "type": "object"
        },
        "url_template": {
          "default": "https://github.com/vscode-shellcheck/shellcheck-binaries/releases/download/{version}/shellcheck-{version}.{platform}.tar.gz",
          "description": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file)\n<https://www.pantsbuild.org/v2.20/docs/reference-shellcheck#url_template>",
          "type": "string"
        },
        "use_unsupported_version": {
          "default": "error",
          "description": "What action to take in case the requested version of Shellcheck is not supported\n<https://www.pantsbuild.org/v2.20/docs/reference-shellcheck#use_unsupported_version>",
          "enum": [
            "error",
            "warning"
          ]
        },
        "version": {
          "default": "v0.8.0",
          "description": "Use this version of Shellcheck\n<https://www.pantsbuild.org/v2.20/docs/reference-shellcheck#version>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "shfmt": {
      "description": "An autoformatter for shell scripts (https://github.com/mvdan/sh).",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to shfmt, e.g. `--shfmt-args='-i 2'`\n<https://www.pantsbuild.org/v2.20/docs/reference-shfmt#args>",
          "type": "array"
        },
        "config_discovery": {
          "default": true,
          "description": "If true, Pants will include all relevant `.editorconfig` files during runs\n<https://www.pantsbuild.org/v2.20/docs/reference-shfmt#config_discovery>",
          "type": "boolean"
        },
        "known_versions": {
          "default": [
            "v3.2.4|macos_arm64 |e70fc42e69debe3e400347d4f918630cdf4bf2537277d672bbc43490387508ec|2998546",
            "v3.2.4|macos_x86_64|43a0461a1b54070ddc04fbbf1b78f7861ee39a65a61f5466d15a39c4aba4f917|2980208",
            "v3.2.4|linux_arm64 |6474d9cc08a1c9fe2ef4be7a004951998e3067d46cf55a011ddd5ff7bfab3de6|2752512",
            "v3.2.4|linux_x86_64|3f5a47f8fec27fae3e06d611559a2063f5d27e4b9501171dde9959b8c60a3538|2797568",
            "v3.6.0|macos_arm64 |633f242246ee0a866c5f5df25cbf61b6af0d5e143555aca32950059cf13d91e0|3065202",
            "v3.6.0|macos_x86_64|b8c9c025b498e2816b62f0b717f6032e9ab49e725a45b8205f52f66318f17185|3047552",
            "v3.6.0|linux_arm64 |fb1cf0af3dbe9aac7d98e38e3c7426765208ecfe23cb2da51037bb234776fd70|2818048",
            "v3.6.0|linux_x86_64|5741a02a641de7e56b8da170e71a97e58050d66a3cf485fb268d6a5a8bb74afb|2850816"
          ],
          "description": "Known versions to verify downloads against\n<https://www.pantsbuild.org/v2.20/docs/reference-shfmt#known_versions>",
          "type": "array"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use shfmt when running `pants fmt` and `pants lint`\n<https://www.pantsbuild.org/v2.20/docs/reference-shfmt#skip>",
          "type": "boolean"
        },
        "url_platform_mapping": {
          "default": {
            "linux_arm64": "linux_arm64",
            "linux_x86_64": "linux_amd64",
            "macos_arm64": "darwin_arm64",
            "macos_x86_64": "darwin_amd64"
          },
          "description": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-shfmt#url_platform_mapping>",
          "type": "object"
        },
        "url_template": {
          "default": "https://github.com/mvdan/sh/releases/download/{version}/shfmt_{version}_{platform}",
          "description": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file)\n<https://www.pantsbuild.org/v2.20/docs/reference-shfmt#url_template>",
          "type": "string"
        },
        "use_unsupported_version": {
          "default": "error",
          "description": "What action to take in case the requested version of shfmt is not supported\n<https://www.pantsbuild.org/v2.20/docs/reference-shfmt#use_unsupported_version>",
          "enum": [
            "error",
            "warning"
          ]
        },
        "version": {
          "default": "v3.6.0",
          "description": "Use this version of shfmt\n<https://www.pantsbuild.org/v2.20/docs/reference-shfmt#version>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "shunit2": {
      "description": "shUnit2 is a xUnit framework for Bourne based shell scripts (https://github.com/kward/shunit2)",
      "properties": {
        "known_versions": {
          "default": [
            "b9102bb763cc603b3115ed30a5648bf950548097|macos_arm64|1f11477b7948150d1ca50cdd41d89be4ed2acd137e26d2e0fe23966d0e272cc5|40987",
            "b9102bb763cc603b3115ed30a5648bf950548097|macos_x86_64|1f11477b7948150d1ca50cdd41d89be4ed2acd137e26d2e0fe23966d0e272cc5|40987",
            "b9102bb763cc603b3115ed30a5648bf950548097|linux_x86_64|1f11477b7948150d1ca50cdd41d89be4ed2acd137e26d2e0fe23966d0e272cc5|40987",
            "b9102bb763cc603b3115ed30a5648bf950548097|linux_arm64|1f11477b7948150d1ca50cdd41d89be4ed2acd137e26d2e0fe23966d0e272cc5|40987"
          ],
          "description": "Known versions to verify downloads against\n<https://www.pantsbuild.org/v2.20/docs/reference-shunit2#known_versions>",
          "type": "array"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use shunit2 when running `pants test`\n<https://www.pantsbuild.org/v2.20/docs/reference-shunit2#skip>",
          "type": "boolean"
        },
        "url_platform_mapping": {
          "default": {},
          "description": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-shunit2#url_platform_mapping>",
          "type": "object"
        },
        "url_template": {
          "default": "https://raw.githubusercontent.com/kward/shunit2/{version}/shunit2",
          "description": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file)\n<https://www.pantsbuild.org/v2.20/docs/reference-shunit2#url_template>",
          "type": "string"
        },
        "use_unsupported_version": {
          "default": "error",
          "description": "What action to take in case the requested version of shunit2 is not supported\n<https://www.pantsbuild.org/v2.20/docs/reference-shunit2#use_unsupported_version>",
          "enum": [
            "error",
            "warning"
          ]
        },
        "version": {
          "default": "b9102bb763cc603b3115ed30a5648bf950548097",
          "description": "Use this version of shunit2\n<https://www.pantsbuild.org/v2.20/docs/reference-shunit2#version>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "source": {
      "description": "Configuration for roots of source trees.",
      "properties": {
        "marker_filenames": {
          "default": [],
          "description": "The presence of a file of this name in a directory indicates that the directory is a source root\n<https://www.pantsbuild.org/v2.20/docs/reference-source#marker_filenames>",
          "type": "array"
        },
        "root_patterns": {
          "default": [
            "/",
            "src",
            "src/python",
            "src/py",
            "src/thrift",
            "src/protobuf",
            "src/protos",
            "src/scala",
            "src/java"
          ],
          "description": "A list of source root suffixes\n<https://www.pantsbuild.org/v2.20/docs/reference-source#root_patterns>",
          "type": "array"
        }
      },
      "type": "object"
    },
    "stats": {
      "description": "An aggregator for Pants stats, such as cache metrics.",
      "properties": {
        "log": {
          "default": false,
          "description": "At the end of the Pants run, log all counter metrics and summaries of observation histograms, e.g. the number of cache hits and the time saved by caching\n<https://www.pantsbuild.org/v2.20/docs/reference-stats#log>",
          "type": "boolean"
        },
        "memory_summary": {
          "default": false,
          "description": "At the end of the Pants run, report a summary of memory usage\n<https://www.pantsbuild.org/v2.20/docs/reference-stats#memory_summary>",
          "type": "boolean"
        },
        "output_file": {
          "default": null,
          "description": "Output the stats to this file\n<https://www.pantsbuild.org/v2.20/docs/reference-stats#output_file>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "subprocess-environment": {
      "description": "Environment settings for forked subprocesses.",
      "properties": {
        "env_vars": {
          "default": [
            "LANG",
            "LC_CTYPE",
            "LC_ALL",
            "SSL_CERT_FILE",
            "SSL_CERT_DIR"
          ],
          "description": "Environment variables to set for process invocations\n<https://www.pantsbuild.org/v2.20/docs/reference-subprocess-environment#env_vars>",
          "type": "array"
        }
      },
      "type": "object"
    },
    "system-binaries": {
      "description": "System binaries related settings.",
      "properties": {
        "system_binary_paths": {
          "default": [
            "/usr/bin",
            "/bin",
            "/usr/local/bin",
            "/opt/homebrew/bin"
          ],
          "description": "The PATH value that will searched for executables\n<https://www.pantsbuild.org/v2.20/docs/reference-system-binaries#system_binary_paths>",
          "type": "array"
        }
      },
      "type": "object"
    },
    "tailor": {
      "description": "Auto-generate BUILD file targets for new source files.\n\nEach specific `tailor` implementation may be disabled through language-specific options, e.g. `[python].tailor_pex_binary_targets` and `[shell-setup].tailor`.",
      "properties": {
        "alias_mapping": {
          "default": {},
          "description": "A mapping from standard target type to custom type to use instead\n<https://www.pantsbuild.org/v2.20/docs/reference-tailor#alias_mapping>",
          "type": "object"
        },
        "build_file_header": {
          "default": null,
          "description": "A header, e.g., a copyright notice, to add to the content of created BUILD files\n<https://www.pantsbuild.org/v2.20/docs/reference-tailor#build_file_header>",
          "type": "string"
        },
        "build_file_indent": {
          "default": "    ",
          "description": "The indent to use when auto-editing BUILD files\n<https://www.pantsbuild.org/v2.20/docs/reference-tailor#build_file_indent>",
          "type": "string"
        },
        "build_file_name": {
          "default": "BUILD",
          "description": "The name to use for generated BUILD files\n<https://www.pantsbuild.org/v2.20/docs/reference-tailor#build_file_name>",
          "type": "string"
        },
        "check": {
          "default": false,
          "description": "Do not write changes to disk, only write back what would change\n<https://www.pantsbuild.org/v2.20/docs/reference-tailor#check>",
          "type": "boolean"
        },
        "ignore_adding_targets": {
          "default": [],
          "description": "Do not add these target definitions\n<https://www.pantsbuild.org/v2.20/docs/reference-tailor#ignore_adding_targets>",
          "type": "array"
        },
        "ignore_paths": {
          "default": [],
          "description": "Do not edit or create BUILD files at these paths\n<https://www.pantsbuild.org/v2.20/docs/reference-tailor#ignore_paths>",
          "type": "array"
        }
      },
      "type": "object"
    },
    "taplo": {
      "description": "An autoformatter for TOML files (https://taplo.tamasfe.dev/)",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to Taplo, e.g. `--taplo-args='--option=align_entries=false'`\n<https://www.pantsbuild.org/v2.20/docs/reference-taplo#args>",
          "type": "array"
        },
        "config_discovery": {
          "default": true,
          "description": "If true, Pants will include a `taplo.toml` or `.taplo.toml` file found in the build root during a run\n<https://www.pantsbuild.org/v2.20/docs/reference-taplo#config_discovery>",
          "type": "boolean"
        },
        "glob_pattern": {
          "default": [
            "**/*.toml",
            "!.taplo.toml",
            "!taplo.toml"
          ],
          "description": "A list of glob patterns of files to include/exclude in formatting relative to the build root\n<https://www.pantsbuild.org/v2.20/docs/reference-taplo#glob_pattern>",
          "type": "array"
        },
        "known_versions": {
          "default": [
            "0.8.0|macos_arm64|79c1691c3c46be981fa0cec930ec9a6d6c4ffd27272d37d1885514ce59bd8ccf|3661689",
            "0.8.0|macos_x86_64|a1917f1b9168cb4f7d579422dcdf9c733028d873963d8fa3a6f499e41719c502|3926263",
            "0.8.0|linux_arm64|a6a94482f125c21090593f94cad23df099c4924f5b9620cda4a8653527c097a1|3995383",
            "0.8.0|linux_x86_64|3703294fac37ca9a9f76308f9f98c3939ccb7588f8972acec68a48d7a10d8ee5|4123593"
          ],
          "description": "Known versions to verify downloads against\n<https://www.pantsbuild.org/v2.20/docs/reference-taplo#known_versions>",
          "type": "array"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use Taplo when running `pants fmt` and `pants lint`\n<https://www.pantsbuild.org/v2.20/docs/reference-taplo#skip>",
          "type": "boolean"
        },
        "url_platform_mapping": {
          "default": {
            "linux_arm64": "linux-aarch64",
            "linux_x86_64": "linux-x86_64",
            "macos_arm64": "darwin-aarch64",
            "macos_x86_64": "darwin-x86_64"
          },
          "description": "A dictionary mapping platforms to strings to be used when generating the URL to download the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-taplo#url_platform_mapping>",
          "type": "object"
        },
        "url_template": {
          "default": "https://github.com/tamasfe/taplo/releases/download/{version}/taplo-{platform}.gz",
          "description": "URL to download the tool, either as a single binary file or a compressed file (e.g. zip file)\n<https://www.pantsbuild.org/v2.20/docs/reference-taplo#url_template>",
          "type": "string"
        },
        "use_unsupported_version": {
          "default": "error",
          "description": "What action to take in case the requested version of Taplo is not supported\n<https://www.pantsbuild.org/v2.20/docs/reference-taplo#use_unsupported_version>",
          "enum": [
            "error",
            "warning"
          ]
        },
        "version": {
          "default": "0.8.0",
          "description": "Use this version of Taplo\n<https://www.pantsbuild.org/v2.20/docs/reference-taplo#version>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "test": {
      "description": "Run tests.",
      "properties": {
        "attempts_default": {
          "default": 1,
          "description": "The number of attempts to run tests, in case of a test failure\n<https://www.pantsbuild.org/v2.20/docs/reference-test#attempts_default>",
          "type": "number"
        },
        "batch_size": {
          "default": 128,
          "description": "The target maximum number of files to be included in each run of batch-enabled test runners\n<https://www.pantsbuild.org/v2.20/docs/reference-test#batch_size>",
          "type": "number"
        },
        "debug": {
          "default": false,
          "description": "Run tests sequentially in an interactive process\n<https://www.pantsbuild.org/v2.20/docs/reference-test#debug>",
          "type": "boolean"
        },
        "debug_adapter": {
          "default": false,
          "description": "Run tests sequentially in an interactive process, using a Debug Adapter (https://microsoft.github.io/debug-adapter-protocol/) for the language if supported\n<https://www.pantsbuild.org/v2.20/docs/reference-test#debug_adapter>",
          "type": "boolean"
        },
        "extra_env_vars": {
          "default": [],
          "description": "Additional environment variables to include in test processes\n<https://www.pantsbuild.org/v2.20/docs/reference-test#extra_env_vars>",
          "type": "array"
        },
        "force": {
          "default": false,
          "description": "Force the tests to run, even if they could be satisfied from cache\n<https://www.pantsbuild.org/v2.20/docs/reference-test#force>",
          "type": "boolean"
        },
        "open_coverage": {
          "default": false,
          "description": "If a coverage report file is generated, open it on the local system if the system supports this\n<https://www.pantsbuild.org/v2.20/docs/reference-test#open_coverage>",
          "type": "boolean"
        },
        "output": {
          "default": "failed",
          "description": "Show stdout/stderr for these tests\n<https://www.pantsbuild.org/v2.20/docs/reference-test#output>",
          "enum": [
            "all",
            "failed",
            "none"
          ]
        },
        "report": {
          "default": false,
          "description": "Write test reports to `--report-dir`\n<https://www.pantsbuild.org/v2.20/docs/reference-test#report>",
          "type": "boolean"
        },
        "report_dir": {
          "default": "{distdir}/test/reports",
          "description": "Path to write test reports to\n<https://www.pantsbuild.org/v2.20/docs/reference-test#report_dir>",
          "type": "string"
        },
        "shard": {
          "default": "",
          "description": "A shard specification of the form \"k/N\", where N is a positive integer and k is a non-negative integer less than N\n<https://www.pantsbuild.org/v2.20/docs/reference-test#shard>",
          "type": "string"
        },
        "timeout_default": {
          "default": null,
          "description": "The default timeout (in seconds) for a test target if the `timeout` field is not set on the target\n<https://www.pantsbuild.org/v2.20/docs/reference-test#timeout_default>",
          "type": "number"
        },
        "timeout_maximum": {
          "default": null,
          "description": "The maximum timeout (in seconds) that may be used on a test target\n<https://www.pantsbuild.org/v2.20/docs/reference-test#timeout_maximum>",
          "type": "number"
        },
        "timeouts": {
          "default": true,
          "description": "Enable test target timeouts\n<https://www.pantsbuild.org/v2.20/docs/reference-test#timeouts>",
          "type": "boolean"
        },
        "use_coverage": {
          "default": false,
          "description": "Generate a coverage report if the test runner supports it\n<https://www.pantsbuild.org/v2.20/docs/reference-test#use_coverage>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "twine": {
      "description": "The utility for publishing Python distributions to PyPI and other Python repositories.",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to Twine, e.g. `--twine-args='--skip-existing'`\n<https://www.pantsbuild.org/v2.20/docs/reference-twine#args>",
          "type": "array"
        },
        "ca_certs_path": {
          "default": "<inherit>",
          "description": "Path to a file containing PEM-format CA certificates used for verifying secure connections when publishing python distributions\n<https://www.pantsbuild.org/v2.20/docs/reference-twine#ca_certs_path>",
          "type": "string"
        },
        "config": {
          "default": null,
          "description": "Path to a .pypirc config file to use. (https://packaging.python.org/specifications/pypirc/)\n<https://www.pantsbuild.org/v2.20/docs/reference-twine#config>"
        },
        "config_discovery": {
          "default": true,
          "description": "If true, Pants will include all relevant config files during runs (`.pypirc`)\n<https://www.pantsbuild.org/v2.20/docs/reference-twine#config_discovery>",
          "type": "boolean"
        },
        "console_script": {
          "default": "twine",
          "description": "The console script for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-twine#console_script>",
          "type": "string"
        },
        "entry_point": {
          "default": null,
          "description": "The entry point for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-twine#entry_point>",
          "type": "string"
        },
        "install_from_resolve": {
          "default": null,
          "description": "If specified, install the tool using the lockfile for this named resolve\n<https://www.pantsbuild.org/v2.20/docs/reference-twine#install_from_resolve>",
          "type": "string"
        },
        "interpreter_constraints": {
          "default": [
            "CPython>=3.7,<4"
          ],
          "description": "Python interpreter constraints for this tool\n<https://www.pantsbuild.org/v2.20/docs/reference-twine#interpreter_constraints>",
          "type": "array"
        },
        "requirements": {
          "default": [],
          "description": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile\n<https://www.pantsbuild.org/v2.20/docs/reference-twine#requirements>",
          "type": "array"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use Twine when running `pants publish`\n<https://www.pantsbuild.org/v2.20/docs/reference-twine#skip>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "update-build-files": {
      "description": "Format and fix safe deprecations in BUILD files.\n\nThis does not handle the full Pants upgrade. You must still manually change `pants_version` in `pants.toml` and you may need to manually address some deprecations. See <https://www.pantsbuild.org/2.20/docs/releases/upgrade-tips> for upgrade tips.\n\nThis goal is run without arguments. It will run over all BUILD files in your project.",
      "properties": {
        "check": {
          "default": false,
          "description": "Do not write changes to disk, only write back what would change\n<https://www.pantsbuild.org/v2.20/docs/reference-update-build-files#check>",
          "type": "boolean"
        },
        "fix_safe_deprecations": {
          "default": true,
          "description": "Automatically fix deprecations, such as target type renames, that are safe because they do not change semantics\n<https://www.pantsbuild.org/v2.20/docs/reference-update-build-files#fix_safe_deprecations>",
          "type": "boolean"
        },
        "fmt": {
          "default": true,
          "description": "Format BUILD files using Black, Ruff or Yapf\n<https://www.pantsbuild.org/v2.20/docs/reference-update-build-files#fmt>",
          "type": "boolean"
        },
        "formatter": {
          "default": "black",
          "description": "Which formatter Pants should use to format BUILD files\n<https://www.pantsbuild.org/v2.20/docs/reference-update-build-files#formatter>",
          "enum": [
            "yapf",
            "black",
            "ruff"
          ]
        }
      },
      "type": "object"
    },
    "version": {
      "description": "Display Pants version.",
      "properties": {},
      "type": "object"
    },
    "visibility": {
      "description": "Options for the visibility rules implementation of the dependency rules API.",
      "properties": {
        "enforce": {
          "default": true,
          "description": "Visibility rules are enforced whenever dependencies are calculated unless `enforce` is set to false\n<https://www.pantsbuild.org/v2.20/docs/reference-visibility#enforce>",
          "type": "boolean"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use Visibility Rules when running `pants lint`\n<https://www.pantsbuild.org/v2.20/docs/reference-visibility#skip>",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "workunit-logger": {
      "description": "Workunit Logger subsystem. Useful for debugging pants itself.",
      "properties": {
        "enabled": {
          "default": false,
          "description": "Whether to enable workunit logging\n<https://www.pantsbuild.org/v2.20/docs/reference-workunit-logger#enabled>",
          "type": "boolean"
        },
        "logdir": {
          "default": ".pants.d",
          "description": "Where to write the log to\n<https://www.pantsbuild.org/v2.20/docs/reference-workunit-logger#logdir>",
          "type": "string"
        }
      },
      "type": "object"
    },
    "yapf": {
      "description": "A formatter for Python files (https://github.com/google/yapf).",
      "properties": {
        "args": {
          "default": [],
          "description": "Arguments to pass directly to yapf, e.g. `--yapf-args='--no-local-style'`\n<https://www.pantsbuild.org/v2.20/docs/reference-yapf#args>",
          "type": "array"
        },
        "config": {
          "default": null,
          "description": "Path to style file understood by yapf (https://github.com/google/yapf#formatting-style/)\n<https://www.pantsbuild.org/v2.20/docs/reference-yapf#config>"
        },
        "config_discovery": {
          "default": true,
          "description": "If true, Pants will include any relevant config files during runs (`.style.yapf`, `pyproject.toml`, and `setup.cfg`)\n<https://www.pantsbuild.org/v2.20/docs/reference-yapf#config_discovery>",
          "type": "boolean"
        },
        "console_script": {
          "default": "yapf",
          "description": "The console script for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-yapf#console_script>",
          "type": "string"
        },
        "entry_point": {
          "default": null,
          "description": "The entry point for the tool\n<https://www.pantsbuild.org/v2.20/docs/reference-yapf#entry_point>",
          "type": "string"
        },
        "install_from_resolve": {
          "default": null,
          "description": "If specified, install the tool using the lockfile for this named resolve\n<https://www.pantsbuild.org/v2.20/docs/reference-yapf#install_from_resolve>",
          "type": "string"
        },
        "interpreter_constraints": {
          "default": [
            "CPython>=3.7,<4"
          ],
          "description": "Python interpreter constraints for this tool\n<https://www.pantsbuild.org/v2.20/docs/reference-yapf#interpreter_constraints>",
          "type": "array"
        },
        "requirements": {
          "default": [],
          "description": "If `install_from_resolve` is specified, install these requirements, at the versions provided by the specified resolve's lockfile\n<https://www.pantsbuild.org/v2.20/docs/reference-yapf#requirements>",
          "type": "array"
        },
        "skip": {
          "default": false,
          "description": "If true, don't use yapf when running `pants fmt` and `pants lint`\n<https://www.pantsbuild.org/v2.20/docs/reference-yapf#skip>",
          "type": "boolean"
        }
      },
      "type": "object"
    }
  },
  "id": "https://json.schemastore.org/pantsbuild-2.20.0.json",
  "additionalProperties": true
}
