{
  "type": "record",
  "name": "update",
  "fields": [
    {
      "name": "event",
      "type": {
        "type": "record",
        "name": "Event",
        "fields": [
          {
            "name": "id",
            "type": {
              "name": "EventId",
              "type": "enum",
              "symbols": ["STEP_SAVE", "RATE"]
            }
          },
          {
            "name": "ts",
            "type": "long",
            "logicalType": "timestamp-millis"
          },
          {
            "name": "actor",
            "type": {
              "type": "enum",
              "name": "EventActor",
              "symbols": ["USER", "CLIENT", "SERVER"]
            }
          },
          {
            "name": "step",
            "type": [
              "null",
              {
                "type": "record",
                "name": "EventStep",
                "fields": [
                  {
                    "name": "transition",
                    "type": {
                      "type": "enum",
                      "name": "EventStepTransition",
                      "symbols": ["BACK", "FORWARD", "END"]
                    }
                  },
                  {
                    "name": "src",
                    "type": "string"
                  },
                  {
                    "name": "dest",
                    "type": "string"
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "name": "document",
      "type": {
        "type": "record",
        "name": "Document",
        "doc": "Source document (quote)",
        "fields": [
          {
            "name": "id",
            "type": "int"
          },
          {
            "name": "quote_set_id",
            "type": "int"
          },
          {
            "name": "created",
            "type": ["null", "long"],
            "logicalType": "timestamp-millis",
            "default": null
          },
          {
            "name": "created_by_username",
            "type": "string"
          },
          {
            "name": "modified",
            "type": ["null", "long"],
            "logicalType": "timestamp-millis",
            "default": null
          },
          {
            "name": "last_updated_by_username",
            "type": "string"
          },
          {
            "name": "expires",
            "type": ["null", "long"],
            "logicalType": "timestamp-millis",
            "default": null
          }
        ]
      }
    },
    {
      "name": "session",
      "type": [
        "null",
        {
          "type": "record",
          "name": "Session",
          "fields": [
            {
              "name": "entity_name",
              "type": "string"
            },
            {
              "name": "entity_id",
              "type": "int"
            },
            {
              "name": "entity_num",
              "type": ["null", "string"]
            }
          ]
        }
      ]
    },
    {
      "name": "data",
      "type": [
        "null",
        {
          "type": "record",
          "name": "Data",
          "fields": [
            {
              "name": "bucket",
              "type": {
                "type": "map",
                "values": [
                  "null",
                  {
                    "type": "array",
                    "items": [
                      "null",
                      "boolean",
                      "double",
                      "string",
                      {
                        "type": "array",
                        "items": [
                          "null",
                          "boolean",
                          "double",
                          "string",
                          {
                            "type": "array",
                            "items": ["null", "boolean", "double", "string"]
                          }
                        ]
                      },
                      {
                        "type": "map",
                        "values": [
                          "null",
                          "boolean",
                          "double",
                          "string",
                          {
                            "type": "map",
                            "values": ["null", "boolean", "double", "string"]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "ratedata",
      "type": ["null", "Data"]
    },
    {
      "name": "delta",
      "type": ["null", "Data"]
    },
    {
      "name": "program",
      "type": [
        "null",
        {
          "type": "record",
          "name": "Program",
          "fields": [
            {
              "type": "string",
              "name": "id",
              "doc": "Program id"
            },
            {
              "type": "string",
              "name": "version",
              "doc": "Program version"
            }
          ]
        }
      ]
    }
  ]
}
