There are some classes of devices that have a special way to set the state when transitioning from ‘off’ to ‘on’. This includes many zigbee light bulbs, Nanoleaf lights, and some televisions.
Roughly speaking, instead of running a “set_state” command on such a device, one can run a “turn_on” command that also specifies a list of attributes. The semantics are often different, as “set_state” may turn on the device and then set the state, while “turn_on” will set the state as the device turns on.
E.g., for a lightbulb (happens to me with zigbee2mqtt), “set_state” on an off bulb will briefly flash to the prior state (including brightness!) and then set the brightness and color attributes to those specified, while “turn_on” will do this much more gracefully. Similarly I have a monitor that cannot have its input specified while off, but can have its input specified as part of a turn_on command.
One could allow scene.turn_on to have an optional flag that specifies this special behavior when the state of a device is transitioning from ‘off’ to ‘on’ (calling a turn_on command with the attributes as arguments). That way the format/semantics of scenes (as an unordered table of device attributes) doesn’t change.