Construct is long overdue for allowing objects multiple collision polys. They are needed to interact with different objects in different ways (i.e. Rectangle for environment collisions, Sprite Mask for general object detection, Freeform Shapes for melee weapons or attacks in fighting games, etc.)
Currently our only option is to use separate objects as collision masks, but this is just a workaround that originated in Multimedia Fusion over a decade ago and is far from ideal. With this method comes a slew of issues with overhead, object selection, multiple instances, and even using behaviors and variables and families just for collision masks which really gets messy.
I don't feel that this feature would involve significant architectural changes or break any existing projects either. Polys would be managed just like image points, and when creating an "On Collision" or "Is Overlapping" condition you would choose the collision poly of the sprites as well.
It's not clear how this would actually work at runtime. For example, if a Platform behavior lands on a solid with 2 collision polys, which should it collide with? It makes this basic function ambiguous. A similar problem occurs with the "on collision" and "is overlapping" conditions: at a minimum, these need to have a defined way of working with multiple collision polys for backwards compatibility reasons. This extends to many less obvious features using collision detection like "on clicked sprite", "on tap gesture on sprite", which poly to use for Physics, per-tile collision masks for tilemap, etc. Using multiple objects actually solves this pretty well, since you choose which object to apply 'solid' to, or which to select for the "on collision" condition, etc. This suggestion ought to include a proposed way to resolve these ambiguities in an intuitive way that doesn't overly complicate things for beginners.