{
  "additionalProperties": false,
  "description": "Filter by time-of-day, day-of-week, day-of-month, or month-of-year.\n\nTrue only during the specified time windows. Use as a gate to restrict\ntrading to specific sessions or calendar periods.\n\nAs an equity exit, a calendar-only exit (e.g. \"sell on the last Thursday\")\nexecutes at that session's close (market-on-close); a price-based exit\nexecutes next-open.",
  "properties": {
    "days_of_month": {
      "anyOf": [
        {
          "items": {
            "maximum": 31,
            "minimum": 1,
            "type": "integer"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Days Of Month"
    },
    "days_of_week": {
      "anyOf": [
        {
          "items": {
            "enum": [
              "monday",
              "tuesday",
              "wednesday",
              "thursday",
              "friday",
              "saturday",
              "sunday"
            ],
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Days Of Week"
    },
    "months_of_year": {
      "anyOf": [
        {
          "items": {
            "enum": [
              "january",
              "february",
              "march",
              "april",
              "may",
              "june",
              "july",
              "august",
              "september",
              "october",
              "november",
              "december"
            ],
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Months Of Year"
    },
    "time_window": {
      "anyOf": [
        {
          "pattern": "^(?:[01][0-9]|2[0-3]):[0-5][0-9]-(?:[01][0-9]|2[0-3]):[0-5][0-9]$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Intraday time window in HH:MM-HH:MM format (e.g. '09:30-16:00'). Overnight windows (e.g. '22:00-06:00') are supported.",
      "title": "Time Window"
    },
    "timezone": {
      "default": "UTC",
      "title": "Timezone",
      "type": "string"
    },
    "type": {
      "const": "time_filter",
      "default": "time_filter",
      "title": "Type",
      "type": "string"
    }
  },
  "title": "TimeFilterCondition",
  "type": "object"
}
