Some modules have attributes that may not be supported by the device. These attributes will be annotated with a `FeatureAttribute` return type. For example:

        @property
        def hsv(self) -> Annotated[HSV, FeatureAttribute()]:
            """Return the current HSV state of the bulb."""

You can test whether a `FeatureAttribute` is supported by the device with `kasa.Module.has_feature()` or `kasa.Module.get_feature()` which will return `None` if not supported. Calling these methods on attributes not annotated with a `FeatureAttribute` return type will return an error.