local world = require("world")

world:filteredSystem("decay", { decayAfterSeconds = T.number }, function(e, dt, system)
    e.decayAfterSeconds = e.decayAfterSeconds - dt
    if e.decayAfterSeconds <= 0 then
        system.world:removeEntity(e)
    end
end)

LiveForNFrames = world:filteredSystem("liveForNFrames", { liveForNFrames = T.number }, function(e, _, system)
    e.liveForNFrames = e.liveForNFrames - 1
    if e.liveForNFrames <= 0 then
        system.world:removeEntity(e)
    end
end)

LiveForNFrames.deferToEnd = true