> yes, I see that, but is it correct to handle alpha like this but not the other components?

Nope (though it's still gives just a bit more "fair" result than `clamp(c1a + c2a)`), so in fact I used this formula only because it's simple and gives correct result for non-transparent colors passed (e.g. for alpha 1 + 1). So I absolutely do not mind if you change it to `Math.min(1, this.alpha + other.alpha)`.

>I'm just cautious about breaking changes.

I understand. Though I'd say the earlier a breaking change comes the less code it breaks :) I doubt if there's any code out there that really does something like `rgba(1,2,3,0.5) + rgba(1,2,3,0.5)`