[
  {
    "type": "function",
    "function": {
      "name": "calculate-age",
      "description": "Calculate exact age between a birth date and a target date (defaults to today). (ultraquick.tools: Age Calculator. Endpoint: POST https://ultraquick.tools/api/age-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "birthDate": {
            "type": "string",
            "format": "date",
            "description": "Date of birth in YYYY-MM-DD format"
          },
          "targetDate": {
            "type": "string",
            "format": "date",
            "description": "Age-at date in YYYY-MM-DD format. Defaults to today if omitted."
          }
        },
        "required": [
          "birthDate"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-bmi",
      "description": "Calculate Body Mass Index from height and weight. (ultraquick.tools: BMI Calculator. Endpoint: POST https://ultraquick.tools/api/bmi-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "unit": {
            "type": "string",
            "enum": [
              "metric",
              "imperial"
            ],
            "description": "metric uses cm and kg; imperial uses inches and pounds"
          },
          "height": {
            "type": "number",
            "description": "Height in cm (metric) or inches (imperial)"
          },
          "weight": {
            "type": "number",
            "description": "Weight in kg (metric) or pounds (imperial)"
          },
          "feet": {
            "type": "number",
            "description": "Optional: height in feet (imperial only, combined with inches)"
          },
          "inches": {
            "type": "number",
            "description": "Optional: additional inches (imperial only)"
          }
        },
        "required": [
          "unit",
          "height",
          "weight"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "percentage-of",
      "description": "Calculate X% of Y. (ultraquick.tools: Percentage Calculator. Endpoint: POST https://ultraquick.tools/api/percentage-of)",
      "parameters": {
        "type": "object",
        "properties": {
          "x": {
            "type": "number",
            "description": "The percentage (e.g. 20 for 20%)"
          },
          "y": {
            "type": "number",
            "description": "The value to take the percentage of"
          }
        },
        "required": [
          "x",
          "y"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "percentage-change",
      "description": "Calculate the percentage change from value A to value B. (ultraquick.tools: Percentage Calculator. Endpoint: POST https://ultraquick.tools/api/percentage-change)",
      "parameters": {
        "type": "object",
        "properties": {
          "from": {
            "type": "number",
            "description": "Original value (A)"
          },
          "to": {
            "type": "number",
            "description": "New value (B)"
          }
        },
        "required": [
          "from",
          "to"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "count-words",
      "description": "Count words, characters, sentences, paragraphs and estimate reading time for given text. (ultraquick.tools: Word Counter. Endpoint: POST https://ultraquick.tools/api/word-counter)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "The text to analyze"
          }
        },
        "required": [
          "text"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "generate-qr",
      "description": "Generate a QR code as an SVG string for the given text or URL. (ultraquick.tools: QR Code Generator. Endpoint: POST https://ultraquick.tools/api/qr-code-generator)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Content to encode (URL, text, etc.)"
          },
          "size": {
            "type": "integer",
            "minimum": 64,
            "maximum": 1024,
            "default": 256,
            "description": "Output size in pixels"
          }
        },
        "required": [
          "text"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-length",
      "description": "Convert a length value from one unit to all supported units. (ultraquick.tools: Length Converter. Endpoint: POST https://ultraquick.tools/api/length-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "description": "The value to convert"
          },
          "from": {
            "type": "string",
            "enum": [
              "m",
              "km",
              "cm",
              "mm",
              "mi",
              "ft",
              "in",
              "yd",
              "nmi"
            ],
            "description": "Source unit"
          }
        },
        "required": [
          "value",
          "from"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-loan",
      "description": "Calculate monthly payment, total paid, and total interest for a fixed-rate loan. (ultraquick.tools: Loan Calculator. Endpoint: POST https://ultraquick.tools/api/loan-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "principal": {
            "type": "number",
            "description": "Loan amount (principal)"
          },
          "annualRate": {
            "type": "number",
            "description": "Annual interest rate as a percentage (e.g. 5 for 5 percent)"
          },
          "years": {
            "type": "number",
            "description": "Loan term in years"
          }
        },
        "required": [
          "principal",
          "annualRate",
          "years"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-tip",
      "description": "Calculate tip amount, total bill, and per-person cost when splitting. (ultraquick.tools: Tip Calculator. Endpoint: POST https://ultraquick.tools/api/tip-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "bill": {
            "type": "number",
            "description": "Bill amount before tip"
          },
          "tipPercent": {
            "type": "number",
            "description": "Tip percentage (e.g. 18 for 18 percent)"
          },
          "split": {
            "type": "integer",
            "description": "Number of people splitting the bill (default 1, minimum 1)"
          }
        },
        "required": [
          "bill",
          "tipPercent"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-color",
      "description": "Convert a color between hex, RGB, and HSL formats. (ultraquick.tools: Color Converter. Endpoint: POST https://ultraquick.tools/api/color-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "color": {
            "type": "string",
            "description": "The color value to convert (hex like #ff8000 or rgb like 255,128,0)"
          },
          "from": {
            "type": "string",
            "enum": [
              "hex",
              "rgb"
            ],
            "description": "Format of the input color"
          }
        },
        "required": [
          "color",
          "from"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-case",
      "description": "Convert text to a different case style (upper, lower, title, sentence, camel, snake, kebab). (ultraquick.tools: Case Converter. Endpoint: POST https://ultraquick.tools/api/case-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "The text to convert"
          },
          "to": {
            "type": "string",
            "enum": [
              "upper",
              "lower",
              "title",
              "sentence",
              "camel",
              "snake",
              "kebab"
            ],
            "description": "Target case style"
          }
        },
        "required": [
          "text",
          "to"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "date-difference",
      "description": "Calculate the difference between two dates in days, weeks, hours, and approximate months/years. (ultraquick.tools: Date Difference Calculator. Endpoint: POST https://ultraquick.tools/api/date-difference)",
      "parameters": {
        "type": "object",
        "properties": {
          "startDate": {
            "type": "string",
            "format": "date",
            "description": "Start date (YYYY-MM-DD)"
          },
          "endDate": {
            "type": "string",
            "format": "date",
            "description": "End date (YYYY-MM-DD)"
          }
        },
        "required": [
          "startDate",
          "endDate"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "base64-encode",
      "description": "Encode text to Base64 or decode Base64 to text. (ultraquick.tools: Base64 Encoder & Decoder. Endpoint: POST https://ultraquick.tools/api/base64-encoder)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "The text to encode or the Base64 string to decode"
          },
          "decode": {
            "type": "boolean",
            "description": "Set to true to decode Base64 (default false = encode)"
          }
        },
        "required": [
          "text"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "format-json",
      "description": "Format and validate a JSON string with proper indentation. (ultraquick.tools: JSON Formatter. Endpoint: POST https://ultraquick.tools/api/json-formatter)",
      "parameters": {
        "type": "object",
        "properties": {
          "json": {
            "type": "string",
            "description": "The JSON string to format"
          },
          "indent": {
            "type": "integer",
            "description": "Number of spaces for indentation (default 2)"
          }
        },
        "required": [
          "json"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-temperature",
      "description": "Convert a temperature between Celsius, Fahrenheit, and Kelvin. (ultraquick.tools: Temperature Converter. Endpoint: POST https://ultraquick.tools/api/temperature-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "description": "Temperature value to convert"
          },
          "from": {
            "type": "string",
            "enum": [
              "c",
              "f",
              "k"
            ],
            "description": "Source unit (c=Celsius, f=Fahrenheit, k=Kelvin)"
          },
          "to": {
            "type": "string",
            "enum": [
              "c",
              "f",
              "k"
            ],
            "description": "Target unit"
          }
        },
        "required": [
          "value",
          "from",
          "to"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-weight",
      "description": "Convert a weight value from one unit to all supported units. (ultraquick.tools: Weight Converter. Endpoint: POST https://ultraquick.tools/api/weight-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "description": "The value to convert"
          },
          "from": {
            "type": "string",
            "enum": [
              "kg",
              "g",
              "mg",
              "lb",
              "oz",
              "ton",
              "stone"
            ],
            "description": "Source unit"
          }
        },
        "required": [
          "value",
          "from"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "generate-hash",
      "description": "Generate a cryptographic hash (SHA-1, SHA-256, SHA-384, SHA-512) from text. (ultraquick.tools: Hash Generator. Endpoint: POST https://ultraquick.tools/api/hash-generator)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Text to hash"
          },
          "algorithm": {
            "type": "string",
            "enum": [
              "sha-1",
              "sha-256",
              "sha-384",
              "sha-512"
            ],
            "description": "Hash algorithm (default sha-256)"
          }
        },
        "required": [
          "text"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "encode-url",
      "description": "URL-encode or URL-decode a string. (ultraquick.tools: URL Encoder & Decoder. Endpoint: POST https://ultraquick.tools/api/url-encoder)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Text to encode or URL to decode"
          },
          "decode": {
            "type": "boolean",
            "description": "Set to true to decode (default false = encode)"
          }
        },
        "required": [
          "text"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "number-to-words",
      "description": "Convert an integer to its English word representation. (ultraquick.tools: Number to Words. Endpoint: POST https://ultraquick.tools/api/number-to-words)",
      "parameters": {
        "type": "object",
        "properties": {
          "number": {
            "type": "integer",
            "description": "The integer to convert to words"
          }
        },
        "required": [
          "number"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "generate-lorem",
      "description": "Generate Lorem Ipsum placeholder text. (ultraquick.tools: Lorem Ipsum Generator. Endpoint: POST https://ultraquick.tools/api/lorem-ipsum-generator)",
      "parameters": {
        "type": "object",
        "properties": {
          "paragraphs": {
            "type": "integer",
            "description": "Number of paragraphs (1-20, default 1)"
          },
          "wordsPerParagraph": {
            "type": "integer",
            "description": "Words per paragraph (5-500, default 50)"
          }
        },
        "required": []
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-data-size",
      "description": "Convert a data size between bytes, KB, MB, GB, TB, PB (binary 1024-based). (ultraquick.tools: Data Size Converter. Endpoint: POST https://ultraquick.tools/api/data-size-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "description": "The value to convert"
          },
          "from": {
            "type": "string",
            "enum": [
              "B",
              "KB",
              "MB",
              "GB",
              "TB",
              "PB"
            ],
            "description": "Source unit"
          }
        },
        "required": [
          "value",
          "from"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "generate-random-number",
      "description": "Generate random number(s) within a range using crypto RNG. (ultraquick.tools: Random Number Generator. Endpoint: POST https://ultraquick.tools/api/random-number-generator)",
      "parameters": {
        "type": "object",
        "properties": {
          "min": {
            "type": "integer",
            "description": "Minimum value (default 1)"
          },
          "max": {
            "type": "integer",
            "description": "Maximum value (default 100)"
          },
          "count": {
            "type": "integer",
            "description": "How many numbers to generate (default 1)"
          },
          "unique": {
            "type": "boolean",
            "description": "If true, no duplicates (default false)"
          }
        },
        "required": []
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "markdown-to-html",
      "description": "Convert Markdown text to HTML. (ultraquick.tools: Markdown to HTML Converter. Endpoint: POST https://ultraquick.tools/api/markdown-to-html)",
      "parameters": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": "string",
            "description": "Markdown text to convert"
          }
        },
        "required": [
          "markdown"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "reverse-text",
      "description": "Reverse text by characters, words, or lines. (ultraquick.tools: Text Reverser. Endpoint: POST https://ultraquick.tools/api/text-reverser)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Text to reverse"
          },
          "mode": {
            "type": "string",
            "enum": [
              "chars",
              "words",
              "lines"
            ],
            "description": "Reversal mode (default chars)"
          }
        },
        "required": [
          "text"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "generate-slug",
      "description": "Generate a URL-friendly slug from text. (ultraquick.tools: Slug Generator. Endpoint: POST https://ultraquick.tools/api/slug-generator)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Text to convert to a slug"
          },
          "separator": {
            "type": "string",
            "enum": [
              "-",
              "_"
            ],
            "description": "Separator character (default -)"
          }
        },
        "required": [
          "text"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "encode-html-entities",
      "description": "Encode text to HTML entities or decode HTML entities to text. (ultraquick.tools: HTML Entity Encoder & Decoder. Endpoint: POST https://ultraquick.tools/api/html-entity-encoder)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Text to encode or HTML entities to decode"
          },
          "decode": {
            "type": "boolean",
            "description": "Set to true to decode entities (default false = encode)"
          }
        },
        "required": [
          "text"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-compound-interest",
      "description": "Calculate compound interest with optional regular contributions. (ultraquick.tools: Compound Interest Calculator. Endpoint: POST https://ultraquick.tools/api/compound-interest-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "principal": {
            "type": "number",
            "description": "Initial investment amount"
          },
          "annualRate": {
            "type": "number",
            "description": "Annual interest rate as a percentage"
          },
          "years": {
            "type": "number",
            "description": "Investment term in years"
          },
          "compoundsPerYear": {
            "type": "integer",
            "description": "Compounding frequency per year (default 12)"
          },
          "contributions": {
            "type": "number",
            "description": "Regular contribution amount (default 0)"
          },
          "contributionFreq": {
            "type": "string",
            "enum": [
              "monthly"
            ],
            "description": "Contribution frequency (default monthly)"
          }
        },
        "required": [
          "principal",
          "annualRate",
          "years"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-discount",
      "description": "Calculate the final price and savings after a percentage discount. (ultraquick.tools: Discount Calculator. Endpoint: POST https://ultraquick.tools/api/discount-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "originalPrice": {
            "type": "number",
            "description": "Original price before discount"
          },
          "discountPercent": {
            "type": "number",
            "description": "Discount percentage (0-100)"
          }
        },
        "required": [
          "originalPrice",
          "discountPercent"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-sales-tax",
      "description": "Calculate sales tax on a price (add or extract). (ultraquick.tools: Sales Tax Calculator. Endpoint: POST https://ultraquick.tools/api/sales-tax-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "price": {
            "type": "number",
            "description": "Price amount"
          },
          "taxRate": {
            "type": "number",
            "description": "Tax rate as a percentage"
          },
          "taxIncluded": {
            "type": "boolean",
            "description": "If true, the price already includes tax (default false)"
          }
        },
        "required": [
          "price",
          "taxRate"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-volume",
      "description": "Convert a volume between liters, gallons, cups, ml, and more. (ultraquick.tools: Volume Converter. Endpoint: POST https://ultraquick.tools/api/volume-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "description": "The value to convert"
          },
          "from": {
            "type": "string",
            "enum": [
              "l",
              "ml",
              "gal",
              "qt",
              "pt",
              "cup",
              "floz",
              "tbsp",
              "tsp",
              "m3",
              "cm3"
            ],
            "description": "Source unit"
          }
        },
        "required": [
          "value",
          "from"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-area",
      "description": "Convert an area between square meters, square feet, acres, hectares, and more. (ultraquick.tools: Area Converter. Endpoint: POST https://ultraquick.tools/api/area-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "description": "The value to convert"
          },
          "from": {
            "type": "string",
            "enum": [
              "m2",
              "km2",
              "cm2",
              "mm2",
              "mi2",
              "ft2",
              "in2",
              "yd2",
              "ha",
              "acre"
            ],
            "description": "Source unit"
          }
        },
        "required": [
          "value",
          "from"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-speed",
      "description": "Convert a speed between mph, km/h, knots, m/s, ft/s, and Mach. (ultraquick.tools: Speed Converter. Endpoint: POST https://ultraquick.tools/api/speed-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "description": "The value to convert"
          },
          "from": {
            "type": "string",
            "enum": [
              "ms",
              "kmh",
              "mph",
              "kn",
              "fts",
              "mach"
            ],
            "description": "Source unit"
          }
        },
        "required": [
          "value",
          "from"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-time",
      "description": "Convert time between seconds, minutes, hours, days, weeks, months, and years. (ultraquick.tools: Time Converter. Endpoint: POST https://ultraquick.tools/api/time-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "description": "The value to convert"
          },
          "from": {
            "type": "string",
            "enum": [
              "s",
              "ms",
              "min",
              "h",
              "d",
              "w",
              "mo",
              "y"
            ],
            "description": "Source unit"
          }
        },
        "required": [
          "value",
          "from"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "generate-uuid",
      "description": "Generate random version 4 UUIDs. (ultraquick.tools: UUID Generator. Endpoint: POST https://ultraquick.tools/api/uuid-generator)",
      "parameters": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "Number of UUIDs to generate (1-100, default 1)"
          },
          "version": {
            "type": "integer",
            "description": "UUID version (only 4 supported)"
          }
        },
        "required": []
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-fraction",
      "description": "Convert a fraction to decimal and simplify it. (ultraquick.tools: Fraction to Decimal Calculator. Endpoint: POST https://ultraquick.tools/api/fraction-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "numerator": {
            "type": "number",
            "description": "The numerator (top)"
          },
          "denominator": {
            "type": "number",
            "description": "The denominator (bottom)"
          }
        },
        "required": [
          "numerator",
          "denominator"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-gcd",
      "description": "Calculate the GCD of two or more integers. (ultraquick.tools: GCD Calculator. Endpoint: POST https://ultraquick.tools/api/gcd-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "numbers": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "Two or more integers"
          }
        },
        "required": [
          "numbers"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "check-prime",
      "description": "Check if a number is prime. (ultraquick.tools: Prime Number Checker. Endpoint: POST https://ultraquick.tools/api/prime-checker)",
      "parameters": {
        "type": "object",
        "properties": {
          "number": {
            "type": "integer",
            "description": "The integer to check"
          }
        },
        "required": [
          "number"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-average",
      "description": "Calculate mean, median, or mode of a set of numbers. (ultraquick.tools: Average Calculator. Endpoint: POST https://ultraquick.tools/api/average-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "numbers": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "List of numbers"
          },
          "type": {
            "type": "string",
            "enum": [
              "mean",
              "median",
              "mode"
            ],
            "description": "Type of average to calculate (default mean)"
          }
        },
        "required": [
          "numbers"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-roman",
      "description": "Convert between numbers and Roman numerals. (ultraquick.tools: Roman Numeral Converter. Endpoint: POST https://ultraquick.tools/api/roman-numeral-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "value": {
            "description": "A number (for to-roman) or a Roman numeral string (for from-roman)"
          },
          "direction": {
            "type": "string",
            "enum": [
              "to-roman",
              "from-roman"
            ],
            "description": "Conversion direction (default to-roman)"
          }
        },
        "required": [
          "value"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "count-characters",
      "description": "Count total characters, unique characters, and frequency of each character. (ultraquick.tools: Character Counter. Endpoint: POST https://ultraquick.tools/api/character-counter)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Text to analyze"
          }
        },
        "required": [
          "text"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-lcm",
      "description": "Calculate the LCM of two or more integers. (ultraquick.tools: LCM Calculator. Endpoint: POST https://ultraquick.tools/api/lcm-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "numbers": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "Two or more integers"
          }
        },
        "required": [
          "numbers"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-factorial",
      "description": "Calculate the factorial of a non-negative integer. (ultraquick.tools: Factorial Calculator. Endpoint: POST https://ultraquick.tools/api/factorial-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "number": {
            "type": "integer",
            "description": "Non-negative integer (max 170)"
          }
        },
        "required": [
          "number"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-exponent",
      "description": "Calculate base raised to the power of exponent. (ultraquick.tools: Exponent Calculator. Endpoint: POST https://ultraquick.tools/api/exponent-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "base": {
            "type": "number",
            "description": "The base number"
          },
          "exponent": {
            "type": "number",
            "description": "The exponent (power)"
          }
        },
        "required": [
          "base",
          "exponent"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-ratio",
      "description": "Calculate and simplify the ratio of two numbers. (ultraquick.tools: Ratio Calculator. Endpoint: POST https://ultraquick.tools/api/ratio-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "value1": {
            "type": "number",
            "description": "First value"
          },
          "value2": {
            "type": "number",
            "description": "Second value"
          }
        },
        "required": [
          "value1",
          "value2"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-circle",
      "description": "Calculate area, circumference, or diameter of a circle. (ultraquick.tools: Circle Calculator. Endpoint: POST https://ultraquick.tools/api/circle-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "radius": {
            "type": "number",
            "description": "The radius of the circle"
          },
          "calculation": {
            "type": "string",
            "enum": [
              "area",
              "circumference",
              "diameter"
            ],
            "description": "What to calculate (default area)"
          }
        },
        "required": [
          "radius"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-savings-goal",
      "description": "Project savings growth toward a goal. (ultraquick.tools: Savings Goal Calculator. Endpoint: POST https://ultraquick.tools/api/savings-goal-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "goal": {
            "type": "number",
            "description": "Target savings amount"
          },
          "currentSavings": {
            "type": "number",
            "description": "Current savings (default 0)"
          },
          "monthlyContribution": {
            "type": "number",
            "description": "Monthly contribution amount"
          },
          "annualRate": {
            "type": "number",
            "description": "Annual interest rate as percentage (default 0)"
          },
          "months": {
            "type": "number",
            "description": "Maximum months to simulate"
          }
        },
        "required": [
          "goal",
          "months"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-net-worth",
      "description": "Calculate net worth from assets and liabilities. (ultraquick.tools: Net Worth Calculator. Endpoint: POST https://ultraquick.tools/api/net-worth-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "assets": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "List of asset values"
          },
          "liabilities": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "List of liability values"
          }
        },
        "required": [
          "assets",
          "liabilities"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "count-tokens",
      "description": "Estimate token count for LLM prompts. (ultraquick.tools: Token Counter. Endpoint: POST https://ultraquick.tools/api/token-counter)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Text to count tokens for"
          },
          "model": {
            "type": "string",
            "description": "LLM model name (e.g. gpt-4, claude-3.5-sonnet)"
          }
        },
        "required": [
          "text"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "test-regex",
      "description": "Test a regular expression against text. (ultraquick.tools: Regex Tester. Endpoint: POST https://ultraquick.tools/api/regex-tester)",
      "parameters": {
        "type": "object",
        "properties": {
          "pattern": {
            "type": "string",
            "description": "Regular expression pattern"
          },
          "flags": {
            "type": "string",
            "description": "Regex flags (e.g. g, gi, gm)"
          },
          "testString": {
            "type": "string",
            "description": "Text to test against"
          }
        },
        "required": [
          "pattern",
          "testString"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "decode-jwt",
      "description": "Decode a JWT and inspect header, payload, and expiry. (ultraquick.tools: JWT Decoder. Endpoint: POST https://ultraquick.tools/api/jwt-decoder)",
      "parameters": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "The JWT string to decode"
          }
        },
        "required": [
          "token"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "generate-cron",
      "description": "Generate a cron expression from schedule fields. (ultraquick.tools: Cron Expression Generator. Endpoint: POST https://ultraquick.tools/api/cron-generator)",
      "parameters": {
        "type": "object",
        "properties": {
          "minute": {
            "type": "string",
            "description": "Minute field (default *)"
          },
          "hour": {
            "type": "string",
            "description": "Hour field (default *)"
          },
          "day": {
            "type": "string",
            "description": "Day of month (default *)"
          },
          "month": {
            "type": "string",
            "description": "Month (default *)"
          },
          "weekday": {
            "type": "string",
            "description": "Day of week (default *)"
          }
        },
        "required": []
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "generate-gradient",
      "description": "Generate a CSS gradient. (ultraquick.tools: CSS Gradient Generator. Endpoint: POST https://ultraquick.tools/api/gradient-generator)",
      "parameters": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "linear",
              "radial",
              "conic"
            ],
            "description": "Gradient type (default linear)"
          },
          "from": {
            "type": "string",
            "description": "Starting hex color"
          },
          "to": {
            "type": "string",
            "description": "Ending hex color"
          },
          "angle": {
            "type": "number",
            "description": "Angle in degrees (default 90)"
          }
        },
        "required": [
          "from",
          "to"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "generate-meta-tags",
      "description": "Generate SEO meta tags, Open Graph, Twitter Cards, and JSON-LD. (ultraquick.tools: Meta Tag Generator. Endpoint: POST https://ultraquick.tools/api/meta-tag-generator)",
      "parameters": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Page title"
          },
          "description": {
            "type": "string",
            "description": "Meta description"
          },
          "url": {
            "type": "string",
            "description": "Canonical URL"
          },
          "image": {
            "type": "string",
            "description": "Social sharing image URL"
          },
          "siteName": {
            "type": "string",
            "description": "Site name for JSON-LD"
          }
        },
        "required": [
          "title",
          "description"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "generate-hashtags",
      "description": "Generate hashtags from text. (ultraquick.tools: Hashtag Generator. Endpoint: POST https://ultraquick.tools/api/hashtag-generator)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Text to extract hashtags from"
          },
          "maxTags": {
            "type": "integer",
            "description": "Maximum number of hashtags (default 10)"
          }
        },
        "required": [
          "text"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-bmr",
      "description": "Estimate Basal Metabolic Rate from gender, age, weight, and height. (ultraquick.tools: BMR Calculator. Endpoint: POST https://ultraquick.tools/api/bmr-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "gender": {
            "type": "string",
            "enum": [
              "male",
              "female"
            ],
            "description": "Biological sex"
          },
          "age": {
            "type": "number",
            "description": "Age in years"
          },
          "weight": {
            "type": "number",
            "description": "Weight in kilograms"
          },
          "height": {
            "type": "number",
            "description": "Height in centimetres"
          },
          "formula": {
            "type": "string",
            "enum": [
              "mifflin",
              "harris"
            ],
            "description": "Formula to use (default mifflin)"
          }
        },
        "required": [
          "gender",
          "age",
          "weight",
          "height"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-calories",
      "description": "Estimate daily calorie needs (TDEE) and goal targets from body metrics and activity. (ultraquick.tools: Calorie Calculator. Endpoint: POST https://ultraquick.tools/api/calorie-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "gender": {
            "type": "string",
            "enum": [
              "male",
              "female"
            ],
            "description": "Biological sex"
          },
          "age": {
            "type": "number",
            "description": "Age in years"
          },
          "weight": {
            "type": "number",
            "description": "Weight in kilograms"
          },
          "height": {
            "type": "number",
            "description": "Height in centimetres"
          },
          "activity": {
            "type": "string",
            "enum": [
              "sedentary",
              "light",
              "moderate",
              "active",
              "very_active"
            ],
            "description": "Activity level (default moderate)"
          }
        },
        "required": [
          "gender",
          "age",
          "weight",
          "height"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-ideal-weight",
      "description": "Estimate ideal body weight from gender and height using four medical formulas. (ultraquick.tools: Ideal Weight Calculator. Endpoint: POST https://ultraquick.tools/api/ideal-weight-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "gender": {
            "type": "string",
            "enum": [
              "male",
              "female"
            ],
            "description": "Biological sex"
          },
          "heightCm": {
            "type": "number",
            "description": "Height in centimetres"
          }
        },
        "required": [
          "gender",
          "heightCm"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-simple-interest",
      "description": "Calculate simple interest and total amount from principal, rate, and time. (ultraquick.tools: Simple Interest Calculator. Endpoint: POST https://ultraquick.tools/api/simple-interest-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "principal": {
            "type": "number",
            "description": "Principal amount"
          },
          "rate": {
            "type": "number",
            "description": "Annual interest rate as a percentage"
          },
          "time": {
            "type": "number",
            "description": "Time period"
          },
          "timeUnit": {
            "type": "string",
            "enum": [
              "years",
              "months",
              "days"
            ],
            "description": "Unit of time (default years)"
          }
        },
        "required": [
          "principal",
          "rate",
          "time"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-roi",
      "description": "Calculate return on investment and optional annualized ROI. (ultraquick.tools: ROI Calculator. Endpoint: POST https://ultraquick.tools/api/roi-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "cost": {
            "type": "number",
            "description": "Initial investment amount"
          },
          "returnValue": {
            "type": "number",
            "description": "Current or final value"
          },
          "years": {
            "type": "number",
            "description": "Holding period in years (optional, enables annualized ROI)"
          }
        },
        "required": [
          "cost",
          "returnValue"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-time-zone",
      "description": "Convert a wall-clock date and time from one IANA time zone to another. (ultraquick.tools: Time Zone Converter. Endpoint: POST https://ultraquick.tools/api/time-zone-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "datetime": {
            "type": "string",
            "description": "Date and time as YYYY-MM-DDTHH:mm (wall-clock in fromZone)"
          },
          "fromZone": {
            "type": "string",
            "description": "Source IANA time zone (e.g. America/New_York)"
          },
          "toZone": {
            "type": "string",
            "description": "Target IANA time zone (e.g. Europe/London)"
          }
        },
        "required": [
          "datetime",
          "fromZone",
          "toZone"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-mortgage",
      "description": "Calculate a fixed-rate mortgage monthly payment, total paid, and total interest. (ultraquick.tools: Mortgage Calculator. Endpoint: POST https://ultraquick.tools/api/mortgage-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "principal": {
            "type": "number",
            "description": "Home price"
          },
          "annualRate": {
            "type": "number",
            "description": "Annual interest rate as a percentage"
          },
          "years": {
            "type": "number",
            "description": "Loan term in years"
          },
          "downPayment": {
            "type": "number",
            "description": "Down payment (default 0)"
          }
        },
        "required": [
          "principal",
          "annualRate",
          "years"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-inflation",
      "description": "Calculate future value, purchasing power, and inflation factor from a constant inflation rate. (ultraquick.tools: Inflation Calculator. Endpoint: POST https://ultraquick.tools/api/inflation-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "Starting amount"
          },
          "startRate": {
            "type": "number",
            "description": "Optional discount/return rate as a percentage (for real value)"
          },
          "endRate": {
            "type": "number",
            "description": "Annual inflation rate as a percentage"
          },
          "years": {
            "type": "number",
            "description": "Number of years"
          }
        },
        "required": [
          "amount",
          "endRate",
          "years"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-salary",
      "description": "Convert an hourly wage to annual, monthly, weekly, and daily salary. (ultraquick.tools: Salary Calculator. Endpoint: POST https://ultraquick.tools/api/salary-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "hourlyRate": {
            "type": "number",
            "description": "Hourly wage"
          },
          "hoursPerWeek": {
            "type": "number",
            "description": "Hours worked per week (default 40)"
          },
          "weeksPerYear": {
            "type": "number",
            "description": "Weeks worked per year (default 52)"
          }
        },
        "required": [
          "hourlyRate"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-hex-to-rgb",
      "description": "Convert a hex color code to RGB and HSL values. (ultraquick.tools: Hex to RGB Converter. Endpoint: POST https://ultraquick.tools/api/hex-to-rgb-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "hex": {
            "type": "string",
            "description": "Hex color, with or without leading #, 3 or 6 digits"
          }
        },
        "required": [
          "hex"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-binary",
      "description": "Convert a number between binary, octal, decimal, and hexadecimal. (ultraquick.tools: Binary Converter. Endpoint: POST https://ultraquick.tools/api/binary-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "description": "The number to convert, as text"
          },
          "from": {
            "type": "string",
            "enum": [
              "binary",
              "octal",
              "decimal",
              "hex"
            ],
            "description": "Source base (default decimal)"
          },
          "to": {
            "type": "string",
            "enum": [
              "binary",
              "octal",
              "decimal",
              "hex"
            ],
            "description": "Target base (default binary)"
          }
        },
        "required": [
          "value"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-standard-deviation",
      "description": "Calculate standard deviation, variance, mean, median, and range of a dataset. (ultraquick.tools: Standard Deviation Calculator. Endpoint: POST https://ultraquick.tools/api/standard-deviation-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "numbers": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "List of numbers, or a string of numbers separated by commas or spaces"
          },
          "sample": {
            "type": "boolean",
            "description": "Sample (n−1) vs population (n); default true"
          }
        },
        "required": [
          "numbers"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-permutation-combination",
      "description": "Calculate permutation (nPr) and/or combination (nCr) of n items taken r at a time. (ultraquick.tools: Permutation and Combination Calculator. Endpoint: POST https://ultraquick.tools/api/permutation-combination-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "n": {
            "type": "number",
            "description": "Total number of items"
          },
          "r": {
            "type": "number",
            "description": "Number of items to choose"
          },
          "type": {
            "type": "string",
            "enum": [
              "both",
              "permutation",
              "combination"
            ],
            "description": "What to compute (default both)"
          }
        },
        "required": [
          "n",
          "r"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "solve-quadratic",
      "description": "Solve ax² + bx + c = 0, returning discriminant, nature, and roots. (ultraquick.tools: Quadratic Equation Solver. Endpoint: POST https://ultraquick.tools/api/quadratic-equation-solver)",
      "parameters": {
        "type": "object",
        "properties": {
          "a": {
            "type": "number",
            "description": "Coefficient of x² (must be non-zero)"
          },
          "b": {
            "type": "number",
            "description": "Coefficient of x"
          },
          "c": {
            "type": "number",
            "description": "Constant term"
          }
        },
        "required": [
          "a",
          "b",
          "c"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-triangle",
      "description": "Solve a triangle from three sides: area, perimeter, angles, and classification. (ultraquick.tools: Triangle Calculator. Endpoint: POST https://ultraquick.tools/api/triangle-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "a": {
            "type": "number",
            "description": "Side a"
          },
          "b": {
            "type": "number",
            "description": "Side b"
          },
          "c": {
            "type": "number",
            "description": "Side c"
          }
        },
        "required": [
          "a",
          "b",
          "c"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "generate-box-shadow",
      "description": "Generate a CSS box-shadow string from offset, blur, spread, color, and inset. (ultraquick.tools: CSS Box Shadow Generator. Endpoint: POST https://ultraquick.tools/api/css-box-shadow-generator)",
      "parameters": {
        "type": "object",
        "properties": {
          "hOffset": {
            "type": "number",
            "description": "Horizontal offset in px (default 4)"
          },
          "vOffset": {
            "type": "number",
            "description": "Vertical offset in px (default 4)"
          },
          "blur": {
            "type": "number",
            "description": "Blur radius in px (default 10)"
          },
          "spread": {
            "type": "number",
            "description": "Spread radius in px (default 0)"
          },
          "color": {
            "type": "string",
            "description": "Hex or rgb()/rgba() color (default #00000040)"
          },
          "inset": {
            "type": "boolean",
            "description": "Inset shadow (default false)"
          }
        },
        "required": []
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "roll-dice",
      "description": "Roll a given number of dice with a given number of sides. (ultraquick.tools: Dice Roller. Endpoint: POST https://ultraquick.tools/api/dice-roller)",
      "parameters": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "description": "Number of dice to roll (default 1)"
          },
          "sides": {
            "type": "number",
            "description": "Sides per die, at least 2 (default 6)"
          },
          "seed": {
            "type": "number",
            "description": "Optional seed for reproducible rolls"
          }
        },
        "required": []
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "generate-lottery-numbers",
      "description": "Generate a set of unique, sorted random lottery numbers from a range. (ultraquick.tools: Lottery Number Generator. Endpoint: POST https://ultraquick.tools/api/lottery-number-generator)",
      "parameters": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "description": "How many numbers to pick (default 6)"
          },
          "min": {
            "type": "number",
            "description": "Lowest number in the range (default 1)"
          },
          "max": {
            "type": "number",
            "description": "Highest number in the range (default 49)"
          },
          "seed": {
            "type": "number",
            "description": "Optional seed for reproducible picks"
          }
        },
        "required": []
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "translate-morse",
      "description": "Translate text to Morse code, or Morse code back to text. (ultraquick.tools: Morse Code Translator. Endpoint: POST https://ultraquick.tools/api/morse-code-translator)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "The text or Morse code to translate"
          },
          "direction": {
            "type": "string",
            "enum": [
              "to",
              "from"
            ],
            "description": "\"to\" = text to Morse, \"from\" = Morse to text (default \"to\")"
          }
        },
        "required": [
          "text"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "caesar-cipher",
      "description": "Encrypt or decrypt text with a Caesar shift cipher. (ultraquick.tools: Caesar Cipher. Endpoint: POST https://ultraquick.tools/api/caesar-cipher)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "The text to encipher"
          },
          "shift": {
            "type": "number",
            "description": "Number of positions to shift (default 3)"
          },
          "direction": {
            "type": "string",
            "enum": [
              "encrypt",
              "decrypt"
            ],
            "description": "Encrypt or decrypt (default encrypt)"
          }
        },
        "required": [
          "text"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "translate-pig-latin",
      "description": "Translate English text into Pig Latin. (ultraquick.tools: Pig Latin Translator. Endpoint: POST https://ultraquick.tools/api/pig-latin-translator)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "English text to translate"
          },
          "direction": {
            "type": "string",
            "enum": [
              "to"
            ],
            "description": "Only \"to\" is supported"
          }
        },
        "required": [
          "text"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "validate-email",
      "description": "Validate the syntax of an email address and split it into parts. (ultraquick.tools: Email Validator. Endpoint: POST https://ultraquick.tools/api/email-validator)",
      "parameters": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "The email address to validate"
          }
        },
        "required": [
          "email"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "parse-url",
      "description": "Parse a URL into protocol, host, port, path, query, and fragment. (ultraquick.tools: URL Parser. Endpoint: POST https://ultraquick.tools/api/url-parser)",
      "parameters": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "The URL to parse (https assumed if no scheme)"
          }
        },
        "required": [
          "url"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-scientific-notation",
      "description": "Convert a decimal to scientific notation, or scientific notation back to decimal. (ultraquick.tools: Scientific Notation Converter. Endpoint: POST https://ultraquick.tools/api/scientific-notation-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "description": "The number, as a decimal or scientific-notation string"
          },
          "direction": {
            "type": "string",
            "enum": [
              "to",
              "from"
            ],
            "description": "\"to\" = decimal to scientific, \"from\" = scientific to decimal (default \"to\")"
          }
        },
        "required": [
          "value"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-decimal-to-fraction",
      "description": "Convert a decimal to a simplified fraction and mixed number. (ultraquick.tools: Decimal to Fraction Converter. Endpoint: POST https://ultraquick.tools/api/decimal-to-fraction-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "description": "The decimal number to convert"
          },
          "maxDenominator": {
            "type": "number",
            "description": "Largest denominator to allow (default 10000)"
          }
        },
        "required": [
          "value"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "remove-duplicate-lines",
      "description": "Remove duplicate lines from text, keeping the first occurrence. (ultraquick.tools: Remove Duplicate Lines. Endpoint: POST https://ultraquick.tools/api/remove-duplicate-lines)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "The input text"
          },
          "caseSensitive": {
            "type": "boolean",
            "description": "Treat lines differing only in case as duplicates (default true)"
          },
          "trimWhitespace": {
            "type": "boolean",
            "description": "Trim each line before comparing (default false)"
          },
          "keepEmptyLines": {
            "type": "boolean",
            "description": "Preserve blank lines (default false)"
          }
        },
        "required": [
          "text"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "find-and-replace",
      "description": "Find and replace text using literal or regex matching. (ultraquick.tools: Find and Replace Text. Endpoint: POST https://ultraquick.tools/api/find-and-replace-text)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "The input text"
          },
          "find": {
            "type": "string",
            "description": "The string or regex to find"
          },
          "replace": {
            "type": "string",
            "description": "The replacement string (default empty)"
          },
          "useRegex": {
            "type": "boolean",
            "description": "Treat find as a regular expression (default false)"
          },
          "caseSensitive": {
            "type": "boolean",
            "description": "Case-sensitive match (default true)"
          },
          "global": {
            "type": "boolean",
            "description": "Replace all matches (default true)"
          }
        },
        "required": [
          "text",
          "find"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-json-to-csv",
      "description": "Convert a JSON array of objects to CSV. (ultraquick.tools: JSON to CSV Converter. Endpoint: POST https://ultraquick.tools/api/json-to-csv-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "json": {
            "type": "string",
            "description": "A JSON string or already-parsed value"
          },
          "flatten": {
            "type": "boolean",
            "description": "Flatten nested objects with dot notation (default true)"
          }
        },
        "required": [
          "json"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-csv-to-json",
      "description": "Convert CSV with a header row to a JSON array of objects. (ultraquick.tools: CSV to JSON Converter. Endpoint: POST https://ultraquick.tools/api/csv-to-json-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "csv": {
            "type": "string",
            "description": "The CSV text"
          },
          "headerRow": {
            "type": "boolean",
            "description": "Treat the first row as headers (default true)"
          }
        },
        "required": [
          "csv"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "check-color-contrast",
      "description": "Compute the WCAG contrast ratio and AA/AAA pass results for two colors. (ultraquick.tools: Color Contrast Checker. Endpoint: POST https://ultraquick.tools/api/color-contrast-checker)",
      "parameters": {
        "type": "object",
        "properties": {
          "foreground": {
            "type": "string",
            "description": "Foreground (text) hex color"
          },
          "background": {
            "type": "string",
            "description": "Background hex color"
          }
        },
        "required": [
          "foreground",
          "background"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "simplify-fraction",
      "description": "Reduce a fraction to its simplest form. (ultraquick.tools: Fraction Simplifier. Endpoint: POST https://ultraquick.tools/api/fraction-simplifier)",
      "parameters": {
        "type": "object",
        "properties": {
          "numerator": {
            "type": "number",
            "description": "The numerator (integer)"
          },
          "denominator": {
            "type": "number",
            "description": "The denominator (integer, non-zero)"
          }
        },
        "required": [
          "numerator",
          "denominator"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-lcm-multiple",
      "description": "Calculate the least common multiple of two or more integers. (ultraquick.tools: LCM Calculator. Endpoint: POST https://ultraquick.tools/api/least-common-multiple-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "numbers": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "List of integers, or a string of integers separated by commas or spaces"
          }
        },
        "required": [
          "numbers"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-decimal-to-percent",
      "description": "Convert a decimal to a percent, or a percent back to a decimal. (ultraquick.tools: Decimal to Percent Converter. Endpoint: POST https://ultraquick.tools/api/decimal-to-percent-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "description": "The decimal or percent value (a trailing % is allowed)"
          },
          "direction": {
            "type": "string",
            "enum": [
              "to",
              "from"
            ],
            "description": "\"to\" = decimal to percent, \"from\" = percent to decimal (default \"to\")"
          }
        },
        "required": [
          "value"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-aspect-ratio",
      "description": "Reduce width and height to a simple aspect ratio and identify the format. (ultraquick.tools: Aspect Ratio Calculator. Endpoint: POST https://ultraquick.tools/api/aspect-ratio-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "width": {
            "type": "number",
            "description": "Width"
          },
          "height": {
            "type": "number",
            "description": "Height"
          }
        },
        "required": [
          "width",
          "height"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "minify-css",
      "description": "Minify CSS by removing comments, whitespace, and unnecessary separators. (ultraquick.tools: CSS Minifier. Endpoint: POST https://ultraquick.tools/api/css-minifier)",
      "parameters": {
        "type": "object",
        "properties": {
          "css": {
            "type": "string",
            "description": "The CSS to minify"
          }
        },
        "required": [
          "css"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "minify-js",
      "description": "Minify JavaScript by removing comments and whitespace while preserving keyword spacing. (ultraquick.tools: JavaScript Minifier. Endpoint: POST https://ultraquick.tools/api/js-minifier)",
      "parameters": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "The JavaScript to minify"
          }
        },
        "required": [
          "code"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-fraction-to-decimal",
      "description": "Convert a fraction to a decimal and detect repeating cycles. (ultraquick.tools: Fraction to Decimal Converter. Endpoint: POST https://ultraquick.tools/api/fraction-to-decimal-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "numerator": {
            "type": "number",
            "description": "The numerator (integer)"
          },
          "denominator": {
            "type": "number",
            "description": "The denominator (integer, non-zero)"
          },
          "places": {
            "type": "number",
            "description": "Decimal places to round to (default 6)"
          }
        },
        "required": [
          "numerator",
          "denominator"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "minify-html",
      "description": "Minify HTML by removing comments and whitespace while preserving pre/textarea/script/style content. (ultraquick.tools: HTML Minifier. Endpoint: POST https://ultraquick.tools/api/html-minifier)",
      "parameters": {
        "type": "object",
        "properties": {
          "html": {
            "type": "string",
            "description": "The HTML to minify"
          },
          "removeComments": {
            "type": "boolean",
            "description": "Strip comments (default true)"
          },
          "collapseWhitespace": {
            "type": "boolean",
            "description": "Collapse inter-tag whitespace (default true)"
          }
        },
        "required": [
          "html"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "format-sql",
      "description": "Format and beautify a SQL query. (ultraquick.tools: SQL Formatter. Endpoint: POST https://ultraquick.tools/api/sql-formatter)",
      "parameters": {
        "type": "object",
        "properties": {
          "sql": {
            "type": "string",
            "description": "The SQL to format"
          },
          "indent": {
            "type": "number",
            "description": "Indentation width in spaces (default 2)"
          }
        },
        "required": [
          "sql"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "check-leap-year",
      "description": "Check whether a year is a leap year under Gregorian rules. (ultraquick.tools: Leap Year Checker. Endpoint: POST https://ultraquick.tools/api/leap-year-checker)",
      "parameters": {
        "type": "object",
        "properties": {
          "year": {
            "type": "number",
            "description": "The year to check"
          }
        },
        "required": [
          "year"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-html-to-text",
      "description": "Strip HTML tags and return clean plain text. (ultraquick.tools: HTML to Text Converter. Endpoint: POST https://ultraquick.tools/api/html-to-text)",
      "parameters": {
        "type": "object",
        "properties": {
          "html": {
            "type": "string",
            "description": "The HTML to convert"
          },
          "preserveLineBreaks": {
            "type": "boolean",
            "description": "Insert line breaks for block elements (default true)"
          }
        },
        "required": [
          "html"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "count-word-frequency",
      "description": "Count word frequencies in text, sorted by occurrence. (ultraquick.tools: Word Frequency Counter. Endpoint: POST https://ultraquick.tools/api/word-frequency-counter)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "The text to analyse"
          },
          "caseSensitive": {
            "type": "boolean",
            "description": "Treat words differing only in case as distinct (default false)"
          },
          "topN": {
            "type": "number",
            "description": "Optional limit to the top N most frequent words"
          }
        },
        "required": [
          "text"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-time-duration",
      "description": "Calculate the duration between two date-times. (ultraquick.tools: Time Duration Calculator. Endpoint: POST https://ultraquick.tools/api/time-duration-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "start": {
            "type": "string",
            "description": "Start datetime (YYYY-MM-DDTHH:mm)"
          },
          "end": {
            "type": "string",
            "description": "End datetime (YYYY-MM-DDTHH:mm)"
          }
        },
        "required": [
          "start",
          "end"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-week-number",
      "description": "Return the ISO 8601 week number, ISO year, day of week, and day of year for a date. (ultraquick.tools: Week Number Calculator. Endpoint: POST https://ultraquick.tools/api/week-number-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "description": "The date (YYYY-MM-DD)"
          }
        },
        "required": [
          "date"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-day-of-week",
      "description": "Return the day of the week and formatted date for a given date. (ultraquick.tools: Day of Week Calculator. Endpoint: POST https://ultraquick.tools/api/day-of-week-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "description": "The date (YYYY-MM-DD)"
          }
        },
        "required": [
          "date"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-water-intake",
      "description": "Estimate daily water intake from weight, activity, and climate. (ultraquick.tools: Water Intake Calculator. Endpoint: POST https://ultraquick.tools/api/water-intake-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "weight": {
            "type": "number",
            "description": "Body weight"
          },
          "unit": {
            "type": "string",
            "enum": [
              "metric",
              "imperial"
            ],
            "description": "metric uses kg; imperial uses lb (default metric)"
          },
          "activityMinutes": {
            "type": "number",
            "description": "Daily exercise minutes (default 0)"
          },
          "climate": {
            "type": "string",
            "enum": [
              "temperate",
              "hot",
              "cold"
            ],
            "description": "Climate adjustment (default temperate)"
          }
        },
        "required": [
          "weight"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-body-fat",
      "description": "Estimate body fat percentage and category using the US Navy method. (ultraquick.tools: Body Fat Calculator. Endpoint: POST https://ultraquick.tools/api/body-fat-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "gender": {
            "type": "string",
            "enum": [
              "male",
              "female"
            ],
            "description": "Biological sex"
          },
          "height": {
            "type": "number",
            "description": "Height in cm"
          },
          "neck": {
            "type": "number",
            "description": "Neck circumference in cm"
          },
          "waist": {
            "type": "number",
            "description": "Waist circumference in cm"
          },
          "hip": {
            "type": "number",
            "description": "Hip circumference in cm (required for females)"
          }
        },
        "required": [
          "gender",
          "height",
          "neck",
          "waist"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-calories-burned",
      "description": "Estimate calories burned for an activity using MET, weight, and duration. (ultraquick.tools: Calories Burned Calculator. Endpoint: POST https://ultraquick.tools/api/calories-burned-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "activity": {
            "type": "string",
            "enum": [
              "walking",
              "running",
              "cycling",
              "swimming",
              "weight-lifting",
              "yoga",
              "dancing",
              "hiking",
              "basketball",
              "jumping-rope",
              "aerobics",
              "elliptical",
              "rowing",
              "golf",
              "tennis",
              "soccer"
            ],
            "description": "The activity"
          },
          "weight": {
            "type": "number",
            "description": "Body weight"
          },
          "duration": {
            "type": "number",
            "description": "Duration in minutes"
          },
          "unit": {
            "type": "string",
            "enum": [
              "metric",
              "imperial"
            ],
            "description": "metric uses kg; imperial uses lb (default metric)"
          }
        },
        "required": [
          "activity",
          "weight",
          "duration"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-retirement",
      "description": "Project retirement savings and optionally the contribution needed to reach a target. (ultraquick.tools: Retirement Calculator. Endpoint: POST https://ultraquick.tools/api/retirement-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "currentAge": {
            "type": "number",
            "description": "Current age"
          },
          "retirementAge": {
            "type": "number",
            "description": "Target retirement age (must be greater than currentAge)"
          },
          "currentSavings": {
            "type": "number",
            "description": "Existing savings (default 0)"
          },
          "monthlyContribution": {
            "type": "number",
            "description": "Monthly contribution (default 0)"
          },
          "annualReturn": {
            "type": "number",
            "description": "Expected annual return as a percentage (default 7)"
          },
          "targetNestEgg": {
            "type": "number",
            "description": "Optional target savings to compare against"
          }
        },
        "required": [
          "currentAge",
          "retirementAge"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-unit-price",
      "description": "Compute the price per unit from a total price and quantity. (ultraquick.tools: Unit Price Calculator. Endpoint: POST https://ultraquick.tools/api/unit-price-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "price": {
            "type": "number",
            "description": "Total price"
          },
          "quantity": {
            "type": "number",
            "description": "Quantity (positive)"
          },
          "unit": {
            "type": "string",
            "description": "Optional unit label for display"
          }
        },
        "required": [
          "price",
          "quantity"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "add-to-date",
      "description": "Add or subtract years, months, weeks, and days from a date. (ultraquick.tools: Date Adder. Endpoint: POST https://ultraquick.tools/api/date-adder)",
      "parameters": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "description": "Start date (YYYY-MM-DD)"
          },
          "years": {
            "type": "number",
            "description": "Years to add (default 0)"
          },
          "months": {
            "type": "number",
            "description": "Months to add (default 0)"
          },
          "weeks": {
            "type": "number",
            "description": "Weeks to add (default 0)"
          },
          "days": {
            "type": "number",
            "description": "Days to add (default 0)"
          },
          "direction": {
            "type": "string",
            "enum": [
              "add",
              "subtract"
            ],
            "description": "Add or subtract (default add)"
          }
        },
        "required": [
          "date"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-slope",
      "description": "Compute the slope, intercept, angle, and length of a line through two points. (ultraquick.tools: Slope Calculator. Endpoint: POST https://ultraquick.tools/api/slope-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "x1": {
            "type": "number",
            "description": "x of the first point"
          },
          "y1": {
            "type": "number",
            "description": "y of the first point"
          },
          "x2": {
            "type": "number",
            "description": "x of the second point"
          },
          "y2": {
            "type": "number",
            "description": "y of the second point"
          }
        },
        "required": [
          "x1",
          "y1",
          "x2",
          "y2"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-logarithm",
      "description": "Compute the logarithm of a value with a given base. (ultraquick.tools: Logarithm Calculator. Endpoint: POST https://ultraquick.tools/api/logarithm-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "description": "The value to take the log of (must be positive)"
          },
          "base": {
            "type": "number",
            "description": "The logarithm base (positive, not 1; default 10)"
          }
        },
        "required": [
          "value"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-ascii",
      "description": "Convert text to ASCII codes (and hex), or codes back to text. (ultraquick.tools: ASCII Text Converter. Endpoint: POST https://ultraquick.tools/api/ascii-text-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "The text or list of codes"
          },
          "direction": {
            "type": "string",
            "enum": [
              "to",
              "from"
            ],
            "description": "\"to\" = text to codes, \"from\" = codes to text (default \"to\")"
          }
        },
        "required": [
          "text"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "sort-lines",
      "description": "Sort the lines of text ascending or descending. (ultraquick.tools: Line Sorter. Endpoint: POST https://ultraquick.tools/api/line-sorter)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "The input text"
          },
          "order": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "Sort order (default asc)"
          },
          "caseSensitive": {
            "type": "boolean",
            "description": "Case-sensitive sort (default false)"
          },
          "trimLines": {
            "type": "boolean",
            "description": "Trim each line before sorting (default false)"
          }
        },
        "required": [
          "text"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "reverse-words",
      "description": "Reverse the order of words in text, preserving whitespace. (ultraquick.tools: Reverse Words. Endpoint: POST https://ultraquick.tools/api/reverse-words)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "The input text"
          }
        },
        "required": [
          "text"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "trim-whitespace",
      "description": "Normalize, trim, or remove whitespace from text. (ultraquick.tools: Trim Whitespace. Endpoint: POST https://ultraquick.tools/api/trim-whitespace)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "The input text"
          },
          "mode": {
            "type": "string",
            "enum": [
              "normalize",
              "trim",
              "remove"
            ],
            "description": "Cleanup mode (default normalize)"
          }
        },
        "required": [
          "text"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-pressure",
      "description": "Convert a pressure value between supported units. (ultraquick.tools: Pressure Converter. Endpoint: POST https://ultraquick.tools/api/pressure-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "description": "The pressure value"
          },
          "from": {
            "type": "string",
            "enum": [
              "pa",
              "hpa",
              "kpa",
              "mpa",
              "bar",
              "mbar",
              "atm",
              "psi",
              "mmhg",
              "torr",
              "inh2o"
            ],
            "description": "Source unit"
          },
          "to": {
            "type": "string",
            "enum": [
              "pa",
              "hpa",
              "kpa",
              "mpa",
              "bar",
              "mbar",
              "atm",
              "psi",
              "mmhg",
              "torr",
              "inh2o"
            ],
            "description": "Target unit"
          }
        },
        "required": [
          "value",
          "from",
          "to"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-angle",
      "description": "Convert an angle between degrees, radians, gradians, and turns. (ultraquick.tools: Angle Converter. Endpoint: POST https://ultraquick.tools/api/angle-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "description": "The angle value"
          },
          "from": {
            "type": "string",
            "enum": [
              "degrees",
              "radians",
              "gradians",
              "turns"
            ],
            "description": "Source unit (default degrees)"
          },
          "to": {
            "type": "string",
            "enum": [
              "degrees",
              "radians",
              "gradians",
              "turns"
            ],
            "description": "Target unit (default radians)"
          }
        },
        "required": [
          "value"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-probability",
      "description": "Compute probability for coin, dice, or marble (hypergeometric) scenarios. (ultraquick.tools: Probability Calculator. Endpoint: POST https://ultraquick.tools/api/probability-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "coin",
              "dice",
              "marble"
            ],
            "description": "Scenario type"
          },
          "flips": {
            "type": "number",
            "description": "Coin: number of flips"
          },
          "heads": {
            "type": "number",
            "description": "Coin: target number of heads"
          },
          "sides": {
            "type": "number",
            "description": "Dice: number of sides"
          },
          "target": {
            "type": "number",
            "description": "Dice: target value"
          },
          "mode": {
            "type": "string",
            "enum": [
              "exact",
              "atleast",
              "atmost"
            ],
            "description": "Dice: comparison mode (default exact)"
          },
          "total": {
            "type": "number",
            "description": "Marble: total items"
          },
          "successTotal": {
            "type": "number",
            "description": "Marble: total successes"
          },
          "draws": {
            "type": "number",
            "description": "Marble: number drawn"
          },
          "successDraws": {
            "type": "number",
            "description": "Marble: target successes drawn"
          }
        },
        "required": [
          "type"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "convert-cooking",
      "description": "Convert a cooking volume between cups, tablespoons, teaspoons, ml, fl oz, pints, quarts, liters and gallons. (ultraquick.tools: Cooking Converter. Endpoint: POST https://ultraquick.tools/api/cooking-converter)",
      "parameters": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "description": "The quantity to convert"
          },
          "from": {
            "type": "string",
            "enum": [
              "ml",
              "teaspoon",
              "tablespoon",
              "floz",
              "cup",
              "pint",
              "quart",
              "liter",
              "gallon"
            ],
            "description": "Source unit"
          },
          "to": {
            "type": "string",
            "enum": [
              "ml",
              "teaspoon",
              "tablespoon",
              "floz",
              "cup",
              "pint",
              "quart",
              "liter",
              "gallon"
            ],
            "description": "Target unit"
          }
        },
        "required": [
          "value",
          "from",
          "to"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-fuel-cost",
      "description": "Estimate fuel cost from distance, fuel efficiency, and fuel price. (ultraquick.tools: Fuel Cost Calculator. Endpoint: POST https://ultraquick.tools/api/fuel-cost-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "distance": {
            "type": "number",
            "description": "Trip distance"
          },
          "distanceUnit": {
            "type": "string",
            "enum": [
              "miles",
              "km"
            ],
            "description": "Distance unit"
          },
          "efficiency": {
            "type": "number",
            "description": "Fuel efficiency (MPG or L/100km)"
          },
          "efficiencyUnit": {
            "type": "string",
            "enum": [
              "mpg",
              "L/100km"
            ],
            "description": "Efficiency unit"
          },
          "fuelPrice": {
            "type": "number",
            "description": "Fuel price per gallon or per liter"
          },
          "priceUnit": {
            "type": "string",
            "enum": [
              "gallon",
              "liter"
            ],
            "description": "Price unit"
          }
        },
        "required": [
          "distance",
          "efficiency",
          "fuelPrice"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-pace",
      "description": "Calculate running pace and speed from distance and time. (ultraquick.tools: Pace Calculator. Endpoint: POST https://ultraquick.tools/api/pace-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "distance": {
            "type": "number",
            "description": "Run distance"
          },
          "unit": {
            "type": "string",
            "enum": [
              "km",
              "mi"
            ],
            "description": "Distance unit"
          },
          "hours": {
            "type": "number",
            "description": "Finish time hours"
          },
          "minutes": {
            "type": "number",
            "description": "Finish time minutes"
          },
          "seconds": {
            "type": "number",
            "description": "Finish time seconds"
          }
        },
        "required": [
          "distance"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "generate-palette",
      "description": "Generate color palettes (complementary, analogous, triadic, tetradic, monochromatic) from a base hex color. (ultraquick.tools: Color Palette Generator. Endpoint: POST https://ultraquick.tools/api/color-palette-generator)",
      "parameters": {
        "type": "object",
        "properties": {
          "color": {
            "type": "string",
            "description": "Base color as a hex string, e.g. #1a73e8"
          },
          "scheme": {
            "type": "string",
            "enum": [
              "all",
              "complementary",
              "analogous",
              "triadic",
              "tetradic",
              "monochromatic"
            ],
            "description": "Which palette scheme to return"
          }
        },
        "required": [
          "color"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "calculate-gpa",
      "description": "Calculate GPA on a 4.0 scale from a list of courses and credit hours. (ultraquick.tools: GPA Calculator. Endpoint: POST https://ultraquick.tools/api/gpa-calculator)",
      "parameters": {
        "type": "object",
        "properties": {
          "input": {
            "type": "string",
            "description": "One course per line as \"grade credits\" (e.g. \"A 3\"). Credits default to 1 if omitted."
          }
        },
        "required": [
          "input"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "generate-markdown-table",
      "description": "Convert delimited rows into a GitHub-flavored markdown table. (ultraquick.tools: Markdown Table Generator. Endpoint: POST https://ultraquick.tools/api/markdown-table-generator)",
      "parameters": {
        "type": "object",
        "properties": {
          "input": {
            "type": "string",
            "description": "Rows separated by newlines"
          },
          "delimiter": {
            "type": "string",
            "enum": [
              ",",
              "tab",
              "pipe",
              "space"
            ],
            "description": "Column delimiter"
          },
          "hasHeader": {
            "type": "boolean",
            "description": "Whether the first row is a header"
          }
        },
        "required": [
          "input"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "generate-hmac",
      "description": "Generate an HMAC (SHA-256/SHA-1/SHA-384/SHA-512) from a message and secret key, as hex or base64. (ultraquick.tools: HMAC Generator. Endpoint: POST https://ultraquick.tools/api/hmac-generator)",
      "parameters": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Text to authenticate"
          },
          "key": {
            "type": "string",
            "description": "Secret key used to sign the message"
          },
          "algorithm": {
            "type": "string",
            "enum": [
              "sha-256",
              "sha-1",
              "sha-384",
              "sha-512"
            ],
            "description": "Hash algorithm (default sha-256)"
          },
          "encoding": {
            "type": "string",
            "enum": [
              "hex",
              "base64"
            ],
            "description": "Output encoding (default hex)"
          }
        },
        "required": [
          "message",
          "key"
        ]
      }
    }
  },
  {
    "type": "function",
    "function": {
      "name": "vigenere-cipher",
      "description": "Encrypt or decrypt text with a Vigenere (polyalphabetic) keyword cipher. (ultraquick.tools: Vigenère Cipher. Endpoint: POST https://ultraquick.tools/api/vigenere-cipher)",
      "parameters": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "The text to encipher"
          },
          "key": {
            "type": "string",
            "description": "Alphabetic keyword (letters only) (default \"key\")"
          },
          "direction": {
            "type": "string",
            "enum": [
              "encrypt",
              "decrypt"
            ],
            "description": "Encrypt or decrypt (default encrypt)"
          }
        },
        "required": [
          "text"
        ]
      }
    }
  }
]