{
  "Param": {
    "type": "object",
    "properties": {
      "remark": {
        "type": "string",
        "nullable": true
      },
      "valuelist": {
        "type": "array",
        "items": {
          "type": "object"
        },
        "nullable": true
      },
      "groups": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "description": {
        "type": "string",
        "nullable": true
      },
      "value": {
        "type": "number"
      },
      "valueBeforeRules": {
        "type": "number"
      },
      "minExpression": {
        "type": "string",
        "nullable": true
      },
      "maxExpression": {
        "type": "string",
        "nullable": true
      },
      "minValue": {
        "type": "number",
        "nullable": true
      },
      "maxValue": {
        "type": "number",
        "nullable": true
      },
      "name": {
        "type": "string"
      },
      "expression": {
        "type": "string"
      },
      "calcResult": {
        "type": "string"
      }
    }
  },

  "ParamWithValueList": {
    "allOf": [
      {
        "$ref": "#/Param"
      },
      {
        "type": "object",
        "properties": {
          "valuelist": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "description": {
                  "type": "string",
                  "nullable": true
                },
                "value": {
                  "type": "number"
                }
              }
            }
          }
        }
      }
    ]
  }
}
