local Routing = {}

function Routing.Decide(ctx)
    local recap = ctx.recap == true
    local inCombat = ctx.inCombat == true
    local action
    if ctx.muted then
        action = "none"
    elseif not inCombat then
        action = "emit"
    elseif ctx.defer then
        action = recap and "none" or "queue"
    else
        action = "emit"
    end
    return { accumulate = recap and inCombat, action = action }
end

_G.CritMaticAlertRouting = Routing

return Routing
