{
  "$defs": {
    "Outlook": {
      "additionalProperties": false,
      "properties": {
        "direction": {
          "enum": [
            "rise",
            "unchanged",
            "fall"
          ],
          "title": "Direction",
          "type": "string"
        },
        "basis": {
          "title": "Basis",
          "type": "string"
        },
        "evidence_strength": {
          "enum": [
            "limited",
            "baseline"
          ],
          "title": "Evidence Strength",
          "type": "string"
        },
        "estimate": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Estimate"
        },
        "magnitude_sample_n": {
          "minimum": 0,
          "title": "Magnitude Sample N",
          "type": "integer"
        },
        "magnitude_method": {
          "title": "Magnitude Method",
          "type": "string"
        },
        "conflicting_signals": {
          "default": false,
          "title": "Conflicting Signals",
          "type": "boolean"
        },
        "reasons": {
          "items": {
            "$ref": "#/$defs/Reason"
          },
          "title": "Reasons",
          "type": "array"
        },
        "source_ids": {
          "items": {
            "type": "string"
          },
          "title": "Source Ids",
          "type": "array"
        },
        "caveat_en": {
          "title": "Caveat En",
          "type": "string"
        },
        "caveat_me": {
          "title": "Caveat Me",
          "type": "string"
        },
        "model_version": {
          "default": "judgment-v2",
          "title": "Model Version",
          "type": "string"
        }
      },
      "required": [
        "direction",
        "basis",
        "evidence_strength",
        "magnitude_sample_n",
        "magnitude_method",
        "reasons",
        "source_ids",
        "caveat_en",
        "caveat_me"
      ],
      "title": "Outlook",
      "type": "object"
    },
    "Price": {
      "additionalProperties": false,
      "properties": {
        "price": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string"
            }
          ],
          "title": "Price"
        },
        "effective_from": {
          "format": "date",
          "title": "Effective From",
          "type": "string"
        },
        "effective_to": {
          "anyOf": [
            {
              "format": "date",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Effective To"
        },
        "source_id": {
          "title": "Source Id",
          "type": "string"
        }
      },
      "required": [
        "price",
        "effective_from",
        "effective_to",
        "source_id"
      ],
      "title": "Price",
      "type": "object"
    },
    "Reason": {
      "additionalProperties": false,
      "properties": {
        "kind": {
          "title": "Kind",
          "type": "string"
        },
        "title_en": {
          "title": "Title En",
          "type": "string"
        },
        "title_me": {
          "title": "Title Me",
          "type": "string"
        },
        "detail_en": {
          "title": "Detail En",
          "type": "string"
        },
        "detail_me": {
          "title": "Detail Me",
          "type": "string"
        },
        "source_ids": {
          "items": {
            "type": "string"
          },
          "title": "Source Ids",
          "type": "array"
        }
      },
      "required": [
        "kind",
        "title_en",
        "title_me",
        "detail_en",
        "detail_me",
        "source_ids"
      ],
      "title": "Reason",
      "type": "object"
    },
    "Result": {
      "additionalProperties": false,
      "properties": {
        "state": {
          "enum": [
            "predicted",
            "announced",
            "insufficient_data",
            "stale"
          ],
          "title": "State",
          "type": "string"
        },
        "fuel": {
          "enum": [
            "eurosuper95",
            "eurodiesel",
            "eurosuper98"
          ],
          "title": "Fuel",
          "type": "string"
        },
        "current": {
          "anyOf": [
            {
              "$ref": "#/$defs/Price"
            },
            {
              "type": "null"
            }
          ]
        },
        "last_verified": {
          "anyOf": [
            {
              "$ref": "#/$defs/Price"
            },
            {
              "type": "null"
            }
          ]
        },
        "next_target": {
          "anyOf": [
            {
              "format": "date",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Next Target"
        },
        "estimate": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Estimate"
        },
        "interval": {
          "anyOf": [
            {
              "maxItems": 2,
              "minItems": 2,
              "prefixItems": [
                {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string"
                    }
                  ]
                },
                {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string"
                    }
                  ]
                }
              ],
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Interval"
        },
        "probabilities": {
          "anyOf": [
            {
              "additionalProperties": {
                "type": "number"
              },
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Probabilities"
        },
        "delta_cents": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Delta Cents"
        },
        "recommendation": {
          "default": "unavailable",
          "enum": [
            "buy",
            "wait",
            "no_urgency",
            "unavailable"
          ],
          "title": "Recommendation",
          "type": "string"
        },
        "mode": {
          "default": "withheld",
          "title": "Mode",
          "type": "string"
        },
        "reasons": {
          "items": {
            "type": "string"
          },
          "title": "Reasons",
          "type": "array"
        },
        "key_uncertainty": {
          "title": "Key Uncertainty",
          "type": "string"
        },
        "source_ids": {
          "items": {
            "type": "string"
          },
          "title": "Source Ids",
          "type": "array"
        },
        "data_observed_at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Data Observed At"
        },
        "model_version": {
          "default": "baseline-v1",
          "title": "Model Version",
          "type": "string"
        },
        "rule_version": {
          "default": "40-2026-read-bank-rate-unresolved",
          "title": "Rule Version",
          "type": "string"
        },
        "outlook": {
          "anyOf": [
            {
              "$ref": "#/$defs/Outlook"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "required": [
        "state",
        "fuel",
        "current",
        "last_verified",
        "next_target",
        "reasons",
        "key_uncertainty",
        "source_ids",
        "data_observed_at"
      ],
      "title": "Result",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "schema_version": {
      "default": "1.1",
      "enum": [
        "1.0",
        "1.1"
      ],
      "title": "Schema Version",
      "type": "string"
    },
    "id": {
      "title": "Id",
      "type": "string"
    },
    "generated_at": {
      "format": "date-time",
      "title": "Generated At",
      "type": "string"
    },
    "input_cutoff": {
      "format": "date-time",
      "title": "Input Cutoff",
      "type": "string"
    },
    "expires_at": {
      "format": "date-time",
      "title": "Expires At",
      "type": "string"
    },
    "offline_fixture": {
      "default": false,
      "title": "Offline Fixture",
      "type": "boolean"
    },
    "results": {
      "items": {
        "$ref": "#/$defs/Result"
      },
      "title": "Results",
      "type": "array"
    },
    "history": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "History",
      "type": "array"
    },
    "forecast_history": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Forecast History",
      "type": "array"
    },
    "sources": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Sources",
      "type": "array"
    },
    "evaluation": {
      "additionalProperties": true,
      "title": "Evaluation",
      "type": "object"
    },
    "diagnostics": {
      "additionalProperties": true,
      "title": "Diagnostics",
      "type": "object"
    },
    "signals": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Signals",
      "type": "array"
    },
    "source_health": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Source Health",
      "type": "array"
    }
  },
  "required": [
    "id",
    "generated_at",
    "input_cutoff",
    "expires_at",
    "results",
    "history",
    "forecast_history",
    "sources",
    "evaluation",
    "diagnostics"
  ],
  "title": "Snapshot",
  "type": "object"
}