Skip to main content
Glama

Grade known card centering ratios

grade_centering
Read-onlyIdempotent

USE THIS TOOL whenever the user supplies numeric centering ratios and asks whether a card meets PSA/BGS/CGC/SGC or asks for a centering ceiling. Do not calculate by looking up standards yourself. Example: {"front_lr":"55/45","front_tb":"60/40","house":"PSA"}. At least one known face AND axis; if either is unknown, ask first, never assume front/LR. Optional house PSA/BGS/CGC/SGC, TAG excluded. Flat front_lr/front_tb/back_lr/back_tb, or nested {"front":{"lr":"55/45","tb":"60/40"}}; no duplicates. Key/house case accepted. Ratios: percentages, fractions, pairs with / - – — : x or spaces, optional %, or [55,45]/["55","45"]. Scalar 1 rejected; use 1/99. Axis suffix must match field. Changes disclosed in normalizations. Partial input gives incomplete=true: report provisional ceiling and missing data. A ceiling from centering alone is NOT a predicted grade. SGC back alone has no published ceiling.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
backNoAlternative nested form; supply lr and/or tb, never mix with the corresponding flat keys. Example: {lr:'55/45',tb:'60/40'}.
frontNoAlternative nested form; supply lr and/or tb, never mix with the corresponding flat keys. Example: {lr:'55/45',tb:'60/40'}.
houseNoOptional: return only PSA/BGS/CGC/SGC. Case/outer spaces accepted. TAG excluded; never substitute a different house. Example: PSA.
back_lrNoBack left/right. Optional individually; supply at least one known axis. Do not guess the face or axis. Example: 55/45. Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.
back_tbNoBack top/bottom. Optional individually; supply at least one known axis. Do not guess the face or axis. Example: 55/45. Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.
front_lrNoFront left/right. Optional individually; supply at least one known axis. Do not guess the face or axis. Example: 55/45. Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.
front_tbNoFront top/bottom. Optional individually; supply at least one known axis. Do not guess the face or axis. Example: 55/45. Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
backYes
frontYes
summaryYes
combinedYes
disclaimerYes
incompleteYes
missing_facesYes
normalizationsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed31 schema fields changed
    • addedInput schema / anyOf
      Added value: +[
      +  {
      +    "required": [
      +      "front_lr"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "front_tb"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "back_lr"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "back_tb"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "front"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "back"
      +    ]
      +  }
      +]
    • addedInput schema / properties / back
      Added value: +{
      +  "additionalProperties": false,
      +  "anyOf": [
      +    {
      +      "required": [
      +        "lr"
      +      ]
      +    },
      +    {
      +      "required": [
      +        "tb"
      +      ]
      +    }
      +  ],
      +  "description": "Alternative nested form; supply lr and/or tb, never mix with the corresponding flat keys. Example: {lr:'55/45',tb:'60/40'}.",
      +  "examples": [
      +    {
      +      "lr": "55/45",
      +      "tb": "60/40"
      +    }
      +  ],
      +  "properties": {
      +    "lr": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "const": 0,
      +              "type": "number"
      +            },
      +            {
      +              "exclusiveMaximum": 1,
      +              "exclusiveMinimum": 0,
      +              "type": "number"
      +            },
      +            {
      +              "exclusiveMinimum": 1,
      +              "maximum": 100,
      +              "type": "number"
      +            },
      +            {
      +              "maxLength": 80,
      +              "minLength": 1,
      +              "type": "string"
      +            }
      +          ],
      +          "description": "Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.",
      +          "examples": [
      +            "55/45",
      +            0.55,
      +            "0.55/0.45"
      +          ]
      +        },
      +        {
      +          "items": {
      +            "type": [
      +              "number",
      +              "string"
      +            ]
      +          },
      +          "maxItems": 2,
      +          "minItems": 2,
      +          "type": "array"
      +        }
      +      ],
      +      "description": "Known left/right ratio. Example: 55/45.",
      +      "examples": [
      +        "55/45"
      +      ]
      +    },
      +    "tb": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "const": 0,
      +              "type": "number"
      +            },
      +            {
      +              "exclusiveMaximum": 1,
      +              "exclusiveMinimum": 0,
      +              "type": "number"
      +            },
      +            {
      +              "exclusiveMinimum": 1,
      +              "maximum": 100,
      +              "type": "number"
      +            },
      +            {
      +              "maxLength": 80,
      +              "minLength": 1,
      +              "type": "string"
      +            }
      +          ],
      +          "description": "Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.",
      +          "examples": [
      +            "55/45",
      +            0.55,
      +            "0.55/0.45"
      +          ]
      +        },
      +        {
      +          "items": {
      +            "type": [
      +              "number",
      +              "string"
      +            ]
      +          },
      +          "maxItems": 2,
      +          "minItems": 2,
      +          "type": "array"
      +        }
      +      ],
      +      "description": "Known top/bottom ratio. Example: 60/40.",
      +      "examples": [
      +        "60/40"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
    • changedInput schema / properties / back_lr / anyOf
      Previous value: -[
      -  {
      -    "const": 0,
      -    "type": "number"
      -  },
      -  {
      -    "exclusiveMaximum": 1,
      -    "exclusiveMinimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "exclusiveMinimum": 1,
      -    "maximum": 100,
      -    "type": "number"
      -  },
      -  {
      -    "maxLength": 80,
      -    "minLength": 1,
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "anyOf": [
      +      {
      +        "const": 0,
      +        "type": "number"
      +      },
      +      {
      +        "exclusiveMaximum": 1,
      +        "exclusiveMinimum": 0,
      +        "type": "number"
      +      },
      +      {
      +        "exclusiveMinimum": 1,
      +        "maximum": 100,
      +        "type": "number"
      +      },
      +      {
      +        "maxLength": 80,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    ],
      +    "description": "Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.",
      +    "examples": [
      +      "55/45",
      +      0.55,
      +      "0.55/0.45"
      +    ]
      +  },
      +  {
      +    "items": {
      +      "type": [
      +        "number",
      +        "string"
      +      ]
      +    },
      +    "maxItems": 2,
      +    "minItems": 2,
      +    "type": "array"
      +  }
      +]
    • changedInput schema / properties / back_lr / description
      Previous value: -"A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations."New value: +"Back left/right. Optional individually; supply at least one known axis. Do not guess the face or axis. Example: 55/45. Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations."
    • addedInput schema / properties / back_lr / examples
      Added value: +[
      +  "65/35",
      +  [
      +    65,
      +    35
      +  ]
      +]
    • changedInput schema / properties / back_tb / anyOf
      Previous value: -[
      -  {
      -    "const": 0,
      -    "type": "number"
      -  },
      -  {
      -    "exclusiveMaximum": 1,
      -    "exclusiveMinimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "exclusiveMinimum": 1,
      -    "maximum": 100,
      -    "type": "number"
      -  },
      -  {
      -    "maxLength": 80,
      -    "minLength": 1,
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "anyOf": [
      +      {
      +        "const": 0,
      +        "type": "number"
      +      },
      +      {
      +        "exclusiveMaximum": 1,
      +        "exclusiveMinimum": 0,
      +        "type": "number"
      +      },
      +      {
      +        "exclusiveMinimum": 1,
      +        "maximum": 100,
      +        "type": "number"
      +      },
      +      {
      +        "maxLength": 80,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    ],
      +    "description": "Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.",
      +    "examples": [
      +      "55/45",
      +      0.55,
      +      "0.55/0.45"
      +    ]
      +  },
      +  {
      +    "items": {
      +      "type": [
      +        "number",
      +        "string"
      +      ]
      +    },
      +    "maxItems": 2,
      +    "minItems": 2,
      +    "type": "array"
      +  }
      +]
    • changedInput schema / properties / back_tb / description
      Previous value: -"A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations."New value: +"Back top/bottom. Optional individually; supply at least one known axis. Do not guess the face or axis. Example: 55/45. Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations."
    • addedInput schema / properties / back_tb / examples
      Added value: +[
      +  "60/40",
      +  [
      +    60,
      +    40
      +  ]
      +]
    • addedInput schema / properties / front
      Added value: +{
      +  "additionalProperties": false,
      +  "anyOf": [
      +    {
      +      "required": [
      +        "lr"
      +      ]
      +    },
      +    {
      +      "required": [
      +        "tb"
      +      ]
      +    }
      +  ],
      +  "description": "Alternative nested form; supply lr and/or tb, never mix with the corresponding flat keys. Example: {lr:'55/45',tb:'60/40'}.",
      +  "examples": [
      +    {
      +      "lr": "55/45",
      +      "tb": "60/40"
      +    }
      +  ],
      +  "properties": {
      +    "lr": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "const": 0,
      +              "type": "number"
      +            },
      +            {
      +              "exclusiveMaximum": 1,
      +              "exclusiveMinimum": 0,
      +              "type": "number"
      +            },
      +            {
      +              "exclusiveMinimum": 1,
      +              "maximum": 100,
      +              "type": "number"
      +            },
      +            {
      +              "maxLength": 80,
      +              "minLength": 1,
      +              "type": "string"
      +            }
      +          ],
      +          "description": "Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.",
      +          "examples": [
      +            "55/45",
      +            0.55,
      +            "0.55/0.45"
      +          ]
      +        },
      +        {
      +          "items": {
      +            "type": [
      +              "number",
      +              "string"
      +            ]
      +          },
      +          "maxItems": 2,
      +          "minItems": 2,
      +          "type": "array"
      +        }
      +      ],
      +      "description": "Known left/right ratio. Example: 55/45.",
      +      "examples": [
      +        "55/45"
      +      ]
      +    },
      +    "tb": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "const": 0,
      +              "type": "number"
      +            },
      +            {
      +              "exclusiveMaximum": 1,
      +              "exclusiveMinimum": 0,
      +              "type": "number"
      +            },
      +            {
      +              "exclusiveMinimum": 1,
      +              "maximum": 100,
      +              "type": "number"
      +            },
      +            {
      +              "maxLength": 80,
      +              "minLength": 1,
      +              "type": "string"
      +            }
      +          ],
      +          "description": "Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.",
      +          "examples": [
      +            "55/45",
      +            0.55,
      +            "0.55/0.45"
      +          ]
      +        },
      +        {
      +          "items": {
      +            "type": [
      +              "number",
      +              "string"
      +            ]
      +          },
      +          "maxItems": 2,
      +          "minItems": 2,
      +          "type": "array"
      +        }
      +      ],
      +      "description": "Known top/bottom ratio. Example: 60/40.",
      +      "examples": [
      +        "60/40"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
    • changedInput schema / properties / front_lr / anyOf
      Previous value: -[
      -  {
      -    "const": 0,
      -    "type": "number"
      -  },
      -  {
      -    "exclusiveMaximum": 1,
      -    "exclusiveMinimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "exclusiveMinimum": 1,
      -    "maximum": 100,
      -    "type": "number"
      -  },
      -  {
      -    "maxLength": 80,
      -    "minLength": 1,
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "anyOf": [
      +      {
      +        "const": 0,
      +        "type": "number"
      +      },
      +      {
      +        "exclusiveMaximum": 1,
      +        "exclusiveMinimum": 0,
      +        "type": "number"
      +      },
      +      {
      +        "exclusiveMinimum": 1,
      +        "maximum": 100,
      +        "type": "number"
      +      },
      +      {
      +        "maxLength": 80,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    ],
      +    "description": "Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.",
      +    "examples": [
      +      "55/45",
      +      0.55,
      +      "0.55/0.45"
      +    ]
      +  },
      +  {
      +    "items": {
      +      "type": [
      +        "number",
      +        "string"
      +      ]
      +    },
      +    "maxItems": 2,
      +    "minItems": 2,
      +    "type": "array"
      +  }
      +]
    • changedInput schema / properties / front_lr / description
      Previous value: -"A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations."New value: +"Front left/right. Optional individually; supply at least one known axis. Do not guess the face or axis. Example: 55/45. Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations."
    • addedInput schema / properties / front_lr / examples
      Added value: +[
      +  "55/45",
      +  [
      +    55,
      +    45
      +  ]
      +]
    • changedInput schema / properties / front_tb / anyOf
      Previous value: -[
      -  {
      -    "const": 0,
      -    "type": "number"
      -  },
      -  {
      -    "exclusiveMaximum": 1,
      -    "exclusiveMinimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "exclusiveMinimum": 1,
      -    "maximum": 100,
      -    "type": "number"
      -  },
      -  {
      -    "maxLength": 80,
      -    "minLength": 1,
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "anyOf": [
      +      {
      +        "const": 0,
      +        "type": "number"
      +      },
      +      {
      +        "exclusiveMaximum": 1,
      +        "exclusiveMinimum": 0,
      +        "type": "number"
      +      },
      +      {
      +        "exclusiveMinimum": 1,
      +        "maximum": 100,
      +        "type": "number"
      +      },
      +      {
      +        "maxLength": 80,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    ],
      +    "description": "Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.",
      +    "examples": [
      +      "55/45",
      +      0.55,
      +      "0.55/0.45"
      +    ]
      +  },
      +  {
      +    "items": {
      +      "type": [
      +        "number",
      +        "string"
      +      ]
      +    },
      +    "maxItems": 2,
      +    "minItems": 2,
      +    "type": "array"
      +  }
      +]
    • changedInput schema / properties / front_tb / description
      Previous value: -"A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations."New value: +"Front top/bottom. Optional individually; supply at least one known axis. Do not guess the face or axis. Example: 55/45. Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations."
    • addedInput schema / properties / front_tb / examples
      Added value: +[
      +  "60/40",
      +  [
      +    60,
      +    40
      +  ]
      +]
    • changedInput schema / properties / house / description
      Previous value: -"Optional: return only this grading house."New value: +"Optional: return only PSA/BGS/CGC/SGC. Case/outer spaces accepted. TAG excluded; never substitute a different house. Example: PSA."
    • addedInput schema / properties / house / examples
      Added value: +[
      +  "PSA"
      +]
    • changedOutput schema / properties / back / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "ceilings": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "BGS": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "borderline": {
      -                "type": "boolean"
      -              },
      -              "distance_to_next": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "limiting_axis": {
      -                "enum": [
      -                  "lr",
      -                  "tb"
      -                ],
      -                "type": "string"
      -              },
      -              "limiting_face": {
      -                "enum": [
      -                  "front",
      -                  "back"
      -                ],
      -                "type": "string"
      -              },
      -              "maximum_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "rank": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "source": {
      -                "type": "string"
      -              },
      -              "source_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "sources": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "standard_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "unconstrained": {
      -                "type": "boolean"
      -              },
      -              "verification": {
      -                "type": "string"
      -              },
      -              "verified": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "maximum_grade",
      -              "label",
      -              "rank",
      -              "limiting_face",
      -              "limiting_axis",
      -              "distance_to_next",
      -              "next_grade",
      -              "next_label",
      -              "borderline",
      -              "unconstrained",
      -              "source_status",
      -              "standard_status",
      -              "source",
      -              "sources",
      -              "verified",
      -              "verification"
      -            ],
      -            "type": "object"
      -          },
      -          "CGC": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "borderline": {
      -                "type": "boolean"
      -              },
      -              "distance_to_next": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "limiting_axis": {
      -                "enum": [
      -                  "lr",
      -                  "tb"
      -                ],
      -                "type": "string"
      -              },
      -              "limiting_face": {
      -                "enum": [
      -                  "front",
      -                  "back"
      -                ],
      -                "type": "string"
      -              },
      -              "maximum_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "rank": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "source": {
      -                "type": "string"
      -              },
      -              "source_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "sources": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "standard_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "unconstrained": {
      -                "type": "boolean"
      -              },
      -              "verification": {
      -                "type": "string"
      -              },
      -              "verified": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "maximum_grade",
      -              "label",
      -              "rank",
      -              "limiting_face",
      -              "limiting_axis",
      -              "distance_to_next",
      -              "next_grade",
      -              "next_label",
      -              "borderline",
      -              "unconstrained",
      -              "source_status",
      -              "standard_status",
      -              "source",
      -              "sources",
      -              "verified",
      -              "verification"
      -            ],
      -            "type": "object"
      -          },
      -          "PSA": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "borderline": {
      -                "type": "boolean"
      -              },
      -              "distance_to_next": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "limiting_axis": {
      -                "enum": [
      -                  "lr",
      -                  "tb"
      -                ],
      -                "type": "string"
      -              },
      -              "limiting_face": {
      -                "enum": [
      -                  "front",
      -                  "back"
      -                ],
      -                "type": "string"
      -              },
      -              "maximum_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "rank": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "source": {
      -                "type": "string"
      -              },
      -              "source_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "sources": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "standard_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "unconstrained": {
      -                "type": "boolean"
      -              },
      -              "verification": {
      -                "type": "string"
      -              },
      -              "verified": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "maximum_grade",
      -              "label",
      -              "rank",
      -              "limiting_face",
      -              "limiting_axis",
      -              "distance_to_next",
      -              "next_grade",
      -              "next_label",
      -              "borderline",
      -              "unconstrained",
      -              "source_status",
      -              "standard_status",
      -              "source",
      -              "sources",
      -              "verified",
      -              "verification"
      -            ],
      -            "type": "object"
      -          },
      -          "SGC": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "borderline": {
      -                "type": "boolean"
      -              },
      -              "distance_to_next": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "limiting_axis": {
      -                "enum": [
      -                  "lr",
      -                  "tb"
      -                ],
      -                "type": "string"
      -              },
      -              "limiting_face": {
      -                "enum": [
      -                  "front",
      -                  "back"
      -                ],
      -                "type": "string"
      -              },
      -              "maximum_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "rank": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "source": {
      -                "type": "string"
      -              },
      -              "source_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "sources": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "standard_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "unconstrained": {
      -                "type": "boolean"
      -              },
      -              "verification": {
      -                "type": "string"
      -              },
      -              "verified": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "maximum_grade",
      -              "label",
      -              "rank",
      -              "limiting_face",
      -              "limiting_axis",
      -              "distance_to_next",
      -              "next_grade",
      -              "next_label",
      -              "borderline",
      -              "unconstrained",
      -              "source_status",
      -              "standard_status",
      -              "source",
      -              "sources",
      -              "verified",
      -              "verification"
      -            ],
      -            "type": "object"
      -          }
      -        },
      -        "type": "object"
      -      },
      -      "missing_axes": {
      -        "items": {
      -          "enum": [
      -            "lr",
      -            "tb"
      -          ],
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "ratios": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "lr": {
      -            "type": [
      -              "number",
      -              "null"
      -            ]
      -          },
      -          "tb": {
      -            "type": [
      -              "number",
      -              "null"
      -            ]
      -          }
      -        },
      -        "required": [
      -          "lr",
      -          "tb"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "ratios",
      -      "missing_axes",
      -      "ceilings"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "ceilings": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "BGS": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "borderline": {
      +                "type": "boolean"
      +              },
      +              "distance_to_next": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "limiting_axis": {
      +                "enum": [
      +                  "lr",
      +                  "tb"
      +                ],
      +                "type": "string"
      +              },
      +              "limiting_face": {
      +                "description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
      +                "enum": [
      +                  "front",
      +                  "back"
      +                ],
      +                "examples": [
      +                  "front",
      +                  "back"
      +                ],
      +                "type": "string"
      +              },
      +              "maximum_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "rank": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "source": {
      +                "type": "string"
      +              },
      +              "source_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "sources": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "standard_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "unconstrained": {
      +                "type": "boolean"
      +              },
      +              "verification": {
      +                "type": "string"
      +              },
      +              "verified": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "maximum_grade",
      +              "label",
      +              "rank",
      +              "limiting_face",
      +              "limiting_axis",
      +              "distance_to_next",
      +              "next_grade",
      +              "next_label",
      +              "borderline",
      +              "unconstrained",
      +              "source_status",
      +              "standard_status",
      +              "source",
      +              "sources",
      +              "verified",
      +              "verification"
      +            ],
      +            "type": "object"
      +          },
      +          "CGC": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "borderline": {
      +                "type": "boolean"
      +              },
      +              "distance_to_next": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "limiting_axis": {
      +                "enum": [
      +                  "lr",
      +                  "tb"
      +                ],
      +                "type": "string"
      +              },
      +              "limiting_face": {
      +                "description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
      +                "enum": [
      +                  "front",
      +                  "back"
      +                ],
      +                "examples": [
      +                  "front",
      +                  "back"
      +                ],
      +                "type": "string"
      +              },
      +              "maximum_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "rank": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "source": {
      +                "type": "string"
      +              },
      +              "source_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "sources": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "standard_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "unconstrained": {
      +                "type": "boolean"
      +              },
      +              "verification": {
      +                "type": "string"
      +              },
      +              "verified": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "maximum_grade",
      +              "label",
      +              "rank",
      +              "limiting_face",
      +              "limiting_axis",
      +              "distance_to_next",
      +              "next_grade",
      +              "next_label",
      +              "borderline",
      +              "unconstrained",
      +              "source_status",
      +              "standard_status",
      +              "source",
      +              "sources",
      +              "verified",
      +              "verification"
      +            ],
      +            "type": "object"
      +          },
      +          "PSA": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "borderline": {
      +                "type": "boolean"
      +              },
      +              "distance_to_next": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "limiting_axis": {
      +                "enum": [
      +                  "lr",
      +                  "tb"
      +                ],
      +                "type": "string"
      +              },
      +              "limiting_face": {
      +                "description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
      +                "enum": [
      +                  "front",
      +                  "back"
      +                ],
      +                "examples": [
      +                  "front",
      +                  "back"
      +                ],
      +                "type": "string"
      +              },
      +              "maximum_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "rank": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "source": {
      +                "type": "string"
      +              },
      +              "source_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "sources": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "standard_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "unconstrained": {
      +                "type": "boolean"
      +              },
      +              "verification": {
      +                "type": "string"
      +              },
      +              "verified": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "maximum_grade",
      +              "label",
      +              "rank",
      +              "limiting_face",
      +              "limiting_axis",
      +              "distance_to_next",
      +              "next_grade",
      +              "next_label",
      +              "borderline",
      +              "unconstrained",
      +              "source_status",
      +              "standard_status",
      +              "source",
      +              "sources",
      +              "verified",
      +              "verification"
      +            ],
      +            "type": "object"
      +          },
      +          "SGC": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "borderline": {
      +                "type": "boolean"
      +              },
      +              "distance_to_next": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "limiting_axis": {
      +                "enum": [
      +                  "lr",
      +                  "tb"
      +                ],
      +                "type": "string"
      +              },
      +              "limiting_face": {
      +                "description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
      +                "enum": [
      +                  "front",
      +                  "back"
      +                ],
      +                "examples": [
      +                  "front",
      +                  "back"
      +                ],
      +                "type": "string"
      +              },
      +              "maximum_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "rank": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "source": {
      +                "type": "string"
      +              },
      +              "source_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "sources": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "standard_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "unconstrained": {
      +                "type": "boolean"
      +              },
      +              "verification": {
      +                "type": "string"
      +              },
      +              "verified": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "maximum_grade",
      +              "label",
      +              "rank",
      +              "limiting_face",
      +              "limiting_axis",
      +              "distance_to_next",
      +              "next_grade",
      +              "next_label",
      +              "borderline",
      +              "unconstrained",
      +              "source_status",
      +              "standard_status",
      +              "source",
      +              "sources",
      +              "verified",
      +              "verification"
      +            ],
      +            "type": "object"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "missing_axes": {
      +        "items": {
      +          "enum": [
      +            "lr",
      +            "tb"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "ratios": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "lr": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "tb": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "lr",
      +          "tb"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "ratios",
      +      "missing_axes",
      +      "ceilings"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / combined / properties / BGS / properties / limiting_face / description
      Added value: +"Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front."
    • addedOutput schema / properties / combined / properties / BGS / properties / limiting_face / examples
      Added value: +[
      +  "front",
      +  "back"
      +]
    • addedOutput schema / properties / combined / properties / CGC / properties / limiting_face / description
      Added value: +"Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front."
    • addedOutput schema / properties / combined / properties / CGC / properties / limiting_face / examples
      Added value: +[
      +  "front",
      +  "back"
      +]
    • addedOutput schema / properties / combined / properties / PSA / properties / limiting_face / description
      Added value: +"Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front."
    • addedOutput schema / properties / combined / properties / PSA / properties / limiting_face / examples
      Added value: +[
      +  "front",
      +  "back"
      +]
    • addedOutput schema / properties / combined / properties / SGC / properties / limiting_face / description
      Added value: +"Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front."
    • addedOutput schema / properties / combined / properties / SGC / properties / limiting_face / examples
      Added value: +[
      +  "front",
      +  "back"
      +]
    • changedOutput schema / properties / front / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "ceilings": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "BGS": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "borderline": {
      -                "type": "boolean"
      -              },
      -              "distance_to_next": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "limiting_axis": {
      -                "enum": [
      -                  "lr",
      -                  "tb"
      -                ],
      -                "type": "string"
      -              },
      -              "limiting_face": {
      -                "enum": [
      -                  "front",
      -                  "back"
      -                ],
      -                "type": "string"
      -              },
      -              "maximum_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "rank": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "source": {
      -                "type": "string"
      -              },
      -              "source_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "sources": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "standard_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "unconstrained": {
      -                "type": "boolean"
      -              },
      -              "verification": {
      -                "type": "string"
      -              },
      -              "verified": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "maximum_grade",
      -              "label",
      -              "rank",
      -              "limiting_face",
      -              "limiting_axis",
      -              "distance_to_next",
      -              "next_grade",
      -              "next_label",
      -              "borderline",
      -              "unconstrained",
      -              "source_status",
      -              "standard_status",
      -              "source",
      -              "sources",
      -              "verified",
      -              "verification"
      -            ],
      -            "type": "object"
      -          },
      -          "CGC": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "borderline": {
      -                "type": "boolean"
      -              },
      -              "distance_to_next": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "limiting_axis": {
      -                "enum": [
      -                  "lr",
      -                  "tb"
      -                ],
      -                "type": "string"
      -              },
      -              "limiting_face": {
      -                "enum": [
      -                  "front",
      -                  "back"
      -                ],
      -                "type": "string"
      -              },
      -              "maximum_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "rank": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "source": {
      -                "type": "string"
      -              },
      -              "source_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "sources": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "standard_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "unconstrained": {
      -                "type": "boolean"
      -              },
      -              "verification": {
      -                "type": "string"
      -              },
      -              "verified": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "maximum_grade",
      -              "label",
      -              "rank",
      -              "limiting_face",
      -              "limiting_axis",
      -              "distance_to_next",
      -              "next_grade",
      -              "next_label",
      -              "borderline",
      -              "unconstrained",
      -              "source_status",
      -              "standard_status",
      -              "source",
      -              "sources",
      -              "verified",
      -              "verification"
      -            ],
      -            "type": "object"
      -          },
      -          "PSA": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "borderline": {
      -                "type": "boolean"
      -              },
      -              "distance_to_next": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "limiting_axis": {
      -                "enum": [
      -                  "lr",
      -                  "tb"
      -                ],
      -                "type": "string"
      -              },
      -              "limiting_face": {
      -                "enum": [
      -                  "front",
      -                  "back"
      -                ],
      -                "type": "string"
      -              },
      -              "maximum_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "rank": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "source": {
      -                "type": "string"
      -              },
      -              "source_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "sources": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "standard_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "unconstrained": {
      -                "type": "boolean"
      -              },
      -              "verification": {
      -                "type": "string"
      -              },
      -              "verified": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "maximum_grade",
      -              "label",
      -              "rank",
      -              "limiting_face",
      -              "limiting_axis",
      -              "distance_to_next",
      -              "next_grade",
      -              "next_label",
      -              "borderline",
      -              "unconstrained",
      -              "source_status",
      -              "standard_status",
      -              "source",
      -              "sources",
      -              "verified",
      -              "verification"
      -            ],
      -            "type": "object"
      -          },
      -          "SGC": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "borderline": {
      -                "type": "boolean"
      -              },
      -              "distance_to_next": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "limiting_axis": {
      -                "enum": [
      -                  "lr",
      -                  "tb"
      -                ],
      -                "type": "string"
      -              },
      -              "limiting_face": {
      -                "enum": [
      -                  "front",
      -                  "back"
      -                ],
      -                "type": "string"
      -              },
      -              "maximum_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "rank": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "source": {
      -                "type": "string"
      -              },
      -              "source_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "sources": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "standard_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "unconstrained": {
      -                "type": "boolean"
      -              },
      -              "verification": {
      -                "type": "string"
      -              },
      -              "verified": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "maximum_grade",
      -              "label",
      -              "rank",
      -              "limiting_face",
      -              "limiting_axis",
      -              "distance_to_next",
      -              "next_grade",
      -              "next_label",
      -              "borderline",
      -              "unconstrained",
      -              "source_status",
      -              "standard_status",
      -              "source",
      -              "sources",
      -              "verified",
      -              "verification"
      -            ],
      -            "type": "object"
      -          }
      -        },
      -        "type": "object"
      -      },
      -      "missing_axes": {
      -        "items": {
      -          "enum": [
      -            "lr",
      -            "tb"
      -          ],
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "ratios": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "lr": {
      -            "type": [
      -              "number",
      -              "null"
      -            ]
      -          },
      -          "tb": {
      -            "type": [
      -              "number",
      -              "null"
      -            ]
      -          }
      -        },
      -        "required": [
      -          "lr",
      -          "tb"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "ratios",
      -      "missing_axes",
      -      "ceilings"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "ceilings": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "BGS": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "borderline": {
      +                "type": "boolean"
      +              },
      +              "distance_to_next": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "limiting_axis": {
      +                "enum": [
      +                  "lr",
      +                  "tb"
      +                ],
      +                "type": "string"
      +              },
      +              "limiting_face": {
      +                "description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
      +                "enum": [
      +                  "front",
      +                  "back"
      +                ],
      +                "examples": [
      +                  "front",
      +                  "back"
      +                ],
      +                "type": "string"
      +              },
      +              "maximum_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "rank": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "source": {
      +                "type": "string"
      +              },
      +              "source_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "sources": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "standard_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "unconstrained": {
      +                "type": "boolean"
      +              },
      +              "verification": {
      +                "type": "string"
      +              },
      +              "verified": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "maximum_grade",
      +              "label",
      +              "rank",
      +              "limiting_face",
      +              "limiting_axis",
      +              "distance_to_next",
      +              "next_grade",
      +              "next_label",
      +              "borderline",
      +              "unconstrained",
      +              "source_status",
      +              "standard_status",
      +              "source",
      +              "sources",
      +              "verified",
      +              "verification"
      +            ],
      +            "type": "object"
      +          },
      +          "CGC": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "borderline": {
      +                "type": "boolean"
      +              },
      +              "distance_to_next": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "limiting_axis": {
      +                "enum": [
      +                  "lr",
      +                  "tb"
      +                ],
      +                "type": "string"
      +              },
      +              "limiting_face": {
      +                "description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
      +                "enum": [
      +                  "front",
      +                  "back"
      +                ],
      +                "examples": [
      +                  "front",
      +                  "back"
      +                ],
      +                "type": "string"
      +              },
      +              "maximum_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "rank": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "source": {
      +                "type": "string"
      +              },
      +              "source_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "sources": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "standard_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "unconstrained": {
      +                "type": "boolean"
      +              },
      +              "verification": {
      +                "type": "string"
      +              },
      +              "verified": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "maximum_grade",
      +              "label",
      +              "rank",
      +              "limiting_face",
      +              "limiting_axis",
      +              "distance_to_next",
      +              "next_grade",
      +              "next_label",
      +              "borderline",
      +              "unconstrained",
      +              "source_status",
      +              "standard_status",
      +              "source",
      +              "sources",
      +              "verified",
      +              "verification"
      +            ],
      +            "type": "object"
      +          },
      +          "PSA": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "borderline": {
      +                "type": "boolean"
      +              },
      +              "distance_to_next": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "limiting_axis": {
      +                "enum": [
      +                  "lr",
      +                  "tb"
      +                ],
      +                "type": "string"
      +              },
      +              "limiting_face": {
      +                "description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
      +                "enum": [
      +                  "front",
      +                  "back"
      +                ],
      +                "examples": [
      +                  "front",
      +                  "back"
      +                ],
      +                "type": "string"
      +              },
      +              "maximum_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "rank": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "source": {
      +                "type": "string"
      +              },
      +              "source_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "sources": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "standard_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "unconstrained": {
      +                "type": "boolean"
      +              },
      +              "verification": {
      +                "type": "string"
      +              },
      +              "verified": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "maximum_grade",
      +              "label",
      +              "rank",
      +              "limiting_face",
      +              "limiting_axis",
      +              "distance_to_next",
      +              "next_grade",
      +              "next_label",
      +              "borderline",
      +              "unconstrained",
      +              "source_status",
      +              "standard_status",
      +              "source",
      +              "sources",
      +              "verified",
      +              "verification"
      +            ],
      +            "type": "object"
      +          },
      +          "SGC": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "borderline": {
      +                "type": "boolean"
      +              },
      +              "distance_to_next": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "limiting_axis": {
      +                "enum": [
      +                  "lr",
      +                  "tb"
      +                ],
      +                "type": "string"
      +              },
      +              "limiting_face": {
      +                "description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
      +                "enum": [
      +                  "front",
      +                  "back"
      +                ],
      +                "examples": [
      +                  "front",
      +                  "back"
      +                ],
      +                "type": "string"
      +              },
      +              "maximum_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "rank": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "source": {
      +                "type": "string"
      +              },
      +              "source_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "sources": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "standard_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "unconstrained": {
      +                "type": "boolean"
      +              },
      +              "verification": {
      +                "type": "string"
      +              },
      +              "verified": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "maximum_grade",
      +              "label",
      +              "rank",
      +              "limiting_face",
      +              "limiting_axis",
      +              "distance_to_next",
      +              "next_grade",
      +              "next_label",
      +              "borderline",
      +              "unconstrained",
      +              "source_status",
      +              "standard_status",
      +              "source",
      +              "sources",
      +              "verified",
      +              "verification"
      +            ],
      +            "type": "object"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "missing_axes": {
      +        "items": {
      +          "enum": [
      +            "lr",
      +            "tb"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "ratios": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "lr": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "tb": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "lr",
      +          "tb"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "ratios",
      +      "missing_axes",
      +      "ceilings"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / missing_faces / items / description
      Added value: +"Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front."
    • addedOutput schema / properties / missing_faces / items / examples
      Added value: +[
      +  "front",
      +  "back"
      +]
    • removedOutput schema / properties / normalizations / items / properties / field / enum
      Removed value: -[
      -  "front_lr",
      -  "front_tb",
      -  "back_lr",
      -  "back_tb"
      -]
    • changedOutput schema / properties / normalizations / items / required
      Previous value: -[
      -  "field",
      -  "input",
      -  "ratio",
      -  "note"
      -]New value: +[
      +  "field",
      +  "note"
      +]
  2. Changed14 schema fields changed
    • changedInput schema / properties / back_lr / anyOf
      Previous value: -[
      -  {
      -    "maximum": 100,
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "maxLength": 40,
      -    "minLength": 1,
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "const": 0,
      +    "type": "number"
      +  },
      +  {
      +    "exclusiveMaximum": 1,
      +    "exclusiveMinimum": 0,
      +    "type": "number"
      +  },
      +  {
      +    "exclusiveMinimum": 1,
      +    "maximum": 100,
      +    "type": "number"
      +  },
      +  {
      +    "maxLength": 80,
      +    "minLength": 1,
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / back_lr / description
      Previous value: -"A percentage (55 or 45), or two percentages summing to 100 (\"55/45\" or \"45/55\"). Normalized to the larger side."New value: +"A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations."
    • changedInput schema / properties / back_tb / anyOf
      Previous value: -[
      -  {
      -    "maximum": 100,
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "maxLength": 40,
      -    "minLength": 1,
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "const": 0,
      +    "type": "number"
      +  },
      +  {
      +    "exclusiveMaximum": 1,
      +    "exclusiveMinimum": 0,
      +    "type": "number"
      +  },
      +  {
      +    "exclusiveMinimum": 1,
      +    "maximum": 100,
      +    "type": "number"
      +  },
      +  {
      +    "maxLength": 80,
      +    "minLength": 1,
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / back_tb / description
      Previous value: -"A percentage (55 or 45), or two percentages summing to 100 (\"55/45\" or \"45/55\"). Normalized to the larger side."New value: +"A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations."
    • changedInput schema / properties / front_lr / anyOf
      Previous value: -[
      -  {
      -    "maximum": 100,
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "maxLength": 40,
      -    "minLength": 1,
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "const": 0,
      +    "type": "number"
      +  },
      +  {
      +    "exclusiveMaximum": 1,
      +    "exclusiveMinimum": 0,
      +    "type": "number"
      +  },
      +  {
      +    "exclusiveMinimum": 1,
      +    "maximum": 100,
      +    "type": "number"
      +  },
      +  {
      +    "maxLength": 80,
      +    "minLength": 1,
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / front_lr / description
      Previous value: -"A percentage (55 or 45), or two percentages summing to 100 (\"55/45\" or \"45/55\"). Normalized to the larger side."New value: +"A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations."
    • changedInput schema / properties / front_tb / anyOf
      Previous value: -[
      -  {
      -    "maximum": 100,
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "maxLength": 40,
      -    "minLength": 1,
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "const": 0,
      +    "type": "number"
      +  },
      +  {
      +    "exclusiveMaximum": 1,
      +    "exclusiveMinimum": 0,
      +    "type": "number"
      +  },
      +  {
      +    "exclusiveMinimum": 1,
      +    "maximum": 100,
      +    "type": "number"
      +  },
      +  {
      +    "maxLength": 80,
      +    "minLength": 1,
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / front_tb / description
      Previous value: -"A percentage (55 or 45), or two percentages summing to 100 (\"55/45\" or \"45/55\"). Normalized to the larger side."New value: +"A percentage within 0–100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - – — : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations."
    • addedInput schema / properties / house
      Added value: +{
      +  "description": "Optional: return only this grading house.",
      +  "enum": [
      +    "PSA",
      +    "BGS",
      +    "CGC",
      +    "SGC"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / back / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "ceilings": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "BGS": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "borderline": {
      -                "type": "boolean"
      -              },
      -              "distance_to_next": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "limiting_axis": {
      -                "enum": [
      -                  "lr",
      -                  "tb"
      -                ],
      -                "type": "string"
      -              },
      -              "limiting_face": {
      -                "enum": [
      -                  "front",
      -                  "back"
      -                ],
      -                "type": "string"
      -              },
      -              "maximum_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "rank": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "source": {
      -                "type": "string"
      -              },
      -              "source_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "sources": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "standard_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "unconstrained": {
      -                "type": "boolean"
      -              },
      -              "verification": {
      -                "type": "string"
      -              },
      -              "verified": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "maximum_grade",
      -              "label",
      -              "rank",
      -              "limiting_face",
      -              "limiting_axis",
      -              "distance_to_next",
      -              "next_grade",
      -              "next_label",
      -              "borderline",
      -              "unconstrained",
      -              "source_status",
      -              "standard_status",
      -              "source",
      -              "sources",
      -              "verified",
      -              "verification"
      -            ],
      -            "type": "object"
      -          },
      -          "CGC": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "borderline": {
      -                "type": "boolean"
      -              },
      -              "distance_to_next": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "limiting_axis": {
      -                "enum": [
      -                  "lr",
      -                  "tb"
      -                ],
      -                "type": "string"
      -              },
      -              "limiting_face": {
      -                "enum": [
      -                  "front",
      -                  "back"
      -                ],
      -                "type": "string"
      -              },
      -              "maximum_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "rank": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "source": {
      -                "type": "string"
      -              },
      -              "source_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "sources": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "standard_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "unconstrained": {
      -                "type": "boolean"
      -              },
      -              "verification": {
      -                "type": "string"
      -              },
      -              "verified": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "maximum_grade",
      -              "label",
      -              "rank",
      -              "limiting_face",
      -              "limiting_axis",
      -              "distance_to_next",
      -              "next_grade",
      -              "next_label",
      -              "borderline",
      -              "unconstrained",
      -              "source_status",
      -              "standard_status",
      -              "source",
      -              "sources",
      -              "verified",
      -              "verification"
      -            ],
      -            "type": "object"
      -          },
      -          "PSA": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "borderline": {
      -                "type": "boolean"
      -              },
      -              "distance_to_next": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "limiting_axis": {
      -                "enum": [
      -                  "lr",
      -                  "tb"
      -                ],
      -                "type": "string"
      -              },
      -              "limiting_face": {
      -                "enum": [
      -                  "front",
      -                  "back"
      -                ],
      -                "type": "string"
      -              },
      -              "maximum_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "rank": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "source": {
      -                "type": "string"
      -              },
      -              "source_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "sources": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "standard_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "unconstrained": {
      -                "type": "boolean"
      -              },
      -              "verification": {
      -                "type": "string"
      -              },
      -              "verified": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "maximum_grade",
      -              "label",
      -              "rank",
      -              "limiting_face",
      -              "limiting_axis",
      -              "distance_to_next",
      -              "next_grade",
      -              "next_label",
      -              "borderline",
      -              "unconstrained",
      -              "source_status",
      -              "standard_status",
      -              "source",
      -              "sources",
      -              "verified",
      -              "verification"
      -            ],
      -            "type": "object"
      -          },
      -          "SGC": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "borderline": {
      -                "type": "boolean"
      -              },
      -              "distance_to_next": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "limiting_axis": {
      -                "enum": [
      -                  "lr",
      -                  "tb"
      -                ],
      -                "type": "string"
      -              },
      -              "limiting_face": {
      -                "enum": [
      -                  "front",
      -                  "back"
      -                ],
      -                "type": "string"
      -              },
      -              "maximum_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "rank": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "source": {
      -                "type": "string"
      -              },
      -              "source_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "sources": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "standard_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "unconstrained": {
      -                "type": "boolean"
      -              },
      -              "verification": {
      -                "type": "string"
      -              },
      -              "verified": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "maximum_grade",
      -              "label",
      -              "rank",
      -              "limiting_face",
      -              "limiting_axis",
      -              "distance_to_next",
      -              "next_grade",
      -              "next_label",
      -              "borderline",
      -              "unconstrained",
      -              "source_status",
      -              "standard_status",
      -              "source",
      -              "sources",
      -              "verified",
      -              "verification"
      -            ],
      -            "type": "object"
      -          }
      -        },
      -        "required": [
      -          "PSA",
      -          "BGS",
      -          "CGC",
      -          "SGC"
      -        ],
      -        "type": "object"
      -      },
      -      "missing_axes": {
      -        "items": {
      -          "enum": [
      -            "lr",
      -            "tb"
      -          ],
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "ratios": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "lr": {
      -            "type": [
      -              "number",
      -              "null"
      -            ]
      -          },
      -          "tb": {
      -            "type": [
      -              "number",
      -              "null"
      -            ]
      -          }
      -        },
      -        "required": [
      -          "lr",
      -          "tb"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "ratios",
      -      "missing_axes",
      -      "ceilings"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "ceilings": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "BGS": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "borderline": {
      +                "type": "boolean"
      +              },
      +              "distance_to_next": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "limiting_axis": {
      +                "enum": [
      +                  "lr",
      +                  "tb"
      +                ],
      +                "type": "string"
      +              },
      +              "limiting_face": {
      +                "enum": [
      +                  "front",
      +                  "back"
      +                ],
      +                "type": "string"
      +              },
      +              "maximum_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "rank": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "source": {
      +                "type": "string"
      +              },
      +              "source_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "sources": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "standard_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "unconstrained": {
      +                "type": "boolean"
      +              },
      +              "verification": {
      +                "type": "string"
      +              },
      +              "verified": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "maximum_grade",
      +              "label",
      +              "rank",
      +              "limiting_face",
      +              "limiting_axis",
      +              "distance_to_next",
      +              "next_grade",
      +              "next_label",
      +              "borderline",
      +              "unconstrained",
      +              "source_status",
      +              "standard_status",
      +              "source",
      +              "sources",
      +              "verified",
      +              "verification"
      +            ],
      +            "type": "object"
      +          },
      +          "CGC": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "borderline": {
      +                "type": "boolean"
      +              },
      +              "distance_to_next": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "limiting_axis": {
      +                "enum": [
      +                  "lr",
      +                  "tb"
      +                ],
      +                "type": "string"
      +              },
      +              "limiting_face": {
      +                "enum": [
      +                  "front",
      +                  "back"
      +                ],
      +                "type": "string"
      +              },
      +              "maximum_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "rank": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "source": {
      +                "type": "string"
      +              },
      +              "source_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "sources": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "standard_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "unconstrained": {
      +                "type": "boolean"
      +              },
      +              "verification": {
      +                "type": "string"
      +              },
      +              "verified": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "maximum_grade",
      +              "label",
      +              "rank",
      +              "limiting_face",
      +              "limiting_axis",
      +              "distance_to_next",
      +              "next_grade",
      +              "next_label",
      +              "borderline",
      +              "unconstrained",
      +              "source_status",
      +              "standard_status",
      +              "source",
      +              "sources",
      +              "verified",
      +              "verification"
      +            ],
      +            "type": "object"
      +          },
      +          "PSA": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "borderline": {
      +                "type": "boolean"
      +              },
      +              "distance_to_next": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "limiting_axis": {
      +                "enum": [
      +                  "lr",
      +                  "tb"
      +                ],
      +                "type": "string"
      +              },
      +              "limiting_face": {
      +                "enum": [
      +                  "front",
      +                  "back"
      +                ],
      +                "type": "string"
      +              },
      +              "maximum_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "rank": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "source": {
      +                "type": "string"
      +              },
      +              "source_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "sources": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "standard_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "unconstrained": {
      +                "type": "boolean"
      +              },
      +              "verification": {
      +                "type": "string"
      +              },
      +              "verified": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "maximum_grade",
      +              "label",
      +              "rank",
      +              "limiting_face",
      +              "limiting_axis",
      +              "distance_to_next",
      +              "next_grade",
      +              "next_label",
      +              "borderline",
      +              "unconstrained",
      +              "source_status",
      +              "standard_status",
      +              "source",
      +              "sources",
      +              "verified",
      +              "verification"
      +            ],
      +            "type": "object"
      +          },
      +          "SGC": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "borderline": {
      +                "type": "boolean"
      +              },
      +              "distance_to_next": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "limiting_axis": {
      +                "enum": [
      +                  "lr",
      +                  "tb"
      +                ],
      +                "type": "string"
      +              },
      +              "limiting_face": {
      +                "enum": [
      +                  "front",
      +                  "back"
      +                ],
      +                "type": "string"
      +              },
      +              "maximum_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "rank": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "source": {
      +                "type": "string"
      +              },
      +              "source_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "sources": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "standard_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "unconstrained": {
      +                "type": "boolean"
      +              },
      +              "verification": {
      +                "type": "string"
      +              },
      +              "verified": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "maximum_grade",
      +              "label",
      +              "rank",
      +              "limiting_face",
      +              "limiting_axis",
      +              "distance_to_next",
      +              "next_grade",
      +              "next_label",
      +              "borderline",
      +              "unconstrained",
      +              "source_status",
      +              "standard_status",
      +              "source",
      +              "sources",
      +              "verified",
      +              "verification"
      +            ],
      +            "type": "object"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "missing_axes": {
      +        "items": {
      +          "enum": [
      +            "lr",
      +            "tb"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "ratios": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "lr": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "tb": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "lr",
      +          "tb"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "ratios",
      +      "missing_axes",
      +      "ceilings"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / combined / required
      Removed value: -[
      -  "PSA",
      -  "BGS",
      -  "CGC",
      -  "SGC"
      -]
    • changedOutput schema / properties / front / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "ceilings": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "BGS": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "borderline": {
      -                "type": "boolean"
      -              },
      -              "distance_to_next": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "limiting_axis": {
      -                "enum": [
      -                  "lr",
      -                  "tb"
      -                ],
      -                "type": "string"
      -              },
      -              "limiting_face": {
      -                "enum": [
      -                  "front",
      -                  "back"
      -                ],
      -                "type": "string"
      -              },
      -              "maximum_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "rank": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "source": {
      -                "type": "string"
      -              },
      -              "source_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "sources": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "standard_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "unconstrained": {
      -                "type": "boolean"
      -              },
      -              "verification": {
      -                "type": "string"
      -              },
      -              "verified": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "maximum_grade",
      -              "label",
      -              "rank",
      -              "limiting_face",
      -              "limiting_axis",
      -              "distance_to_next",
      -              "next_grade",
      -              "next_label",
      -              "borderline",
      -              "unconstrained",
      -              "source_status",
      -              "standard_status",
      -              "source",
      -              "sources",
      -              "verified",
      -              "verification"
      -            ],
      -            "type": "object"
      -          },
      -          "CGC": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "borderline": {
      -                "type": "boolean"
      -              },
      -              "distance_to_next": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "limiting_axis": {
      -                "enum": [
      -                  "lr",
      -                  "tb"
      -                ],
      -                "type": "string"
      -              },
      -              "limiting_face": {
      -                "enum": [
      -                  "front",
      -                  "back"
      -                ],
      -                "type": "string"
      -              },
      -              "maximum_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "rank": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "source": {
      -                "type": "string"
      -              },
      -              "source_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "sources": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "standard_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "unconstrained": {
      -                "type": "boolean"
      -              },
      -              "verification": {
      -                "type": "string"
      -              },
      -              "verified": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "maximum_grade",
      -              "label",
      -              "rank",
      -              "limiting_face",
      -              "limiting_axis",
      -              "distance_to_next",
      -              "next_grade",
      -              "next_label",
      -              "borderline",
      -              "unconstrained",
      -              "source_status",
      -              "standard_status",
      -              "source",
      -              "sources",
      -              "verified",
      -              "verification"
      -            ],
      -            "type": "object"
      -          },
      -          "PSA": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "borderline": {
      -                "type": "boolean"
      -              },
      -              "distance_to_next": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "limiting_axis": {
      -                "enum": [
      -                  "lr",
      -                  "tb"
      -                ],
      -                "type": "string"
      -              },
      -              "limiting_face": {
      -                "enum": [
      -                  "front",
      -                  "back"
      -                ],
      -                "type": "string"
      -              },
      -              "maximum_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "rank": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "source": {
      -                "type": "string"
      -              },
      -              "source_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "sources": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "standard_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "unconstrained": {
      -                "type": "boolean"
      -              },
      -              "verification": {
      -                "type": "string"
      -              },
      -              "verified": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "maximum_grade",
      -              "label",
      -              "rank",
      -              "limiting_face",
      -              "limiting_axis",
      -              "distance_to_next",
      -              "next_grade",
      -              "next_label",
      -              "borderline",
      -              "unconstrained",
      -              "source_status",
      -              "standard_status",
      -              "source",
      -              "sources",
      -              "verified",
      -              "verification"
      -            ],
      -            "type": "object"
      -          },
      -          "SGC": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "borderline": {
      -                "type": "boolean"
      -              },
      -              "distance_to_next": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "limiting_axis": {
      -                "enum": [
      -                  "lr",
      -                  "tb"
      -                ],
      -                "type": "string"
      -              },
      -              "limiting_face": {
      -                "enum": [
      -                  "front",
      -                  "back"
      -                ],
      -                "type": "string"
      -              },
      -              "maximum_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_grade": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "next_label": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "rank": {
      -                "type": [
      -                  "number",
      -                  "null"
      -                ]
      -              },
      -              "source": {
      -                "type": "string"
      -              },
      -              "source_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "sources": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "standard_status": {
      -                "enum": [
      -                  "official",
      -                  "interpreted",
      -                  "approximate"
      -                ],
      -                "type": "string"
      -              },
      -              "unconstrained": {
      -                "type": "boolean"
      -              },
      -              "verification": {
      -                "type": "string"
      -              },
      -              "verified": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "maximum_grade",
      -              "label",
      -              "rank",
      -              "limiting_face",
      -              "limiting_axis",
      -              "distance_to_next",
      -              "next_grade",
      -              "next_label",
      -              "borderline",
      -              "unconstrained",
      -              "source_status",
      -              "standard_status",
      -              "source",
      -              "sources",
      -              "verified",
      -              "verification"
      -            ],
      -            "type": "object"
      -          }
      -        },
      -        "required": [
      -          "PSA",
      -          "BGS",
      -          "CGC",
      -          "SGC"
      -        ],
      -        "type": "object"
      -      },
      -      "missing_axes": {
      -        "items": {
      -          "enum": [
      -            "lr",
      -            "tb"
      -          ],
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "ratios": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "lr": {
      -            "type": [
      -              "number",
      -              "null"
      -            ]
      -          },
      -          "tb": {
      -            "type": [
      -              "number",
      -              "null"
      -            ]
      -          }
      -        },
      -        "required": [
      -          "lr",
      -          "tb"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "ratios",
      -      "missing_axes",
      -      "ceilings"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "ceilings": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "BGS": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "borderline": {
      +                "type": "boolean"
      +              },
      +              "distance_to_next": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "limiting_axis": {
      +                "enum": [
      +                  "lr",
      +                  "tb"
      +                ],
      +                "type": "string"
      +              },
      +              "limiting_face": {
      +                "enum": [
      +                  "front",
      +                  "back"
      +                ],
      +                "type": "string"
      +              },
      +              "maximum_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "rank": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "source": {
      +                "type": "string"
      +              },
      +              "source_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "sources": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "standard_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "unconstrained": {
      +                "type": "boolean"
      +              },
      +              "verification": {
      +                "type": "string"
      +              },
      +              "verified": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "maximum_grade",
      +              "label",
      +              "rank",
      +              "limiting_face",
      +              "limiting_axis",
      +              "distance_to_next",
      +              "next_grade",
      +              "next_label",
      +              "borderline",
      +              "unconstrained",
      +              "source_status",
      +              "standard_status",
      +              "source",
      +              "sources",
      +              "verified",
      +              "verification"
      +            ],
      +            "type": "object"
      +          },
      +          "CGC": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "borderline": {
      +                "type": "boolean"
      +              },
      +              "distance_to_next": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "limiting_axis": {
      +                "enum": [
      +                  "lr",
      +                  "tb"
      +                ],
      +                "type": "string"
      +              },
      +              "limiting_face": {
      +                "enum": [
      +                  "front",
      +                  "back"
      +                ],
      +                "type": "string"
      +              },
      +              "maximum_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "rank": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "source": {
      +                "type": "string"
      +              },
      +              "source_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "sources": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "standard_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "unconstrained": {
      +                "type": "boolean"
      +              },
      +              "verification": {
      +                "type": "string"
      +              },
      +              "verified": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "maximum_grade",
      +              "label",
      +              "rank",
      +              "limiting_face",
      +              "limiting_axis",
      +              "distance_to_next",
      +              "next_grade",
      +              "next_label",
      +              "borderline",
      +              "unconstrained",
      +              "source_status",
      +              "standard_status",
      +              "source",
      +              "sources",
      +              "verified",
      +              "verification"
      +            ],
      +            "type": "object"
      +          },
      +          "PSA": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "borderline": {
      +                "type": "boolean"
      +              },
      +              "distance_to_next": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "limiting_axis": {
      +                "enum": [
      +                  "lr",
      +                  "tb"
      +                ],
      +                "type": "string"
      +              },
      +              "limiting_face": {
      +                "enum": [
      +                  "front",
      +                  "back"
      +                ],
      +                "type": "string"
      +              },
      +              "maximum_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "rank": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "source": {
      +                "type": "string"
      +              },
      +              "source_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "sources": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "standard_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "unconstrained": {
      +                "type": "boolean"
      +              },
      +              "verification": {
      +                "type": "string"
      +              },
      +              "verified": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "maximum_grade",
      +              "label",
      +              "rank",
      +              "limiting_face",
      +              "limiting_axis",
      +              "distance_to_next",
      +              "next_grade",
      +              "next_label",
      +              "borderline",
      +              "unconstrained",
      +              "source_status",
      +              "standard_status",
      +              "source",
      +              "sources",
      +              "verified",
      +              "verification"
      +            ],
      +            "type": "object"
      +          },
      +          "SGC": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "borderline": {
      +                "type": "boolean"
      +              },
      +              "distance_to_next": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "limiting_axis": {
      +                "enum": [
      +                  "lr",
      +                  "tb"
      +                ],
      +                "type": "string"
      +              },
      +              "limiting_face": {
      +                "enum": [
      +                  "front",
      +                  "back"
      +                ],
      +                "type": "string"
      +              },
      +              "maximum_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_grade": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "next_label": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "rank": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              },
      +              "source": {
      +                "type": "string"
      +              },
      +              "source_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "sources": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "standard_status": {
      +                "enum": [
      +                  "official",
      +                  "interpreted",
      +                  "approximate"
      +                ],
      +                "type": "string"
      +              },
      +              "unconstrained": {
      +                "type": "boolean"
      +              },
      +              "verification": {
      +                "type": "string"
      +              },
      +              "verified": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "maximum_grade",
      +              "label",
      +              "rank",
      +              "limiting_face",
      +              "limiting_axis",
      +              "distance_to_next",
      +              "next_grade",
      +              "next_label",
      +              "borderline",
      +              "unconstrained",
      +              "source_status",
      +              "standard_status",
      +              "source",
      +              "sources",
      +              "verified",
      +              "verification"
      +            ],
      +            "type": "object"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "missing_axes": {
      +        "items": {
      +          "enum": [
      +            "lr",
      +            "tb"
      +          ],
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "ratios": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "lr": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "tb": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "lr",
      +          "tb"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "ratios",
      +      "missing_axes",
      +      "ceilings"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / normalizations
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "field": {
      +        "enum": [
      +          "front_lr",
      +          "front_tb",
      +          "back_lr",
      +          "back_tb"
      +        ],
      +        "type": "string"
      +      },
      +      "input": {
      +        "type": [
      +          "number",
      +          "string"
      +        ]
      +      },
      +      "note": {
      +        "type": "string"
      +      },
      +      "ratio": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "field",
      +      "input",
      +      "ratio",
      +      "note"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "front",
      -  "back",
      -  "combined",
      -  "incomplete",
      -  "missing_faces",
      -  "summary",
      -  "disclaimer"
      -]New value: +[
      +  "front",
      +  "back",
      +  "combined",
      +  "normalizations",
      +  "incomplete",
      +  "missing_faces",
      +  "summary",
      +  "disclaimer"
      +]
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnly/idempotent annotations: discloses that input is normalized and 'changes disclosed in normalizations', that partial input yields incomplete=true with a provisional ceiling, that a centering ceiling is NOT a predicted grade, that SGC back has no published ceiling, and that TAG is excluded and scalar 1 rejected. These are real behavioral facts an agent needs before trusting the output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the imperative and an inline example, then packs constraints tightly. It is appropriately sized for a 7-parameter tool with nested objects, though the back half reads as a dense run-on where a few sentences (normalizations, SGC back) could be grouped for faster scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the description still covers input grammar, partial-result semantics, the ceiling-vs-grade caveat, and house coverage limits. Nothing an agent needs to invoke or interpret the call is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the baseline is 3, but the description adds cross-field rules the schema cannot express: no duplicates, never mix flat and nested forms, and 'axis suffix must match field', plus key/house case tolerance. It does repeat much of the ratio grammar already present in the schema, so it lands just above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action (grade centering ratios) against named grading houses, and the opening imperative 'USE THIS TOOL whenever the user supplies numeric centering ratios' plus 'Do not calculate by looking up standards yourself' cleanly separates it from get_centering_standards and measure_card_centering.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit positive trigger (user supplies numeric ratios and asks about PSA/BGS/CGC/SGC or a ceiling) and a clear precondition ('at least one known face AND axis; if either is unknown, ask first, never assume front/LR'). It implicitly excludes the measurement case handled by measure_card_centering but never names that sibling, so routing between the two is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources