-- Etapa 20: guard reutilizável para eventos.
-- Não inicia eventos sozinho.
local EventGuard = {}

function EventGuard.cancel(handle)
  if handle then
    removeEvent(handle)
  end
  return nil
end

function EventGuard.schedule(handle, callback, delay)
  handle = EventGuard.cancel(handle)
  if type(callback) ~= 'function' then
    return nil
  end
  return scheduleEvent(callback, delay or 0)
end

return EventGuard
