{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "definitions": {
    "ThreadGoal": {
      "properties": {
        "createdAt": {
          "format": "int64",
          "type": "integer"
        },
        "objective": {
          "type": "string"
        },
        "status": {
          "$ref": "#/definitions/ThreadGoalStatus"
        },
        "threadId": {
          "type": "string"
        },
        "timeUsedSeconds": {
          "format": "int64",
          "type": "integer"
        },
        "tokenBudget": {
          "format": "int64",
          "type": [
            "integer",
            "null"
          ]
        },
        "tokensUsed": {
          "format": "int64",
          "type": "integer"
        },
        "updatedAt": {
          "format": "int64",
          "type": "integer"
        }
      },
      "required": [
        "createdAt",
        "objective",
        "status",
        "threadId",
        "timeUsedSeconds",
        "tokensUsed",
        "updatedAt"
      ],
      "type": "object"
    },
    "ThreadGoalStatus": {
      "enum": [
        "active",
        "paused",
        "budgetLimited",
        "complete"
      ],
      "type": "string"
    }
  },
  "properties": {
    "goal": {
      "$ref": "#/definitions/ThreadGoal"
    },
    "threadId": {
      "type": "string"
    },
    "turnId": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "goal",
    "threadId"
  ],
  "title": "ThreadGoalUpdatedNotification",
  "type": "object"
}