{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Voluntary valuation feedback v2",
  "description": "Reports are unverified. The workbench also accepts legacy v1, marking missing evidence unknown. Calculation is rechecked using the frozen module.",
  "type": "object",
  "required": [
    "report_type",
    "schema_version",
    "record_id",
    "created_at",
    "model_version",
    "model_snapshot",
    "request",
    "result",
    "comparison",
    "evidence",
    "current_accuracy_measured"
  ],
  "properties": {
    "report_type": {
      "const": "public_car_valuation_test"
    },
    "schema_version": {
      "const": 2
    },
    "record_id": {
      "type": "string",
      "format": "uuid"
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "model_version": {
      "const": "price-anchor-shape-v1"
    },
    "model_snapshot": {
      "const": "2026-10-19"
    },
    "current_accuracy_measured": {
      "const": false
    },
    "request": {
      "type": "object",
      "required": [
        "purpose",
        "vehicle",
        "anchor"
      ],
      "properties": {
        "purpose": {
          "const": "research"
        },
        "vehicle": {
          "type": "object"
        },
        "anchor": {
          "type": "object"
        }
      }
    },
    "result": {
      "type": "object",
      "required": [
        "estimate_gbp"
      ],
      "properties": {
        "estimate_gbp": {
          "type": "number",
          "minimum": 0
        }
      }
    },
    "comparison": {
      "anyOf": [
        {
          "type": "null"
        },
        {
          "type": "object",
          "required": [
            "price_gbp",
            "kind"
          ],
          "properties": {
            "price_gbp": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 300000
            },
            "kind": {
              "enum": [
                "asking",
                "sale",
                "professional"
              ]
            },
            "observed_date": {
              "type": [
                "string",
                "null"
              ],
              "format": "date"
            }
          }
        }
      ]
    },
    "evidence": {
      "type": "object",
      "required": [
        "source_reference",
        "vehicle_match",
        "trim",
        "condition",
        "evaluation_use"
      ],
      "properties": {
        "source_reference": {
          "type": "string",
          "maxLength": 500
        },
        "vehicle_match": {
          "enum": [
            "same_vehicle",
            "uncertain"
          ]
        },
        "trim": {
          "type": "string",
          "maxLength": 120
        },
        "condition": {
          "enum": [
            "ordinary",
            "damaged",
            "unknown"
          ]
        },
        "evaluation_use": {
          "enum": [
            "not_used_for_development",
            "used_for_development",
            "unknown"
          ]
        }
      }
    }
  }
}
