{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "symbol": {
      "type": "string",
      "title": "Coin",
      "description": "A supported symbol; arithmetic uses the price you enter.",
      "enum": [
        "BTC",
        "ETH",
        "USDT",
        "BNB",
        "SOL",
        "USDC",
        "XRP",
        "ADA",
        "DOGE",
        "TRX",
        "AVAX",
        "SHIB",
        "DOT",
        "LINK",
        "MATIC",
        "LTC",
        "BCH",
        "ATOM",
        "UNI",
        "NEAR",
        "APT",
        "ARB",
        "OP",
        "STX",
        "ICP",
        "INJ",
        "FIL",
        "HBAR",
        "IMX",
        "RUNE",
        "VET",
        "MKR",
        "GRT",
        "ALGO",
        "SAND",
        "EOS",
        "AAVE",
        "THETA",
        "AXS",
        "CRV",
        "MANA",
        "SUI",
        "FTM",
        "XLM",
        "APE",
        "CHZ",
        "FLOW",
        "EGLD",
        "DAI",
        "WBTC"
      ],
      "default": "BTC"
    },
    "currency": {
      "type": "string",
      "title": "Currency",
      "description": "All entered amounts use this currency. No automatic currency conversion.",
      "enum": [
        "USD",
        "EUR",
        "GBP",
        "JPY",
        "CHF",
        "CAD",
        "AUD",
        "CNY",
        "INR",
        "MXN",
        "BRL",
        "SGD",
        "HKD",
        "SEK",
        "NOK",
        "DKK",
        "NZD",
        "ZAR",
        "KRW",
        "TRY",
        "PLN",
        "CZK",
        "HUF",
        "AED",
        "THB",
        "IDR",
        "MYR",
        "PHP"
      ],
      "default": "USD"
    },
    "mode": {
      "type": "string",
      "title": "Mode",
      "description": "Mode",
      "enum": [
        "convert",
        "dca"
      ],
      "default": "convert"
    },
    "direction": {
      "type": "string",
      "title": "Conversion direction",
      "description": "Conversion direction",
      "enum": [
        "coin-to-fiat",
        "fiat-to-coin"
      ],
      "default": "coin-to-fiat"
    },
    "price": {
      "type": "number",
      "title": "Coin price in USD",
      "description": "Your entered USD price, or an indicative quote when available.",
      "default": 50000,
      "minimum": 1e-9,
      "maximum": 1000000000
    },
    "fxRate": {
      "type": "number",
      "title": "Fiat units per US dollar",
      "description": "One for USD. Other currencies require your entered conversion rate.",
      "default": 1,
      "minimum": 1e-9,
      "maximum": 1000000000
    },
    "amount": {
      "type": "number",
      "title": "Amount to convert",
      "description": "Amount to convert",
      "default": 1,
      "minimum": 0,
      "maximum": 1000000000000
    },
    "monthlyContribution": {
      "type": "number",
      "title": "Monthly DCA contribution in fiat",
      "description": "Monthly DCA contribution in fiat",
      "default": 100,
      "minimum": 0,
      "maximum": 1000000000000
    },
    "months": {
      "type": "integer",
      "title": "DCA duration in months",
      "description": "DCA duration in months",
      "default": 12,
      "minimum": 1,
      "maximum": 600
    },
    "annualReturn": {
      "type": "number",
      "title": "Assumed annual coin price change (%)",
      "description": "Assumed annual coin price change (%)",
      "default": 0,
      "minimum": -99,
      "maximum": 100
    },
    "feePercent": {
      "type": "number",
      "title": "Purchase or sale fee (%)",
      "description": "Purchase or sale fee (%)",
      "default": 0,
      "minimum": 0,
      "maximum": 99
    },
    "initialInvestment": {
      "type": "number",
      "title": "Initial DCA investment in fiat",
      "description": "Invested at the entered initial price, before monthly purchases.",
      "default": 0,
      "minimum": 0,
      "maximum": 1000000000000
    }
  },
  "required": [
    "symbol",
    "currency",
    "mode",
    "direction",
    "price",
    "fxRate",
    "amount",
    "monthlyContribution",
    "months",
    "annualReturn",
    "feePercent",
    "initialInvestment"
  ]
}