{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.calculatorx.com/schemas/math.percent_error/1.1.5/input.json",
  "title": "Percent error — input",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "observed": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*$"
        }
      ]
    },
    "experimental": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*$"
        }
      ]
    },
    "obsInput": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*$"
        }
      ]
    },
    "O": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*$"
        }
      ]
    },
    "o": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*$"
        }
      ]
    },
    "true": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*$"
        }
      ]
    },
    "theoretical": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*$"
        }
      ]
    },
    "accepted": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*$"
        }
      ]
    },
    "reference": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*$"
        }
      ]
    },
    "trueInput": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*$"
        }
      ]
    },
    "T": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*$"
        }
      ]
    },
    "t": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*$"
        }
      ]
    },
    "percent": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*$"
        }
      ]
    },
    "percent_error": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*$"
        }
      ]
    },
    "pctInput": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*$"
        }
      ]
    },
    "P": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*$"
        }
      ]
    },
    "p": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*$"
        }
      ]
    },
    "pct": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
        },
        {
          "type": "string",
          "maxLength": 512,
          "pattern": "^\\s*$"
        }
      ]
    },
    "abs": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "enum": [
            0,
            1
          ]
        },
        {
          "type": "string",
          "maxLength": 64,
          "pattern": "^\\s*(?:0|[fF][aA][lL][sS][eE]|[oO][fF][fF]|[sS][iI][gG][nN][eE][dD]|[nN][oO]|1|[tT][rR][uU][eE]|[oO][nN]|[aA][bB][sS][oO][lL][uU][tT][eE]|[aA][bB][sS]|[yY][eE][sS])\\s*$"
        }
      ]
    },
    "absolute": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "enum": [
            0,
            1
          ]
        },
        {
          "type": "string",
          "maxLength": 64,
          "pattern": "^\\s*(?:0|[fF][aA][lL][sS][eE]|[oO][fF][fF]|[sS][iI][gG][nN][eE][dD]|[nN][oO]|1|[tT][rR][uU][eE]|[oO][nN]|[aA][bB][sS][oO][lL][uU][tT][eE]|[aA][bB][sS]|[yY][eE][sS])\\s*$"
        }
      ]
    },
    "useAbs": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "enum": [
            0,
            1
          ]
        },
        {
          "type": "string",
          "maxLength": 64,
          "pattern": "^\\s*(?:0|[fF][aA][lL][sS][eE]|[oO][fF][fF]|[sS][iI][gG][nN][eE][dD]|[nN][oO]|1|[tT][rR][uU][eE]|[oO][nN]|[aA][bB][sS][oO][lL][uU][tT][eE]|[aA][bB][sS]|[yY][eE][sS])\\s*$"
        }
      ]
    },
    "mode": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "enum": [
            0,
            1
          ]
        },
        {
          "type": "string",
          "maxLength": 64,
          "pattern": "^\\s*(?:0|[fF][aA][lL][sS][eE]|[oO][fF][fF]|[sS][iI][gG][nN][eE][dD]|[nN][oO]|1|[tT][rR][uU][eE]|[oO][nN]|[aA][bB][sS][oO][lL][uU][tT][eE]|[aA][bB][sS]|[yY][eE][sS])\\s*$"
        }
      ]
    },
    "solve_for": {
      "enum": [
        "p",
        "percent",
        "percent_error",
        "pct",
        "o",
        "observed",
        "experimental",
        "t",
        "true",
        "theoretical",
        "accepted",
        "reference"
      ]
    },
    "solveFor": {
      "enum": [
        "p",
        "percent",
        "percent_error",
        "pct",
        "o",
        "observed",
        "experimental",
        "t",
        "true",
        "theoretical",
        "accepted",
        "reference"
      ]
    }
  },
  "anyOf": [
    {
      "allOf": [
        {
          "anyOf": [
            {
              "required": [
                "observed"
              ],
              "properties": {
                "observed": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "experimental"
              ],
              "properties": {
                "experimental": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "obsInput"
              ],
              "properties": {
                "obsInput": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "O"
              ],
              "properties": {
                "O": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "o"
              ],
              "properties": {
                "o": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            }
          ]
        },
        {
          "anyOf": [
            {
              "required": [
                "true"
              ],
              "properties": {
                "true": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "theoretical"
              ],
              "properties": {
                "theoretical": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "accepted"
              ],
              "properties": {
                "accepted": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "reference"
              ],
              "properties": {
                "reference": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "trueInput"
              ],
              "properties": {
                "trueInput": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "T"
              ],
              "properties": {
                "T": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "t"
              ],
              "properties": {
                "t": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            }
          ]
        }
      ]
    },
    {
      "allOf": [
        {
          "anyOf": [
            {
              "required": [
                "true"
              ],
              "properties": {
                "true": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "theoretical"
              ],
              "properties": {
                "theoretical": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "accepted"
              ],
              "properties": {
                "accepted": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "reference"
              ],
              "properties": {
                "reference": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "trueInput"
              ],
              "properties": {
                "trueInput": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "T"
              ],
              "properties": {
                "T": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "t"
              ],
              "properties": {
                "t": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            }
          ]
        },
        {
          "anyOf": [
            {
              "required": [
                "percent"
              ],
              "properties": {
                "percent": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "percent_error"
              ],
              "properties": {
                "percent_error": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "pctInput"
              ],
              "properties": {
                "pctInput": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "P"
              ],
              "properties": {
                "P": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "p"
              ],
              "properties": {
                "p": {
                  "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*$"
                    }
                  ]
                }
              }
            }
          ]
        }
      ]
    },
    {
      "allOf": [
        {
          "anyOf": [
            {
              "required": [
                "observed"
              ],
              "properties": {
                "observed": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "experimental"
              ],
              "properties": {
                "experimental": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "obsInput"
              ],
              "properties": {
                "obsInput": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "O"
              ],
              "properties": {
                "O": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "o"
              ],
              "properties": {
                "o": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            }
          ]
        },
        {
          "anyOf": [
            {
              "required": [
                "percent"
              ],
              "properties": {
                "percent": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "percent_error"
              ],
              "properties": {
                "percent_error": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "pctInput"
              ],
              "properties": {
                "pctInput": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "P"
              ],
              "properties": {
                "P": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string",
                      "maxLength": 512,
                      "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                    }
                  ]
                }
              }
            },
            {
              "required": [
                "p"
              ],
              "properties": {
                "p": {
                  "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*$"
                    }
                  ]
                }
              }
            }
          ]
        }
      ]
    }
  ],
  "allOf": [
    {
      "if": {
        "required": [
          "solve_for"
        ],
        "properties": {
          "solve_for": {
            "const": "p"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "observed"
                ],
                "properties": {
                  "observed": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "experimental"
                ],
                "properties": {
                  "experimental": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "obsInput"
                ],
                "properties": {
                  "obsInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "O"
                ],
                "properties": {
                  "O": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "o"
                ],
                "properties": {
                  "o": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "true"
                ],
                "properties": {
                  "true": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "theoretical"
                ],
                "properties": {
                  "theoretical": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "accepted"
                ],
                "properties": {
                  "accepted": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "reference"
                ],
                "properties": {
                  "reference": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "trueInput"
                ],
                "properties": {
                  "trueInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "T"
                ],
                "properties": {
                  "T": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "t"
                ],
                "properties": {
                  "t": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solveFor"
        ],
        "properties": {
          "solveFor": {
            "const": "p"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "observed"
                ],
                "properties": {
                  "observed": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "experimental"
                ],
                "properties": {
                  "experimental": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "obsInput"
                ],
                "properties": {
                  "obsInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "O"
                ],
                "properties": {
                  "O": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "o"
                ],
                "properties": {
                  "o": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "true"
                ],
                "properties": {
                  "true": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "theoretical"
                ],
                "properties": {
                  "theoretical": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "accepted"
                ],
                "properties": {
                  "accepted": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "reference"
                ],
                "properties": {
                  "reference": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "trueInput"
                ],
                "properties": {
                  "trueInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "T"
                ],
                "properties": {
                  "T": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "t"
                ],
                "properties": {
                  "t": {
                    "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": {
            "const": "percent"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "observed"
                ],
                "properties": {
                  "observed": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "experimental"
                ],
                "properties": {
                  "experimental": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "obsInput"
                ],
                "properties": {
                  "obsInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "O"
                ],
                "properties": {
                  "O": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "o"
                ],
                "properties": {
                  "o": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "true"
                ],
                "properties": {
                  "true": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "theoretical"
                ],
                "properties": {
                  "theoretical": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "accepted"
                ],
                "properties": {
                  "accepted": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "reference"
                ],
                "properties": {
                  "reference": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "trueInput"
                ],
                "properties": {
                  "trueInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "T"
                ],
                "properties": {
                  "T": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "t"
                ],
                "properties": {
                  "t": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solveFor"
        ],
        "properties": {
          "solveFor": {
            "const": "percent"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "observed"
                ],
                "properties": {
                  "observed": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "experimental"
                ],
                "properties": {
                  "experimental": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "obsInput"
                ],
                "properties": {
                  "obsInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "O"
                ],
                "properties": {
                  "O": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "o"
                ],
                "properties": {
                  "o": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "true"
                ],
                "properties": {
                  "true": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "theoretical"
                ],
                "properties": {
                  "theoretical": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "accepted"
                ],
                "properties": {
                  "accepted": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "reference"
                ],
                "properties": {
                  "reference": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "trueInput"
                ],
                "properties": {
                  "trueInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "T"
                ],
                "properties": {
                  "T": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "t"
                ],
                "properties": {
                  "t": {
                    "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": {
            "const": "percent_error"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "observed"
                ],
                "properties": {
                  "observed": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "experimental"
                ],
                "properties": {
                  "experimental": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "obsInput"
                ],
                "properties": {
                  "obsInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "O"
                ],
                "properties": {
                  "O": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "o"
                ],
                "properties": {
                  "o": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "true"
                ],
                "properties": {
                  "true": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "theoretical"
                ],
                "properties": {
                  "theoretical": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "accepted"
                ],
                "properties": {
                  "accepted": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "reference"
                ],
                "properties": {
                  "reference": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "trueInput"
                ],
                "properties": {
                  "trueInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "T"
                ],
                "properties": {
                  "T": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "t"
                ],
                "properties": {
                  "t": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solveFor"
        ],
        "properties": {
          "solveFor": {
            "const": "percent_error"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "observed"
                ],
                "properties": {
                  "observed": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "experimental"
                ],
                "properties": {
                  "experimental": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "obsInput"
                ],
                "properties": {
                  "obsInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "O"
                ],
                "properties": {
                  "O": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "o"
                ],
                "properties": {
                  "o": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "true"
                ],
                "properties": {
                  "true": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "theoretical"
                ],
                "properties": {
                  "theoretical": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "accepted"
                ],
                "properties": {
                  "accepted": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "reference"
                ],
                "properties": {
                  "reference": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "trueInput"
                ],
                "properties": {
                  "trueInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "T"
                ],
                "properties": {
                  "T": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "t"
                ],
                "properties": {
                  "t": {
                    "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": {
            "const": "pct"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "observed"
                ],
                "properties": {
                  "observed": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "experimental"
                ],
                "properties": {
                  "experimental": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "obsInput"
                ],
                "properties": {
                  "obsInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "O"
                ],
                "properties": {
                  "O": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "o"
                ],
                "properties": {
                  "o": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "true"
                ],
                "properties": {
                  "true": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "theoretical"
                ],
                "properties": {
                  "theoretical": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "accepted"
                ],
                "properties": {
                  "accepted": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "reference"
                ],
                "properties": {
                  "reference": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "trueInput"
                ],
                "properties": {
                  "trueInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "T"
                ],
                "properties": {
                  "T": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "t"
                ],
                "properties": {
                  "t": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solveFor"
        ],
        "properties": {
          "solveFor": {
            "const": "pct"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "observed"
                ],
                "properties": {
                  "observed": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "experimental"
                ],
                "properties": {
                  "experimental": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "obsInput"
                ],
                "properties": {
                  "obsInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "O"
                ],
                "properties": {
                  "O": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "o"
                ],
                "properties": {
                  "o": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "true"
                ],
                "properties": {
                  "true": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "theoretical"
                ],
                "properties": {
                  "theoretical": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "accepted"
                ],
                "properties": {
                  "accepted": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "reference"
                ],
                "properties": {
                  "reference": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "trueInput"
                ],
                "properties": {
                  "trueInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "T"
                ],
                "properties": {
                  "T": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "t"
                ],
                "properties": {
                  "t": {
                    "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": {
            "const": "o"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "true"
                ],
                "properties": {
                  "true": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "theoretical"
                ],
                "properties": {
                  "theoretical": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "accepted"
                ],
                "properties": {
                  "accepted": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "reference"
                ],
                "properties": {
                  "reference": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "trueInput"
                ],
                "properties": {
                  "trueInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "T"
                ],
                "properties": {
                  "T": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "t"
                ],
                "properties": {
                  "t": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "percent"
                ],
                "properties": {
                  "percent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "percent_error"
                ],
                "properties": {
                  "percent_error": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "pctInput"
                ],
                "properties": {
                  "pctInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "P"
                ],
                "properties": {
                  "P": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "p"
                ],
                "properties": {
                  "p": {
                    "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*$"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solveFor"
        ],
        "properties": {
          "solveFor": {
            "const": "o"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "true"
                ],
                "properties": {
                  "true": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "theoretical"
                ],
                "properties": {
                  "theoretical": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "accepted"
                ],
                "properties": {
                  "accepted": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "reference"
                ],
                "properties": {
                  "reference": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "trueInput"
                ],
                "properties": {
                  "trueInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "T"
                ],
                "properties": {
                  "T": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "t"
                ],
                "properties": {
                  "t": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "percent"
                ],
                "properties": {
                  "percent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "percent_error"
                ],
                "properties": {
                  "percent_error": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "pctInput"
                ],
                "properties": {
                  "pctInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "P"
                ],
                "properties": {
                  "P": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "p"
                ],
                "properties": {
                  "p": {
                    "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*$"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solve_for"
        ],
        "properties": {
          "solve_for": {
            "const": "observed"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "true"
                ],
                "properties": {
                  "true": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "theoretical"
                ],
                "properties": {
                  "theoretical": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "accepted"
                ],
                "properties": {
                  "accepted": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "reference"
                ],
                "properties": {
                  "reference": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "trueInput"
                ],
                "properties": {
                  "trueInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "T"
                ],
                "properties": {
                  "T": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "t"
                ],
                "properties": {
                  "t": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "percent"
                ],
                "properties": {
                  "percent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "percent_error"
                ],
                "properties": {
                  "percent_error": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "pctInput"
                ],
                "properties": {
                  "pctInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "P"
                ],
                "properties": {
                  "P": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "p"
                ],
                "properties": {
                  "p": {
                    "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*$"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solveFor"
        ],
        "properties": {
          "solveFor": {
            "const": "observed"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "true"
                ],
                "properties": {
                  "true": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "theoretical"
                ],
                "properties": {
                  "theoretical": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "accepted"
                ],
                "properties": {
                  "accepted": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "reference"
                ],
                "properties": {
                  "reference": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "trueInput"
                ],
                "properties": {
                  "trueInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "T"
                ],
                "properties": {
                  "T": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "t"
                ],
                "properties": {
                  "t": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "percent"
                ],
                "properties": {
                  "percent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "percent_error"
                ],
                "properties": {
                  "percent_error": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "pctInput"
                ],
                "properties": {
                  "pctInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "P"
                ],
                "properties": {
                  "P": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "p"
                ],
                "properties": {
                  "p": {
                    "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*$"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solve_for"
        ],
        "properties": {
          "solve_for": {
            "const": "experimental"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "true"
                ],
                "properties": {
                  "true": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "theoretical"
                ],
                "properties": {
                  "theoretical": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "accepted"
                ],
                "properties": {
                  "accepted": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "reference"
                ],
                "properties": {
                  "reference": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "trueInput"
                ],
                "properties": {
                  "trueInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "T"
                ],
                "properties": {
                  "T": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "t"
                ],
                "properties": {
                  "t": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "percent"
                ],
                "properties": {
                  "percent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "percent_error"
                ],
                "properties": {
                  "percent_error": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "pctInput"
                ],
                "properties": {
                  "pctInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "P"
                ],
                "properties": {
                  "P": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "p"
                ],
                "properties": {
                  "p": {
                    "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*$"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solveFor"
        ],
        "properties": {
          "solveFor": {
            "const": "experimental"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "true"
                ],
                "properties": {
                  "true": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "theoretical"
                ],
                "properties": {
                  "theoretical": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "accepted"
                ],
                "properties": {
                  "accepted": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "reference"
                ],
                "properties": {
                  "reference": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "trueInput"
                ],
                "properties": {
                  "trueInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "T"
                ],
                "properties": {
                  "T": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "t"
                ],
                "properties": {
                  "t": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "percent"
                ],
                "properties": {
                  "percent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "percent_error"
                ],
                "properties": {
                  "percent_error": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "pctInput"
                ],
                "properties": {
                  "pctInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "P"
                ],
                "properties": {
                  "P": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "p"
                ],
                "properties": {
                  "p": {
                    "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*$"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solve_for"
        ],
        "properties": {
          "solve_for": {
            "const": "t"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "observed"
                ],
                "properties": {
                  "observed": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "experimental"
                ],
                "properties": {
                  "experimental": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "obsInput"
                ],
                "properties": {
                  "obsInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "O"
                ],
                "properties": {
                  "O": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "o"
                ],
                "properties": {
                  "o": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "percent"
                ],
                "properties": {
                  "percent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "percent_error"
                ],
                "properties": {
                  "percent_error": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "pctInput"
                ],
                "properties": {
                  "pctInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "P"
                ],
                "properties": {
                  "P": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "p"
                ],
                "properties": {
                  "p": {
                    "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*$"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solveFor"
        ],
        "properties": {
          "solveFor": {
            "const": "t"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "observed"
                ],
                "properties": {
                  "observed": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "experimental"
                ],
                "properties": {
                  "experimental": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "obsInput"
                ],
                "properties": {
                  "obsInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "O"
                ],
                "properties": {
                  "O": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "o"
                ],
                "properties": {
                  "o": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "percent"
                ],
                "properties": {
                  "percent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "percent_error"
                ],
                "properties": {
                  "percent_error": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "pctInput"
                ],
                "properties": {
                  "pctInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "P"
                ],
                "properties": {
                  "P": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "p"
                ],
                "properties": {
                  "p": {
                    "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*$"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solve_for"
        ],
        "properties": {
          "solve_for": {
            "const": "true"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "observed"
                ],
                "properties": {
                  "observed": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "experimental"
                ],
                "properties": {
                  "experimental": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "obsInput"
                ],
                "properties": {
                  "obsInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "O"
                ],
                "properties": {
                  "O": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "o"
                ],
                "properties": {
                  "o": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "percent"
                ],
                "properties": {
                  "percent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "percent_error"
                ],
                "properties": {
                  "percent_error": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "pctInput"
                ],
                "properties": {
                  "pctInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "P"
                ],
                "properties": {
                  "P": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "p"
                ],
                "properties": {
                  "p": {
                    "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*$"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solveFor"
        ],
        "properties": {
          "solveFor": {
            "const": "true"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "observed"
                ],
                "properties": {
                  "observed": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "experimental"
                ],
                "properties": {
                  "experimental": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "obsInput"
                ],
                "properties": {
                  "obsInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "O"
                ],
                "properties": {
                  "O": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "o"
                ],
                "properties": {
                  "o": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "percent"
                ],
                "properties": {
                  "percent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "percent_error"
                ],
                "properties": {
                  "percent_error": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "pctInput"
                ],
                "properties": {
                  "pctInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "P"
                ],
                "properties": {
                  "P": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "p"
                ],
                "properties": {
                  "p": {
                    "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*$"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solve_for"
        ],
        "properties": {
          "solve_for": {
            "const": "theoretical"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "observed"
                ],
                "properties": {
                  "observed": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "experimental"
                ],
                "properties": {
                  "experimental": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "obsInput"
                ],
                "properties": {
                  "obsInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "O"
                ],
                "properties": {
                  "O": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "o"
                ],
                "properties": {
                  "o": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "percent"
                ],
                "properties": {
                  "percent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "percent_error"
                ],
                "properties": {
                  "percent_error": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "pctInput"
                ],
                "properties": {
                  "pctInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "P"
                ],
                "properties": {
                  "P": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "p"
                ],
                "properties": {
                  "p": {
                    "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*$"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solveFor"
        ],
        "properties": {
          "solveFor": {
            "const": "theoretical"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "observed"
                ],
                "properties": {
                  "observed": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "experimental"
                ],
                "properties": {
                  "experimental": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "obsInput"
                ],
                "properties": {
                  "obsInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "O"
                ],
                "properties": {
                  "O": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "o"
                ],
                "properties": {
                  "o": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "percent"
                ],
                "properties": {
                  "percent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "percent_error"
                ],
                "properties": {
                  "percent_error": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "pctInput"
                ],
                "properties": {
                  "pctInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "P"
                ],
                "properties": {
                  "P": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "p"
                ],
                "properties": {
                  "p": {
                    "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*$"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solve_for"
        ],
        "properties": {
          "solve_for": {
            "const": "accepted"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "observed"
                ],
                "properties": {
                  "observed": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "experimental"
                ],
                "properties": {
                  "experimental": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "obsInput"
                ],
                "properties": {
                  "obsInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "O"
                ],
                "properties": {
                  "O": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "o"
                ],
                "properties": {
                  "o": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "percent"
                ],
                "properties": {
                  "percent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "percent_error"
                ],
                "properties": {
                  "percent_error": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "pctInput"
                ],
                "properties": {
                  "pctInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "P"
                ],
                "properties": {
                  "P": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "p"
                ],
                "properties": {
                  "p": {
                    "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*$"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solveFor"
        ],
        "properties": {
          "solveFor": {
            "const": "accepted"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "observed"
                ],
                "properties": {
                  "observed": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "experimental"
                ],
                "properties": {
                  "experimental": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "obsInput"
                ],
                "properties": {
                  "obsInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "O"
                ],
                "properties": {
                  "O": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "o"
                ],
                "properties": {
                  "o": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "percent"
                ],
                "properties": {
                  "percent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "percent_error"
                ],
                "properties": {
                  "percent_error": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "pctInput"
                ],
                "properties": {
                  "pctInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "P"
                ],
                "properties": {
                  "P": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "p"
                ],
                "properties": {
                  "p": {
                    "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*$"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solve_for"
        ],
        "properties": {
          "solve_for": {
            "const": "reference"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "observed"
                ],
                "properties": {
                  "observed": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "experimental"
                ],
                "properties": {
                  "experimental": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "obsInput"
                ],
                "properties": {
                  "obsInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "O"
                ],
                "properties": {
                  "O": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "o"
                ],
                "properties": {
                  "o": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "percent"
                ],
                "properties": {
                  "percent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "percent_error"
                ],
                "properties": {
                  "percent_error": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "pctInput"
                ],
                "properties": {
                  "pctInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "P"
                ],
                "properties": {
                  "P": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "p"
                ],
                "properties": {
                  "p": {
                    "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*$"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    },
    {
      "if": {
        "required": [
          "solveFor"
        ],
        "properties": {
          "solveFor": {
            "const": "reference"
          }
        }
      },
      "then": {
        "allOf": [
          {
            "anyOf": [
              {
                "required": [
                  "observed"
                ],
                "properties": {
                  "observed": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "experimental"
                ],
                "properties": {
                  "experimental": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "obsInput"
                ],
                "properties": {
                  "obsInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "O"
                ],
                "properties": {
                  "O": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "o"
                ],
                "properties": {
                  "o": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "anyOf": [
              {
                "required": [
                  "percent"
                ],
                "properties": {
                  "percent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "percent_error"
                ],
                "properties": {
                  "percent_error": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "pctInput"
                ],
                "properties": {
                  "pctInput": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "P"
                ],
                "properties": {
                  "P": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "string",
                        "maxLength": 512,
                        "pattern": "^\\s*[+-]?(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?\\s*$"
                      }
                    ]
                  }
                }
              },
              {
                "required": [
                  "p"
                ],
                "properties": {
                  "p": {
                    "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*$"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    }
  ],
  "description": "Finite binary64 decimal numbers or strings up to512 characters. Two fields solve p/o/t; all three verify8ULP same-sign nonzero percentage consistency with strict zero. Matching aliases and explicit absolute/signed policy. T≠0; exact infinite endpoints. Every valid inverse branch/secondary value must fit binary64; rescale on NUMERIC_RANGE. Requested P and achieved P differ after candidate rounding; inspect resolution_limited and every branch. (calculation_version 1.1.5)"
}
