[{"data":1,"prerenderedAt":1147},["ShallowReactive",2],{"/docs/jobs/ambulancejob/features/insurance":3,"/docs/jobs/ambulancejob/features/insurance-surround":1135,"/docs/jobs/ambulancejob/features/insurance-implemented-suggestions":1146},{"id":4,"title":5,"body":6,"description":1125,"extension":1126,"head":1127,"implementedSuggestions":1127,"meta":1128,"navigation":1129,"path":1130,"schemaOrg":1127,"seo":1131,"sitemap":1132,"stem":1133,"__hash__":1134},"docs/1.docs/0.jobs/0.ambulancejob/3.features/2.insurance.md","Health Insurance",{"type":7,"value":8,"toc":1115},"minimark",[9,14,36,39,55,58,62,82,95,364,423,428,460,462,466,469,504,658,660,664,670,879,892,895,930,932,936,939,950,957,959,963,971,974,1092,1111],[10,11,13],"h2",{"id":12},"how-the-insurance-system-works","How the Insurance System Works",[15,16,17,18,22,23,26,27,31,32,35],"p",{},"Insurance is stored per player in ",[19,20,21],"code",{},"sky_ambulance_insurance"," and tied to a provider defined in ",[19,24,25],{},"Config.HealthInsurance",". Each provider defines the ",[28,29,30],"strong",{},"premium price"," and the ",[28,33,34],{},"patient co-pay"," percentage. When a medic issues a bill, the system checks the patient's coverage and notifies the medic with the insured status and co-pay.",[15,37,38],{},"Two billing modes are supported:",[40,41,42,49],"ul",{},[43,44,45,48],"li",{},[28,46,47],{},"Recurring premium",": the player is charged automatically on an interval (default every 60 minutes).",[43,50,51,54],{},[28,52,53],{},"One-time premium with expiration",": the player pays once and coverage expires after the configured number of days.",[56,57],"hr",{},[10,59,61],{"id":60},"core-configuration","Core Configuration",[15,63,64,65,67,68,71,72,75,76,81],{},"Insurance is managed in the ",[28,66,5],{}," section of the Job Configurator (",[19,69,70],{},"/jobconfig"," → ",[28,73,74],{},"Ambulance Jobs",") — providers, premiums, co-pay, billing cadence, and expiration are all edited and saved there without a resource restart. See ",[77,78,80],"a",{"href":79},"../setup/configuration","Configuration"," for the configurator workflow.",[15,83,84,86,87,90,91,94],{},[19,85,25],{}," inside ",[19,88,89],{},"config/config.lua"," provides the fallback defaults. When ",[19,92,93],{},"Config.UseJobConfigurator"," is enabled (the default), saved configurator values take priority over these fields:",[96,97,103],"pre",{"className":98,"code":99,"filename":100,"language":101,"meta":102,"style":102},"language-lua shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","Config.HealthInsurance = {\n    enabled = true,\n    command = \"insurance\",\n    account = \"bank\",\n    intervalMinutes = 60,\n    chargeOnSelect = true,\n    removeOnFailedCharge = true,\n    expiration = {\n        enabled = false,\n        durationDays = 30\n    },\n    providers = {\n        {\n            id = \"basic_care\",\n            label = \"Basic Care\",\n            description = \"Affordable coverage with higher patient participation.\",\n            price = 750,\n            copayPercent = 50\n        }\n    }\n}\n","config.lua","lua","",[19,104,105,125,140,160,177,191,203,215,225,238,249,255,265,271,288,305,322,335,346,352,358],{"__ignoreMap":102},[106,107,110,114,118,122],"span",{"class":108,"line":109},"line",1,[106,111,113],{"class":112},"sTEyZ","Config.",[106,115,117],{"class":116},"sBMFI","HealthInsurance",[106,119,121],{"class":120},"sMK4o"," =",[106,123,124],{"class":112}," {\n",[106,126,128,131,134,137],{"class":108,"line":127},2,[106,129,130],{"class":112},"    enabled ",[106,132,133],{"class":120},"=",[106,135,136],{"class":120}," true",[106,138,139],{"class":112},",\n",[106,141,143,146,148,151,155,158],{"class":108,"line":142},3,[106,144,145],{"class":112},"    command ",[106,147,133],{"class":120},[106,149,150],{"class":120}," \"",[106,152,154],{"class":153},"sfazB","insurance",[106,156,157],{"class":120},"\"",[106,159,139],{"class":112},[106,161,163,166,168,170,173,175],{"class":108,"line":162},4,[106,164,165],{"class":112},"    account ",[106,167,133],{"class":120},[106,169,150],{"class":120},[106,171,172],{"class":153},"bank",[106,174,157],{"class":120},[106,176,139],{"class":112},[106,178,180,183,185,189],{"class":108,"line":179},5,[106,181,182],{"class":112},"    intervalMinutes ",[106,184,133],{"class":120},[106,186,188],{"class":187},"sbssI"," 60",[106,190,139],{"class":112},[106,192,194,197,199,201],{"class":108,"line":193},6,[106,195,196],{"class":112},"    chargeOnSelect ",[106,198,133],{"class":120},[106,200,136],{"class":120},[106,202,139],{"class":112},[106,204,206,209,211,213],{"class":108,"line":205},7,[106,207,208],{"class":112},"    removeOnFailedCharge ",[106,210,133],{"class":120},[106,212,136],{"class":120},[106,214,139],{"class":112},[106,216,218,221,223],{"class":108,"line":217},8,[106,219,220],{"class":112},"    expiration ",[106,222,133],{"class":120},[106,224,124],{"class":112},[106,226,228,231,233,236],{"class":108,"line":227},9,[106,229,230],{"class":112},"        enabled ",[106,232,133],{"class":120},[106,234,235],{"class":120}," false",[106,237,139],{"class":112},[106,239,241,244,246],{"class":108,"line":240},10,[106,242,243],{"class":112},"        durationDays ",[106,245,133],{"class":120},[106,247,248],{"class":187}," 30\n",[106,250,252],{"class":108,"line":251},11,[106,253,254],{"class":112},"    },\n",[106,256,258,261,263],{"class":108,"line":257},12,[106,259,260],{"class":112},"    providers ",[106,262,133],{"class":120},[106,264,124],{"class":112},[106,266,268],{"class":108,"line":267},13,[106,269,270],{"class":112},"        {\n",[106,272,274,277,279,281,284,286],{"class":108,"line":273},14,[106,275,276],{"class":112},"            id ",[106,278,133],{"class":120},[106,280,150],{"class":120},[106,282,283],{"class":153},"basic_care",[106,285,157],{"class":120},[106,287,139],{"class":112},[106,289,291,294,296,298,301,303],{"class":108,"line":290},15,[106,292,293],{"class":112},"            label ",[106,295,133],{"class":120},[106,297,150],{"class":120},[106,299,300],{"class":153},"Basic Care",[106,302,157],{"class":120},[106,304,139],{"class":112},[106,306,308,311,313,315,318,320],{"class":108,"line":307},16,[106,309,310],{"class":112},"            description ",[106,312,133],{"class":120},[106,314,150],{"class":120},[106,316,317],{"class":153},"Affordable coverage with higher patient participation.",[106,319,157],{"class":120},[106,321,139],{"class":112},[106,323,325,328,330,333],{"class":108,"line":324},17,[106,326,327],{"class":112},"            price ",[106,329,133],{"class":120},[106,331,332],{"class":187}," 750",[106,334,139],{"class":112},[106,336,338,341,343],{"class":108,"line":337},18,[106,339,340],{"class":112},"            copayPercent ",[106,342,133],{"class":120},[106,344,345],{"class":187}," 50\n",[106,347,349],{"class":108,"line":348},19,[106,350,351],{"class":112},"        }\n",[106,353,355],{"class":108,"line":354},20,[106,356,357],{"class":112},"    }\n",[106,359,361],{"class":108,"line":360},21,[106,362,363],{"class":112},"}\n",[40,365,366,372,378,387,393,399,405,411,417],{},[43,367,368,371],{},[28,369,370],{},"enabled",": master toggle for the entire system.",[43,373,374,377],{},[28,375,376],{},"command",": chat command used to open the insurance UI.",[43,379,380,383,384,386],{},[28,381,382],{},"account",": account to charge premiums (",[19,385,172],{}," by default).",[43,388,389,392],{},[28,390,391],{},"intervalMinutes",": recurring premium interval (ignored when expiration is enabled).",[43,394,395,398],{},[28,396,397],{},"chargeOnSelect",": charge the premium immediately when a player selects a plan.",[43,400,401,404],{},[28,402,403],{},"removeOnFailedCharge",": cancel coverage if an automatic charge fails.",[43,406,407,410],{},[28,408,409],{},"expiration.enabled",": switch to one-time billing. Automatic charges stop.",[43,412,413,416],{},[28,414,415],{},"expiration.durationDays",": coverage length in days (7, 14, 30, etc.).",[43,418,419,422],{},[28,420,421],{},"providers",": list of available plans. Add more by duplicating entries.",[424,425,427],"h3",{"id":426},"provider-fields","Provider Fields",[40,429,430,436,442,448,454],{},[43,431,432,435],{},[28,433,434],{},"id",": unique identifier used in the database.",[43,437,438,441],{},[28,439,440],{},"label",": displayed in the UI.",[43,443,444,447],{},[28,445,446],{},"description",": optional UI description.",[43,449,450,453],{},[28,451,452],{},"price",": premium amount.",[43,455,456,459],{},[28,457,458],{},"copayPercent",": percentage the patient still pays when billed.",[56,461],{},[10,463,465],{"id":464},"insurance-terminal-location-optional","Insurance Terminal Location (Optional)",[15,467,468],{},"You can add a world interaction (NPC/marker) to open the insurance UI.",[470,471,472,491],"ol",{},[43,473,474,475,478,479,481,482,485,486,490],{},"Open the ",[28,476,477],{},"Hospitals"," section in ",[19,480,70],{}," and place the ",[28,483,484],{},"Insurance terminal"," point (see ",[77,487,489],{"href":488},"../setup/hospital-setup","Hospital Setup",").",[43,492,493,494,497,498,501,502,490],{},"The interaction uses the ",[19,495,496],{},"insurance_terminal"," interaction template, editable in the configurator (fallback: ",[19,499,500],{},"Config.Interactions.insurance_terminal"," in ",[19,503,89],{},[96,505,507],{"className":98,"code":506,"filename":100,"language":101,"meta":102,"style":102},"Config.Interactions.insurance_terminal = {\n    marker = { enabled = true, type = 1, offset = vector3(0.0, 0.0, 0.0) },\n    blip = { enabled = false, name = \"Insurance\", sprite = 408, color = 2 },\n    npc = { enabled = true, pedHash = \"a_f_y_business_01\", heading = 0.0 }\n}\n",[19,508,509,525,574,618,654],{"__ignoreMap":102},[106,510,511,513,516,519,521,523],{"class":108,"line":109},[106,512,113],{"class":112},[106,514,515],{"class":116},"Interactions",[106,517,518],{"class":112},".",[106,520,496],{"class":116},[106,522,121],{"class":120},[106,524,124],{"class":112},[106,526,527,530,532,535,537,539,542,544,547,550,552,556,559,562,565,567,569,571],{"class":108,"line":127},[106,528,529],{"class":112},"    marker ",[106,531,133],{"class":120},[106,533,534],{"class":112}," { enabled ",[106,536,133],{"class":120},[106,538,136],{"class":120},[106,540,541],{"class":112},", type ",[106,543,133],{"class":120},[106,545,546],{"class":187}," 1",[106,548,549],{"class":112},", offset ",[106,551,133],{"class":120},[106,553,555],{"class":554},"s2Zo4"," vector3",[106,557,558],{"class":112},"(",[106,560,561],{"class":187},"0.0",[106,563,564],{"class":112},", ",[106,566,561],{"class":187},[106,568,564],{"class":112},[106,570,561],{"class":187},[106,572,573],{"class":112},") },\n",[106,575,576,579,581,583,585,587,590,592,594,597,599,602,604,607,610,612,615],{"class":108,"line":142},[106,577,578],{"class":112},"    blip ",[106,580,133],{"class":120},[106,582,534],{"class":112},[106,584,133],{"class":120},[106,586,235],{"class":120},[106,588,589],{"class":112},", name ",[106,591,133],{"class":120},[106,593,150],{"class":120},[106,595,596],{"class":153},"Insurance",[106,598,157],{"class":120},[106,600,601],{"class":112},", sprite ",[106,603,133],{"class":120},[106,605,606],{"class":187}," 408",[106,608,609],{"class":112},", color ",[106,611,133],{"class":120},[106,613,614],{"class":187}," 2",[106,616,617],{"class":112}," },\n",[106,619,620,623,625,627,629,631,634,636,638,641,643,646,648,651],{"class":108,"line":162},[106,621,622],{"class":112},"    npc ",[106,624,133],{"class":120},[106,626,534],{"class":112},[106,628,133],{"class":120},[106,630,136],{"class":120},[106,632,633],{"class":112},", pedHash ",[106,635,133],{"class":120},[106,637,150],{"class":120},[106,639,640],{"class":153},"a_f_y_business_01",[106,642,157],{"class":120},[106,644,645],{"class":112},", heading ",[106,647,133],{"class":120},[106,649,650],{"class":187}," 0.0",[106,652,653],{"class":112}," }\n",[106,655,656],{"class":108,"line":179},[106,657,363],{"class":112},[56,659],{},[10,661,663],{"id":662},"database-fields","Database Fields",[15,665,666,669],{},[19,667,668],{},"import.sql"," creates the insurance table:",[96,671,675],{"className":672,"code":673,"language":674,"meta":102,"style":102},"language-sql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","CREATE TABLE IF NOT EXISTS `sky_ambulance_insurance` (\n  `id` INT NOT NULL AUTO_INCREMENT,\n  `identifier` VARCHAR(64) NOT NULL,\n  `provider_id` VARCHAR(64) NOT NULL,\n  `next_charge` BIGINT NOT NULL DEFAULT 0,\n  `last_charge` BIGINT NULL DEFAULT NULL,\n  `expires_at` BIGINT NOT NULL DEFAULT 0,\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `uniq_identifier` (`identifier`)\n);\n","sql",[19,676,677,705,724,749,770,792,812,831,848,874],{"__ignoreMap":102},[106,678,679,682,685,688,691,694,697,699,702],{"class":108,"line":109},[106,680,681],{"class":187},"CREATE",[106,683,684],{"class":187}," TABLE",[106,686,687],{"class":554}," IF",[106,689,690],{"class":187}," NOT",[106,692,693],{"class":187}," EXISTS",[106,695,696],{"class":120}," `",[106,698,21],{"class":153},[106,700,701],{"class":120},"`",[106,703,704],{"class":112}," (\n",[106,706,707,710,712,714,718,721],{"class":108,"line":127},[106,708,709],{"class":120},"  `",[106,711,434],{"class":153},[106,713,701],{"class":120},[106,715,717],{"class":716},"spNyl"," INT",[106,719,720],{"class":187}," NOT NULL",[106,722,723],{"class":112}," AUTO_INCREMENT,\n",[106,725,726,728,731,733,736,738,741,744,747],{"class":108,"line":142},[106,727,709],{"class":120},[106,729,730],{"class":153},"identifier",[106,732,701],{"class":120},[106,734,735],{"class":716}," VARCHAR",[106,737,558],{"class":112},[106,739,740],{"class":187},"64",[106,742,743],{"class":112},") ",[106,745,746],{"class":187},"NOT NULL",[106,748,139],{"class":112},[106,750,751,753,756,758,760,762,764,766,768],{"class":108,"line":162},[106,752,709],{"class":120},[106,754,755],{"class":153},"provider_id",[106,757,701],{"class":120},[106,759,735],{"class":716},[106,761,558],{"class":112},[106,763,740],{"class":187},[106,765,743],{"class":112},[106,767,746],{"class":187},[106,769,139],{"class":112},[106,771,772,774,777,779,782,784,787,790],{"class":108,"line":179},[106,773,709],{"class":120},[106,775,776],{"class":153},"next_charge",[106,778,701],{"class":120},[106,780,781],{"class":716}," BIGINT",[106,783,720],{"class":187},[106,785,786],{"class":716}," DEFAULT",[106,788,789],{"class":187}," 0",[106,791,139],{"class":112},[106,793,794,796,799,801,803,806,808,810],{"class":108,"line":193},[106,795,709],{"class":120},[106,797,798],{"class":153},"last_charge",[106,800,701],{"class":120},[106,802,781],{"class":716},[106,804,805],{"class":187}," NULL",[106,807,786],{"class":716},[106,809,805],{"class":187},[106,811,139],{"class":112},[106,813,814,816,819,821,823,825,827,829],{"class":108,"line":205},[106,815,709],{"class":120},[106,817,818],{"class":153},"expires_at",[106,820,701],{"class":120},[106,822,781],{"class":716},[106,824,720],{"class":187},[106,826,786],{"class":716},[106,828,789],{"class":187},[106,830,139],{"class":112},[106,832,833,836,839,841,843,845],{"class":108,"line":217},[106,834,835],{"class":716},"  PRIMARY KEY",[106,837,838],{"class":112}," (",[106,840,701],{"class":120},[106,842,434],{"class":153},[106,844,701],{"class":120},[106,846,847],{"class":112},"),\n",[106,849,850,853,856,858,861,863,865,867,869,871],{"class":108,"line":227},[106,851,852],{"class":187},"  UNIQUE",[106,854,855],{"class":187}," KEY",[106,857,696],{"class":120},[106,859,860],{"class":153},"uniq_identifier",[106,862,701],{"class":120},[106,864,838],{"class":112},[106,866,701],{"class":120},[106,868,730],{"class":153},[106,870,701],{"class":120},[106,872,873],{"class":112},")\n",[106,875,876],{"class":108,"line":240},[106,877,878],{"class":112},");\n",[40,880,881,887],{},[43,882,883,886],{},[28,884,885],{},"next_charge / last_charge",": used for recurring billing.",[43,888,889,891],{},[28,890,818],{},": used when expiration mode is enabled.",[15,893,894],{},"For existing installs:",[96,896,898],{"className":672,"code":897,"language":674,"meta":102,"style":102},"ALTER TABLE sky_ambulance_insurance\nADD COLUMN expires_at BIGINT NOT NULL DEFAULT 0;\n",[19,899,900,910],{"__ignoreMap":102},[106,901,902,905,907],{"class":108,"line":109},[106,903,904],{"class":187},"ALTER",[106,906,684],{"class":187},[106,908,909],{"class":112}," sky_ambulance_insurance\n",[106,911,912,915,918,921,923,925,927],{"class":108,"line":127},[106,913,914],{"class":187},"ADD",[106,916,917],{"class":112}," COLUMN expires_at ",[106,919,920],{"class":716},"BIGINT",[106,922,720],{"class":187},[106,924,786],{"class":716},[106,926,789],{"class":187},[106,928,929],{"class":112},";\n",[56,931],{},[10,933,935],{"id":934},"billing-behavior","Billing Behavior",[15,937,938],{},"When a medic issues a bill:",[40,940,941,944,947],{},[43,942,943],{},"The system checks whether the target is insured.",[43,945,946],{},"The medic receives a notification with the provider name and the patient co-pay percentage.",[43,948,949],{},"The UI shows the coverage status and the estimated patient charge.",[15,951,952,953,956],{},"If expiration is enabled, the UI shows a ",[28,954,955],{},"one-time payment"," message instead of an interval.",[56,958],{},[10,960,962],{"id":961},"integration-via-exports","Integration via Exports",[15,964,965,966,970],{},"Other resources can read and modify insurance state through server-side exports. See the ",[77,967,969],{"href":968},"/docs/jobs/ambulancejob/api/server-exports#insurance","Insurance section of the Server Exports page"," for the full reference.",[15,972,973],{},"Typical use-cases:",[40,975,976,1021,1063],{},[43,977,978,981,982],{},[28,979,980],{},"Hospital welcome flow"," — grant a 7-day basic plan to every new player on first spawn:\n",[96,983,985],{"className":98,"code":984,"language":101,"meta":102,"style":102},"exports[\"sky_ambulancejob\"]:setInsurance(playerId, \"basic_care\", 7)\n",[19,986,987],{"__ignoreMap":102},[106,988,989,992,994,997,999,1002,1005,1008,1010,1012,1014,1016,1019],{"class":108,"line":109},[106,990,991],{"class":112},"exports[",[106,993,157],{"class":120},[106,995,996],{"class":153},"sky_ambulancejob",[106,998,157],{"class":120},[106,1000,1001],{"class":112},"]:",[106,1003,1004],{"class":554},"setInsurance",[106,1006,1007],{"class":112},"(playerId, ",[106,1009,157],{"class":120},[106,1011,283],{"class":153},[106,1013,157],{"class":120},[106,1015,564],{"class":112},[106,1017,1018],{"class":187},"7",[106,1020,873],{"class":112},[43,1022,1023,1026,1027],{},[28,1024,1025],{},"Custom billing resource"," — calculate the patient co-pay before issuing a bill:\n",[96,1028,1030],{"className":98,"code":1029,"language":101,"meta":102,"style":102},"local result = exports[\"sky_ambulancejob\"]:calculateCopay(playerId, 900)\n",[19,1031,1032],{"__ignoreMap":102},[106,1033,1034,1037,1040,1042,1045,1047,1049,1051,1053,1056,1058,1061],{"class":108,"line":109},[106,1035,1036],{"class":120},"local",[106,1038,1039],{"class":112}," result ",[106,1041,133],{"class":120},[106,1043,1044],{"class":112}," exports[",[106,1046,157],{"class":120},[106,1048,996],{"class":153},[106,1050,157],{"class":120},[106,1052,1001],{"class":112},[106,1054,1055],{"class":554},"calculateCopay",[106,1057,1007],{"class":112},[106,1059,1060],{"class":187},"900",[106,1062,873],{"class":112},[43,1064,1065,1068,1069],{},[28,1066,1067],{},"Admin menu"," — revoke coverage from a player:\n",[96,1070,1072],{"className":98,"code":1071,"language":101,"meta":102,"style":102},"exports[\"sky_ambulancejob\"]:removeInsurance(playerId)\n",[19,1073,1074],{"__ignoreMap":102},[106,1075,1076,1078,1080,1082,1084,1086,1089],{"class":108,"line":109},[106,1077,991],{"class":112},[106,1079,157],{"class":120},[106,1081,996],{"class":153},[106,1083,157],{"class":120},[106,1085,1001],{"class":112},[106,1087,1088],{"class":554},"removeInsurance",[106,1090,1091],{"class":112},"(playerId)\n",[15,1093,1094,1095,564,1097,564,1099,1102,1103,1106,1107,1110],{},"Write exports (",[19,1096,1004],{},[19,1098,1088],{},[19,1100,1101],{},"extendInsurance",") do ",[28,1104,1105],{},"not"," charge the player — they are integration hooks. Use the in-game ",[19,1108,1109],{},"/insurance"," command for the normal purchase flow.",[1112,1113,1114],"style",{},"html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":102,"searchDepth":109,"depth":127,"links":1116},[1117,1118,1121,1122,1123,1124],{"id":12,"depth":127,"text":13},{"id":60,"depth":127,"text":61,"children":1119},[1120],{"id":426,"depth":142,"text":427},{"id":464,"depth":127,"text":465},{"id":662,"depth":127,"text":663},{"id":934,"depth":127,"text":935},{"id":961,"depth":127,"text":962},"Configure insurance providers, billing cadence, and coverage expiration for Sky Ambulancejob.","md",null,{},true,"/docs/jobs/ambulancejob/features/insurance",{"title":5,"description":1125},{"loc":1130},"1.docs/0.jobs/0.ambulancejob/3.features/2.insurance","3Y4UbhI4CeAnIrDnQGwEdg8SswtVazb1EDQzbijjgOQ",[1136,1141],{"title":1137,"path":1138,"stem":1139,"description":1140,"children":-1},"Vitals & Treatment","/docs/jobs/ambulancejob/features/vitals","1.docs/0.jobs/0.ambulancejob/3.features/1.vitals","Understand how Sky Ambulancejob tracks death causes, assigns injuries, and guides medics through the correct treatment flow.",{"title":1142,"path":1143,"stem":1144,"description":1145,"children":-1},"Custom Medications","/docs/jobs/ambulancejob/features/custom-medications","1.docs/0.jobs/0.ambulancejob/3.features/3.custom-medications","Declare inventory items that mix declarative effects (pain, blood, heal) with optional per-tick callbacks running on the client and server.",[],1783080557709]