{ "name": "winapp", "version": "0.1.11", "schemaVersion": "1.0", "description": "CLI for generating and managing appxmanifest.xml, image assets, test certificates, Windows (App) SDK projections, package identity, and packaging. For use with any app framework targeting Windows", "hidden": false, "options": { "--cli-schema": { "description": "Output the complete CLI command structure as JSON for tooling, scripting, and LLM integration. Includes all commands, options, arguments, and their descriptions.", "hidden": false, "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 0 }, "required": false, "recursive": true }, "--help": { "description": "Show help and usage information", "hidden": false, "aliases": [ "-?", "-h", "/?", "/h" ], "valueType": "System.Void", "hasDefaultValue": false, "arity": { "minimum": 0, "maximum": 0 }, "required": false, "recursive": true }, "--version": { "description": "Show version information", "hidden": false, "valueType": "System.Void", "hasDefaultValue": false, "arity": { "minimum": 0, "maximum": 0 }, "required": false, "recursive": false } }, "subcommands": { "cert": { "description": "Manage development certificates for code signing. Use 'cert generate' to create a self-signed certificate for testing, or 'cert install' (requires elevation) to trust an existing certificate on this machine.", "hidden": false, "subcommands": { "generate": { "description": "Create a self-signed certificate for local testing only. Publisher must match AppxManifest.xml (auto-inferred if --manifest provided or appxmanifest.xml is in working directory). Output: devcert.pfx (default password: 'password'). For production, obtain a certificate from a trusted CA. Use 'cert install' to trust on this machine.", "hidden": false, "options": { "--if-exists": { "description": "Behavior when output file exists: 'error' (fail, default), 'skip' (keep existing), or 'overwrite' (replace)", "hidden": false, "valueType": "WinApp.Cli.Models.IfExists", "hasDefaultValue": true, "defaultValue": "Error", "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--install": { "description": "Install the certificate to the local machine store after generation", "hidden": false, "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--manifest": { "description": "Path to appxmanifest.xml file to extract publisher information from", "hidden": false, "valueType": "System.IO.FileInfo", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--output": { "description": "Output path for the generated PFX file", "hidden": false, "valueType": "System.IO.FileInfo", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--password": { "description": "Password for the generated PFX file", "hidden": false, "valueType": "System.String", "hasDefaultValue": true, "defaultValue": "password", "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--publisher": { "description": "Publisher name for the generated certificate. If not specified, will be inferred from manifest.", "hidden": false, "valueType": "System.String", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--quiet": { "description": "Suppress progress messages", "hidden": false, "aliases": [ "-q" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--valid-days": { "description": "Number of days the certificate is valid", "hidden": false, "valueType": "System.Int32", "hasDefaultValue": true, "defaultValue": 365, "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--verbose": { "description": "Enable verbose output", "hidden": false, "aliases": [ "-v" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false } } }, "install": { "description": "Trust a certificate on this machine (requires admin). Run before installing MSIX packages signed with dev certificates. Example: winapp cert install ./devcert.pfx. Only needed once per certificate.", "hidden": false, "arguments": { "cert-path": { "description": "Path to the certificate file (PFX or CER)", "order": 0, "hidden": false, "valueType": "System.IO.FileInfo", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 } } }, "options": { "--force": { "description": "Force installation even if the certificate already exists", "hidden": false, "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--password": { "description": "Password for the PFX file", "hidden": false, "valueType": "System.String", "hasDefaultValue": true, "defaultValue": "password", "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--quiet": { "description": "Suppress progress messages", "hidden": false, "aliases": [ "-q" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--verbose": { "description": "Enable verbose output", "hidden": false, "aliases": [ "-v" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false } } } } }, "create-debug-identity": { "description": "Enable package identity for debugging without creating full MSIX. Required for testing Windows APIs (push notifications, share target, etc.) during development. Example: winapp create-debug-identity ./myapp.exe. Requires appxmanifest.xml in current directory or passed via --manifest. Re-run after changing appxmanifest.xml or Assets/.", "hidden": false, "arguments": { "entrypoint": { "description": "Path to the .exe that will need to run with identity, or entrypoint script.", "order": 0, "hidden": false, "valueType": "System.IO.FileInfo", "hasDefaultValue": false, "arity": { "minimum": 0, "maximum": 1 } } }, "options": { "--keep-identity": { "description": "Keep the package identity from the manifest as-is, without appending '.debug' to the package name and application ID.", "hidden": false, "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--manifest": { "description": "Path to the appxmanifest.xml", "hidden": false, "valueType": "System.IO.FileInfo", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--no-install": { "description": "Do not install the package after creation.", "hidden": false, "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--quiet": { "description": "Suppress progress messages", "hidden": false, "aliases": [ "-q" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--verbose": { "description": "Enable verbose output", "hidden": false, "aliases": [ "-v" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false } } }, "get-winapp-path": { "description": "Print the path to the .winapp directory. Use --global for the shared cache location, or omit for the project-local .winapp folder. Useful for build scripts that need to reference installed packages.", "hidden": false, "options": { "--global": { "description": "Get the global .winapp directory instead of local", "hidden": false, "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--quiet": { "description": "Suppress progress messages", "hidden": false, "aliases": [ "-q" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--verbose": { "description": "Enable verbose output", "hidden": false, "aliases": [ "-v" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false } } }, "init": { "description": "Start here for initializing a Windows app with required setup. Sets up everything needed for Windows app development: creates appxmanifest.xml with default assets, generates devcert.pfx for code signing, creates winapp.yaml for version management, and downloads Windows SDK and Windows App SDK packages and generates projections. Interactive by default (use --use-defaults to skip prompts). Use 'restore' instead if you cloned a repo that already has winapp.yaml. Use 'manifest generate' or 'cert generate' if you only need one of those pieces.", "hidden": false, "arguments": { "base-directory": { "description": "Base/root directory for the winapp workspace, for consumption or installation.", "order": 0, "hidden": false, "valueType": "System.IO.DirectoryInfo", "hasDefaultValue": false, "arity": { "minimum": 0, "maximum": 1 } } }, "options": { "--config-dir": { "description": "Directory to read/store configuration (default: current directory)", "hidden": false, "valueType": "System.IO.DirectoryInfo", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--config-only": { "description": "Only handle configuration file operations (create if missing, validate if exists). Skip package installation, certificate generation, and other workspace setup steps.", "hidden": false, "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--ignore-config": { "description": "Don't use configuration file for version management", "hidden": false, "aliases": [ "--no-config" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--no-cert": { "description": "Skip development certificate generation", "hidden": false, "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--no-gitignore": { "description": "Don't update .gitignore file", "hidden": false, "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--quiet": { "description": "Suppress progress messages", "hidden": false, "aliases": [ "-q" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--setup-sdks": { "description": "SDK installation mode: 'stable' (default), 'preview', 'experimental', or 'none' (skip SDK installation)", "hidden": false, "helpName": "stable|preview|experimental|none", "valueType": "System.Nullable", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--use-defaults": { "description": "Do not prompt, and use default of all prompts", "hidden": false, "aliases": [ "--no-prompt" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--verbose": { "description": "Enable verbose output", "hidden": false, "aliases": [ "-v" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false } } }, "manifest": { "description": "Create and modify appxmanifest.xml files for package identity and MSIX packaging. Use 'manifest generate' to create a new manifest, or 'manifest update-assets' to regenerate app icons from a source image.", "hidden": false, "subcommands": { "generate": { "description": "Create appxmanifest.xml without full project setup. Use when you only need a manifest and image assets (no SDKs, no certificate). For full setup, use 'init' instead. Templates: 'packaged' (full MSIX), 'sparse' (desktop app needing Windows APIs), 'hostedapp' (Python/Node scripts).", "hidden": false, "arguments": { "directory": { "description": "Directory to generate manifest in", "order": 0, "hidden": false, "valueType": "System.IO.DirectoryInfo", "hasDefaultValue": false, "arity": { "minimum": 0, "maximum": 1 } } }, "options": { "--description": { "description": "Human-readable app description shown during installation and in Windows Settings", "hidden": false, "valueType": "System.String", "hasDefaultValue": true, "defaultValue": "My Application", "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--entrypoint": { "description": "Entry point of the application (e.g., executable path / name, or .py/.js script if template is HostedApp). Default: .exe", "hidden": false, "aliases": [ "--executable" ], "valueType": "System.IO.FileInfo", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--if-exists": { "description": "Behavior when output file exists: 'error' (fail, default), 'skip' (keep existing), or 'overwrite' (replace)", "hidden": false, "valueType": "WinApp.Cli.Models.IfExists", "hasDefaultValue": true, "defaultValue": "Error", "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--logo-path": { "description": "Path to logo image file", "hidden": false, "valueType": "System.IO.FileInfo", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--package-name": { "description": "Package name (default: folder name)", "hidden": false, "valueType": "System.String", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--publisher-name": { "description": "Publisher CN (default: CN=)", "hidden": false, "valueType": "System.String", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--quiet": { "description": "Suppress progress messages", "hidden": false, "aliases": [ "-q" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--template": { "description": "Manifest template type: 'packaged' (full MSIX app, default), 'sparse' (desktop app with package identity for Windows APIs), or 'hostedapp' (script running under Python/Node host)", "hidden": false, "valueType": "WinApp.Cli.Models.ManifestTemplates", "hasDefaultValue": true, "defaultValue": "Packaged", "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--verbose": { "description": "Enable verbose output", "hidden": false, "aliases": [ "-v" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--version": { "description": "App version in Major.Minor.Build.Revision format (e.g., 1.0.0.0).", "hidden": false, "valueType": "System.String", "hasDefaultValue": true, "defaultValue": "1.0.0.0", "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false } } }, "update-assets": { "description": "Generate new assets for images referenced in an appxmanifest.xml from a single source image. Source image should be at least 400x400 pixels.", "hidden": false, "arguments": { "image-path": { "description": "Path to source image file", "order": 0, "hidden": false, "valueType": "System.IO.FileInfo", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 } } }, "options": { "--manifest": { "description": "Path to AppxManifest.xml file (default: search current directory)", "hidden": false, "valueType": "System.IO.FileInfo", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--quiet": { "description": "Suppress progress messages", "hidden": false, "aliases": [ "-q" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--verbose": { "description": "Enable verbose output", "hidden": false, "aliases": [ "-v" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false } } } } }, "package": { "description": "Create MSIX installer from your built app. Run after building your app. appxmanifest.xml is required for packaging - it must be in current working directory, passed as --manifest or be in the input folder. Use --cert devcert.pfx to sign for testing. Example: winapp package ./dist --manifest appxmanifest.xml --cert ./devcert.pfx", "hidden": false, "aliases": [ "pack" ], "arguments": { "input-folder": { "description": "Input folder with package layout", "order": 0, "hidden": false, "valueType": "System.IO.DirectoryInfo", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 } } }, "options": { "--cert": { "description": "Path to signing certificate (will auto-sign if provided)", "hidden": false, "valueType": "System.IO.FileInfo", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--cert-password": { "description": "Certificate password (default: password)", "hidden": false, "valueType": "System.String", "hasDefaultValue": true, "defaultValue": "password", "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--generate-cert": { "description": "Generate a new development certificate", "hidden": false, "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--install-cert": { "description": "Install certificate to machine", "hidden": false, "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--manifest": { "description": "Path to AppX manifest file (default: auto-detect from input folder or current directory)", "hidden": false, "valueType": "System.IO.FileInfo", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--name": { "description": "Package name (default: from manifest)", "hidden": false, "valueType": "System.String", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--output": { "description": "Output msix file name for the generated package (defaults to .msix)", "hidden": false, "valueType": "System.IO.FileInfo", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--publisher": { "description": "Publisher name for certificate generation", "hidden": false, "valueType": "System.String", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--quiet": { "description": "Suppress progress messages", "hidden": false, "aliases": [ "-q" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--self-contained": { "description": "Bundle Windows App SDK runtime for self-contained deployment", "hidden": false, "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--skip-pri": { "description": "Skip PRI file generation", "hidden": false, "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--verbose": { "description": "Enable verbose output", "hidden": false, "aliases": [ "-v" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false } } }, "restore": { "description": "Use after cloning a repo or when .winapp/ folder is missing. Reinstalls SDK packages from existing winapp.yaml without changing versions. Requires winapp.yaml (created by 'init'). To check for newer SDK versions, use 'update' instead.", "hidden": false, "arguments": { "base-directory": { "description": "Base/root directory for the winapp workspace", "order": 0, "hidden": false, "valueType": "System.IO.DirectoryInfo", "hasDefaultValue": false, "arity": { "minimum": 0, "maximum": 1 } } }, "options": { "--config-dir": { "description": "Directory to read configuration from (default: current directory)", "hidden": false, "valueType": "System.IO.DirectoryInfo", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--quiet": { "description": "Suppress progress messages", "hidden": false, "aliases": [ "-q" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--verbose": { "description": "Enable verbose output", "hidden": false, "aliases": [ "-v" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false } } }, "sign": { "description": "Code-sign an MSIX package or executable. Example: winapp sign ./app.msix ./devcert.pfx. Use --timestamp for production builds to remain valid after cert expires. The 'package' command can sign automatically with --cert.", "hidden": false, "arguments": { "file-path": { "description": "Path to the file/package to sign", "order": 0, "hidden": false, "valueType": "System.IO.FileInfo", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 } }, "cert-path": { "description": "Path to the certificate file (PFX format)", "order": 1, "hidden": false, "valueType": "System.IO.FileInfo", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 } } }, "options": { "--password": { "description": "Certificate password", "hidden": false, "valueType": "System.String", "hasDefaultValue": true, "defaultValue": "password", "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--quiet": { "description": "Suppress progress messages", "hidden": false, "aliases": [ "-q" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--timestamp": { "description": "Timestamp server URL", "hidden": false, "valueType": "System.String", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--verbose": { "description": "Enable verbose output", "hidden": false, "aliases": [ "-v" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false } } }, "tool": { "description": "Run Windows SDK tools directly (makeappx, signtool, makepri, etc.). Auto-downloads Build Tools if needed. For most tasks, prefer higher-level commands like 'package' or 'sign'. Example: winapp tool makeappx pack /d ./folder /p ./out.msix", "hidden": false, "aliases": [ "run-buildtool" ], "options": { "--quiet": { "description": "Suppress progress messages", "hidden": false, "aliases": [ "-q" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--verbose": { "description": "Enable verbose output", "hidden": false, "aliases": [ "-v" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false } } }, "update": { "description": "Check for and install newer SDK versions. Updates winapp.yaml with latest versions and reinstalls packages. Requires existing winapp.yaml (created by 'init'). Use --setup-sdks preview for preview SDKs. To reinstall current versions without updating, use 'restore' instead.", "hidden": false, "options": { "--quiet": { "description": "Suppress progress messages", "hidden": false, "aliases": [ "-q" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false }, "--setup-sdks": { "description": "SDK installation mode: 'stable' (default), 'preview', 'experimental', or 'none' (skip SDK installation)", "hidden": false, "helpName": "stable|preview|experimental|none", "valueType": "System.Nullable", "hasDefaultValue": false, "arity": { "minimum": 1, "maximum": 1 }, "required": false, "recursive": false }, "--verbose": { "description": "Enable verbose output", "hidden": false, "aliases": [ "-v" ], "valueType": "System.Boolean", "hasDefaultValue": true, "defaultValue": false, "arity": { "minimum": 0, "maximum": 1 }, "required": false, "recursive": false } } } } }