[{"data":1,"prerenderedAt":2379},["ShallowReactive",2],{"navigation_docs":3,"-core-concepts-boss-encounter-api":136,"-core-concepts-boss-encounter-api-surround":2374},[4,39,103],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"/getting-started","1.getting-started",[10,15,20,25,30,35],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","/getting-started/introduction","1.getting-started/1.introduction","i-lucide-book-open",{"title":16,"path":17,"stem":18,"icon":19},"Prerequisites","/getting-started/prerequisites","1.getting-started/2.prerequisites","i-lucide-check-circle",{"title":21,"path":22,"stem":23,"icon":24},"Directory Setup","/getting-started/installation","1.getting-started/3.installation","i-lucide-folder-open",{"title":26,"path":27,"stem":28,"icon":29},"Routine Actor & File Layout","/getting-started/actor-setup","1.getting-started/4.actor-setup","i-lucide-code",{"title":31,"path":32,"stem":33,"icon":34},"Spellbook & Basic Rotation","/getting-started/spellbook-rotation","1.getting-started/5.spellbook-rotation","i-lucide-sparkles",{"title":36,"path":37,"stem":38,"icon":34},"Advanced Routine Features","/getting-started/advanced-features","1.getting-started/6.advanced-features",{"title":40,"icon":14,"path":41,"stem":42,"children":43,"page":6},"Core Concepts","/core-concepts","2.core-concepts",[44,49,54,59,64,68,73,78,83,88,93,98],{"title":45,"path":46,"stem":47,"icon":48},"SYNQ Objects","/core-concepts/synq-objects","2.core-concepts/1.synq-objects","i-lucide-box",{"title":50,"path":51,"stem":52,"icon":53},"Keybinds","/core-concepts/keybinds","2.core-concepts/10.keybinds","i-lucide-keyboard",{"title":55,"path":56,"stem":57,"icon":58},"Debug Commands","/core-concepts/debug-commands","2.core-concepts/11.debug-commands","i-lucide-terminal",{"title":60,"path":61,"stem":62,"icon":63},"Boss Encounter API","/core-concepts/boss-encounter-api","2.core-concepts/12.boss-encounter-api","i-lucide-swords",{"title":65,"path":66,"stem":67,"icon":34},"Spell Objects","/core-concepts/spell-objects","2.core-concepts/2.spell-objects",{"title":69,"path":70,"stem":71,"icon":72},"Item Objects","/core-concepts/item-objects","2.core-concepts/3.item-objects","i-lucide-package",{"title":74,"path":75,"stem":76,"icon":77},"Object Lists","/core-concepts/object-lists","2.core-concepts/4.object-lists","i-lucide-list",{"title":79,"path":80,"stem":81,"icon":82},"Object Attributes","/core-concepts/object-attributes","2.core-concepts/5.object-attributes","i-lucide-list-checks",{"title":84,"path":85,"stem":86,"icon":87},"Object Functions","/core-concepts/object-functions","2.core-concepts/6.object-functions","i-lucide-function-square",{"title":89,"path":90,"stem":91,"icon":92},"Player Attributes","/core-concepts/player-attributes","2.core-concepts/7.player-attributes","i-lucide-user",{"title":94,"path":95,"stem":96,"icon":97},"General Tools","/core-concepts/general-tools","2.core-concepts/8.general-tools","i-lucide-wrench",{"title":99,"path":100,"stem":101,"icon":102},"Draw API","/core-concepts/draw-api","2.core-concepts/9.draw-api","i-lucide-pencil",{"title":104,"icon":105,"path":106,"stem":107,"children":108,"page":6},"SYNQ UI","i-lucide-layout","/ui","3.ui",[109,112,117,122,127,132],{"title":11,"path":110,"stem":111,"icon":105},"/ui/introduction","3.ui/1.introduction",{"title":113,"path":114,"stem":115,"icon":116},"UI Configuration","/ui/configuration","3.ui/2.configuration","i-lucide-settings",{"title":118,"path":119,"stem":120,"icon":121},"Tabs & Groups","/ui/tabs-groups","3.ui/3.tabs-groups","i-lucide-folder",{"title":123,"path":124,"stem":125,"icon":126},"UI Elements","/ui/elements","3.ui/4.elements","i-lucide-layers",{"title":128,"path":129,"stem":130,"icon":131},"Minimap Button","/ui/minimap-button","3.ui/5.minimap-button","i-lucide-map-pin",{"title":133,"path":134,"stem":135,"icon":29},"Complete Example","/ui/example","3.ui/6.example",{"id":137,"title":60,"body":138,"description":2365,"extension":2366,"links":2367,"meta":2368,"navigation":2369,"path":61,"seo":2370,"stem":62,"__hash__":2373},"docs/2.core-concepts/12.boss-encounter-api.md",{"type":139,"value":140,"toc":2342},"minimark",[141,149,152,155,166,171,406,410,413,541,545,550,557,632,635,757,761,767,793,797,801,807,941,944,949,992,995,1002,1056,1059,1065,1122,1126,1132,1262,1266,1269,1577,1581,1600,1604,1610,1614,1626,1740,1744,1764,1961,1969,2062,2197,2201,2204,2227,2231,2234,2322,2325,2328,2338],[142,143,144,148],"p",{},[145,146,147],"code",{},"synq.boss"," is the read-only encounter API for rotations. It normalizes boss-mod events into encounter state and classifies curated spell timers as semantic mechanics such as raid damage, tank busters, movement, adds, interrupts, and dispels.",[142,150,151],{},"The current adapter is validated against BigWigs v424.7. Rotation code is provider-independent and does not access BigWigs, the encounter engine, or the mechanic analyzer directly.",[142,153,154],{},"No separate SYNQ setting is required. With the current adapter, BigWigs must be installed and enabled for timer data to be available.",[142,156,157,161,162,165],{},[158,159,160],"strong",{},"Call syntax:"," Use dot syntax, such as ",[145,163,164],{},"synq.boss.TimeTo(...)",". These are namespace functions, not colon methods.",[167,168,170],"h2",{"id":169},"quick-start","Quick Start",[172,173,178],"pre",{"className":174,"code":175,"language":176,"meta":177,"style":177},"language-lua shiki shiki-themes material-theme-lighter vitesse-light github-dark-default","local boss = synq.boss\nlocal mechanics = boss.mechanics\n\nif boss.IsIncoming(mechanics.RAID_DAMAGE, 5) then\n  -- Prepare a defensive or healing cooldown.\nend\n\nif boss.IsIncoming(mechanics.MOVEMENT, 2) then\n  -- Avoid starting a long cast.\nend\n\nlocal tankBuster = boss.GetNext(mechanics.TANK_BUSTER)\nif tankBuster then\n  local remaining = boss.TimeTo(mechanics.TANK_BUSTER)\nend\n","lua","",[145,179,180,208,225,232,271,278,284,289,318,324,329,334,363,373,401],{"__ignoreMap":177},[181,182,185,189,193,197,200,204],"span",{"class":183,"line":184},"line",1,[181,186,188],{"class":187},"smoeR","local",[181,190,192],{"class":191},"szqNi"," boss",[181,194,196],{"class":195},"sRm85"," =",[181,198,199],{"class":191}," synq",[181,201,203],{"class":202},"sw55D",".",[181,205,207],{"class":206},"s197a","boss\n",[181,209,211,213,216,218,220,222],{"class":183,"line":210},2,[181,212,188],{"class":187},[181,214,215],{"class":191}," mechanics",[181,217,196],{"class":195},[181,219,192],{"class":191},[181,221,203],{"class":202},[181,223,224],{"class":206},"mechanics\n",[181,226,228],{"class":183,"line":227},3,[181,229,231],{"emptyLinePlaceholder":230},true,"\n",[181,233,235,239,241,243,247,250,253,255,258,261,265,268],{"class":183,"line":234},4,[181,236,238],{"class":237},"sVrxA","if",[181,240,192],{"class":191},[181,242,203],{"class":202},[181,244,246],{"class":245},"sVg9q","IsIncoming",[181,248,249],{"class":202},"(",[181,251,252],{"class":191},"mechanics",[181,254,203],{"class":202},[181,256,257],{"class":206},"RAID_DAMAGE",[181,259,260],{"class":202},", ",[181,262,264],{"class":263},"s7B4B","5",[181,266,267],{"class":202},") ",[181,269,270],{"class":237},"then\n",[181,272,274],{"class":183,"line":273},5,[181,275,277],{"class":276},"s9EwP","  -- Prepare a defensive or healing cooldown.\n",[181,279,281],{"class":183,"line":280},6,[181,282,283],{"class":237},"end\n",[181,285,287],{"class":183,"line":286},7,[181,288,231],{"emptyLinePlaceholder":230},[181,290,292,294,296,298,300,302,304,306,309,311,314,316],{"class":183,"line":291},8,[181,293,238],{"class":237},[181,295,192],{"class":191},[181,297,203],{"class":202},[181,299,246],{"class":245},[181,301,249],{"class":202},[181,303,252],{"class":191},[181,305,203],{"class":202},[181,307,308],{"class":206},"MOVEMENT",[181,310,260],{"class":202},[181,312,313],{"class":263},"2",[181,315,267],{"class":202},[181,317,270],{"class":237},[181,319,321],{"class":183,"line":320},9,[181,322,323],{"class":276},"  -- Avoid starting a long cast.\n",[181,325,327],{"class":183,"line":326},10,[181,328,283],{"class":237},[181,330,332],{"class":183,"line":331},11,[181,333,231],{"emptyLinePlaceholder":230},[181,335,337,339,342,344,346,348,351,353,355,357,360],{"class":183,"line":336},12,[181,338,188],{"class":187},[181,340,341],{"class":191}," tankBuster",[181,343,196],{"class":195},[181,345,192],{"class":191},[181,347,203],{"class":202},[181,349,350],{"class":245},"GetNext",[181,352,249],{"class":202},[181,354,252],{"class":191},[181,356,203],{"class":202},[181,358,359],{"class":206},"TANK_BUSTER",[181,361,362],{"class":202},")\n",[181,364,366,368,370],{"class":183,"line":365},13,[181,367,238],{"class":237},[181,369,341],{"class":191},[181,371,372],{"class":237}," then\n",[181,374,376,379,382,384,386,388,391,393,395,397,399],{"class":183,"line":375},14,[181,377,378],{"class":187},"  local",[181,380,381],{"class":191}," remaining",[181,383,196],{"class":195},[181,385,192],{"class":191},[181,387,203],{"class":202},[181,389,390],{"class":245},"TimeTo",[181,392,249],{"class":202},[181,394,252],{"class":191},[181,396,203],{"class":202},[181,398,359],{"class":206},[181,400,362],{"class":202},[181,402,404],{"class":183,"line":403},15,[181,405,283],{"class":237},[167,407,409],{"id":408},"mechanic-constants","Mechanic Constants",[142,411,412],{},"Always use the constants instead of spelling mechanic strings manually.",[414,415,416,432],"table",{},[417,418,419],"thead",{},[420,421,422,426,429],"tr",{},[423,424,425],"th",{},"Constant",[423,427,428],{},"Value",[423,430,431],{},"Meaning",[433,434,435,451,466,481,496,511,526],"tbody",{},[420,436,437,443,448],{},[438,439,440],"td",{},[145,441,442],{},"synq.boss.mechanics.TANK_BUSTER",[438,444,445],{},[145,446,447],{},"\"tank_buster\"",[438,449,450],{},"Heavy tank-targeted damage",[420,452,453,458,463],{},[438,454,455],{},[145,456,457],{},"synq.boss.mechanics.RAID_DAMAGE",[438,459,460],{},[145,461,462],{},"\"raid_damage\"",[438,464,465],{},"Group-wide damage",[420,467,468,473,478],{},[438,469,470],{},[145,471,472],{},"synq.boss.mechanics.ADDS",[438,474,475],{},[145,476,477],{},"\"adds\"",[438,479,480],{},"Additional enemies spawning or becoming active",[420,482,483,488,493],{},[438,484,485],{},[145,486,487],{},"synq.boss.mechanics.MOVEMENT",[438,489,490],{},[145,491,492],{},"\"movement\"",[438,494,495],{},"Mechanic likely to require movement",[420,497,498,503,508],{},[438,499,500],{},[145,501,502],{},"synq.boss.mechanics.INTERRUPT",[438,504,505],{},[145,506,507],{},"\"interrupt\"",[438,509,510],{},"Important interrupt opportunity",[420,512,513,518,523],{},[438,514,515],{},[145,516,517],{},"synq.boss.mechanics.DISPEL",[438,519,520],{},[145,521,522],{},"\"dispel\"",[438,524,525],{},"Important dispel requirement",[420,527,528,533,538],{},[438,529,530],{},[145,531,532],{},"synq.boss.mechanics.INTERMISSION",[438,534,535],{},[145,536,537],{},"\"intermission\"",[438,539,540],{},"Encounter phase transition or downtime",[167,542,544],{"id":543},"encounter-state","Encounter State",[546,547,549],"h3",{"id":548},"getencounter","GetEncounter",[142,551,552,553,556],{},"Returns a snapshot of the current encounter, or ",[145,554,555],{},"nil"," outside an encounter.",[172,558,560],{"className":174,"code":559,"language":176,"meta":177,"style":177},"local encounter = synq.boss.GetEncounter()\nif encounter then\n  print(encounter.id, encounter.name, encounter.stage)\nend\n",[145,561,562,585,593,628],{"__ignoreMap":177},[181,563,564,566,569,571,573,575,578,580,582],{"class":183,"line":184},[181,565,188],{"class":187},[181,567,568],{"class":191}," encounter",[181,570,196],{"class":195},[181,572,199],{"class":191},[181,574,203],{"class":202},[181,576,577],{"class":206},"boss",[181,579,203],{"class":202},[181,581,549],{"class":245},[181,583,584],{"class":202},"()\n",[181,586,587,589,591],{"class":183,"line":210},[181,588,238],{"class":237},[181,590,568],{"class":191},[181,592,372],{"class":237},[181,594,595,598,600,603,605,608,610,612,614,617,619,621,623,626],{"class":183,"line":227},[181,596,597],{"class":245},"  print",[181,599,249],{"class":202},[181,601,602],{"class":191},"encounter",[181,604,203],{"class":202},[181,606,607],{"class":206},"id",[181,609,260],{"class":202},[181,611,602],{"class":191},[181,613,203],{"class":202},[181,615,616],{"class":206},"name",[181,618,260],{"class":202},[181,620,602],{"class":191},[181,622,203],{"class":202},[181,624,625],{"class":206},"stage",[181,627,362],{"class":202},[181,629,630],{"class":183,"line":234},[181,631,283],{"class":237},[142,633,634],{},"Returned fields:",[414,636,637,650],{},[417,638,639],{},[420,640,641,644,647],{},[423,642,643],{},"Field",[423,645,646],{},"Type",[423,648,649],{},"Description",[433,651,652,666,680,695,709,722,740],{},[420,653,654,658,663],{},[438,655,656],{},[145,657,607],{},[438,659,660],{},[145,661,662],{},"number",[438,664,665],{},"Encounter ID",[420,667,668,672,677],{},[438,669,670],{},[145,671,616],{},[438,673,674],{},[145,675,676],{},"string | nil",[438,678,679],{},"Encounter name",[420,681,682,687,692],{},[438,683,684],{},[145,685,686],{},"difficultyID",[438,688,689],{},[145,690,691],{},"number | nil",[438,693,694],{},"Instance difficulty ID",[420,696,697,702,706],{},[438,698,699],{},[145,700,701],{},"groupSize",[438,703,704],{},[145,705,691],{},[438,707,708],{},"Encounter group size",[420,710,711,715,719],{},[438,712,713],{},[145,714,625],{},[438,716,717],{},[145,718,691],{},[438,720,721],{},"Current stage reported by the provider",[420,723,724,729,734],{},[438,725,726],{},[145,727,728],{},"provider",[438,730,731],{},[145,732,733],{},"string",[438,735,736,737],{},"Active provider ID, such as ",[145,738,739],{},"\"bigwigs\"",[420,741,742,747,751],{},[438,743,744],{},[145,745,746],{},"startedAt",[438,748,749],{},[145,750,662],{},[438,752,753,756],{},[145,754,755],{},"GetTime()"," value when the encounter started",[546,758,760],{"id":759},"getstage","GetStage",[142,762,763,764,766],{},"Returns the current encounter stage, or ",[145,765,555],{}," when no stage is known.",[172,768,770],{"className":174,"code":769,"language":176,"meta":177,"style":177},"local stage = synq.boss.GetStage()\n",[145,771,772],{"__ignoreMap":177},[181,773,774,776,779,781,783,785,787,789,791],{"class":183,"line":184},[181,775,188],{"class":187},[181,777,778],{"class":191}," stage",[181,780,196],{"class":195},[181,782,199],{"class":191},[181,784,203],{"class":202},[181,786,577],{"class":206},[181,788,203],{"class":202},[181,790,760],{"class":245},[181,792,584],{"class":202},[167,794,796],{"id":795},"timer-queries","Timer Queries",[546,798,800],{"id":799},"gettimer","GetTimer",[142,802,803,804,806],{},"Returns the next timer for a spell ID, including timers without a registered semantic mechanic. Returns ",[145,805,555],{}," when no matching timer exists.",[172,808,810],{"className":174,"code":809,"language":176,"meta":177,"style":177},"local timer = synq.boss.GetTimer(1242515)\nif timer then\n  local remaining = timer.paused\n    and timer.remaining\n    or math.max(0, timer.expiresAt - synq.time)\n\n  if remaining \u003C= 5 then\n    -- Spell is expected within 5 seconds.\n  end\nend\n",[145,811,812,838,846,861,873,908,912,927,932,937],{"__ignoreMap":177},[181,813,814,816,819,821,823,825,827,829,831,833,836],{"class":183,"line":184},[181,815,188],{"class":187},[181,817,818],{"class":191}," timer",[181,820,196],{"class":195},[181,822,199],{"class":191},[181,824,203],{"class":202},[181,826,577],{"class":206},[181,828,203],{"class":202},[181,830,800],{"class":245},[181,832,249],{"class":202},[181,834,835],{"class":263},"1242515",[181,837,362],{"class":202},[181,839,840,842,844],{"class":183,"line":210},[181,841,238],{"class":237},[181,843,818],{"class":191},[181,845,372],{"class":237},[181,847,848,850,852,854,856,858],{"class":183,"line":227},[181,849,378],{"class":187},[181,851,381],{"class":191},[181,853,196],{"class":195},[181,855,818],{"class":191},[181,857,203],{"class":202},[181,859,860],{"class":206},"paused\n",[181,862,863,866,868,870],{"class":183,"line":234},[181,864,865],{"class":195},"    and",[181,867,818],{"class":191},[181,869,203],{"class":202},[181,871,872],{"class":206},"remaining\n",[181,874,875,878,881,883,886,888,891,893,896,899,901,903,906],{"class":183,"line":273},[181,876,877],{"class":195},"    or",[181,879,880],{"class":245}," math.max",[181,882,249],{"class":202},[181,884,885],{"class":263},"0",[181,887,260],{"class":202},[181,889,890],{"class":191},"timer",[181,892,203],{"class":202},[181,894,895],{"class":206},"expiresAt",[181,897,898],{"class":195}," -",[181,900,199],{"class":191},[181,902,203],{"class":202},[181,904,905],{"class":206},"time",[181,907,362],{"class":202},[181,909,910],{"class":183,"line":280},[181,911,231],{"emptyLinePlaceholder":230},[181,913,914,917,919,922,925],{"class":183,"line":286},[181,915,916],{"class":237},"  if",[181,918,381],{"class":191},[181,920,921],{"class":195}," \u003C=",[181,923,924],{"class":263}," 5",[181,926,372],{"class":237},[181,928,929],{"class":183,"line":291},[181,930,931],{"class":276},"    -- Spell is expected within 5 seconds.\n",[181,933,934],{"class":183,"line":320},[181,935,936],{"class":237},"  end\n",[181,938,939],{"class":183,"line":326},[181,940,283],{"class":237},[546,942,350],{"id":943},"getnext",[142,945,946,947,203],{},"Returns the next active timer matching a semantic mechanic, or ",[145,948,555],{},[172,950,952],{"className":174,"code":951,"language":176,"meta":177,"style":177},"local timer = synq.boss.GetNext(synq.boss.mechanics.ADDS)\n",[145,953,954],{"__ignoreMap":177},[181,955,956,958,960,962,964,966,968,970,972,974,977,979,981,983,985,987,990],{"class":183,"line":184},[181,957,188],{"class":187},[181,959,818],{"class":191},[181,961,196],{"class":195},[181,963,199],{"class":191},[181,965,203],{"class":202},[181,967,577],{"class":206},[181,969,203],{"class":202},[181,971,350],{"class":245},[181,973,249],{"class":202},[181,975,976],{"class":191},"synq",[181,978,203],{"class":202},[181,980,577],{"class":206},[181,982,203],{"class":202},[181,984,252],{"class":206},[181,986,203],{"class":202},[181,988,989],{"class":206},"ADDS",[181,991,362],{"class":202},[546,993,390],{"id":994},"timeto",[142,996,997,998,1001],{},"Returns seconds until the next matching mechanic. Returns ",[145,999,1000],{},"math.huge"," when no matching timer exists, so direct comparisons are safe.",[172,1003,1005],{"className":174,"code":1004,"language":176,"meta":177,"style":177},"if synq.boss.TimeTo(synq.boss.mechanics.TANK_BUSTER) \u003C= 3 then\n  -- Prepare mitigation.\nend\n",[145,1006,1007,1047,1052],{"__ignoreMap":177},[181,1008,1009,1011,1013,1015,1017,1019,1021,1023,1025,1027,1029,1031,1033,1035,1037,1039,1042,1045],{"class":183,"line":184},[181,1010,238],{"class":237},[181,1012,199],{"class":191},[181,1014,203],{"class":202},[181,1016,577],{"class":206},[181,1018,203],{"class":202},[181,1020,390],{"class":245},[181,1022,249],{"class":202},[181,1024,976],{"class":191},[181,1026,203],{"class":202},[181,1028,577],{"class":206},[181,1030,203],{"class":202},[181,1032,252],{"class":206},[181,1034,203],{"class":202},[181,1036,359],{"class":206},[181,1038,267],{"class":202},[181,1040,1041],{"class":195},"\u003C=",[181,1043,1044],{"class":263}," 3",[181,1046,372],{"class":237},[181,1048,1049],{"class":183,"line":210},[181,1050,1051],{"class":276},"  -- Prepare mitigation.\n",[181,1053,1054],{"class":183,"line":227},[181,1055,283],{"class":237},[546,1057,246],{"id":1058},"isincoming",[142,1060,1061,1062,203],{},"Returns whether the next matching mechanic occurs within the supplied number of seconds. Invalid or negative windows return ",[145,1063,1064],{},"false",[172,1066,1068],{"className":174,"code":1067,"language":176,"meta":177,"style":177},"local incoming = synq.boss.IsIncoming(\n  synq.boss.mechanics.INTERRUPT,\n  2\n)\n",[145,1069,1070,1092,1113,1118],{"__ignoreMap":177},[181,1071,1072,1074,1077,1079,1081,1083,1085,1087,1089],{"class":183,"line":184},[181,1073,188],{"class":187},[181,1075,1076],{"class":191}," incoming",[181,1078,196],{"class":195},[181,1080,199],{"class":191},[181,1082,203],{"class":202},[181,1084,577],{"class":206},[181,1086,203],{"class":202},[181,1088,246],{"class":245},[181,1090,1091],{"class":202},"(\n",[181,1093,1094,1097,1099,1101,1103,1105,1107,1110],{"class":183,"line":210},[181,1095,1096],{"class":191},"  synq",[181,1098,203],{"class":202},[181,1100,577],{"class":206},[181,1102,203],{"class":202},[181,1104,252],{"class":206},[181,1106,203],{"class":202},[181,1108,1109],{"class":206},"INTERRUPT",[181,1111,1112],{"class":202},",\n",[181,1114,1115],{"class":183,"line":227},[181,1116,1117],{"class":263},"  2\n",[181,1119,1120],{"class":183,"line":234},[181,1121,362],{"class":202},[546,1123,1125],{"id":1124},"getupcoming","GetUpcoming",[142,1127,1128,1129,203],{},"Returns analyzed timers occurring within the supplied number of seconds, sorted from soonest to latest. Unknown raw timers are excluded; query those with ",[145,1130,1131],{},"GetTimer(spellID)",[172,1133,1135],{"className":174,"code":1134,"language":176,"meta":177,"style":177},"local upcoming = synq.boss.GetUpcoming(10)\nfor index = 1, #upcoming do\n  local timer = upcoming[index]\n  local remaining = math.max(0, timer.expiresAt - synq.time)\n  print(timer.primaryMechanic, remaining)\nend\n",[145,1136,1137,1163,1187,1206,1238,1258],{"__ignoreMap":177},[181,1138,1139,1141,1144,1146,1148,1150,1152,1154,1156,1158,1161],{"class":183,"line":184},[181,1140,188],{"class":187},[181,1142,1143],{"class":191}," upcoming",[181,1145,196],{"class":195},[181,1147,199],{"class":191},[181,1149,203],{"class":202},[181,1151,577],{"class":206},[181,1153,203],{"class":202},[181,1155,1125],{"class":245},[181,1157,249],{"class":202},[181,1159,1160],{"class":263},"10",[181,1162,362],{"class":202},[181,1164,1165,1168,1171,1173,1176,1178,1181,1184],{"class":183,"line":210},[181,1166,1167],{"class":237},"for",[181,1169,1170],{"class":191}," index",[181,1172,196],{"class":195},[181,1174,1175],{"class":263}," 1",[181,1177,260],{"class":202},[181,1179,1180],{"class":195},"#",[181,1182,1183],{"class":191},"upcoming",[181,1185,1186],{"class":237}," do\n",[181,1188,1189,1191,1193,1195,1197,1200,1203],{"class":183,"line":227},[181,1190,378],{"class":187},[181,1192,818],{"class":191},[181,1194,196],{"class":195},[181,1196,1143],{"class":191},[181,1198,1199],{"class":202},"[",[181,1201,1202],{"class":191},"index",[181,1204,1205],{"class":202},"]\n",[181,1207,1208,1210,1212,1214,1216,1218,1220,1222,1224,1226,1228,1230,1232,1234,1236],{"class":183,"line":234},[181,1209,378],{"class":187},[181,1211,381],{"class":191},[181,1213,196],{"class":195},[181,1215,880],{"class":245},[181,1217,249],{"class":202},[181,1219,885],{"class":263},[181,1221,260],{"class":202},[181,1223,890],{"class":191},[181,1225,203],{"class":202},[181,1227,895],{"class":206},[181,1229,898],{"class":195},[181,1231,199],{"class":191},[181,1233,203],{"class":202},[181,1235,905],{"class":206},[181,1237,362],{"class":202},[181,1239,1240,1242,1244,1246,1248,1251,1253,1256],{"class":183,"line":273},[181,1241,597],{"class":245},[181,1243,249],{"class":202},[181,1245,890],{"class":191},[181,1247,203],{"class":202},[181,1249,1250],{"class":206},"primaryMechanic",[181,1252,260],{"class":202},[181,1254,1255],{"class":191},"remaining",[181,1257,362],{"class":202},[181,1259,1260],{"class":183,"line":280},[181,1261,283],{"class":237},[167,1263,1265],{"id":1264},"timer-object","Timer Object",[142,1267,1268],{},"All timer query functions return a snapshot. Changing it does not change encounter state.",[414,1270,1271,1281],{},[417,1272,1273],{},[420,1274,1275,1277,1279],{},[423,1276,643],{},[423,1278,646],{},[423,1280,649],{},[433,1282,1283,1296,1310,1323,1337,1351,1366,1380,1394,1408,1422,1441,1457,1472,1486,1510,1524,1537,1550,1564],{},[420,1284,1285,1289,1293],{},[438,1286,1287],{},[145,1288,607],{},[438,1290,1291],{},[145,1292,733],{},[438,1294,1295],{},"Provider-normalized timer identity",[420,1297,1298,1303,1307],{},[438,1299,1300],{},[145,1301,1302],{},"generation",[438,1304,1305],{},[145,1306,662],{},[438,1308,1309],{},"Timer occurrence generation",[420,1311,1312,1317,1321],{},[438,1313,1314],{},[145,1315,1316],{},"encounterID",[438,1318,1319],{},[145,1320,691],{},[438,1322,665],{},[420,1324,1325,1330,1334],{},[438,1326,1327],{},[145,1328,1329],{},"moduleID",[438,1331,1332],{},[145,1333,676],{},[438,1335,1336],{},"Provider module identity",[420,1338,1339,1344,1348],{},[438,1340,1341],{},[145,1342,1343],{},"spellID",[438,1345,1346],{},[145,1347,691],{},[438,1349,1350],{},"Spell ID when available",[420,1352,1353,1358,1363],{},[438,1354,1355],{},[145,1356,1357],{},"key",[438,1359,1360],{},[145,1361,1362],{},"number | string | nil",[438,1364,1365],{},"Provider timer key",[420,1367,1368,1373,1377],{},[438,1369,1370],{},[145,1371,1372],{},"label",[438,1374,1375],{},[145,1376,676],{},[438,1378,1379],{},"Provider timer label",[420,1381,1382,1387,1391],{},[438,1383,1384],{},[145,1385,1386],{},"icon",[438,1388,1389],{},[145,1390,1362],{},[438,1392,1393],{},"Provider icon value",[420,1395,1396,1401,1405],{},[438,1397,1398],{},[145,1399,1400],{},"count",[438,1402,1403],{},[145,1404,691],{},[438,1406,1407],{},"Occurrence count when available",[420,1409,1410,1415,1419],{},[438,1411,1412],{},[145,1413,1414],{},"duration",[438,1416,1417],{},[145,1418,662],{},[438,1420,1421],{},"Original timer duration in seconds",[420,1423,1424,1428,1432],{},[438,1425,1426],{},[145,1427,895],{},[438,1429,1430],{},[145,1431,691],{},[438,1433,1434,1435,1437,1438,1440],{},"Absolute ",[145,1436,755],{}," expiry while active; ",[145,1439,555],{}," while paused",[420,1442,1443,1447,1451],{},[438,1444,1445],{},[145,1446,1255],{},[438,1448,1449],{},[145,1450,691],{},[438,1452,1453,1454,1456],{},"Frozen seconds remaining while paused; ",[145,1455,555],{}," while active",[420,1458,1459,1464,1469],{},[438,1460,1461],{},[145,1462,1463],{},"paused",[438,1465,1466],{},[145,1467,1468],{},"boolean",[438,1470,1471],{},"Whether the timer is paused",[420,1473,1474,1479,1483],{},[438,1475,1476],{},[145,1477,1478],{},"approximate",[438,1480,1481],{},[145,1482,1468],{},[438,1484,1485],{},"Whether the provider marked timing approximate",[420,1487,1488,1493,1497],{},[438,1489,1490],{},[145,1491,1492],{},"timerType",[438,1494,1495],{},[145,1496,733],{},[438,1498,1499,1500,260,1503,1506,1507],{},"Normalized timer type, such as ",[145,1501,1502],{},"\"cooldown\"",[145,1504,1505],{},"\"target\"",", or ",[145,1508,1509],{},"\"cast\"",[420,1511,1512,1517,1521],{},[438,1513,1514],{},[145,1515,1516],{},"eventID",[438,1518,1519],{},[145,1520,1362],{},[438,1522,1523],{},"Provider event identity when available",[420,1525,1526,1530,1534],{},[438,1527,1528],{},[145,1529,625],{},[438,1531,1532],{},[145,1533,691],{},[438,1535,1536],{},"Stage when the timer was created",[420,1538,1539,1543,1547],{},[438,1540,1541],{},[145,1542,728],{},[438,1544,1545],{},[145,1546,733],{},[438,1548,1549],{},"Provider ID",[420,1551,1552,1556,1561],{},[438,1553,1554],{},[145,1555,252],{},[438,1557,1558],{},[145,1559,1560],{},"table | nil",[438,1562,1563],{},"All semantic mechanic classifications",[420,1565,1566,1570,1574],{},[438,1567,1568],{},[145,1569,1250],{},[438,1571,1572],{},[145,1573,676],{},[438,1575,1576],{},"Primary semantic classification",[167,1578,1580],{"id":1579},"behavior-and-limits","Behavior and Limits",[1582,1583,1584,1588,1591,1594,1597],"ul",{},[1585,1586,1587],"li",{},"Encounter state, stages, timer expiry, pause, resume, and reset are owned by the encounter engine.",[1585,1589,1590],{},"Only curated spell rules receive semantic classifications. Unknown timers remain queryable by spell ID.",[1585,1592,1593],{},"Provider selection uses priority and failover. The selected provider remains pinned during an active encounter while available.",[1585,1595,1596],{},"Integration is event-driven. It does not poll BigWigs bars or frames.",[1585,1598,1599],{},"The API does not display alerts, cast spells, move, target, or control BigWigs UI and settings.",[167,1601,1603],{"id":1602},"framework-only-extension-api","Framework-Only Extension API",[142,1605,1606,1609],{},[145,1607,1608],{},"synq.boss.internal"," is reserved for framework modules. Rotations must not register providers, mechanics, or subscribers.",[546,1611,1613],{"id":1612},"registermechanics","RegisterMechanics",[142,1615,1616,1617,1619,1620,1622,1623,1625],{},"Registers curated spell-to-mechanic rules for an encounter. The primary mechanic must also appear in ",[145,1618,252],{},". Optional ",[145,1621,625],{}," and ",[145,1624,1400],{}," fields can narrow a rule to one occurrence.",[172,1627,1629],{"className":174,"code":1628,"language":176,"meta":177,"style":177},"synq.boss.internal.RegisterMechanics(3182, {\n  {\n    spellID = 1242515,\n    mechanics = {\n      synq.boss.mechanics.RAID_DAMAGE,\n    },\n    primaryMechanic = synq.boss.mechanics.RAID_DAMAGE,\n  },\n})\n",[145,1630,1631,1656,1661,1673,1683,1702,1707,1730,1735],{"__ignoreMap":177},[181,1632,1633,1635,1637,1639,1641,1644,1646,1648,1650,1653],{"class":183,"line":184},[181,1634,976],{"class":191},[181,1636,203],{"class":202},[181,1638,577],{"class":206},[181,1640,203],{"class":202},[181,1642,1643],{"class":206},"internal",[181,1645,203],{"class":202},[181,1647,1613],{"class":245},[181,1649,249],{"class":202},[181,1651,1652],{"class":263},"3182",[181,1654,1655],{"class":202},", {\n",[181,1657,1658],{"class":183,"line":210},[181,1659,1660],{"class":202},"  {\n",[181,1662,1663,1666,1668,1671],{"class":183,"line":227},[181,1664,1665],{"class":191},"    spellID",[181,1667,196],{"class":195},[181,1669,1670],{"class":263}," 1242515",[181,1672,1112],{"class":202},[181,1674,1675,1678,1680],{"class":183,"line":234},[181,1676,1677],{"class":191},"    mechanics",[181,1679,196],{"class":195},[181,1681,1682],{"class":202}," {\n",[181,1684,1685,1688,1690,1692,1694,1696,1698,1700],{"class":183,"line":273},[181,1686,1687],{"class":191},"      synq",[181,1689,203],{"class":202},[181,1691,577],{"class":206},[181,1693,203],{"class":202},[181,1695,252],{"class":206},[181,1697,203],{"class":202},[181,1699,257],{"class":206},[181,1701,1112],{"class":202},[181,1703,1704],{"class":183,"line":280},[181,1705,1706],{"class":202},"    },\n",[181,1708,1709,1712,1714,1716,1718,1720,1722,1724,1726,1728],{"class":183,"line":286},[181,1710,1711],{"class":191},"    primaryMechanic",[181,1713,196],{"class":195},[181,1715,199],{"class":191},[181,1717,203],{"class":202},[181,1719,577],{"class":206},[181,1721,203],{"class":202},[181,1723,252],{"class":206},[181,1725,203],{"class":202},[181,1727,257],{"class":206},[181,1729,1112],{"class":202},[181,1731,1732],{"class":183,"line":291},[181,1733,1734],{"class":202},"  },\n",[181,1736,1737],{"class":183,"line":320},[181,1738,1739],{"class":202},"})\n",[546,1741,1743],{"id":1742},"registerprovider","RegisterProvider",[142,1745,1746,1747,1622,1749,1752,1753,260,1756,1759,1760,1763],{},"Registers a normalized encounter provider. ",[145,1748,607],{},[145,1750,1751],{},"Start"," are required. ",[145,1754,1755],{},"priority",[145,1757,1758],{},"IsAvailable",", and ",[145,1761,1762],{},"Stop"," are optional.",[172,1765,1767],{"className":174,"code":1766,"language":176,"meta":177,"style":177},"local provider = {\n  id = \"native\",\n  priority = 50,\n}\n\nfunction provider:IsAvailable()\n  return true\nend\n\nfunction provider:Start(emit)\n  self.emit = emit\n  return true\nend\n\nfunction provider:Stop()\n  self.emit = nil\nend\n\nsynq.boss.internal.RegisterProvider(provider)\n",[145,1768,1769,1780,1800,1812,1817,1821,1838,1847,1851,1855,1873,1888,1894,1898,1902,1914,1928,1933,1938],{"__ignoreMap":177},[181,1770,1771,1773,1776,1778],{"class":183,"line":184},[181,1772,188],{"class":187},[181,1774,1775],{"class":191}," provider",[181,1777,196],{"class":195},[181,1779,1682],{"class":202},[181,1781,1782,1785,1787,1791,1795,1798],{"class":183,"line":210},[181,1783,1784],{"class":191},"  id",[181,1786,196],{"class":195},[181,1788,1790],{"class":1789},"sDMqI"," \"",[181,1792,1794],{"class":1793},"sqoCU","native",[181,1796,1797],{"class":1789},"\"",[181,1799,1112],{"class":202},[181,1801,1802,1805,1807,1810],{"class":183,"line":227},[181,1803,1804],{"class":191},"  priority",[181,1806,196],{"class":195},[181,1808,1809],{"class":263}," 50",[181,1811,1112],{"class":202},[181,1813,1814],{"class":183,"line":234},[181,1815,1816],{"class":202},"}\n",[181,1818,1819],{"class":183,"line":273},[181,1820,231],{"emptyLinePlaceholder":230},[181,1822,1823,1826,1829,1832,1835],{"class":183,"line":280},[181,1824,1825],{"class":237},"function",[181,1827,1775],{"class":1828},"sfEEz",[181,1830,1831],{"class":202},":",[181,1833,1758],{"class":1834},"sd_VV",[181,1836,584],{"class":1837},"sXFTB",[181,1839,1840,1843],{"class":183,"line":286},[181,1841,1842],{"class":237},"  return",[181,1844,1846],{"class":1845},"s0nct"," true\n",[181,1848,1849],{"class":183,"line":291},[181,1850,283],{"class":237},[181,1852,1853],{"class":183,"line":320},[181,1854,231],{"emptyLinePlaceholder":230},[181,1856,1857,1859,1861,1863,1865,1867,1871],{"class":183,"line":326},[181,1858,1825],{"class":237},[181,1860,1775],{"class":1828},[181,1862,1831],{"class":202},[181,1864,1751],{"class":1834},[181,1866,249],{"class":1837},[181,1868,1870],{"class":1869},"sADxd","emit",[181,1872,362],{"class":1837},[181,1874,1875,1879,1881,1883,1885],{"class":183,"line":331},[181,1876,1878],{"class":1877},"sv-e_","  self",[181,1880,203],{"class":202},[181,1882,1870],{"class":206},[181,1884,196],{"class":195},[181,1886,1887],{"class":191}," emit\n",[181,1889,1890,1892],{"class":183,"line":336},[181,1891,1842],{"class":237},[181,1893,1846],{"class":1845},[181,1895,1896],{"class":183,"line":365},[181,1897,283],{"class":237},[181,1899,1900],{"class":183,"line":375},[181,1901,231],{"emptyLinePlaceholder":230},[181,1903,1904,1906,1908,1910,1912],{"class":183,"line":403},[181,1905,1825],{"class":237},[181,1907,1775],{"class":1828},[181,1909,1831],{"class":202},[181,1911,1762],{"class":1834},[181,1913,584],{"class":1837},[181,1915,1917,1919,1921,1923,1925],{"class":183,"line":1916},16,[181,1918,1878],{"class":1877},[181,1920,203],{"class":202},[181,1922,1870],{"class":206},[181,1924,196],{"class":195},[181,1926,1927],{"class":1845}," nil\n",[181,1929,1931],{"class":183,"line":1930},17,[181,1932,283],{"class":237},[181,1934,1936],{"class":183,"line":1935},18,[181,1937,231],{"emptyLinePlaceholder":230},[181,1939,1941,1943,1945,1947,1949,1951,1953,1955,1957,1959],{"class":183,"line":1940},19,[181,1942,976],{"class":191},[181,1944,203],{"class":202},[181,1946,577],{"class":206},[181,1948,203],{"class":202},[181,1950,1643],{"class":206},[181,1952,203],{"class":202},[181,1954,1743],{"class":245},[181,1956,249],{"class":202},[181,1958,728],{"class":191},[181,1960,362],{"class":202},[142,1962,1963,1964,1966,1967,1831],{},"Providers send normalized events through the ",[145,1965,1870],{}," callback passed to ",[145,1968,1751],{},[414,1970,1971,1981],{},[417,1972,1973],{},[420,1974,1975,1978],{},[423,1976,1977],{},"Event type",[423,1979,1980],{},"Purpose",[433,1982,1983,1993,2003,2012,2022,2032,2042,2052],{},[420,1984,1985,1990],{},[438,1986,1987],{},[145,1988,1989],{},"encounter_start",[438,1991,1992],{},"Begin encounter state",[420,1994,1995,2000],{},[438,1996,1997],{},[145,1998,1999],{},"encounter_end",[438,2001,2002],{},"End encounter state and clear timers",[420,2004,2005,2009],{},[438,2006,2007],{},[145,2008,625],{},[438,2010,2011],{},"Update encounter stage",[420,2013,2014,2019],{},[438,2015,2016],{},[145,2017,2018],{},"timer_start",[438,2020,2021],{},"Add or replace a normalized timer",[420,2023,2024,2029],{},[438,2025,2026],{},[145,2027,2028],{},"timer_stop",[438,2030,2031],{},"Stop matching timers",[420,2033,2034,2039],{},[438,2035,2036],{},[145,2037,2038],{},"timer_pause",[438,2040,2041],{},"Pause matching timers",[420,2043,2044,2049],{},[438,2045,2046],{},[145,2047,2048],{},"timer_resume",[438,2050,2051],{},"Resume matching timers",[420,2053,2054,2059],{},[438,2055,2056],{},[145,2057,2058],{},"reset",[438,2060,2061],{},"Clear timers for a module or provider lifecycle reset",[172,2063,2065],{"className":174,"code":2064,"language":176,"meta":177,"style":177},"self.emit({\n  type = \"timer_start\",\n  timerID = \"native|example|1242515\",\n  encounterID = 3182,\n  moduleID = \"example\",\n  spellID = 1242515,\n  label = \"Voidlight Convergence\",\n  duration = 12,\n  timerType = \"cooldown\",\n})\n",[145,2066,2067,2079,2094,2110,2122,2138,2149,2165,2177,2193],{"__ignoreMap":177},[181,2068,2069,2072,2074,2076],{"class":183,"line":184},[181,2070,2071],{"class":1877},"self",[181,2073,203],{"class":202},[181,2075,1870],{"class":245},[181,2077,2078],{"class":202},"({\n",[181,2080,2081,2084,2086,2088,2090,2092],{"class":183,"line":210},[181,2082,2083],{"class":191},"  type",[181,2085,196],{"class":195},[181,2087,1790],{"class":1789},[181,2089,2018],{"class":1793},[181,2091,1797],{"class":1789},[181,2093,1112],{"class":202},[181,2095,2096,2099,2101,2103,2106,2108],{"class":183,"line":227},[181,2097,2098],{"class":191},"  timerID",[181,2100,196],{"class":195},[181,2102,1790],{"class":1789},[181,2104,2105],{"class":1793},"native|example|1242515",[181,2107,1797],{"class":1789},[181,2109,1112],{"class":202},[181,2111,2112,2115,2117,2120],{"class":183,"line":234},[181,2113,2114],{"class":191},"  encounterID",[181,2116,196],{"class":195},[181,2118,2119],{"class":263}," 3182",[181,2121,1112],{"class":202},[181,2123,2124,2127,2129,2131,2134,2136],{"class":183,"line":273},[181,2125,2126],{"class":191},"  moduleID",[181,2128,196],{"class":195},[181,2130,1790],{"class":1789},[181,2132,2133],{"class":1793},"example",[181,2135,1797],{"class":1789},[181,2137,1112],{"class":202},[181,2139,2140,2143,2145,2147],{"class":183,"line":280},[181,2141,2142],{"class":191},"  spellID",[181,2144,196],{"class":195},[181,2146,1670],{"class":263},[181,2148,1112],{"class":202},[181,2150,2151,2154,2156,2158,2161,2163],{"class":183,"line":286},[181,2152,2153],{"class":191},"  label",[181,2155,196],{"class":195},[181,2157,1790],{"class":1789},[181,2159,2160],{"class":1793},"Voidlight Convergence",[181,2162,1797],{"class":1789},[181,2164,1112],{"class":202},[181,2166,2167,2170,2172,2175],{"class":183,"line":291},[181,2168,2169],{"class":191},"  duration",[181,2171,196],{"class":195},[181,2173,2174],{"class":263}," 12",[181,2176,1112],{"class":202},[181,2178,2179,2182,2184,2186,2189,2191],{"class":183,"line":320},[181,2180,2181],{"class":191},"  timerType",[181,2183,196],{"class":195},[181,2185,1790],{"class":1789},[181,2187,2188],{"class":1793},"cooldown",[181,2190,1797],{"class":1789},[181,2192,1112],{"class":202},[181,2194,2195],{"class":183,"line":326},[181,2196,1739],{"class":202},[546,2198,2200],{"id":2199},"refreshproviders","RefreshProviders",[142,2202,2203],{},"Re-evaluates provider availability and priority.",[172,2205,2207],{"className":174,"code":2206,"language":176,"meta":177,"style":177},"synq.boss.internal.RefreshProviders()\n",[145,2208,2209],{"__ignoreMap":177},[181,2210,2211,2213,2215,2217,2219,2221,2223,2225],{"class":183,"line":184},[181,2212,976],{"class":191},[181,2214,203],{"class":202},[181,2216,577],{"class":206},[181,2218,203],{"class":202},[181,2220,1643],{"class":206},[181,2222,203],{"class":202},[181,2224,2200],{"class":245},[181,2226,584],{"class":202},[546,2228,2230],{"id":2229},"subscribe","Subscribe",[142,2232,2233],{},"Subscribes a framework callback to normalized encounter changes. Returns an unsubscribe function.",[172,2235,2237],{"className":174,"code":2236,"language":176,"meta":177,"style":177},"local unsubscribe = synq.boss.internal.Subscribe(function(change)\n  print(change.type, change.timer, change.encounter)\nend)\n\nunsubscribe()\n",[145,2238,2239,2273,2304,2311,2315],{"__ignoreMap":177},[181,2240,2241,2243,2246,2248,2250,2252,2254,2256,2258,2260,2262,2264,2266,2268,2271],{"class":183,"line":184},[181,2242,188],{"class":187},[181,2244,2245],{"class":191}," unsubscribe",[181,2247,196],{"class":195},[181,2249,199],{"class":191},[181,2251,203],{"class":202},[181,2253,577],{"class":206},[181,2255,203],{"class":202},[181,2257,1643],{"class":206},[181,2259,203],{"class":202},[181,2261,2230],{"class":245},[181,2263,249],{"class":202},[181,2265,1825],{"class":237},[181,2267,249],{"class":1837},[181,2269,2270],{"class":1869},"change",[181,2272,362],{"class":1837},[181,2274,2275,2277,2279,2281,2283,2286,2288,2290,2292,2294,2296,2298,2300,2302],{"class":183,"line":210},[181,2276,597],{"class":245},[181,2278,249],{"class":202},[181,2280,2270],{"class":191},[181,2282,203],{"class":202},[181,2284,2285],{"class":206},"type",[181,2287,260],{"class":202},[181,2289,2270],{"class":191},[181,2291,203],{"class":202},[181,2293,890],{"class":206},[181,2295,260],{"class":202},[181,2297,2270],{"class":191},[181,2299,203],{"class":202},[181,2301,602],{"class":206},[181,2303,362],{"class":202},[181,2305,2306,2309],{"class":183,"line":227},[181,2307,2308],{"class":237},"end",[181,2310,362],{"class":202},[181,2312,2313],{"class":183,"line":234},[181,2314,231],{"emptyLinePlaceholder":230},[181,2316,2317,2320],{"class":183,"line":273},[181,2318,2319],{"class":245},"unsubscribe",[181,2321,584],{"class":202},[142,2323,2324],{},"Possible change types include provider changes, encounter lifecycle changes, stage changes, timer changes, and resets.",[2326,2327],"hr",{},[142,2329,2330,2333,2334,2337],{},[158,2331,2332],{},"Next:"," Browse ",[2335,2336,55],"a",{"href":56}," for inspecting framework state.",[2339,2340,2341],"style",{},"html pre.shiki code .smoeR, html code.shiki .smoeR{--shiki-light:#39ADB5;--shiki-default:#1E754F;--shiki-dark:#FF7B72}html pre.shiki code .szqNi, html code.shiki .szqNi{--shiki-light:#90A4AE;--shiki-default:#B07D48;--shiki-dark:#E6EDF3}html pre.shiki code .sRm85, html code.shiki .sRm85{--shiki-light:#39ADB5;--shiki-default:#AB5959;--shiki-dark:#FF7B72}html pre.shiki code .sw55D, html code.shiki .sw55D{--shiki-light:#90A4AE;--shiki-default:#393A34;--shiki-dark:#E6EDF3}html pre.shiki code .s197a, html code.shiki .s197a{--shiki-light:#E2931D;--shiki-default:#59873A;--shiki-dark:#79C0FF}html pre.shiki code .sVrxA, html code.shiki .sVrxA{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#1E754F;--shiki-default-font-style:inherit;--shiki-dark:#FF7B72;--shiki-dark-font-style:inherit}html pre.shiki code .sVg9q, html code.shiki .sVg9q{--shiki-light:#6182B8;--shiki-default:#998418;--shiki-dark:#79C0FF}html pre.shiki code .s7B4B, html code.shiki .s7B4B{--shiki-light:#F76D47;--shiki-default:#2F798A;--shiki-dark:#79C0FF}html pre.shiki code .s9EwP, html code.shiki .s9EwP{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#A0ADA0;--shiki-default-font-style:inherit;--shiki-dark:#8B949E;--shiki-dark-font-style:inherit}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sDMqI, html code.shiki .sDMqI{--shiki-light:#39ADB5;--shiki-default:#B5695977;--shiki-dark:#A5D6FF}html pre.shiki code .sqoCU, html code.shiki .sqoCU{--shiki-light:#91B859;--shiki-default:#B56959;--shiki-dark:#A5D6FF}html pre.shiki code .sfEEz, html code.shiki .sfEEz{--shiki-light:#E2931D;--shiki-default:#59873A;--shiki-dark:#FFA657}html pre.shiki code .sd_VV, html code.shiki .sd_VV{--shiki-light:#6182B8;--shiki-default:#59873A;--shiki-dark:#D2A8FF}html pre.shiki code .sXFTB, html code.shiki .sXFTB{--shiki-light:#39ADB5;--shiki-default:#999999;--shiki-dark:#E6EDF3}html pre.shiki code .s0nct, html code.shiki .s0nct{--shiki-light:#39ADB5;--shiki-default:#1E754F;--shiki-dark:#79C0FF}html pre.shiki code .sADxd, html code.shiki .sADxd{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#393A34;--shiki-default-font-style:inherit;--shiki-dark:#E6EDF3;--shiki-dark-font-style:inherit}html pre.shiki code .sv-e_, html code.shiki .sv-e_{--shiki-light:#90A4AE;--shiki-default:#A65E2B;--shiki-dark:#79C0FF}",{"title":177,"searchDepth":210,"depth":210,"links":2343},[2344,2345,2346,2350,2357,2358,2359],{"id":169,"depth":210,"text":170},{"id":408,"depth":210,"text":409},{"id":543,"depth":210,"text":544,"children":2347},[2348,2349],{"id":548,"depth":227,"text":549},{"id":759,"depth":227,"text":760},{"id":795,"depth":210,"text":796,"children":2351},[2352,2353,2354,2355,2356],{"id":799,"depth":227,"text":800},{"id":943,"depth":227,"text":350},{"id":994,"depth":227,"text":390},{"id":1058,"depth":227,"text":246},{"id":1124,"depth":227,"text":1125},{"id":1264,"depth":210,"text":1265},{"id":1579,"depth":210,"text":1580},{"id":1602,"depth":210,"text":1603,"children":2360},[2361,2362,2363,2364],{"id":1612,"depth":227,"text":1613},{"id":1742,"depth":227,"text":1743},{"id":2199,"depth":227,"text":2200},{"id":2229,"depth":227,"text":2230},"Query provider-independent encounter state and semantic boss mechanic timers","md",null,{},{"icon":63},{"title":2371,"description":2372},"Boss Encounter API - SYNQ Reference","Reference for querying normalized encounter state, spell timers, and semantic boss mechanics in SYNQ rotations","fczXKyske5oHK-Q0xZGERFQyFvhPUiu3u8Lcq1ryKHw",[2375,2377],{"title":55,"path":56,"stem":57,"description":2376,"icon":58,"children":-1},"Slash commands for debugging, profiling, and inspecting SYNQ",{"title":65,"path":66,"stem":67,"description":2378,"icon":34,"children":-1},"Learn how to create spell objects with traits and organize them in your rotation",1788972356938]