Big hairy changeset switching to "deterministic" simulation, meaning that we run the simulation at a fixed frequency of 100Hz regardless of frame rate. Behavior should now be a pure function of the input. (There may be a better more Elm-ish way to do this using signals.)
Make the invaders advance down the screen. This requires a new rule: you lose if you touch one. Unfortunately I just now realize as I'm committing this that it makes it possible to get the game into a state where it can't end. Oh well!
Make the enemy projectiles accelerate as they fall.
Make enemy projectiles inherit the vx of the enemy, but make vx diminish as they fall (due to wind braking).