Classifies the detected airborne object and assigns a confidence level by fusing radar cross-section, emission profile and visual confirmation. Determines whether the object is treated as a potential civil-defence threat at all. radarCrossSection emissionProfile visualConfirmation Positive visual plus a military or EW emission signature: treat as a likely-hostile drone. - "ew-jamming","military-radar" "positive" "drone-hostile-likely" "high" Small radar return carrying a comms or EW emission is characteristic of a controlled UAV. "micro","small" "comms","ew-jamming" - "drone" "high" Small, slow, emission-silent and visually unconfirmed: treat as a suspected drone pending confirmation. "micro","small" "none" "none","partial" "drone-suspected" "medium" Medium/large return with a military-radar emission is an identified military aircraft. "medium","large" "military-radar" - "military-aircraft" "high" Micro return with no emission and no visual is most likely a bird or radar clutter. "micro" "none" "none" "bird-or-clutter" "low" Fallback: object cannot be classified with available data. - - - "unknown" "low" Determines the civil-defence threat level from the classified object, its airspace behaviour and its proximity to people. This is the pivot decision the rest of the model depends on. objectClass airspaceStatus trajectoryTowardPopulated distanceToPopulatedKm Drone confirmed inside national airspace, closing on people within 10 km: critical. "drone","drone-hostile-likely" "inside" true <= 10 "critical" Drone inside or having crossed the border, on a trajectory toward people within 25 km: high. "drone","drone-hostile-likely" "crossed","inside" true <= 25 "high" Drone present in airspace but not tracking toward a populated area: elevated. "drone","drone-suspected","drone-hostile-likely" "crossed","inside" false - "elevated" Drone still approaching the border: low — monitor, no public alert yet. "drone","drone-suspected" "approaching" - - "low" Identified military aircraft is handled through air-policing channels, not civil-defence broadcast. "military-aircraft" - - - "low" Fallback: no civil-defence air threat. - - - - "none" Sets how fast a public cell-broadcast must be dispatched. The broadcastSlaSeconds output is the contractual deadline whose 40-minute breach in the 7 May 2026 Rezekne incident this whole package exists to prevent. threatLevel estimatedMinutesToPopulated Critical threat: public broadcast must leave within 2 minutes. "critical" - "immediate" 120 High threat with people reachable within 15 minutes: broadcast within 3 minutes. "high" <= 15 "immediate" 180 High threat with more lead time: broadcast within 5 minutes. "high" > 15 "priority" 300 Elevated threat: broadcast within 10 minutes. "elevated" - "priority" 600 Low threat: standard 30-minute advisory window. "low" - "standard" 1800 No threat: no public broadcast. - - "none" 0 Selects which municipalities receive the public alert, which message template is used, and the repeat interval. The alert footprint is built explicitly from the predicted corridor so it matches the threat's path rather than a fixed region. threatLevel borderProximityTier Critical: alert the predicted corridor plus every tier-1 border municipality; repeat every 2 min. "critical" - corridorMunicipalities + ",ALL_TIER1_BORDER" "MSG_DRONE_IMMINENT" 120 High: alert the predicted corridor; repeat every 3 min. "high" - corridorMunicipalities "MSG_DRONE_IMMINENT" 180 Elevated near the border (tier 1-2): possible-drone advisory to the corridor. "elevated" "tier1","tier2" corridorMunicipalities "MSG_DRONE_POSSIBLE" 300 Elevated further inland (tier 3): lighter monitoring advisory to the corridor. "elevated" "tier3" corridorMunicipalities "MSG_AIRSPACE_MONITORING" 600 Low or no threat: no public broadcast; municipal commissions informed through other channels. - - "none" "MSG_NONE" 0 Authorises or withholds kinetic interception. Engagement is gated first on positive hostile identification and then on civilian and debris safety: absence of a positive hostile ID always yields hold, regardless of threat level. threatLevel positiveHostileId overPopulatedArea debrisZoneClear groundFiringReady bapOnStation No positive hostile identification: engagement is never authorised. - false - - - - "hold" "R_NO_HOSTILE_ID" Object over a populated area: kinetic engagement withheld to avoid civilian casualties. - - true - - - "hold" "R_CIVILIAN_RISK" Debris fall-zone not confirmed clear: engagement withheld. - - - false - - "hold" "R_DEBRIS_RISK" High/critical threat, hostile-confirmed, safe, ground firing position ready: engage from the ground. "high","critical" true false true true - "engage-ground" "R_GROUND_PGA" High/critical threat, hostile-confirmed, safe, no ground option but BAP on station: hand to NATO BAP. "high","critical" true false true false true "engage-bap" "R_BAP_AIR" Fallback: interception criteria not met. - - - - - - "hold" "R_CRITERIA_NOT_MET" Determines when the public alert can be lifted and an all-clear cell-broadcast issued. Requires the object to be resolved and no further tracks in the area. objectNeutralized activeTracksRemain Object resolved and no further tracks: issue the all-clear. true false "all-clear" "MSG_ALL_CLEAR" Tracks still active in the area: maintain the public alert. - true "maintain-alert" "MSG_NONE" Object not yet resolved: maintain the public alert. - - "maintain-alert" "MSG_NONE"