{
  "id": "minizinc",
  "name": "MiniZinc",
  "homepage": "https://www.minizinc.org/",
  "description": "Medium-level constraint modeling language",
  "executables": [
    "minizinc"
  ],
  "dotfiles": {
    "paths": [
      "~/.minizinc/Preferences.json",
      "~/.minizinc/solvers/"
    ],
    "secret": []
  },
  "commands": {
    "format": 1,
    "label": "Solve a model",
    "description": "Solve a MiniZinc model with optional data files, solver choice and solution limits. Compiler tuning and output-file options are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": false,
      "short_attached": false,
      "short_bundles": false
    },
    "source": [
      {
        "id": "manual",
        "kind": "manual",
        "url": "https://docs.minizinc.org/en/stable/command_line.html",
        "revision": "stable 2026-10-27",
        "evidence": "--solver <id>, --solver <solver configuration file>.msc\n-a, --all-solutions\n-n <i>, --num-solutions <i>\n-p <i>, --parallel <i>\n-r <i>, --random-seed <i>\n-f, --free-search\n-s, --statistics\n-v, -l, --verbose\n-c, --compile\n-d <file>, --data <file>\n-D <data>, --cmdline-data <data>\n--output-mode <item|dzn|json>\n--solvers\n"
      }
    ],
    "field": [
      {
        "id": "model",
        "label": "Model file",
        "type": "path",
        "path": {
          "kind": "file",
          "role": "input"
        },
        "position": 0,
        "sources": [
          "manual"
        ]
      },
      {
        "id": "data",
        "label": "Data file",
        "type": "path",
        "path": {
          "kind": "file",
          "role": "input"
        },
        "option": [
          "--data",
          "-d"
        ],
        "multiple": true,
        "sources": [
          "manual"
        ]
      },
      {
        "id": "solver",
        "label": "Solver",
        "type": "string",
        "option": [
          "--solver"
        ],
        "sources": [
          "manual"
        ]
      },
      {
        "id": "all_solutions",
        "label": "All solutions",
        "type": "boolean",
        "option": [
          "--all-solutions",
          "-a"
        ],
        "sources": [
          "manual"
        ]
      },
      {
        "id": "num_solutions",
        "label": "Stop after N solutions",
        "type": "integer",
        "option": [
          "--num-solutions",
          "-n"
        ],
        "sources": [
          "manual"
        ]
      },
      {
        "id": "parallel",
        "label": "Parallel threads",
        "type": "integer",
        "option": [
          "--parallel",
          "-p"
        ],
        "sources": [
          "manual"
        ]
      },
      {
        "id": "free_search",
        "label": "Free search",
        "type": "boolean",
        "option": [
          "--free-search",
          "-f"
        ],
        "sources": [
          "manual"
        ]
      },
      {
        "id": "statistics",
        "label": "Print statistics",
        "type": "boolean",
        "option": [
          "--statistics",
          "-s"
        ],
        "sources": [
          "manual"
        ]
      },
      {
        "id": "verbose",
        "label": "Verbose",
        "type": "boolean",
        "option": [
          "--verbose"
        ],
        "sources": [
          "manual"
        ]
      },
      {
        "id": "compile_only",
        "label": "Compile only",
        "type": "boolean",
        "option": [
          "--compile",
          "-c"
        ],
        "sources": [
          "manual"
        ]
      },
      {
        "id": "output_mode",
        "label": "Output mode",
        "type": "enum",
        "option": [
          "--output-mode"
        ],
        "choices": [
          {
            "value": "item",
            "label": "Output item"
          },
          {
            "value": "dzn",
            "label": "DZN"
          },
          {
            "value": "json",
            "label": "JSON"
          }
        ],
        "sources": [
          "manual"
        ]
      }
    ],
    "task": [
      {
        "id": "solve",
        "label": "Solve",
        "fields": [
          "model",
          "data",
          "solver",
          "statistics"
        ],
        "required": [
          "model"
        ]
      },
      {
        "id": "all",
        "label": "All solutions",
        "fields": [
          "model",
          "data",
          "solver",
          "all_solutions"
        ],
        "required": [
          "model"
        ],
        "set": {
          "all_solutions": [
            true
          ]
        }
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "model",
          "data",
          "solver",
          "all_solutions",
          "num_solutions",
          "output_mode"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "parallel",
          "free_search",
          "statistics",
          "verbose",
          "compile_only"
        ]
      }
    ]
  }
}
