{
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "$id": "https://firmtape.com/contracts/public/events/positions/label_changed.schema.json",
 "title": "label_changed",
 "description": "Sent when a side of a position changes its label (TRADE, CAUTION, SKIP).",
 "type": "object",
 "required": [
  "event",
  "position_id",
  "day",
  "t",
  "check",
  "side",
  "label"
 ],
 "properties": {
  "event": {
   "const": "label_changed",
   "description": "`label_changed`. The event's name rides in `event` here, not `type` (see the target format)."
  },
  "side": {
   "type": "string",
   "description": "`put` or `call`.",
   "enum": [
    "put",
    "call"
   ]
  },
  "label": {
   "type": "string",
   "description": "The new label.",
   "enum": [
    "TRADE",
    "CAUTION",
    "SKIP"
   ]
  },
  "position_id": {
   "type": "string",
   "description": "The position, `p_...`."
  },
  "day": {
   "type": "string",
   "description": "The ET trading day."
  },
  "t": {
   "type": "string",
   "description": "The minute judged, `HH:MM` ET."
  },
  "check": {
   "type": "object",
   "description": "The same check `GET /api/positions/check` returns for the position: its phase, the expected move left, and per side the distances, the large orders near the short, the levels around it, the conditions and the label with its reason."
  }
 },
 "x-when": [
  "Checked every minute in session, from the alert's start minute (by default ten minutes before entry) to the close.",
  "Once per label per side per day."
 ],
 "x-features": [
  "positions-alerts",
  "positions-webhook"
 ],
 "examples": [
  {
   "event": "label_changed",
   "position_id": "p_4f2a9c",
   "day": "2026-10-09",
   "t": "13:35",
   "side": "call",
   "label": "SKIP",
   "check": {
    "position_id": "p_4f2a9c"
   }
  }
 ],
 "x-source": "positions",
 "x-product": "orders",
 "x-plan": "orders",
 "x-version": null,
 "x-since": "2026-10-04",
 "x-switch-on": "The POSITIONS editor: Alert, WEBHOOK, an https address. On the Orders API and Team plans."
}