
using namespace System.Management.Automation
using namespace System.Management.Automation.Language

Register-ArgumentCompleter -Native -CommandName 'ordinary' -ScriptBlock {
    param($wordToComplete, $commandAst, $cursorPosition)

    $commandElements = $commandAst.CommandElements
    $command = @(
        'ordinary'
        for ($i = 1; $i -lt $commandElements.Count; $i++) {
            $element = $commandElements[$i]
            if ($element -isnot [StringConstantExpressionAst] -or
                $element.StringConstantType -ne [StringConstantType]::BareWord -or
                $element.Value.StartsWith('-') -or
                $element.Value -eq $wordToComplete) {
                break
        }
        $element.Value
    }) -join ';'

    $completions = @(switch ($command) {
        'ordinary' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('new', 'new', [CompletionResultType]::ParameterValue, 'create a new Ordinary project')
            [CompletionResult]::new('ssg', 'ssg', [CompletionResultType]::ParameterValue, 'manage static site configuration')
            [CompletionResult]::new('build', 'build', [CompletionResultType]::ParameterValue, 'build your Ordinary project')
            [CompletionResult]::new('start', 'start', [CompletionResultType]::ParameterValue, 'start the app, locally')
            [CompletionResult]::new('publish', 'publish', [CompletionResultType]::ParameterValue, 'combines `build`, `content update`, `assets write`, `templates upload`, `actions install`')
            [CompletionResult]::new('templates', 'templates', [CompletionResultType]::ParameterValue, 'manage templates in your Ordinary project')
            [CompletionResult]::new('content', 'content', [CompletionResultType]::ParameterValue, 'manage content in your Ordinary project')
            [CompletionResult]::new('assets', 'assets', [CompletionResultType]::ParameterValue, 'manage assets in your Ordinary project')
            [CompletionResult]::new('models', 'models', [CompletionResultType]::ParameterValue, 'manage models in your Ordinary project')
            [CompletionResult]::new('actions', 'actions', [CompletionResultType]::ParameterValue, 'manage actions in your Ordinary project')
            [CompletionResult]::new('integrations', 'integrations', [CompletionResultType]::ParameterValue, 'manage integrations in your Ordinary project')
            [CompletionResult]::new('accounts', 'accounts', [CompletionResultType]::ParameterValue, 'manage accounts connected to `ordinaryd`')
            [CompletionResult]::new('app', 'app', [CompletionResultType]::ParameterValue, 'manage applications running on `ordinaryd`')
            [CompletionResult]::new('secrets', 'secrets', [CompletionResultType]::ParameterValue, 'manage secrets in your Ordinary application')
            [CompletionResult]::new('root', 'root', [CompletionResultType]::ParameterValue, 'root')
            [CompletionResult]::new('doctor', 'doctor', [CompletionResultType]::ParameterValue, 'ensure that all the correct system components are installed')
            [CompletionResult]::new('utils', 'utils', [CompletionResultType]::ParameterValue, 'utility functions for aiding project development')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;new' {
            [CompletionResult]::new('--path', '--path', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;ssg' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('init', 'init', [CompletionResultType]::ParameterValue, 'generate an `ordinary.json` config to deploy your SSG to a running instance of `ordinaryd`')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;ssg;init' {
            [CompletionResult]::new('-c', '-c', [CompletionResultType]::ParameterName, 'contacts for Let''s Encrypt (auto-TLS) [source](https://docs.rs/rustls-acme/latest/rustls_acme/struct.AcmeConfig.html#method.contact_push)')
            [CompletionResult]::new('--contacts', '--contacts', [CompletionResultType]::ParameterName, 'contacts for Let''s Encrypt (auto-TLS) [source](https://docs.rs/rustls-acme/latest/rustls_acme/struct.AcmeConfig.html#method.contact_push)')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('-e', '-e', [CompletionResultType]::ParameterName, 'include generated 404.html as error page')
            [CompletionResult]::new('--error-page', '--error-page', [CompletionResultType]::ParameterName, 'include generated 404.html as error page')
            [CompletionResult]::new('-s', '-s', [CompletionResultType]::ParameterName, 'accommodate inline styles in the generated files')
            [CompletionResult]::new('--inline-styles', '--inline-styles', [CompletionResultType]::ParameterName, 'accommodate inline styles in the generated files')
            [CompletionResult]::new('-r', '-r', [CompletionResultType]::ParameterName, 'accommodate inline scripts in the generated files')
            [CompletionResult]::new('--inline-scripts', '--inline-scripts', [CompletionResultType]::ParameterName, 'accommodate inline scripts in the generated files')
            [CompletionResult]::new('-m', '-m', [CompletionResultType]::ParameterName, 'accommodate inline images in the generated files')
            [CompletionResult]::new('--inline-images', '--inline-images', [CompletionResultType]::ParameterName, 'accommodate inline images in the generated files')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;ssg;help' {
            [CompletionResult]::new('init', 'init', [CompletionResultType]::ParameterValue, 'generate an `ordinary.json` config to deploy your SSG to a running instance of `ordinaryd`')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;ssg;help;init' {
            break
        }
        'ordinary;ssg;help;help' {
            break
        }
        'ordinary;build' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('-i', '-i', [CompletionResultType]::ParameterName, 'build project without checking the cache')
            [CompletionResult]::new('--ignore-cache', '--ignore-cache', [CompletionResultType]::ParameterName, 'build project without checking the cache')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;start' {
            [CompletionResult]::new('--provision', '--provision', [CompletionResultType]::ParameterName, 'what mode TLS certs should be provisioned in')
            [CompletionResult]::new('--port', '--port', [CompletionResultType]::ParameterName, 'specify HTTP(s) port for server')
            [CompletionResult]::new('--redirect-port', '--redirect-port', [CompletionResultType]::ParameterName, 'specify HTTP port for server when running in secure mode')
            [CompletionResult]::new('--log-ttl-hours', '--log-ttl-hours', [CompletionResultType]::ParameterName, 'max period of time logs are stored')
            [CompletionResult]::new('--log-rotation-file-size', '--log-rotation-file-size', [CompletionResultType]::ParameterName, 'max size (in bytes) per log file')
            [CompletionResult]::new('--log-rotation-mins', '--log-rotation-mins', [CompletionResultType]::ParameterName, 'max amount of time a log file is appended to before being compressed and stored')
            [CompletionResult]::new('--redacted-header-hash', '--redacted-header-hash', [CompletionResultType]::ParameterName, '"none" | "blake2" | "blake3"')
            [CompletionResult]::new('--data-dir', '--data-dir', [CompletionResultType]::ParameterName, 'specify the data directory')
            [CompletionResult]::new('--stdio-logs-fmt', '--stdio-logs-fmt', [CompletionResultType]::ParameterName, 'how to format stdio logs')
            [CompletionResult]::new('--log-level', '--log-level', [CompletionResultType]::ParameterName, 'base log level for every component')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'run without HTTPS')
            [CompletionResult]::new('--insecure-cookies', '--insecure-cookies', [CompletionResultType]::ParameterName, 'run with insecure cookies')
            [CompletionResult]::new('--log-headers', '--log-headers', [CompletionResultType]::ParameterName, 'whether HTTP request and response headers are logged')
            [CompletionResult]::new('--log-ips', '--log-ips', [CompletionResultType]::ParameterName, 'whether IP Addresses are logged with HTTP requests')
            [CompletionResult]::new('--danger-dns-no-verify', '--danger-dns-no-verify', [CompletionResultType]::ParameterName, 'set to `true` to bypass verification of proxy domain and CNAME DNS TXT records')
            [CompletionResult]::new('--stored-logs', '--stored-logs', [CompletionResultType]::ParameterName, 'persists JSON formatted log lines to <data-dir>/logs/<domain>/')
            [CompletionResult]::new('--stdio-logs', '--stdio-logs', [CompletionResultType]::ParameterName, 'logs events to stdio')
            [CompletionResult]::new('--journald-logs', '--journald-logs', [CompletionResultType]::ParameterName, 'logs events to `journald` (only works on Linux distros that use `systemd`)')
            [CompletionResult]::new('--log-sizes', '--log-sizes', [CompletionResultType]::ParameterName, 'whether storage and certain payload sizes are logged')
            [CompletionResult]::new('--stdio-logs-timing', '--stdio-logs-timing', [CompletionResultType]::ParameterName, 'whether span timing is logged')
            [CompletionResult]::new('-d', '-d', [CompletionResultType]::ParameterName, 'disables these defaults set for development: `--stdio-logs` `--stdio-logs-fmt concise` `--insecure` `--insecure-cookies`')
            [CompletionResult]::new('--disable-defaults', '--disable-defaults', [CompletionResultType]::ParameterName, 'disables these defaults set for development: `--stdio-logs` `--stdio-logs-fmt concise` `--insecure` `--insecure-cookies`')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;publish' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('-t', '-t', [CompletionResultType]::ParameterName, 'overrides if mode=production. does nothing if mode is localhost or staging')
            [CompletionResult]::new('--tls-staging', '--tls-staging', [CompletionResultType]::ParameterName, 'overrides if mode=production. does nothing if mode is localhost or staging')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;templates' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'add a new template to the Ordinary project')
            [CompletionResult]::new('upload', 'upload', [CompletionResultType]::ParameterValue, 'upload templates to application running on `ordinaryd` instance')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;templates;add' {
            [CompletionResult]::new('-e', '-e', [CompletionResultType]::ParameterName, 'whether the template is an error template')
            [CompletionResult]::new('--error', '--error', [CompletionResultType]::ParameterName, 'whether the template is an error template')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;templates;upload' {
            [CompletionResult]::new('-n', '-n', [CompletionResultType]::ParameterName, 'name of a specific template to upload (optional). will upload all when the `--name` flag is not passed')
            [CompletionResult]::new('--name', '--name', [CompletionResultType]::ParameterName, 'name of a specific template to upload (optional). will upload all when the `--name` flag is not passed')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;templates;help' {
            [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'add a new template to the Ordinary project')
            [CompletionResult]::new('upload', 'upload', [CompletionResultType]::ParameterValue, 'upload templates to application running on `ordinaryd` instance')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;templates;help;add' {
            break
        }
        'ordinary;templates;help;upload' {
            break
        }
        'ordinary;templates;help;help' {
            break
        }
        'ordinary;content' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('definition', 'definition', [CompletionResultType]::ParameterValue, 'manage content definitions for Ordinary project')
            [CompletionResult]::new('object', 'object', [CompletionResultType]::ParameterValue, 'manage content objects for Ordinary project')
            [CompletionResult]::new('update', 'update', [CompletionResultType]::ParameterValue, 'update content for application running on `ordinaryd` instance')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;content;definition' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'add a content definition to your Ordinary project')
            [CompletionResult]::new('edit', 'edit', [CompletionResultType]::ParameterValue, 'edit a content definition to your Ordinary project')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;content;definition;add' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;content;definition;edit' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;content;definition;help' {
            [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'add a content definition to your Ordinary project')
            [CompletionResult]::new('edit', 'edit', [CompletionResultType]::ParameterValue, 'edit a content definition to your Ordinary project')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;content;definition;help;add' {
            break
        }
        'ordinary;content;definition;help;edit' {
            break
        }
        'ordinary;content;definition;help;help' {
            break
        }
        'ordinary;content;object' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'add a content object to your Ordinary project')
            [CompletionResult]::new('edit', 'edit', [CompletionResultType]::ParameterValue, 'edit a content object to your Ordinary project')
            [CompletionResult]::new('delete', 'delete', [CompletionResultType]::ParameterValue, 'delete a content object to your Ordinary project')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;content;object;add' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;content;object;edit' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;content;object;delete' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;content;object;help' {
            [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'add a content object to your Ordinary project')
            [CompletionResult]::new('edit', 'edit', [CompletionResultType]::ParameterValue, 'edit a content object to your Ordinary project')
            [CompletionResult]::new('delete', 'delete', [CompletionResultType]::ParameterValue, 'delete a content object to your Ordinary project')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;content;object;help;add' {
            break
        }
        'ordinary;content;object;help;edit' {
            break
        }
        'ordinary;content;object;help;delete' {
            break
        }
        'ordinary;content;object;help;help' {
            break
        }
        'ordinary;content;update' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;content;help' {
            [CompletionResult]::new('definition', 'definition', [CompletionResultType]::ParameterValue, 'manage content definitions for Ordinary project')
            [CompletionResult]::new('object', 'object', [CompletionResultType]::ParameterValue, 'manage content objects for Ordinary project')
            [CompletionResult]::new('update', 'update', [CompletionResultType]::ParameterValue, 'update content for application running on `ordinaryd` instance')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;content;help;definition' {
            [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'add a content definition to your Ordinary project')
            [CompletionResult]::new('edit', 'edit', [CompletionResultType]::ParameterValue, 'edit a content definition to your Ordinary project')
            break
        }
        'ordinary;content;help;definition;add' {
            break
        }
        'ordinary;content;help;definition;edit' {
            break
        }
        'ordinary;content;help;object' {
            [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'add a content object to your Ordinary project')
            [CompletionResult]::new('edit', 'edit', [CompletionResultType]::ParameterValue, 'edit a content object to your Ordinary project')
            [CompletionResult]::new('delete', 'delete', [CompletionResultType]::ParameterValue, 'delete a content object to your Ordinary project')
            break
        }
        'ordinary;content;help;object;add' {
            break
        }
        'ordinary;content;help;object;edit' {
            break
        }
        'ordinary;content;help;object;delete' {
            break
        }
        'ordinary;content;help;update' {
            break
        }
        'ordinary;content;help;help' {
            break
        }
        'ordinary;assets' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('write', 'write', [CompletionResultType]::ParameterValue, 'write assets to application running on `ordinaryd` instance')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;assets;write' {
            [CompletionResult]::new('-n', '-n', [CompletionResultType]::ParameterName, 'name of a specific asset to write (optional). will write all when the `--name` flag is not passed')
            [CompletionResult]::new('--name', '--name', [CompletionResultType]::ParameterName, 'name of a specific asset to write (optional). will write all when the `--name` flag is not passed')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;assets;help' {
            [CompletionResult]::new('write', 'write', [CompletionResultType]::ParameterValue, 'write assets to application running on `ordinaryd` instance')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;assets;help;write' {
            break
        }
        'ordinary;assets;help;help' {
            break
        }
        'ordinary;models' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'add a new model to your Ordinary project')
            [CompletionResult]::new('items', 'items', [CompletionResultType]::ParameterValue, 'manage model items for the application running on an `ordinaryd` instance')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;models;add' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;models;items' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('list', 'list', [CompletionResultType]::ParameterValue, 'list model items for the application running on an `ordinaryd` instance')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;models;items;list' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--json', '--json', [CompletionResultType]::ParameterName, 'for applications that need to consume stdio or pipe to `jq`')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;models;items;help' {
            [CompletionResult]::new('list', 'list', [CompletionResultType]::ParameterValue, 'list model items for the application running on an `ordinaryd` instance')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;models;items;help;list' {
            break
        }
        'ordinary;models;items;help;help' {
            break
        }
        'ordinary;models;help' {
            [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'add a new model to your Ordinary project')
            [CompletionResult]::new('items', 'items', [CompletionResultType]::ParameterValue, 'manage model items for the application running on an `ordinaryd` instance')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;models;help;add' {
            break
        }
        'ordinary;models;help;items' {
            [CompletionResult]::new('list', 'list', [CompletionResultType]::ParameterValue, 'list model items for the application running on an `ordinaryd` instance')
            break
        }
        'ordinary;models;help;items;list' {
            break
        }
        'ordinary;models;help;help' {
            break
        }
        'ordinary;actions' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'add a new action to your Ordinary project')
            [CompletionResult]::new('install', 'install', [CompletionResultType]::ParameterValue, 'install actions to application running on `ordinaryd` instance')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;actions;add' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;actions;install' {
            [CompletionResult]::new('-n', '-n', [CompletionResultType]::ParameterName, 'name of a specific action to install (optional). will install all when the `--name` flag is not passed')
            [CompletionResult]::new('--name', '--name', [CompletionResultType]::ParameterName, 'name of a specific action to install (optional). will install all when the `--name` flag is not passed')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;actions;help' {
            [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'add a new action to your Ordinary project')
            [CompletionResult]::new('install', 'install', [CompletionResultType]::ParameterValue, 'install actions to application running on `ordinaryd` instance')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;actions;help;add' {
            break
        }
        'ordinary;actions;help;install' {
            break
        }
        'ordinary;actions;help;help' {
            break
        }
        'ordinary;integrations' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'add a new integration to your Ordinary project')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;integrations;add' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;integrations;help' {
            [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'add a new integration to your Ordinary project')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;integrations;help;add' {
            break
        }
        'ordinary;integrations;help;help' {
            break
        }
        'ordinary;accounts' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('register', 'register', [CompletionResultType]::ParameterValue, 'register a new account')
            [CompletionResult]::new('login', 'login', [CompletionResultType]::ParameterValue, 'log in to an existing account')
            [CompletionResult]::new('logout', 'logout', [CompletionResultType]::ParameterValue, 'log out of a logged in account')
            [CompletionResult]::new('access', 'access', [CompletionResultType]::ParameterValue, 'access management subcommands')
            [CompletionResult]::new('password', 'password', [CompletionResultType]::ParameterValue, 'password management')
            [CompletionResult]::new('mfa', 'mfa', [CompletionResultType]::ParameterValue, 'MFA management')
            [CompletionResult]::new('recovery-codes', 'recovery-codes', [CompletionResultType]::ParameterValue, 'recovery code management')
            [CompletionResult]::new('delete', 'delete', [CompletionResultType]::ParameterValue, 'delete account')
            [CompletionResult]::new('invite', 'invite', [CompletionResultType]::ParameterValue, 'invite another user to a project')
            [CompletionResult]::new('current', 'current', [CompletionResultType]::ParameterValue, 'display info for current account')
            [CompletionResult]::new('list', 'list', [CompletionResultType]::ParameterValue, 'list all logged in accounts')
            [CompletionResult]::new('switch', 'switch', [CompletionResultType]::ParameterValue, 'switch to a different logged in account')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;accounts;register' {
            [CompletionResult]::new('--password', '--password', [CompletionResultType]::ParameterName, 'password for your new account')
            [CompletionResult]::new('--invite', '--invite', [CompletionResultType]::ParameterName, 'base64 encoded invite token')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;accounts;login' {
            [CompletionResult]::new('--password', '--password', [CompletionResultType]::ParameterName, 'password for your existing account')
            [CompletionResult]::new('--mfa', '--mfa', [CompletionResultType]::ParameterName, '6 digit TOTP MFA code')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;accounts;logout' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;accounts;access' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('get', 'get', [CompletionResultType]::ParameterValue, 'get access')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;accounts;access;get' {
            [CompletionResult]::new('-m', '-m', [CompletionResultType]::ParameterName, 'how long the client signature is valid for')
            [CompletionResult]::new('--min', '--min', [CompletionResultType]::ParameterName, 'how long the client signature is valid for')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;accounts;access;help' {
            [CompletionResult]::new('get', 'get', [CompletionResultType]::ParameterValue, 'get access')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;accounts;access;help;get' {
            break
        }
        'ordinary;accounts;access;help;help' {
            break
        }
        'ordinary;accounts;password' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('reset', 'reset', [CompletionResultType]::ParameterValue, 'reset your password')
            [CompletionResult]::new('forgot', 'forgot', [CompletionResultType]::ParameterValue, 'recover your password')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;accounts;password;reset' {
            [CompletionResult]::new('--password', '--password', [CompletionResultType]::ParameterName, 'existing password')
            [CompletionResult]::new('--new-password', '--new-password', [CompletionResultType]::ParameterName, 'new password to be set')
            [CompletionResult]::new('--mfa', '--mfa', [CompletionResultType]::ParameterName, '6 digit TOTP MFA code')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;accounts;password;forgot' {
            [CompletionResult]::new('--new-password', '--new-password', [CompletionResultType]::ParameterName, 'new password to be set')
            [CompletionResult]::new('--recovery-code', '--recovery-code', [CompletionResultType]::ParameterName, '11 character recovery code')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;accounts;password;help' {
            [CompletionResult]::new('reset', 'reset', [CompletionResultType]::ParameterValue, 'reset your password')
            [CompletionResult]::new('forgot', 'forgot', [CompletionResultType]::ParameterValue, 'recover your password')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;accounts;password;help;reset' {
            break
        }
        'ordinary;accounts;password;help;forgot' {
            break
        }
        'ordinary;accounts;password;help;help' {
            break
        }
        'ordinary;accounts;mfa' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('reset', 'reset', [CompletionResultType]::ParameterValue, 'reset MFA TOTP secret')
            [CompletionResult]::new('lost', 'lost', [CompletionResultType]::ParameterValue, 'recovery MFA TOTP secret')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;accounts;mfa;reset' {
            [CompletionResult]::new('--password', '--password', [CompletionResultType]::ParameterName, 'account password')
            [CompletionResult]::new('--mfa', '--mfa', [CompletionResultType]::ParameterName, '6 digit TOTP MFA code')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;accounts;mfa;lost' {
            [CompletionResult]::new('--password', '--password', [CompletionResultType]::ParameterName, 'account password')
            [CompletionResult]::new('--recovery-code', '--recovery-code', [CompletionResultType]::ParameterName, '11 character recovery code')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;accounts;mfa;help' {
            [CompletionResult]::new('reset', 'reset', [CompletionResultType]::ParameterValue, 'reset MFA TOTP secret')
            [CompletionResult]::new('lost', 'lost', [CompletionResultType]::ParameterValue, 'recovery MFA TOTP secret')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;accounts;mfa;help;reset' {
            break
        }
        'ordinary;accounts;mfa;help;lost' {
            break
        }
        'ordinary;accounts;mfa;help;help' {
            break
        }
        'ordinary;accounts;recovery-codes' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('reset', 'reset', [CompletionResultType]::ParameterValue, 'reset recovery codes')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;accounts;recovery-codes;reset' {
            [CompletionResult]::new('--password', '--password', [CompletionResultType]::ParameterName, 'account password')
            [CompletionResult]::new('--mfa', '--mfa', [CompletionResultType]::ParameterName, '6 digit TOTP MFA code')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;accounts;recovery-codes;help' {
            [CompletionResult]::new('reset', 'reset', [CompletionResultType]::ParameterValue, 'reset recovery codes')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;accounts;recovery-codes;help;reset' {
            break
        }
        'ordinary;accounts;recovery-codes;help;help' {
            break
        }
        'ordinary;accounts;delete' {
            [CompletionResult]::new('--password', '--password', [CompletionResultType]::ParameterName, 'password for your existing account')
            [CompletionResult]::new('--mfa', '--mfa', [CompletionResultType]::ParameterName, '6 digit TOTP MFA code')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;accounts;invite' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;accounts;current' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;accounts;list' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;accounts;switch' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;accounts;help' {
            [CompletionResult]::new('register', 'register', [CompletionResultType]::ParameterValue, 'register a new account')
            [CompletionResult]::new('login', 'login', [CompletionResultType]::ParameterValue, 'log in to an existing account')
            [CompletionResult]::new('logout', 'logout', [CompletionResultType]::ParameterValue, 'log out of a logged in account')
            [CompletionResult]::new('access', 'access', [CompletionResultType]::ParameterValue, 'access management subcommands')
            [CompletionResult]::new('password', 'password', [CompletionResultType]::ParameterValue, 'password management')
            [CompletionResult]::new('mfa', 'mfa', [CompletionResultType]::ParameterValue, 'MFA management')
            [CompletionResult]::new('recovery-codes', 'recovery-codes', [CompletionResultType]::ParameterValue, 'recovery code management')
            [CompletionResult]::new('delete', 'delete', [CompletionResultType]::ParameterValue, 'delete account')
            [CompletionResult]::new('invite', 'invite', [CompletionResultType]::ParameterValue, 'invite another user to a project')
            [CompletionResult]::new('current', 'current', [CompletionResultType]::ParameterValue, 'display info for current account')
            [CompletionResult]::new('list', 'list', [CompletionResultType]::ParameterValue, 'list all logged in accounts')
            [CompletionResult]::new('switch', 'switch', [CompletionResultType]::ParameterValue, 'switch to a different logged in account')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;accounts;help;register' {
            break
        }
        'ordinary;accounts;help;login' {
            break
        }
        'ordinary;accounts;help;logout' {
            break
        }
        'ordinary;accounts;help;access' {
            [CompletionResult]::new('get', 'get', [CompletionResultType]::ParameterValue, 'get access')
            break
        }
        'ordinary;accounts;help;access;get' {
            break
        }
        'ordinary;accounts;help;password' {
            [CompletionResult]::new('reset', 'reset', [CompletionResultType]::ParameterValue, 'reset your password')
            [CompletionResult]::new('forgot', 'forgot', [CompletionResultType]::ParameterValue, 'recover your password')
            break
        }
        'ordinary;accounts;help;password;reset' {
            break
        }
        'ordinary;accounts;help;password;forgot' {
            break
        }
        'ordinary;accounts;help;mfa' {
            [CompletionResult]::new('reset', 'reset', [CompletionResultType]::ParameterValue, 'reset MFA TOTP secret')
            [CompletionResult]::new('lost', 'lost', [CompletionResultType]::ParameterValue, 'recovery MFA TOTP secret')
            break
        }
        'ordinary;accounts;help;mfa;reset' {
            break
        }
        'ordinary;accounts;help;mfa;lost' {
            break
        }
        'ordinary;accounts;help;recovery-codes' {
            [CompletionResult]::new('reset', 'reset', [CompletionResultType]::ParameterValue, 'reset recovery codes')
            break
        }
        'ordinary;accounts;help;recovery-codes;reset' {
            break
        }
        'ordinary;accounts;help;delete' {
            break
        }
        'ordinary;accounts;help;invite' {
            break
        }
        'ordinary;accounts;help;current' {
            break
        }
        'ordinary;accounts;help;list' {
            break
        }
        'ordinary;accounts;help;switch' {
            break
        }
        'ordinary;accounts;help;help' {
            break
        }
        'ordinary;app' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('deploy', 'deploy', [CompletionResultType]::ParameterValue, 'deploy a changes to ordinary.json')
            [CompletionResult]::new('migrate', 'migrate', [CompletionResultType]::ParameterValue, 'push a configuration change which will modify the shape of your data stores')
            [CompletionResult]::new('kill', 'kill', [CompletionResultType]::ParameterValue, 'kill a running instance of the application')
            [CompletionResult]::new('restart', 'restart', [CompletionResultType]::ParameterValue, 'restart a running instance of the application')
            [CompletionResult]::new('erase', 'erase', [CompletionResultType]::ParameterValue, 'fully erase all content of the application from the host')
            [CompletionResult]::new('download', 'download', [CompletionResultType]::ParameterValue, 'download an application as static files')
            [CompletionResult]::new('logs', 'logs', [CompletionResultType]::ParameterValue, 'query application logs')
            [CompletionResult]::new('accounts', 'accounts', [CompletionResultType]::ParameterValue, 'manage application accounts')
            [CompletionResult]::new('routes', 'routes', [CompletionResultType]::ParameterValue, 'list all HTTP routes')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;app;deploy' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('-j', '-j', [CompletionResultType]::ParameterName, 'whether the result of the operation should be printed to stdout formatted as JSON')
            [CompletionResult]::new('--json-to-stdout', '--json-to-stdout', [CompletionResultType]::ParameterName, 'whether the result of the operation should be printed to stdout formatted as JSON')
            [CompletionResult]::new('-t', '-t', [CompletionResultType]::ParameterName, 'overrides if mode=production. does nothing if mode is localhost or staging')
            [CompletionResult]::new('--tls-staging', '--tls-staging', [CompletionResultType]::ParameterName, 'overrides if mode=production. does nothing if mode is localhost or staging')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;app;migrate' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;app;kill' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;app;restart' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('-j', '-j', [CompletionResultType]::ParameterName, 'whether the result of the operation should be printed to stdout formatted as JSON')
            [CompletionResult]::new('--json-to-stdout', '--json-to-stdout', [CompletionResultType]::ParameterName, 'whether the result of the operation should be printed to stdout formatted as JSON')
            [CompletionResult]::new('-t', '-t', [CompletionResultType]::ParameterName, 'overrides if mode=production. does nothing if mode is localhost or staging')
            [CompletionResult]::new('--tls-staging', '--tls-staging', [CompletionResultType]::ParameterName, 'overrides if mode=production. does nothing if mode is localhost or staging')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;app;erase' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;app;download' {
            [CompletionResult]::new('-u', '-u', [CompletionResultType]::ParameterName, 'url override. will use project domain by default')
            [CompletionResult]::new('--url', '--url', [CompletionResultType]::ParameterName, 'url override. will use project domain by default')
            [CompletionResult]::new('-o', '-o', [CompletionResultType]::ParameterName, 'where to store downloaded files')
            [CompletionResult]::new('--out', '--out', [CompletionResultType]::ParameterName, 'where to store downloaded files')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;app;logs' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('sync', 'sync', [CompletionResultType]::ParameterValue, 'sync files, indexes and tables')
            [CompletionResult]::new('search', 'search', [CompletionResultType]::ParameterValue, 'search the tantivy index')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;app;logs;sync' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('info', 'info', [CompletionResultType]::ParameterValue, 'get information about remote and local log files')
            [CompletionResult]::new('file', 'file', [CompletionResultType]::ParameterValue, 'sync a single file')
            [CompletionResult]::new('all', 'all', [CompletionResultType]::ParameterValue, 'repair local state for all out of sync (⚠️) and remote files not yet downloaded (❌)')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;app;logs;sync;info' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;app;logs;sync;file' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;app;logs;sync;all' {
            [CompletionResult]::new('-f', '-f', [CompletionResultType]::ParameterName, 'download all files from the server, overwriting everything you have locally')
            [CompletionResult]::new('--force', '--force', [CompletionResultType]::ParameterName, 'download all files from the server, overwriting everything you have locally')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;app;logs;sync;help' {
            [CompletionResult]::new('info', 'info', [CompletionResultType]::ParameterValue, 'get information about remote and local log files')
            [CompletionResult]::new('file', 'file', [CompletionResultType]::ParameterValue, 'sync a single file')
            [CompletionResult]::new('all', 'all', [CompletionResultType]::ParameterValue, 'repair local state for all out of sync (⚠️) and remote files not yet downloaded (❌)')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;app;logs;sync;help;info' {
            break
        }
        'ordinary;app;logs;sync;help;file' {
            break
        }
        'ordinary;app;logs;sync;help;all' {
            break
        }
        'ordinary;app;logs;sync;help;help' {
            break
        }
        'ordinary;app;logs;search' {
            [CompletionResult]::new('--limit', '--limit', [CompletionResultType]::ParameterName, 'limit (when using ''top'' format)')
            [CompletionResult]::new('-s', '-s', [CompletionResultType]::ParameterName, 'whether to sync from remote')
            [CompletionResult]::new('--sync', '--sync', [CompletionResultType]::ParameterName, 'whether to sync from remote')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;app;logs;help' {
            [CompletionResult]::new('sync', 'sync', [CompletionResultType]::ParameterValue, 'sync files, indexes and tables')
            [CompletionResult]::new('search', 'search', [CompletionResultType]::ParameterValue, 'search the tantivy index')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;app;logs;help;sync' {
            [CompletionResult]::new('info', 'info', [CompletionResultType]::ParameterValue, 'get information about remote and local log files')
            [CompletionResult]::new('file', 'file', [CompletionResultType]::ParameterValue, 'sync a single file')
            [CompletionResult]::new('all', 'all', [CompletionResultType]::ParameterValue, 'repair local state for all out of sync (⚠️) and remote files not yet downloaded (❌)')
            break
        }
        'ordinary;app;logs;help;sync;info' {
            break
        }
        'ordinary;app;logs;help;sync;file' {
            break
        }
        'ordinary;app;logs;help;sync;all' {
            break
        }
        'ordinary;app;logs;help;search' {
            break
        }
        'ordinary;app;logs;help;help' {
            break
        }
        'ordinary;app;accounts' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('list', 'list', [CompletionResultType]::ParameterValue, 'list application accounts')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;app;accounts;list' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;app;accounts;help' {
            [CompletionResult]::new('list', 'list', [CompletionResultType]::ParameterValue, 'list application accounts')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;app;accounts;help;list' {
            break
        }
        'ordinary;app;accounts;help;help' {
            break
        }
        'ordinary;app;routes' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;app;help' {
            [CompletionResult]::new('deploy', 'deploy', [CompletionResultType]::ParameterValue, 'deploy a changes to ordinary.json')
            [CompletionResult]::new('migrate', 'migrate', [CompletionResultType]::ParameterValue, 'push a configuration change which will modify the shape of your data stores')
            [CompletionResult]::new('kill', 'kill', [CompletionResultType]::ParameterValue, 'kill a running instance of the application')
            [CompletionResult]::new('restart', 'restart', [CompletionResultType]::ParameterValue, 'restart a running instance of the application')
            [CompletionResult]::new('erase', 'erase', [CompletionResultType]::ParameterValue, 'fully erase all content of the application from the host')
            [CompletionResult]::new('download', 'download', [CompletionResultType]::ParameterValue, 'download an application as static files')
            [CompletionResult]::new('logs', 'logs', [CompletionResultType]::ParameterValue, 'query application logs')
            [CompletionResult]::new('accounts', 'accounts', [CompletionResultType]::ParameterValue, 'manage application accounts')
            [CompletionResult]::new('routes', 'routes', [CompletionResultType]::ParameterValue, 'list all HTTP routes')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;app;help;deploy' {
            break
        }
        'ordinary;app;help;migrate' {
            break
        }
        'ordinary;app;help;kill' {
            break
        }
        'ordinary;app;help;restart' {
            break
        }
        'ordinary;app;help;erase' {
            break
        }
        'ordinary;app;help;download' {
            break
        }
        'ordinary;app;help;logs' {
            [CompletionResult]::new('sync', 'sync', [CompletionResultType]::ParameterValue, 'sync files, indexes and tables')
            [CompletionResult]::new('search', 'search', [CompletionResultType]::ParameterValue, 'search the tantivy index')
            break
        }
        'ordinary;app;help;logs;sync' {
            [CompletionResult]::new('info', 'info', [CompletionResultType]::ParameterValue, 'get information about remote and local log files')
            [CompletionResult]::new('file', 'file', [CompletionResultType]::ParameterValue, 'sync a single file')
            [CompletionResult]::new('all', 'all', [CompletionResultType]::ParameterValue, 'repair local state for all out of sync (⚠️) and remote files not yet downloaded (❌)')
            break
        }
        'ordinary;app;help;logs;sync;info' {
            break
        }
        'ordinary;app;help;logs;sync;file' {
            break
        }
        'ordinary;app;help;logs;sync;all' {
            break
        }
        'ordinary;app;help;logs;search' {
            break
        }
        'ordinary;app;help;accounts' {
            [CompletionResult]::new('list', 'list', [CompletionResultType]::ParameterValue, 'list application accounts')
            break
        }
        'ordinary;app;help;accounts;list' {
            break
        }
        'ordinary;app;help;routes' {
            break
        }
        'ordinary;app;help;help' {
            break
        }
        'ordinary;secrets' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('store', 'store', [CompletionResultType]::ParameterValue, 'store an application secret')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;secrets;store' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;secrets;help' {
            [CompletionResult]::new('store', 'store', [CompletionResultType]::ParameterValue, 'store an application secret')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;secrets;help;store' {
            break
        }
        'ordinary;secrets;help;help' {
            break
        }
        'ordinary;root' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('info', 'info', [CompletionResultType]::ParameterValue, 'get system and process info for the Ordinary API server')
            [CompletionResult]::new('logs', 'logs', [CompletionResultType]::ParameterValue, 'query system and application logs')
            [CompletionResult]::new('lock', 'lock', [CompletionResultType]::ParameterValue, 'lock resources to prevent abuse')
            [CompletionResult]::new('unlock', 'unlock', [CompletionResultType]::ParameterValue, 'unlock resources upon resolution')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;root;info' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;root;logs' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('sync', 'sync', [CompletionResultType]::ParameterValue, 'sync files, indexes and tables')
            [CompletionResult]::new('search', 'search', [CompletionResultType]::ParameterValue, 'search the tantivy index')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;root;logs;sync' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('info', 'info', [CompletionResultType]::ParameterValue, 'get information about remote and local log files')
            [CompletionResult]::new('file', 'file', [CompletionResultType]::ParameterValue, 'sync a single file')
            [CompletionResult]::new('all', 'all', [CompletionResultType]::ParameterValue, 'repair local state for all out of sync (⚠️) and remote files not yet downloaded (❌)')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;root;logs;sync;info' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;root;logs;sync;file' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;root;logs;sync;all' {
            [CompletionResult]::new('-f', '-f', [CompletionResultType]::ParameterName, 'download all files from the server, overwriting everything you have locally')
            [CompletionResult]::new('--force', '--force', [CompletionResultType]::ParameterName, 'download all files from the server, overwriting everything you have locally')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;root;logs;sync;help' {
            [CompletionResult]::new('info', 'info', [CompletionResultType]::ParameterValue, 'get information about remote and local log files')
            [CompletionResult]::new('file', 'file', [CompletionResultType]::ParameterValue, 'sync a single file')
            [CompletionResult]::new('all', 'all', [CompletionResultType]::ParameterValue, 'repair local state for all out of sync (⚠️) and remote files not yet downloaded (❌)')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;root;logs;sync;help;info' {
            break
        }
        'ordinary;root;logs;sync;help;file' {
            break
        }
        'ordinary;root;logs;sync;help;all' {
            break
        }
        'ordinary;root;logs;sync;help;help' {
            break
        }
        'ordinary;root;logs;search' {
            [CompletionResult]::new('--limit', '--limit', [CompletionResultType]::ParameterName, 'limit (when using ''top'' format)')
            [CompletionResult]::new('-s', '-s', [CompletionResultType]::ParameterName, 'whether to sync from remote')
            [CompletionResult]::new('--sync', '--sync', [CompletionResultType]::ParameterName, 'whether to sync from remote')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;root;logs;help' {
            [CompletionResult]::new('sync', 'sync', [CompletionResultType]::ParameterValue, 'sync files, indexes and tables')
            [CompletionResult]::new('search', 'search', [CompletionResultType]::ParameterValue, 'search the tantivy index')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;root;logs;help;sync' {
            [CompletionResult]::new('info', 'info', [CompletionResultType]::ParameterValue, 'get information about remote and local log files')
            [CompletionResult]::new('file', 'file', [CompletionResultType]::ParameterValue, 'sync a single file')
            [CompletionResult]::new('all', 'all', [CompletionResultType]::ParameterValue, 'repair local state for all out of sync (⚠️) and remote files not yet downloaded (❌)')
            break
        }
        'ordinary;root;logs;help;sync;info' {
            break
        }
        'ordinary;root;logs;help;sync;file' {
            break
        }
        'ordinary;root;logs;help;sync;all' {
            break
        }
        'ordinary;root;logs;help;search' {
            break
        }
        'ordinary;root;logs;help;help' {
            break
        }
        'ordinary;root;lock' {
            [CompletionResult]::new('-a', '-a', [CompletionResultType]::ParameterName, 'account to be locked')
            [CompletionResult]::new('--account', '--account', [CompletionResultType]::ParameterName, 'account to be locked')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;root;unlock' {
            [CompletionResult]::new('-a', '-a', [CompletionResultType]::ParameterName, 'account to be unlocked')
            [CompletionResult]::new('--account', '--account', [CompletionResultType]::ParameterName, 'account to be unlocked')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;root;help' {
            [CompletionResult]::new('info', 'info', [CompletionResultType]::ParameterValue, 'get system and process info for the Ordinary API server')
            [CompletionResult]::new('logs', 'logs', [CompletionResultType]::ParameterValue, 'query system and application logs')
            [CompletionResult]::new('lock', 'lock', [CompletionResultType]::ParameterValue, 'lock resources to prevent abuse')
            [CompletionResult]::new('unlock', 'unlock', [CompletionResultType]::ParameterValue, 'unlock resources upon resolution')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;root;help;info' {
            break
        }
        'ordinary;root;help;logs' {
            [CompletionResult]::new('sync', 'sync', [CompletionResultType]::ParameterValue, 'sync files, indexes and tables')
            [CompletionResult]::new('search', 'search', [CompletionResultType]::ParameterValue, 'search the tantivy index')
            break
        }
        'ordinary;root;help;logs;sync' {
            [CompletionResult]::new('info', 'info', [CompletionResultType]::ParameterValue, 'get information about remote and local log files')
            [CompletionResult]::new('file', 'file', [CompletionResultType]::ParameterValue, 'sync a single file')
            [CompletionResult]::new('all', 'all', [CompletionResultType]::ParameterValue, 'repair local state for all out of sync (⚠️) and remote files not yet downloaded (❌)')
            break
        }
        'ordinary;root;help;logs;sync;info' {
            break
        }
        'ordinary;root;help;logs;sync;file' {
            break
        }
        'ordinary;root;help;logs;sync;all' {
            break
        }
        'ordinary;root;help;logs;search' {
            break
        }
        'ordinary;root;help;lock' {
            break
        }
        'ordinary;root;help;unlock' {
            break
        }
        'ordinary;root;help;help' {
            break
        }
        'ordinary;doctor' {
            [CompletionResult]::new('-f', '-f', [CompletionResultType]::ParameterName, 'auto fix installs')
            [CompletionResult]::new('--fix', '--fix', [CompletionResultType]::ParameterName, 'auto fix installs')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;utils' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('uuid', 'uuid', [CompletionResultType]::ParameterValue, 'generate a UUID')
            [CompletionResult]::new('timestamp', 'timestamp', [CompletionResultType]::ParameterValue, 'generate a UNIX timestamp for the current time (i.e. `date +%s`)')
            [CompletionResult]::new('html', 'html', [CompletionResultType]::ParameterValue, 'utilities for managing HTML files')
            [CompletionResult]::new('css', 'css', [CompletionResultType]::ParameterValue, 'utilities for managing CSS files')
            [CompletionResult]::new('js', 'js', [CompletionResultType]::ParameterValue, 'utilities for managing JavaScript files')
            [CompletionResult]::new('markdown', 'markdown', [CompletionResultType]::ParameterValue, 'utilities for manipulating Markdown files')
            [CompletionResult]::new('exif', 'exif', [CompletionResultType]::ParameterValue, 'utilities for manipulating exif data')
            [CompletionResult]::new('wasm-opt', 'wasm-opt', [CompletionResultType]::ParameterValue, '[`wasm-opt`](https://github.com/WebAssembly/binaryen#wasm-opt) command')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;utils;uuid' {
            [CompletionResult]::new('--v', '--v', [CompletionResultType]::ParameterName, 'uuid version')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;utils;timestamp' {
            [CompletionResult]::new('-u', '-u', [CompletionResultType]::ParameterName, 'unit of time')
            [CompletionResult]::new('--unit', '--unit', [CompletionResultType]::ParameterName, 'unit of time')
            [CompletionResult]::new('-f', '-f', [CompletionResultType]::ParameterName, 'formatting (uses `time` crate <https://time-rs.github.io/book/api/format-description.html>)')
            [CompletionResult]::new('--fmt', '--fmt', [CompletionResultType]::ParameterName, 'formatting (uses `time` crate <https://time-rs.github.io/book/api/format-description.html>)')
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;utils;html' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('minify', 'minify', [CompletionResultType]::ParameterValue, 'minify HTML files')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;utils;html;minify' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('-i', '-i', [CompletionResultType]::ParameterName, 'whether it should overwrite the existing file')
            [CompletionResult]::new('--in-place', '--in-place', [CompletionResultType]::ParameterName, 'whether it should overwrite the existing file')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;utils;html;help' {
            [CompletionResult]::new('minify', 'minify', [CompletionResultType]::ParameterValue, 'minify HTML files')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;utils;html;help;minify' {
            break
        }
        'ordinary;utils;html;help;help' {
            break
        }
        'ordinary;utils;css' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('minify', 'minify', [CompletionResultType]::ParameterValue, 'minify CSS files')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;utils;css;minify' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('-i', '-i', [CompletionResultType]::ParameterName, 'whether it should overwrite the existing file')
            [CompletionResult]::new('--in-place', '--in-place', [CompletionResultType]::ParameterName, 'whether it should overwrite the existing file')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;utils;css;help' {
            [CompletionResult]::new('minify', 'minify', [CompletionResultType]::ParameterValue, 'minify CSS files')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;utils;css;help;minify' {
            break
        }
        'ordinary;utils;css;help;help' {
            break
        }
        'ordinary;utils;js' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('minify', 'minify', [CompletionResultType]::ParameterValue, 'minify JavaScript files')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;utils;js;minify' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('-i', '-i', [CompletionResultType]::ParameterName, 'whether it should overwrite the existing file')
            [CompletionResult]::new('--in-place', '--in-place', [CompletionResultType]::ParameterName, 'whether it should overwrite the existing file')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;utils;js;help' {
            [CompletionResult]::new('minify', 'minify', [CompletionResultType]::ParameterValue, 'minify JavaScript files')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;utils;js;help;minify' {
            break
        }
        'ordinary;utils;js;help;help' {
            break
        }
        'ordinary;utils;markdown' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('to-html', 'to-html', [CompletionResultType]::ParameterValue, 'process and place an .html file next to the referenced .md file')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;utils;markdown;to-html' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('-s', '-s', [CompletionResultType]::ParameterName, 'if `true` escape all HTML in the Markdown file')
            [CompletionResult]::new('--safe', '--safe', [CompletionResultType]::ParameterName, 'if `true` escape all HTML in the Markdown file')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;utils;markdown;help' {
            [CompletionResult]::new('to-html', 'to-html', [CompletionResultType]::ParameterValue, 'process and place an .html file next to the referenced .md file')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;utils;markdown;help;to-html' {
            break
        }
        'ordinary;utils;markdown;help;help' {
            break
        }
        'ordinary;utils;exif' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('tool', 'tool', [CompletionResultType]::ParameterValue, '[`exiftool`](https://exiftool.org) command')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;utils;exif;tool' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;utils;exif;help' {
            [CompletionResult]::new('tool', 'tool', [CompletionResultType]::ParameterValue, '[`exiftool`](https://exiftool.org) command')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;utils;exif;help;tool' {
            break
        }
        'ordinary;utils;exif;help;help' {
            break
        }
        'ordinary;utils;wasm-opt' {
            [CompletionResult]::new('-p', '-p', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--project', '--project', [CompletionResultType]::ParameterName, 'project path')
            [CompletionResult]::new('--api-domain', '--api-domain', [CompletionResultType]::ParameterName, 'should only be necessary with localhost or when addressing by IP')
            [CompletionResult]::new('--insecure', '--insecure', [CompletionResultType]::ParameterName, 'use HTTP instead of HTTPS')
            [CompletionResult]::new('--danger-accept-invalid-certs', '--danger-accept-invalid-certs', [CompletionResultType]::ParameterName, 'DANGER: only use when working with self-signed localhost certs')
            [CompletionResult]::new('-v', '-v', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('--verbose', '--verbose', [CompletionResultType]::ParameterName, 'Increase logging verbosity')
            [CompletionResult]::new('-q', '-q', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--quiet', '--quiet', [CompletionResultType]::ParameterName, 'Decrease logging verbosity')
            [CompletionResult]::new('--pretty', '--pretty', [CompletionResultType]::ParameterName, 'whether to pretty print events to stdio')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            break
        }
        'ordinary;utils;help' {
            [CompletionResult]::new('uuid', 'uuid', [CompletionResultType]::ParameterValue, 'generate a UUID')
            [CompletionResult]::new('timestamp', 'timestamp', [CompletionResultType]::ParameterValue, 'generate a UNIX timestamp for the current time (i.e. `date +%s`)')
            [CompletionResult]::new('html', 'html', [CompletionResultType]::ParameterValue, 'utilities for managing HTML files')
            [CompletionResult]::new('css', 'css', [CompletionResultType]::ParameterValue, 'utilities for managing CSS files')
            [CompletionResult]::new('js', 'js', [CompletionResultType]::ParameterValue, 'utilities for managing JavaScript files')
            [CompletionResult]::new('markdown', 'markdown', [CompletionResultType]::ParameterValue, 'utilities for manipulating Markdown files')
            [CompletionResult]::new('exif', 'exif', [CompletionResultType]::ParameterValue, 'utilities for manipulating exif data')
            [CompletionResult]::new('wasm-opt', 'wasm-opt', [CompletionResultType]::ParameterValue, '[`wasm-opt`](https://github.com/WebAssembly/binaryen#wasm-opt) command')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;utils;help;uuid' {
            break
        }
        'ordinary;utils;help;timestamp' {
            break
        }
        'ordinary;utils;help;html' {
            [CompletionResult]::new('minify', 'minify', [CompletionResultType]::ParameterValue, 'minify HTML files')
            break
        }
        'ordinary;utils;help;html;minify' {
            break
        }
        'ordinary;utils;help;css' {
            [CompletionResult]::new('minify', 'minify', [CompletionResultType]::ParameterValue, 'minify CSS files')
            break
        }
        'ordinary;utils;help;css;minify' {
            break
        }
        'ordinary;utils;help;js' {
            [CompletionResult]::new('minify', 'minify', [CompletionResultType]::ParameterValue, 'minify JavaScript files')
            break
        }
        'ordinary;utils;help;js;minify' {
            break
        }
        'ordinary;utils;help;markdown' {
            [CompletionResult]::new('to-html', 'to-html', [CompletionResultType]::ParameterValue, 'process and place an .html file next to the referenced .md file')
            break
        }
        'ordinary;utils;help;markdown;to-html' {
            break
        }
        'ordinary;utils;help;exif' {
            [CompletionResult]::new('tool', 'tool', [CompletionResultType]::ParameterValue, '[`exiftool`](https://exiftool.org) command')
            break
        }
        'ordinary;utils;help;exif;tool' {
            break
        }
        'ordinary;utils;help;wasm-opt' {
            break
        }
        'ordinary;utils;help;help' {
            break
        }
        'ordinary;help' {
            [CompletionResult]::new('new', 'new', [CompletionResultType]::ParameterValue, 'create a new Ordinary project')
            [CompletionResult]::new('ssg', 'ssg', [CompletionResultType]::ParameterValue, 'manage static site configuration')
            [CompletionResult]::new('build', 'build', [CompletionResultType]::ParameterValue, 'build your Ordinary project')
            [CompletionResult]::new('start', 'start', [CompletionResultType]::ParameterValue, 'start the app, locally')
            [CompletionResult]::new('publish', 'publish', [CompletionResultType]::ParameterValue, 'combines `build`, `content update`, `assets write`, `templates upload`, `actions install`')
            [CompletionResult]::new('templates', 'templates', [CompletionResultType]::ParameterValue, 'manage templates in your Ordinary project')
            [CompletionResult]::new('content', 'content', [CompletionResultType]::ParameterValue, 'manage content in your Ordinary project')
            [CompletionResult]::new('assets', 'assets', [CompletionResultType]::ParameterValue, 'manage assets in your Ordinary project')
            [CompletionResult]::new('models', 'models', [CompletionResultType]::ParameterValue, 'manage models in your Ordinary project')
            [CompletionResult]::new('actions', 'actions', [CompletionResultType]::ParameterValue, 'manage actions in your Ordinary project')
            [CompletionResult]::new('integrations', 'integrations', [CompletionResultType]::ParameterValue, 'manage integrations in your Ordinary project')
            [CompletionResult]::new('accounts', 'accounts', [CompletionResultType]::ParameterValue, 'manage accounts connected to `ordinaryd`')
            [CompletionResult]::new('app', 'app', [CompletionResultType]::ParameterValue, 'manage applications running on `ordinaryd`')
            [CompletionResult]::new('secrets', 'secrets', [CompletionResultType]::ParameterValue, 'manage secrets in your Ordinary application')
            [CompletionResult]::new('root', 'root', [CompletionResultType]::ParameterValue, 'root')
            [CompletionResult]::new('doctor', 'doctor', [CompletionResultType]::ParameterValue, 'ensure that all the correct system components are installed')
            [CompletionResult]::new('utils', 'utils', [CompletionResultType]::ParameterValue, 'utility functions for aiding project development')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'ordinary;help;new' {
            break
        }
        'ordinary;help;ssg' {
            [CompletionResult]::new('init', 'init', [CompletionResultType]::ParameterValue, 'generate an `ordinary.json` config to deploy your SSG to a running instance of `ordinaryd`')
            break
        }
        'ordinary;help;ssg;init' {
            break
        }
        'ordinary;help;build' {
            break
        }
        'ordinary;help;start' {
            break
        }
        'ordinary;help;publish' {
            break
        }
        'ordinary;help;templates' {
            [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'add a new template to the Ordinary project')
            [CompletionResult]::new('upload', 'upload', [CompletionResultType]::ParameterValue, 'upload templates to application running on `ordinaryd` instance')
            break
        }
        'ordinary;help;templates;add' {
            break
        }
        'ordinary;help;templates;upload' {
            break
        }
        'ordinary;help;content' {
            [CompletionResult]::new('definition', 'definition', [CompletionResultType]::ParameterValue, 'manage content definitions for Ordinary project')
            [CompletionResult]::new('object', 'object', [CompletionResultType]::ParameterValue, 'manage content objects for Ordinary project')
            [CompletionResult]::new('update', 'update', [CompletionResultType]::ParameterValue, 'update content for application running on `ordinaryd` instance')
            break
        }
        'ordinary;help;content;definition' {
            [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'add a content definition to your Ordinary project')
            [CompletionResult]::new('edit', 'edit', [CompletionResultType]::ParameterValue, 'edit a content definition to your Ordinary project')
            break
        }
        'ordinary;help;content;definition;add' {
            break
        }
        'ordinary;help;content;definition;edit' {
            break
        }
        'ordinary;help;content;object' {
            [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'add a content object to your Ordinary project')
            [CompletionResult]::new('edit', 'edit', [CompletionResultType]::ParameterValue, 'edit a content object to your Ordinary project')
            [CompletionResult]::new('delete', 'delete', [CompletionResultType]::ParameterValue, 'delete a content object to your Ordinary project')
            break
        }
        'ordinary;help;content;object;add' {
            break
        }
        'ordinary;help;content;object;edit' {
            break
        }
        'ordinary;help;content;object;delete' {
            break
        }
        'ordinary;help;content;update' {
            break
        }
        'ordinary;help;assets' {
            [CompletionResult]::new('write', 'write', [CompletionResultType]::ParameterValue, 'write assets to application running on `ordinaryd` instance')
            break
        }
        'ordinary;help;assets;write' {
            break
        }
        'ordinary;help;models' {
            [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'add a new model to your Ordinary project')
            [CompletionResult]::new('items', 'items', [CompletionResultType]::ParameterValue, 'manage model items for the application running on an `ordinaryd` instance')
            break
        }
        'ordinary;help;models;add' {
            break
        }
        'ordinary;help;models;items' {
            [CompletionResult]::new('list', 'list', [CompletionResultType]::ParameterValue, 'list model items for the application running on an `ordinaryd` instance')
            break
        }
        'ordinary;help;models;items;list' {
            break
        }
        'ordinary;help;actions' {
            [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'add a new action to your Ordinary project')
            [CompletionResult]::new('install', 'install', [CompletionResultType]::ParameterValue, 'install actions to application running on `ordinaryd` instance')
            break
        }
        'ordinary;help;actions;add' {
            break
        }
        'ordinary;help;actions;install' {
            break
        }
        'ordinary;help;integrations' {
            [CompletionResult]::new('add', 'add', [CompletionResultType]::ParameterValue, 'add a new integration to your Ordinary project')
            break
        }
        'ordinary;help;integrations;add' {
            break
        }
        'ordinary;help;accounts' {
            [CompletionResult]::new('register', 'register', [CompletionResultType]::ParameterValue, 'register a new account')
            [CompletionResult]::new('login', 'login', [CompletionResultType]::ParameterValue, 'log in to an existing account')
            [CompletionResult]::new('logout', 'logout', [CompletionResultType]::ParameterValue, 'log out of a logged in account')
            [CompletionResult]::new('access', 'access', [CompletionResultType]::ParameterValue, 'access management subcommands')
            [CompletionResult]::new('password', 'password', [CompletionResultType]::ParameterValue, 'password management')
            [CompletionResult]::new('mfa', 'mfa', [CompletionResultType]::ParameterValue, 'MFA management')
            [CompletionResult]::new('recovery-codes', 'recovery-codes', [CompletionResultType]::ParameterValue, 'recovery code management')
            [CompletionResult]::new('delete', 'delete', [CompletionResultType]::ParameterValue, 'delete account')
            [CompletionResult]::new('invite', 'invite', [CompletionResultType]::ParameterValue, 'invite another user to a project')
            [CompletionResult]::new('current', 'current', [CompletionResultType]::ParameterValue, 'display info for current account')
            [CompletionResult]::new('list', 'list', [CompletionResultType]::ParameterValue, 'list all logged in accounts')
            [CompletionResult]::new('switch', 'switch', [CompletionResultType]::ParameterValue, 'switch to a different logged in account')
            break
        }
        'ordinary;help;accounts;register' {
            break
        }
        'ordinary;help;accounts;login' {
            break
        }
        'ordinary;help;accounts;logout' {
            break
        }
        'ordinary;help;accounts;access' {
            [CompletionResult]::new('get', 'get', [CompletionResultType]::ParameterValue, 'get access')
            break
        }
        'ordinary;help;accounts;access;get' {
            break
        }
        'ordinary;help;accounts;password' {
            [CompletionResult]::new('reset', 'reset', [CompletionResultType]::ParameterValue, 'reset your password')
            [CompletionResult]::new('forgot', 'forgot', [CompletionResultType]::ParameterValue, 'recover your password')
            break
        }
        'ordinary;help;accounts;password;reset' {
            break
        }
        'ordinary;help;accounts;password;forgot' {
            break
        }
        'ordinary;help;accounts;mfa' {
            [CompletionResult]::new('reset', 'reset', [CompletionResultType]::ParameterValue, 'reset MFA TOTP secret')
            [CompletionResult]::new('lost', 'lost', [CompletionResultType]::ParameterValue, 'recovery MFA TOTP secret')
            break
        }
        'ordinary;help;accounts;mfa;reset' {
            break
        }
        'ordinary;help;accounts;mfa;lost' {
            break
        }
        'ordinary;help;accounts;recovery-codes' {
            [CompletionResult]::new('reset', 'reset', [CompletionResultType]::ParameterValue, 'reset recovery codes')
            break
        }
        'ordinary;help;accounts;recovery-codes;reset' {
            break
        }
        'ordinary;help;accounts;delete' {
            break
        }
        'ordinary;help;accounts;invite' {
            break
        }
        'ordinary;help;accounts;current' {
            break
        }
        'ordinary;help;accounts;list' {
            break
        }
        'ordinary;help;accounts;switch' {
            break
        }
        'ordinary;help;app' {
            [CompletionResult]::new('deploy', 'deploy', [CompletionResultType]::ParameterValue, 'deploy a changes to ordinary.json')
            [CompletionResult]::new('migrate', 'migrate', [CompletionResultType]::ParameterValue, 'push a configuration change which will modify the shape of your data stores')
            [CompletionResult]::new('kill', 'kill', [CompletionResultType]::ParameterValue, 'kill a running instance of the application')
            [CompletionResult]::new('restart', 'restart', [CompletionResultType]::ParameterValue, 'restart a running instance of the application')
            [CompletionResult]::new('erase', 'erase', [CompletionResultType]::ParameterValue, 'fully erase all content of the application from the host')
            [CompletionResult]::new('download', 'download', [CompletionResultType]::ParameterValue, 'download an application as static files')
            [CompletionResult]::new('logs', 'logs', [CompletionResultType]::ParameterValue, 'query application logs')
            [CompletionResult]::new('accounts', 'accounts', [CompletionResultType]::ParameterValue, 'manage application accounts')
            [CompletionResult]::new('routes', 'routes', [CompletionResultType]::ParameterValue, 'list all HTTP routes')
            break
        }
        'ordinary;help;app;deploy' {
            break
        }
        'ordinary;help;app;migrate' {
            break
        }
        'ordinary;help;app;kill' {
            break
        }
        'ordinary;help;app;restart' {
            break
        }
        'ordinary;help;app;erase' {
            break
        }
        'ordinary;help;app;download' {
            break
        }
        'ordinary;help;app;logs' {
            [CompletionResult]::new('sync', 'sync', [CompletionResultType]::ParameterValue, 'sync files, indexes and tables')
            [CompletionResult]::new('search', 'search', [CompletionResultType]::ParameterValue, 'search the tantivy index')
            break
        }
        'ordinary;help;app;logs;sync' {
            [CompletionResult]::new('info', 'info', [CompletionResultType]::ParameterValue, 'get information about remote and local log files')
            [CompletionResult]::new('file', 'file', [CompletionResultType]::ParameterValue, 'sync a single file')
            [CompletionResult]::new('all', 'all', [CompletionResultType]::ParameterValue, 'repair local state for all out of sync (⚠️) and remote files not yet downloaded (❌)')
            break
        }
        'ordinary;help;app;logs;sync;info' {
            break
        }
        'ordinary;help;app;logs;sync;file' {
            break
        }
        'ordinary;help;app;logs;sync;all' {
            break
        }
        'ordinary;help;app;logs;search' {
            break
        }
        'ordinary;help;app;accounts' {
            [CompletionResult]::new('list', 'list', [CompletionResultType]::ParameterValue, 'list application accounts')
            break
        }
        'ordinary;help;app;accounts;list' {
            break
        }
        'ordinary;help;app;routes' {
            break
        }
        'ordinary;help;secrets' {
            [CompletionResult]::new('store', 'store', [CompletionResultType]::ParameterValue, 'store an application secret')
            break
        }
        'ordinary;help;secrets;store' {
            break
        }
        'ordinary;help;root' {
            [CompletionResult]::new('info', 'info', [CompletionResultType]::ParameterValue, 'get system and process info for the Ordinary API server')
            [CompletionResult]::new('logs', 'logs', [CompletionResultType]::ParameterValue, 'query system and application logs')
            [CompletionResult]::new('lock', 'lock', [CompletionResultType]::ParameterValue, 'lock resources to prevent abuse')
            [CompletionResult]::new('unlock', 'unlock', [CompletionResultType]::ParameterValue, 'unlock resources upon resolution')
            break
        }
        'ordinary;help;root;info' {
            break
        }
        'ordinary;help;root;logs' {
            [CompletionResult]::new('sync', 'sync', [CompletionResultType]::ParameterValue, 'sync files, indexes and tables')
            [CompletionResult]::new('search', 'search', [CompletionResultType]::ParameterValue, 'search the tantivy index')
            break
        }
        'ordinary;help;root;logs;sync' {
            [CompletionResult]::new('info', 'info', [CompletionResultType]::ParameterValue, 'get information about remote and local log files')
            [CompletionResult]::new('file', 'file', [CompletionResultType]::ParameterValue, 'sync a single file')
            [CompletionResult]::new('all', 'all', [CompletionResultType]::ParameterValue, 'repair local state for all out of sync (⚠️) and remote files not yet downloaded (❌)')
            break
        }
        'ordinary;help;root;logs;sync;info' {
            break
        }
        'ordinary;help;root;logs;sync;file' {
            break
        }
        'ordinary;help;root;logs;sync;all' {
            break
        }
        'ordinary;help;root;logs;search' {
            break
        }
        'ordinary;help;root;lock' {
            break
        }
        'ordinary;help;root;unlock' {
            break
        }
        'ordinary;help;doctor' {
            break
        }
        'ordinary;help;utils' {
            [CompletionResult]::new('uuid', 'uuid', [CompletionResultType]::ParameterValue, 'generate a UUID')
            [CompletionResult]::new('timestamp', 'timestamp', [CompletionResultType]::ParameterValue, 'generate a UNIX timestamp for the current time (i.e. `date +%s`)')
            [CompletionResult]::new('html', 'html', [CompletionResultType]::ParameterValue, 'utilities for managing HTML files')
            [CompletionResult]::new('css', 'css', [CompletionResultType]::ParameterValue, 'utilities for managing CSS files')
            [CompletionResult]::new('js', 'js', [CompletionResultType]::ParameterValue, 'utilities for managing JavaScript files')
            [CompletionResult]::new('markdown', 'markdown', [CompletionResultType]::ParameterValue, 'utilities for manipulating Markdown files')
            [CompletionResult]::new('exif', 'exif', [CompletionResultType]::ParameterValue, 'utilities for manipulating exif data')
            [CompletionResult]::new('wasm-opt', 'wasm-opt', [CompletionResultType]::ParameterValue, '[`wasm-opt`](https://github.com/WebAssembly/binaryen#wasm-opt) command')
            break
        }
        'ordinary;help;utils;uuid' {
            break
        }
        'ordinary;help;utils;timestamp' {
            break
        }
        'ordinary;help;utils;html' {
            [CompletionResult]::new('minify', 'minify', [CompletionResultType]::ParameterValue, 'minify HTML files')
            break
        }
        'ordinary;help;utils;html;minify' {
            break
        }
        'ordinary;help;utils;css' {
            [CompletionResult]::new('minify', 'minify', [CompletionResultType]::ParameterValue, 'minify CSS files')
            break
        }
        'ordinary;help;utils;css;minify' {
            break
        }
        'ordinary;help;utils;js' {
            [CompletionResult]::new('minify', 'minify', [CompletionResultType]::ParameterValue, 'minify JavaScript files')
            break
        }
        'ordinary;help;utils;js;minify' {
            break
        }
        'ordinary;help;utils;markdown' {
            [CompletionResult]::new('to-html', 'to-html', [CompletionResultType]::ParameterValue, 'process and place an .html file next to the referenced .md file')
            break
        }
        'ordinary;help;utils;markdown;to-html' {
            break
        }
        'ordinary;help;utils;exif' {
            [CompletionResult]::new('tool', 'tool', [CompletionResultType]::ParameterValue, '[`exiftool`](https://exiftool.org) command')
            break
        }
        'ordinary;help;utils;exif;tool' {
            break
        }
        'ordinary;help;utils;wasm-opt' {
            break
        }
        'ordinary;help;help' {
            break
        }
    })

    $completions.Where{ $_.CompletionText -like "$wordToComplete*" } |
        Sort-Object -Property ListItemText
}
