{
  "$defs": {
    "DataType": {
      "enum": [
        "string",
        "number",
        "object",
        "array",
        "null",
        "boolean"
      ],
      "title": "DataType",
      "type": "string",
      "x-sgen-typename": "AllenNeuralDynamics.AindBehaviorServices.DataTypes.DataType"
    },
    "EndExperimentPayload": {
      "properties": {
        "timestamp": {
          "description": "The end time of the session",
          "format": "date-time",
          "title": "Timestamp",
          "type": "string"
        }
      },
      "required": [
        "timestamp"
      ],
      "title": "EndExperimentPayload",
      "type": "object",
      "x-sgen-typename": "AllenNeuralDynamics.AindBehaviorServices.DataTypes.EndExperimentPayload"
    },
    "RenderSynchState": {
      "properties": {
        "sync_quad_value": {
          "default": null,
          "description": "The synchronization quad value",
          "oneOf": [
            {
              "maximum": 1,
              "minimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Sync Quad Value"
        },
        "frame_index": {
          "default": null,
          "description": "The frame index of the event",
          "oneOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Frame Index"
        },
        "frame_timestamp": {
          "default": null,
          "description": "The timestamp of the frame",
          "oneOf": [
            {
              "minimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Frame Timestamp"
        }
      },
      "title": "RenderSynchState",
      "type": "object",
      "x-sgen-typename": "AllenNeuralDynamics.AindBehaviorServices.DataTypes.RenderSynchState"
    },
    "SoftwareEvent": {
      "description": "A software event is a generic event that can be used to track any event that occurs in the software.",
      "properties": {
        "name": {
          "description": "The name of the event",
          "title": "Name",
          "type": "string"
        },
        "timestamp": {
          "default": null,
          "description": "The timestamp of the event",
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Timestamp"
        },
        "timestamp_source": {
          "$ref": "#/$defs/TimestampSource",
          "default": "null",
          "description": "The source of the timestamp"
        },
        "frame_index": {
          "default": null,
          "description": "The frame index of the event",
          "oneOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Frame Index"
        },
        "frame_timestamp": {
          "default": null,
          "description": "The timestamp of the frame",
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Frame Timestamp"
        },
        "data": {
          "default": null,
          "description": "The data of the event",
          "oneOf": [
            {},
            {
              "type": "null"
            }
          ],
          "title": "Data"
        },
        "data_type": {
          "$ref": "#/$defs/DataType",
          "default": "null",
          "description": "The data type of the event"
        },
        "data_type_hint": {
          "default": null,
          "description": "The data type hint of the event",
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Data Type Hint"
        }
      },
      "required": [
        "name"
      ],
      "title": "SoftwareEvent",
      "type": "object",
      "x-sgen-typename": "AllenNeuralDynamics.AindBehaviorServices.DataTypes.SoftwareEvent"
    },
    "StartExperimentPayload": {
      "properties": {
        "timestamp": {
          "description": "The start time of the session",
          "format": "date-time",
          "title": "Timestamp",
          "type": "string"
        }
      },
      "required": [
        "timestamp"
      ],
      "title": "StartExperimentPayload",
      "type": "object",
      "x-sgen-typename": "AllenNeuralDynamics.AindBehaviorServices.DataTypes.StartExperimentPayload"
    },
    "TimestampSource": {
      "enum": [
        "null",
        "harp",
        "render"
      ],
      "title": "TimestampSource",
      "type": "string",
      "x-sgen-typename": "AllenNeuralDynamics.AindBehaviorServices.DataTypes.TimestampSource"
    }
  },
  "x-abstract": "True"
}