{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.calculatorx.com/schemas/math.percent_change/1.2.0/input.json",
  "title": "Percentage change — input",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "v1": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "pattern": "^\\s*$",
          "maxLength": 512
        }
      ]
    },
    "v1Input": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "pattern": "^\\s*$",
          "maxLength": 512
        }
      ]
    },
    "oldV": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "pattern": "^\\s*$",
          "maxLength": 512
        }
      ]
    },
    "old": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "pattern": "^\\s*$",
          "maxLength": 512
        }
      ]
    },
    "oldInput": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "pattern": "^\\s*$",
          "maxLength": 512
        }
      ]
    },
    "initial": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "pattern": "^\\s*$",
          "maxLength": 512
        }
      ]
    },
    "v2": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "pattern": "^\\s*$",
          "maxLength": 512
        }
      ]
    },
    "v2Input": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "pattern": "^\\s*$",
          "maxLength": 512
        }
      ]
    },
    "newV": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "pattern": "^\\s*$",
          "maxLength": 512
        }
      ]
    },
    "new": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "pattern": "^\\s*$",
          "maxLength": 512
        }
      ]
    },
    "newInput": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "pattern": "^\\s*$",
          "maxLength": 512
        }
      ]
    },
    "final": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "pattern": "^\\s*$",
          "maxLength": 512
        }
      ]
    },
    "p": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "pattern": "^\\s*$",
          "maxLength": 512
        }
      ],
      "x-unit": "%",
      "x-unit-id": "cx:percent",
      "x-quantity-kind": "ratio",
      "x-role": "scalar",
      "x-dimension": [
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      "x-uuce-unit": {
        "unit_id": "cx:percent",
        "revision": "1.0.0",
        "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
        "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
        "quantity_kind": "ratio",
        "dimension": [
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "registry_version": "0.3.0-preview.3",
        "digest_contract": "calculatorx-unit-definition-digests-v2",
        "registry_status": "preview",
        "definition_lifecycle": "candidate",
        "role": "scalar"
      }
    },
    "pInput": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "pattern": "^\\s*$",
          "maxLength": 512
        }
      ],
      "x-unit": "%",
      "x-unit-id": "cx:percent",
      "x-quantity-kind": "ratio",
      "x-role": "scalar",
      "x-dimension": [
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      "x-uuce-unit": {
        "unit_id": "cx:percent",
        "revision": "1.0.0",
        "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
        "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
        "quantity_kind": "ratio",
        "dimension": [
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "registry_version": "0.3.0-preview.3",
        "digest_contract": "calculatorx-unit-definition-digests-v2",
        "registry_status": "preview",
        "definition_lifecycle": "candidate",
        "role": "scalar"
      }
    },
    "P": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "pattern": "^\\s*$",
          "maxLength": 512
        }
      ],
      "x-unit": "%",
      "x-unit-id": "cx:percent",
      "x-quantity-kind": "ratio",
      "x-role": "scalar",
      "x-dimension": [
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      "x-uuce-unit": {
        "unit_id": "cx:percent",
        "revision": "1.0.0",
        "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
        "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
        "quantity_kind": "ratio",
        "dimension": [
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "registry_version": "0.3.0-preview.3",
        "digest_contract": "calculatorx-unit-definition-digests-v2",
        "registry_status": "preview",
        "definition_lifecycle": "candidate",
        "role": "scalar"
      }
    },
    "percent": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "pattern": "^\\s*$",
          "maxLength": 512
        }
      ],
      "x-unit": "%",
      "x-unit-id": "cx:percent",
      "x-quantity-kind": "ratio",
      "x-role": "scalar",
      "x-dimension": [
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      "x-uuce-unit": {
        "unit_id": "cx:percent",
        "revision": "1.0.0",
        "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
        "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
        "quantity_kind": "ratio",
        "dimension": [
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "registry_version": "0.3.0-preview.3",
        "digest_contract": "calculatorx-unit-definition-digests-v2",
        "registry_status": "preview",
        "definition_lifecycle": "candidate",
        "role": "scalar"
      }
    },
    "percent_change": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "pattern": "^\\s*$",
          "maxLength": 512
        }
      ]
    },
    "pct": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "pattern": "^\\s*$",
          "maxLength": 512
        }
      ],
      "x-unit": "%",
      "x-unit-id": "cx:percent",
      "x-quantity-kind": "ratio",
      "x-role": "scalar",
      "x-dimension": [
        0,
        0,
        0,
        0,
        0,
        0,
        0
      ],
      "x-uuce-unit": {
        "unit_id": "cx:percent",
        "revision": "1.0.0",
        "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
        "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
        "quantity_kind": "ratio",
        "dimension": [
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ],
        "registry_version": "0.3.0-preview.3",
        "digest_contract": "calculatorx-unit-definition-digests-v2",
        "registry_status": "preview",
        "definition_lifecycle": "candidate",
        "role": "scalar"
      }
    },
    "solve_for": {
      "enum": [
        "p",
        "percent",
        "pct",
        "percent_change",
        "change",
        "v1",
        "initial",
        "old",
        "oldv",
        "v2",
        "final",
        "new",
        "newv"
      ]
    },
    "solveFor": {
      "enum": [
        "p",
        "percent",
        "pct",
        "percent_change",
        "change",
        "v1",
        "initial",
        "old",
        "oldv",
        "v2",
        "final",
        "new",
        "newv"
      ]
    }
  },
  "anyOf": [
    {
      "allOf": [
        {
          "anyOf": [
            {
              "required": [
                "v1"
              ],
              "properties": {
                "v1": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "v1Input"
              ],
              "properties": {
                "v1Input": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "oldV"
              ],
              "properties": {
                "oldV": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "old"
              ],
              "properties": {
                "old": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "oldInput"
              ],
              "properties": {
                "oldInput": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "initial"
              ],
              "properties": {
                "initial": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            }
          ]
        },
        {
          "anyOf": [
            {
              "required": [
                "v2"
              ],
              "properties": {
                "v2": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "v2Input"
              ],
              "properties": {
                "v2Input": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "newV"
              ],
              "properties": {
                "newV": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "new"
              ],
              "properties": {
                "new": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "newInput"
              ],
              "properties": {
                "newInput": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "final"
              ],
              "properties": {
                "final": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            }
          ]
        }
      ]
    },
    {
      "allOf": [
        {
          "anyOf": [
            {
              "required": [
                "v2"
              ],
              "properties": {
                "v2": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "v2Input"
              ],
              "properties": {
                "v2Input": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "newV"
              ],
              "properties": {
                "newV": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "new"
              ],
              "properties": {
                "new": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "newInput"
              ],
              "properties": {
                "newInput": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "final"
              ],
              "properties": {
                "final": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            }
          ]
        },
        {
          "anyOf": [
            {
              "required": [
                "p"
              ],
              "properties": {
                "p": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ],
                  "x-unit": "%",
                  "x-unit-id": "cx:percent",
                  "x-quantity-kind": "ratio",
                  "x-role": "scalar",
                  "x-dimension": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                  ],
                  "x-uuce-unit": {
                    "unit_id": "cx:percent",
                    "revision": "1.0.0",
                    "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                    "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                    "quantity_kind": "ratio",
                    "dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "registry_version": "0.3.0-preview.3",
                    "digest_contract": "calculatorx-unit-definition-digests-v2",
                    "registry_status": "preview",
                    "definition_lifecycle": "candidate",
                    "role": "scalar"
                  }
                }
              }
            },
            {
              "required": [
                "pInput"
              ],
              "properties": {
                "pInput": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ],
                  "x-unit": "%",
                  "x-unit-id": "cx:percent",
                  "x-quantity-kind": "ratio",
                  "x-role": "scalar",
                  "x-dimension": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                  ],
                  "x-uuce-unit": {
                    "unit_id": "cx:percent",
                    "revision": "1.0.0",
                    "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                    "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                    "quantity_kind": "ratio",
                    "dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "registry_version": "0.3.0-preview.3",
                    "digest_contract": "calculatorx-unit-definition-digests-v2",
                    "registry_status": "preview",
                    "definition_lifecycle": "candidate",
                    "role": "scalar"
                  }
                }
              }
            },
            {
              "required": [
                "P"
              ],
              "properties": {
                "P": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ],
                  "x-unit": "%",
                  "x-unit-id": "cx:percent",
                  "x-quantity-kind": "ratio",
                  "x-role": "scalar",
                  "x-dimension": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                  ],
                  "x-uuce-unit": {
                    "unit_id": "cx:percent",
                    "revision": "1.0.0",
                    "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                    "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                    "quantity_kind": "ratio",
                    "dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "registry_version": "0.3.0-preview.3",
                    "digest_contract": "calculatorx-unit-definition-digests-v2",
                    "registry_status": "preview",
                    "definition_lifecycle": "candidate",
                    "role": "scalar"
                  }
                }
              }
            },
            {
              "required": [
                "percent"
              ],
              "properties": {
                "percent": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ],
                  "x-unit": "%",
                  "x-unit-id": "cx:percent",
                  "x-quantity-kind": "ratio",
                  "x-role": "scalar",
                  "x-dimension": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                  ],
                  "x-uuce-unit": {
                    "unit_id": "cx:percent",
                    "revision": "1.0.0",
                    "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                    "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                    "quantity_kind": "ratio",
                    "dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "registry_version": "0.3.0-preview.3",
                    "digest_contract": "calculatorx-unit-definition-digests-v2",
                    "registry_status": "preview",
                    "definition_lifecycle": "candidate",
                    "role": "scalar"
                  }
                }
              }
            },
            {
              "required": [
                "percent_change"
              ],
              "properties": {
                "percent_change": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "pct"
              ],
              "properties": {
                "pct": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ],
                  "x-unit": "%",
                  "x-unit-id": "cx:percent",
                  "x-quantity-kind": "ratio",
                  "x-role": "scalar",
                  "x-dimension": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                  ],
                  "x-uuce-unit": {
                    "unit_id": "cx:percent",
                    "revision": "1.0.0",
                    "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                    "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                    "quantity_kind": "ratio",
                    "dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "registry_version": "0.3.0-preview.3",
                    "digest_contract": "calculatorx-unit-definition-digests-v2",
                    "registry_status": "preview",
                    "definition_lifecycle": "candidate",
                    "role": "scalar"
                  }
                }
              }
            }
          ]
        }
      ]
    },
    {
      "allOf": [
        {
          "anyOf": [
            {
              "required": [
                "v1"
              ],
              "properties": {
                "v1": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "v1Input"
              ],
              "properties": {
                "v1Input": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "oldV"
              ],
              "properties": {
                "oldV": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "old"
              ],
              "properties": {
                "old": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "oldInput"
              ],
              "properties": {
                "oldInput": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "initial"
              ],
              "properties": {
                "initial": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            }
          ]
        },
        {
          "anyOf": [
            {
              "required": [
                "p"
              ],
              "properties": {
                "p": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ],
                  "x-unit": "%",
                  "x-unit-id": "cx:percent",
                  "x-quantity-kind": "ratio",
                  "x-role": "scalar",
                  "x-dimension": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                  ],
                  "x-uuce-unit": {
                    "unit_id": "cx:percent",
                    "revision": "1.0.0",
                    "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                    "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                    "quantity_kind": "ratio",
                    "dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "registry_version": "0.3.0-preview.3",
                    "digest_contract": "calculatorx-unit-definition-digests-v2",
                    "registry_status": "preview",
                    "definition_lifecycle": "candidate",
                    "role": "scalar"
                  }
                }
              }
            },
            {
              "required": [
                "pInput"
              ],
              "properties": {
                "pInput": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ],
                  "x-unit": "%",
                  "x-unit-id": "cx:percent",
                  "x-quantity-kind": "ratio",
                  "x-role": "scalar",
                  "x-dimension": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                  ],
                  "x-uuce-unit": {
                    "unit_id": "cx:percent",
                    "revision": "1.0.0",
                    "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                    "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                    "quantity_kind": "ratio",
                    "dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "registry_version": "0.3.0-preview.3",
                    "digest_contract": "calculatorx-unit-definition-digests-v2",
                    "registry_status": "preview",
                    "definition_lifecycle": "candidate",
                    "role": "scalar"
                  }
                }
              }
            },
            {
              "required": [
                "P"
              ],
              "properties": {
                "P": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ],
                  "x-unit": "%",
                  "x-unit-id": "cx:percent",
                  "x-quantity-kind": "ratio",
                  "x-role": "scalar",
                  "x-dimension": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                  ],
                  "x-uuce-unit": {
                    "unit_id": "cx:percent",
                    "revision": "1.0.0",
                    "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                    "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                    "quantity_kind": "ratio",
                    "dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "registry_version": "0.3.0-preview.3",
                    "digest_contract": "calculatorx-unit-definition-digests-v2",
                    "registry_status": "preview",
                    "definition_lifecycle": "candidate",
                    "role": "scalar"
                  }
                }
              }
            },
            {
              "required": [
                "percent"
              ],
              "properties": {
                "percent": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ],
                  "x-unit": "%",
                  "x-unit-id": "cx:percent",
                  "x-quantity-kind": "ratio",
                  "x-role": "scalar",
                  "x-dimension": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                  ],
                  "x-uuce-unit": {
                    "unit_id": "cx:percent",
                    "revision": "1.0.0",
                    "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                    "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                    "quantity_kind": "ratio",
                    "dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "registry_version": "0.3.0-preview.3",
                    "digest_contract": "calculatorx-unit-definition-digests-v2",
                    "registry_status": "preview",
                    "definition_lifecycle": "candidate",
                    "role": "scalar"
                  }
                }
              }
            },
            {
              "required": [
                "percent_change"
              ],
              "properties": {
                "percent_change": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "pct"
              ],
              "properties": {
                "pct": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ],
                  "x-unit": "%",
                  "x-unit-id": "cx:percent",
                  "x-quantity-kind": "ratio",
                  "x-role": "scalar",
                  "x-dimension": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0
                  ],
                  "x-uuce-unit": {
                    "unit_id": "cx:percent",
                    "revision": "1.0.0",
                    "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                    "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                    "quantity_kind": "ratio",
                    "dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "registry_version": "0.3.0-preview.3",
                    "digest_contract": "calculatorx-unit-definition-digests-v2",
                    "registry_status": "preview",
                    "definition_lifecycle": "candidate",
                    "role": "scalar"
                  }
                }
              }
            }
          ]
        }
      ]
    }
  ],
  "allOf": [
    {
      "if": {
        "required": [
          "solve_for"
        ],
        "properties": {
          "solve_for": {
            "enum": [
              "p",
              "percent",
              "pct",
              "percent_change",
              "change"
            ]
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "v1"
                ],
                "properties": {
                  "v1": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "v1Input"
                ],
                "properties": {
                  "v1Input": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "oldV"
                ],
                "properties": {
                  "oldV": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "old"
                ],
                "properties": {
                  "old": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "oldInput"
                ],
                "properties": {
                  "oldInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "initial"
                ],
                "properties": {
                  "initial": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "v2"
                ],
                "properties": {
                  "v2": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "v2Input"
                ],
                "properties": {
                  "v2Input": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "newV"
                ],
                "properties": {
                  "newV": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "new"
                ],
                "properties": {
                  "new": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "newInput"
                ],
                "properties": {
                  "newInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "final"
                ],
                "properties": {
                  "final": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solve_for"
        ],
        "properties": {
          "solve_for": {
            "enum": [
              "v1",
              "initial",
              "old",
              "oldv"
            ]
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "v2"
                ],
                "properties": {
                  "v2": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "v2Input"
                ],
                "properties": {
                  "v2Input": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "newV"
                ],
                "properties": {
                  "newV": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "new"
                ],
                "properties": {
                  "new": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "newInput"
                ],
                "properties": {
                  "newInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "final"
                ],
                "properties": {
                  "final": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "p"
                ],
                "properties": {
                  "p": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ],
                    "x-unit": "%",
                    "x-unit-id": "cx:percent",
                    "x-quantity-kind": "ratio",
                    "x-role": "scalar",
                    "x-dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "x-uuce-unit": {
                      "unit_id": "cx:percent",
                      "revision": "1.0.0",
                      "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                      "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                      "quantity_kind": "ratio",
                      "dimension": [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                      ],
                      "registry_version": "0.3.0-preview.3",
                      "digest_contract": "calculatorx-unit-definition-digests-v2",
                      "registry_status": "preview",
                      "definition_lifecycle": "candidate",
                      "role": "scalar"
                    }
                  }
                }
              },
              {
                "required": [
                  "pInput"
                ],
                "properties": {
                  "pInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ],
                    "x-unit": "%",
                    "x-unit-id": "cx:percent",
                    "x-quantity-kind": "ratio",
                    "x-role": "scalar",
                    "x-dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "x-uuce-unit": {
                      "unit_id": "cx:percent",
                      "revision": "1.0.0",
                      "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                      "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                      "quantity_kind": "ratio",
                      "dimension": [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                      ],
                      "registry_version": "0.3.0-preview.3",
                      "digest_contract": "calculatorx-unit-definition-digests-v2",
                      "registry_status": "preview",
                      "definition_lifecycle": "candidate",
                      "role": "scalar"
                    }
                  }
                }
              },
              {
                "required": [
                  "P"
                ],
                "properties": {
                  "P": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ],
                    "x-unit": "%",
                    "x-unit-id": "cx:percent",
                    "x-quantity-kind": "ratio",
                    "x-role": "scalar",
                    "x-dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "x-uuce-unit": {
                      "unit_id": "cx:percent",
                      "revision": "1.0.0",
                      "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                      "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                      "quantity_kind": "ratio",
                      "dimension": [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                      ],
                      "registry_version": "0.3.0-preview.3",
                      "digest_contract": "calculatorx-unit-definition-digests-v2",
                      "registry_status": "preview",
                      "definition_lifecycle": "candidate",
                      "role": "scalar"
                    }
                  }
                }
              },
              {
                "required": [
                  "percent"
                ],
                "properties": {
                  "percent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ],
                    "x-unit": "%",
                    "x-unit-id": "cx:percent",
                    "x-quantity-kind": "ratio",
                    "x-role": "scalar",
                    "x-dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "x-uuce-unit": {
                      "unit_id": "cx:percent",
                      "revision": "1.0.0",
                      "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                      "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                      "quantity_kind": "ratio",
                      "dimension": [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                      ],
                      "registry_version": "0.3.0-preview.3",
                      "digest_contract": "calculatorx-unit-definition-digests-v2",
                      "registry_status": "preview",
                      "definition_lifecycle": "candidate",
                      "role": "scalar"
                    }
                  }
                }
              },
              {
                "required": [
                  "percent_change"
                ],
                "properties": {
                  "percent_change": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "pct"
                ],
                "properties": {
                  "pct": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ],
                    "x-unit": "%",
                    "x-unit-id": "cx:percent",
                    "x-quantity-kind": "ratio",
                    "x-role": "scalar",
                    "x-dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "x-uuce-unit": {
                      "unit_id": "cx:percent",
                      "revision": "1.0.0",
                      "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                      "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                      "quantity_kind": "ratio",
                      "dimension": [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                      ],
                      "registry_version": "0.3.0-preview.3",
                      "digest_contract": "calculatorx-unit-definition-digests-v2",
                      "registry_status": "preview",
                      "definition_lifecycle": "candidate",
                      "role": "scalar"
                    }
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solve_for"
        ],
        "properties": {
          "solve_for": {
            "enum": [
              "v2",
              "final",
              "new",
              "newv"
            ]
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "v1"
                ],
                "properties": {
                  "v1": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "v1Input"
                ],
                "properties": {
                  "v1Input": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "oldV"
                ],
                "properties": {
                  "oldV": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "old"
                ],
                "properties": {
                  "old": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "oldInput"
                ],
                "properties": {
                  "oldInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "initial"
                ],
                "properties": {
                  "initial": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "p"
                ],
                "properties": {
                  "p": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ],
                    "x-unit": "%",
                    "x-unit-id": "cx:percent",
                    "x-quantity-kind": "ratio",
                    "x-role": "scalar",
                    "x-dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "x-uuce-unit": {
                      "unit_id": "cx:percent",
                      "revision": "1.0.0",
                      "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                      "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                      "quantity_kind": "ratio",
                      "dimension": [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                      ],
                      "registry_version": "0.3.0-preview.3",
                      "digest_contract": "calculatorx-unit-definition-digests-v2",
                      "registry_status": "preview",
                      "definition_lifecycle": "candidate",
                      "role": "scalar"
                    }
                  }
                }
              },
              {
                "required": [
                  "pInput"
                ],
                "properties": {
                  "pInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ],
                    "x-unit": "%",
                    "x-unit-id": "cx:percent",
                    "x-quantity-kind": "ratio",
                    "x-role": "scalar",
                    "x-dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "x-uuce-unit": {
                      "unit_id": "cx:percent",
                      "revision": "1.0.0",
                      "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                      "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                      "quantity_kind": "ratio",
                      "dimension": [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                      ],
                      "registry_version": "0.3.0-preview.3",
                      "digest_contract": "calculatorx-unit-definition-digests-v2",
                      "registry_status": "preview",
                      "definition_lifecycle": "candidate",
                      "role": "scalar"
                    }
                  }
                }
              },
              {
                "required": [
                  "P"
                ],
                "properties": {
                  "P": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ],
                    "x-unit": "%",
                    "x-unit-id": "cx:percent",
                    "x-quantity-kind": "ratio",
                    "x-role": "scalar",
                    "x-dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "x-uuce-unit": {
                      "unit_id": "cx:percent",
                      "revision": "1.0.0",
                      "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                      "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                      "quantity_kind": "ratio",
                      "dimension": [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                      ],
                      "registry_version": "0.3.0-preview.3",
                      "digest_contract": "calculatorx-unit-definition-digests-v2",
                      "registry_status": "preview",
                      "definition_lifecycle": "candidate",
                      "role": "scalar"
                    }
                  }
                }
              },
              {
                "required": [
                  "percent"
                ],
                "properties": {
                  "percent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ],
                    "x-unit": "%",
                    "x-unit-id": "cx:percent",
                    "x-quantity-kind": "ratio",
                    "x-role": "scalar",
                    "x-dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "x-uuce-unit": {
                      "unit_id": "cx:percent",
                      "revision": "1.0.0",
                      "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                      "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                      "quantity_kind": "ratio",
                      "dimension": [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                      ],
                      "registry_version": "0.3.0-preview.3",
                      "digest_contract": "calculatorx-unit-definition-digests-v2",
                      "registry_status": "preview",
                      "definition_lifecycle": "candidate",
                      "role": "scalar"
                    }
                  }
                }
              },
              {
                "required": [
                  "percent_change"
                ],
                "properties": {
                  "percent_change": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "pct"
                ],
                "properties": {
                  "pct": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ],
                    "x-unit": "%",
                    "x-unit-id": "cx:percent",
                    "x-quantity-kind": "ratio",
                    "x-role": "scalar",
                    "x-dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "x-uuce-unit": {
                      "unit_id": "cx:percent",
                      "revision": "1.0.0",
                      "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                      "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                      "quantity_kind": "ratio",
                      "dimension": [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                      ],
                      "registry_version": "0.3.0-preview.3",
                      "digest_contract": "calculatorx-unit-definition-digests-v2",
                      "registry_status": "preview",
                      "definition_lifecycle": "candidate",
                      "role": "scalar"
                    }
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solveFor"
        ],
        "properties": {
          "solveFor": {
            "enum": [
              "p",
              "percent",
              "pct",
              "percent_change",
              "change"
            ]
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "v1"
                ],
                "properties": {
                  "v1": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "v1Input"
                ],
                "properties": {
                  "v1Input": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "oldV"
                ],
                "properties": {
                  "oldV": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "old"
                ],
                "properties": {
                  "old": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "oldInput"
                ],
                "properties": {
                  "oldInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "initial"
                ],
                "properties": {
                  "initial": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "v2"
                ],
                "properties": {
                  "v2": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "v2Input"
                ],
                "properties": {
                  "v2Input": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "newV"
                ],
                "properties": {
                  "newV": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "new"
                ],
                "properties": {
                  "new": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "newInput"
                ],
                "properties": {
                  "newInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "final"
                ],
                "properties": {
                  "final": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solveFor"
        ],
        "properties": {
          "solveFor": {
            "enum": [
              "v1",
              "initial",
              "old",
              "oldv"
            ]
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "v2"
                ],
                "properties": {
                  "v2": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "v2Input"
                ],
                "properties": {
                  "v2Input": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "newV"
                ],
                "properties": {
                  "newV": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "new"
                ],
                "properties": {
                  "new": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "newInput"
                ],
                "properties": {
                  "newInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "final"
                ],
                "properties": {
                  "final": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "p"
                ],
                "properties": {
                  "p": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ],
                    "x-unit": "%",
                    "x-unit-id": "cx:percent",
                    "x-quantity-kind": "ratio",
                    "x-role": "scalar",
                    "x-dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "x-uuce-unit": {
                      "unit_id": "cx:percent",
                      "revision": "1.0.0",
                      "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                      "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                      "quantity_kind": "ratio",
                      "dimension": [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                      ],
                      "registry_version": "0.3.0-preview.3",
                      "digest_contract": "calculatorx-unit-definition-digests-v2",
                      "registry_status": "preview",
                      "definition_lifecycle": "candidate",
                      "role": "scalar"
                    }
                  }
                }
              },
              {
                "required": [
                  "pInput"
                ],
                "properties": {
                  "pInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ],
                    "x-unit": "%",
                    "x-unit-id": "cx:percent",
                    "x-quantity-kind": "ratio",
                    "x-role": "scalar",
                    "x-dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "x-uuce-unit": {
                      "unit_id": "cx:percent",
                      "revision": "1.0.0",
                      "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                      "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                      "quantity_kind": "ratio",
                      "dimension": [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                      ],
                      "registry_version": "0.3.0-preview.3",
                      "digest_contract": "calculatorx-unit-definition-digests-v2",
                      "registry_status": "preview",
                      "definition_lifecycle": "candidate",
                      "role": "scalar"
                    }
                  }
                }
              },
              {
                "required": [
                  "P"
                ],
                "properties": {
                  "P": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ],
                    "x-unit": "%",
                    "x-unit-id": "cx:percent",
                    "x-quantity-kind": "ratio",
                    "x-role": "scalar",
                    "x-dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "x-uuce-unit": {
                      "unit_id": "cx:percent",
                      "revision": "1.0.0",
                      "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                      "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                      "quantity_kind": "ratio",
                      "dimension": [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                      ],
                      "registry_version": "0.3.0-preview.3",
                      "digest_contract": "calculatorx-unit-definition-digests-v2",
                      "registry_status": "preview",
                      "definition_lifecycle": "candidate",
                      "role": "scalar"
                    }
                  }
                }
              },
              {
                "required": [
                  "percent"
                ],
                "properties": {
                  "percent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ],
                    "x-unit": "%",
                    "x-unit-id": "cx:percent",
                    "x-quantity-kind": "ratio",
                    "x-role": "scalar",
                    "x-dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "x-uuce-unit": {
                      "unit_id": "cx:percent",
                      "revision": "1.0.0",
                      "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                      "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                      "quantity_kind": "ratio",
                      "dimension": [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                      ],
                      "registry_version": "0.3.0-preview.3",
                      "digest_contract": "calculatorx-unit-definition-digests-v2",
                      "registry_status": "preview",
                      "definition_lifecycle": "candidate",
                      "role": "scalar"
                    }
                  }
                }
              },
              {
                "required": [
                  "percent_change"
                ],
                "properties": {
                  "percent_change": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "pct"
                ],
                "properties": {
                  "pct": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ],
                    "x-unit": "%",
                    "x-unit-id": "cx:percent",
                    "x-quantity-kind": "ratio",
                    "x-role": "scalar",
                    "x-dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "x-uuce-unit": {
                      "unit_id": "cx:percent",
                      "revision": "1.0.0",
                      "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                      "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                      "quantity_kind": "ratio",
                      "dimension": [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                      ],
                      "registry_version": "0.3.0-preview.3",
                      "digest_contract": "calculatorx-unit-definition-digests-v2",
                      "registry_status": "preview",
                      "definition_lifecycle": "candidate",
                      "role": "scalar"
                    }
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solveFor"
        ],
        "properties": {
          "solveFor": {
            "enum": [
              "v2",
              "final",
              "new",
              "newv"
            ]
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "v1"
                ],
                "properties": {
                  "v1": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "v1Input"
                ],
                "properties": {
                  "v1Input": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "oldV"
                ],
                "properties": {
                  "oldV": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "old"
                ],
                "properties": {
                  "old": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "oldInput"
                ],
                "properties": {
                  "oldInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "initial"
                ],
                "properties": {
                  "initial": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "p"
                ],
                "properties": {
                  "p": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ],
                    "x-unit": "%",
                    "x-unit-id": "cx:percent",
                    "x-quantity-kind": "ratio",
                    "x-role": "scalar",
                    "x-dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "x-uuce-unit": {
                      "unit_id": "cx:percent",
                      "revision": "1.0.0",
                      "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                      "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                      "quantity_kind": "ratio",
                      "dimension": [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                      ],
                      "registry_version": "0.3.0-preview.3",
                      "digest_contract": "calculatorx-unit-definition-digests-v2",
                      "registry_status": "preview",
                      "definition_lifecycle": "candidate",
                      "role": "scalar"
                    }
                  }
                }
              },
              {
                "required": [
                  "pInput"
                ],
                "properties": {
                  "pInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ],
                    "x-unit": "%",
                    "x-unit-id": "cx:percent",
                    "x-quantity-kind": "ratio",
                    "x-role": "scalar",
                    "x-dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "x-uuce-unit": {
                      "unit_id": "cx:percent",
                      "revision": "1.0.0",
                      "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                      "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                      "quantity_kind": "ratio",
                      "dimension": [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                      ],
                      "registry_version": "0.3.0-preview.3",
                      "digest_contract": "calculatorx-unit-definition-digests-v2",
                      "registry_status": "preview",
                      "definition_lifecycle": "candidate",
                      "role": "scalar"
                    }
                  }
                }
              },
              {
                "required": [
                  "P"
                ],
                "properties": {
                  "P": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ],
                    "x-unit": "%",
                    "x-unit-id": "cx:percent",
                    "x-quantity-kind": "ratio",
                    "x-role": "scalar",
                    "x-dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "x-uuce-unit": {
                      "unit_id": "cx:percent",
                      "revision": "1.0.0",
                      "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                      "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                      "quantity_kind": "ratio",
                      "dimension": [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                      ],
                      "registry_version": "0.3.0-preview.3",
                      "digest_contract": "calculatorx-unit-definition-digests-v2",
                      "registry_status": "preview",
                      "definition_lifecycle": "candidate",
                      "role": "scalar"
                    }
                  }
                }
              },
              {
                "required": [
                  "percent"
                ],
                "properties": {
                  "percent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ],
                    "x-unit": "%",
                    "x-unit-id": "cx:percent",
                    "x-quantity-kind": "ratio",
                    "x-role": "scalar",
                    "x-dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "x-uuce-unit": {
                      "unit_id": "cx:percent",
                      "revision": "1.0.0",
                      "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                      "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                      "quantity_kind": "ratio",
                      "dimension": [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                      ],
                      "registry_version": "0.3.0-preview.3",
                      "digest_contract": "calculatorx-unit-definition-digests-v2",
                      "registry_status": "preview",
                      "definition_lifecycle": "candidate",
                      "role": "scalar"
                    }
                  }
                }
              },
              {
                "required": [
                  "percent_change"
                ],
                "properties": {
                  "percent_change": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "pct"
                ],
                "properties": {
                  "pct": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ],
                    "x-unit": "%",
                    "x-unit-id": "cx:percent",
                    "x-quantity-kind": "ratio",
                    "x-role": "scalar",
                    "x-dimension": [
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                    ],
                    "x-uuce-unit": {
                      "unit_id": "cx:percent",
                      "revision": "1.0.0",
                      "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
                      "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
                      "quantity_kind": "ratio",
                      "dimension": [
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                      ],
                      "registry_version": "0.3.0-preview.3",
                      "digest_contract": "calculatorx-unit-definition-digests-v2",
                      "registry_status": "preview",
                      "definition_lifecycle": "candidate",
                      "role": "scalar"
                    }
                  }
                }
              }
            ]
          }
        ]
      }
    }
  ],
  "description": "Finite binary64 numbers or decimal strings up to512 characters. Any two values; solve_for p/v1/v2 selects the missing quantity. Blank optional targets are omitted; active inputs must be present. Aliases must agree. All three check8ULP nonzero same-sign percentage consistency, strict zero. Reject nonzero input/output underflow and overflow, including secondary fields or any valid inverse branch: rescale. (calculation_version 1.2.0)",
  "x-unit-contract": {
    "protocol": "calculatorx-field-unit-contract-v1",
    "capability_id": "math.percent_change",
    "registry_version": "0.3.0-preview.3",
    "declaration_scope": "Field/branch declarations only; inactive fields are not asserted to exist. No conversion-engine migration or new numerical certification.",
    "path_format": "Paths relative to inputs or result_detail.value; dot separates properties, * denotes array items, $ denotes a scalar result.",
    "inputs": {
      "p": {
        "unit": "%",
        "reference": {
          "unit_id": "cx:percent",
          "revision": "1.0.0",
          "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
          "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
          "quantity_kind": "ratio",
          "dimension": [
            0,
            0,
            0,
            0,
            0,
            0,
            0
          ],
          "registry_version": "0.3.0-preview.3",
          "digest_contract": "calculatorx-unit-definition-digests-v2",
          "registry_status": "preview",
          "definition_lifecycle": "candidate",
          "role": "scalar"
        }
      },
      "pInput": {
        "unit": "%",
        "reference": {
          "unit_id": "cx:percent",
          "revision": "1.0.0",
          "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
          "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
          "quantity_kind": "ratio",
          "dimension": [
            0,
            0,
            0,
            0,
            0,
            0,
            0
          ],
          "registry_version": "0.3.0-preview.3",
          "digest_contract": "calculatorx-unit-definition-digests-v2",
          "registry_status": "preview",
          "definition_lifecycle": "candidate",
          "role": "scalar"
        }
      },
      "P": {
        "unit": "%",
        "reference": {
          "unit_id": "cx:percent",
          "revision": "1.0.0",
          "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
          "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
          "quantity_kind": "ratio",
          "dimension": [
            0,
            0,
            0,
            0,
            0,
            0,
            0
          ],
          "registry_version": "0.3.0-preview.3",
          "digest_contract": "calculatorx-unit-definition-digests-v2",
          "registry_status": "preview",
          "definition_lifecycle": "candidate",
          "role": "scalar"
        }
      },
      "percent": {
        "unit": "%",
        "reference": {
          "unit_id": "cx:percent",
          "revision": "1.0.0",
          "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
          "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
          "quantity_kind": "ratio",
          "dimension": [
            0,
            0,
            0,
            0,
            0,
            0,
            0
          ],
          "registry_version": "0.3.0-preview.3",
          "digest_contract": "calculatorx-unit-definition-digests-v2",
          "registry_status": "preview",
          "definition_lifecycle": "candidate",
          "role": "scalar"
        }
      },
      "pct": {
        "unit": "%",
        "reference": {
          "unit_id": "cx:percent",
          "revision": "1.0.0",
          "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
          "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
          "quantity_kind": "ratio",
          "dimension": [
            0,
            0,
            0,
            0,
            0,
            0,
            0
          ],
          "registry_version": "0.3.0-preview.3",
          "digest_contract": "calculatorx-unit-definition-digests-v2",
          "registry_status": "preview",
          "definition_lifecycle": "candidate",
          "role": "scalar"
        }
      }
    },
    "outputs": {
      "p": {
        "unit": "%",
        "reference": {
          "unit_id": "cx:percent",
          "revision": "1.0.0",
          "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
          "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
          "quantity_kind": "ratio",
          "dimension": [
            0,
            0,
            0,
            0,
            0,
            0,
            0
          ],
          "registry_version": "0.3.0-preview.3",
          "digest_contract": "calculatorx-unit-definition-digests-v2",
          "registry_status": "preview",
          "definition_lifecycle": "candidate",
          "role": "scalar"
        }
      },
      "percent_change": {
        "unit": "%",
        "reference": {
          "unit_id": "cx:percent",
          "revision": "1.0.0",
          "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
          "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
          "quantity_kind": "ratio",
          "dimension": [
            0,
            0,
            0,
            0,
            0,
            0,
            0
          ],
          "registry_version": "0.3.0-preview.3",
          "digest_contract": "calculatorx-unit-definition-digests-v2",
          "registry_status": "preview",
          "definition_lifecycle": "candidate",
          "role": "scalar"
        }
      },
      "entered_percent_change": {
        "unit": "%",
        "reference": {
          "unit_id": "cx:percent",
          "revision": "1.0.0",
          "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
          "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
          "quantity_kind": "ratio",
          "dimension": [
            0,
            0,
            0,
            0,
            0,
            0,
            0
          ],
          "registry_version": "0.3.0-preview.3",
          "digest_contract": "calculatorx-unit-definition-digests-v2",
          "registry_status": "preview",
          "definition_lifecycle": "candidate",
          "role": "scalar"
        }
      },
      "percent_of_initial": {
        "unit": "%",
        "reference": {
          "unit_id": "cx:percent",
          "revision": "1.0.0",
          "content_digest": "f73c887f011a6f997b183701a1b03417b3c89a863747910a54ae79c6a6b9f963",
          "dependency_digest": "58d9bc109880e0c8ea6d45264fbba933f64a17cf17586d2a8dbbf7cbea14566d",
          "quantity_kind": "ratio",
          "dimension": [
            0,
            0,
            0,
            0,
            0,
            0,
            0
          ],
          "registry_version": "0.3.0-preview.3",
          "digest_contract": "calculatorx-unit-definition-digests-v2",
          "registry_status": "preview",
          "definition_lifecycle": "candidate",
          "role": "scalar"
        }
      },
      "signed_factor": {
        "unit": "1",
        "reference": {
          "unit_id": "cx:one",
          "revision": "1.0.0",
          "content_digest": "98cc3ffc58d8733c483b60c4d7e238fe8ad43a6aadcced9496b74f33a01ef599",
          "dependency_digest": "b1c9aa4d586949ee881925298442091ba11dda29f57de0867e43da1cd59e06e5",
          "quantity_kind": "ratio",
          "dimension": [
            0,
            0,
            0,
            0,
            0,
            0,
            0
          ],
          "registry_version": "0.3.0-preview.3",
          "digest_contract": "calculatorx-unit-definition-digests-v2",
          "registry_status": "preview",
          "definition_lifecycle": "candidate",
          "role": "scalar"
        }
      },
      "multiplier": {
        "unit": "1",
        "reference": {
          "unit_id": "cx:one",
          "revision": "1.0.0",
          "content_digest": "98cc3ffc58d8733c483b60c4d7e238fe8ad43a6aadcced9496b74f33a01ef599",
          "dependency_digest": "b1c9aa4d586949ee881925298442091ba11dda29f57de0867e43da1cd59e06e5",
          "quantity_kind": "ratio",
          "dimension": [
            0,
            0,
            0,
            0,
            0,
            0,
            0
          ],
          "registry_version": "0.3.0-preview.3",
          "digest_contract": "calculatorx-unit-definition-digests-v2",
          "registry_status": "preview",
          "definition_lifecycle": "candidate",
          "role": "scalar"
        }
      }
    },
    "scalar_result_policy": "value/candidates/solutions are percentages only when solving p; solving v1/v2 returns amounts in their existing arbitrary unit."
  }
}
