{
  "name": "sake",
  "description": "🍶 Swift-based utility for managing project commands, inspired by Make",
  "options": [
    {
      "names": [
        "--help",
        "-h"
      ],
      "description": "Show help information",
      "isPersistent": true,
      "priority": 40
    },
    {
      "names": [
        "--version"
      ],
      "description": "Show the version",
      "priority": 40
    }
  ],
  "subcommands": [
    {
      "name": "init",
      "description": "Initialize a new SakeApp project template for defining commands",
      "options": [
        {
          "names": [
            "--config-path",
            "-c"
          ],
          "description": "Specify the path to the configuration file",
          "isPersistent": true,
          "args": [
            {
              "name": "path",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--sake-app-path",
            "-s"
          ],
          "description": "Specify the path for the SakeApp package",
          "isPersistent": true,
          "args": [
            {
              "name": "path",
              "template": "folders"
            }
          ]
        }
      ]
    },
    {
      "name": "clean",
      "description": "Remove all build artifacts generated by the SakeApp to ensure a clean state for future builds",
      "options": [
        {
          "names": [
            "--config-path",
            "-c"
          ],
          "description": "Specify the path to the configuration file",
          "isPersistent": true,
          "args": [
            {
              "name": "path",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--sake-app-path",
            "-s"
          ],
          "description": "Specify the path for the SakeApp package",
          "isPersistent": true,
          "args": [
            {
              "name": "path",
              "template": "folders"
            }
          ]
        }
      ]
    },
    {
      "name": "edit",
      "description": "Open the SakeApp in Xcode (macOS only)",
      "options": [
        {
          "names": [
            "--config-path",
            "-c"
          ],
          "description": "Specify the path to the configuration file",
          "isPersistent": true,
          "args": [
            {
              "name": "path",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--sake-app-path",
            "-s"
          ],
          "description": "Specify the path for the SakeApp package",
          "isPersistent": true,
          "args": [
            {
              "name": "path",
              "template": "folders"
            }
          ]
        }
      ]
    },
    {
      "name": "list",
      "description": "List all available commands defined in the SakeApp",
      "options": [
        {
          "names": [
            "--config-path",
            "-c"
          ],
          "description": "Specify the path to the configuration file",
          "isPersistent": true,
          "args": [
            {
              "name": "path",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--sake-app-path",
            "-s"
          ],
          "description": "Specify the path for the SakeApp package",
          "isPersistent": true,
          "args": [
            {
              "name": "path",
              "template": "folders"
            }
          ]
        },
        {
          "names": [
            "--case-converting-strategy"
          ],
          "description": "Specify the strategy for converting command names' case",
          "priority": 55,
          "args": [
            {
              "name": "strategy",
              "suggestions": [
                "keepOriginal",
                "toSnakeCase",
                "toKebabCase"
              ]
            }
          ]
        },
        {
          "names": [
            "--sake-app-prebuilt-binary-path",
            "-b"
          ],
          "description": "Specify the path to the prebuilt SakeApp binary",
          "priority": 55,
          "args": [
            {
              "name": "path",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--json",
            "-j"
          ],
          "description": "Output the list of commands in JSON format",
          "priority": 45
        }
      ]
    },
    {
      "name": "build",
      "description": "Manually trigger a rebuild of the SakeApp",
      "options": [
        {
          "names": [
            "--config-path",
            "-c"
          ],
          "description": "Specify the path to the configuration file",
          "isPersistent": true,
          "args": [
            {
              "name": "path",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--sake-app-path",
            "-s"
          ],
          "description": "Specify the path for the SakeApp package",
          "isPersistent": true,
          "args": [
            {
              "name": "path",
              "template": "folders"
            }
          ]
        },
        {
          "names": [
            "--show-bin-path"
          ],
          "description": "Print the path to the built SakeApp executable",
          "priority": 45
        }
      ]
    },
    {
      "name": "run",
      "description": "Run the specified command from the SakeApp",
      "options": [
        {
          "names": [
            "--config-path",
            "-c"
          ],
          "description": "Specify the path to the configuration file",
          "isPersistent": true,
          "args": [
            {
              "name": "path",
              "template": "filepaths"
            }
          ]
        },
        {
          "names": [
            "--sake-app-path",
            "-s"
          ],
          "description": "Specify the path for the SakeApp package",
          "isPersistent": true,
          "args": [
            {
              "name": "path",
              "template": "folders"
            }
          ]
        },
        {
          "names": [
            "--case-converting-strategy"
          ],
          "description": "Specify the strategy for converting command names' case",
          "priority": 55,
          "args": [
            {
              "name": "strategy",
              "suggestions": [
                "keepOriginal",
                "toSnakeCase",
                "toKebabCase"
              ]
            }
          ]
        },
        {
          "names": [
            "--sake-app-prebuilt-binary-path",
            "-b"
          ],
          "description": "Specify the path to the prebuilt SakeApp binary",
          "priority": 55,
          "args": [
            {
              "name": "path",
              "template": "filepaths"
            }
          ]
        }
      ],
      "args": [
        {
          "name": "command",
          "description": "The command to run",
          "generators": [
            {
              "script": [
                "sake",
                "list",
                "--json"
              ]
            }
          ]
        }
      ]
    }
  ]
}
