OptionalanimationOptionaldurationseconds to cross the whole flight; overrides speed when both are given
OptionalfadeSeconds the sprite fades 0 to 1 from launch (a number), or 'progress'/true
to ease 0 to 1 along the flight's own progress - the tween's own clock, so the
fade cannot desynchronise from a duration the caller re-computed differently.
0, false or omitted means no fade.
OptionalonDispatched once, when this flight arrives - never on cancel() or clear(),
and after the flight has left the list, so an arrival that launches another
flight cannot disturb the iteration it arrived in.
Optionalspeedworld units per second; ignored if duration is given
Optionalspinradians per second added to the sprite's rotation while flying
Optionalspinspin in degrees per second instead - the same rotation, converted once here,
so an authored angular speed needs no * Math.PI / 180 at the call site.
Ignored when spin is given.
Optionaltintset once at launch, when the sprite takes a tint
Flight frames for the missile art. The projectile advances this with its own elapsed time, so a caller reads
frame/frameOffsethere instead of keeping a second animation and an elapsed clock in step with the tween.