-- | This is auto-generated - see the "product-gen" script.
module Lifx.Internal.ProductInfo where

import Lifx.Internal.Product

productInfo :: [VendorInfo]
productInfo :: [VendorInfo]
productInfo =
    [ VendorInfo
        { $sel:vid:VendorInfo :: Word32
vid = Word32
1
        , $sel:name:VendorInfo :: Text
name = Text
"LIFX"
        , $sel:defaults:VendorInfo :: Features
defaults = Features
            { $sel:hev:Features :: Bool
hev = Bool
False
            , $sel:color:Features :: Bool
color = Bool
False
            , $sel:chain:Features :: Bool
chain = Bool
False
            , $sel:matrix:Features :: Bool
matrix = Bool
False
            , $sel:relays:Features :: Bool
relays = Bool
False
            , $sel:buttons:Features :: Bool
buttons = Bool
False
            , $sel:infrared:Features :: Bool
infrared = Bool
False
            , $sel:multizone:Features :: Bool
multizone = Bool
False
            , $sel:temperatureRange:Features :: Maybe (Word16, Word16)
temperatureRange = forall a. Maybe a
Nothing
            , $sel:extendedMultizone:Features :: Bool
extendedMultizone = Bool
False
            }
        , $sel:products:VendorInfo :: [ProductInfo]
products =
            [ ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
1
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Original 1000"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
3
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Color 650"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
10
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX White 800 (Low Voltage)"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2700
                        , Word16
6500
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
11
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX White 800 (High Voltage)"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2700
                        , Word16
6500
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
15
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Color 1000"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
18
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX White 900 BR30 (Low Voltage)"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
19
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX White 900 BR30 (High Voltage)"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
20
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Color 1000 BR30"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
22
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Color 1000"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
27
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX A19"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
                    [ Upgrade
                        { $sel:major:Upgrade :: Word16
major = Word16
2
                        , $sel:minor:Upgrade :: Word16
minor = Word16
80
                        , $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures
                            { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                            , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. Maybe a
Nothing
                            , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. Maybe a
Nothing
                            , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. Maybe a
Nothing
                            , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                            , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                            , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. Maybe a
Nothing
                            , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. Maybe a
Nothing
                            , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                                ( Word16
1500
                                , Word16
9000
                                )
                            , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                            }
                        }
                    ]
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
28
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX BR30"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
                    [ Upgrade
                        { $sel:major:Upgrade :: Word16
major = Word16
2
                        , $sel:minor:Upgrade :: Word16
minor = Word16
80
                        , $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures
                            { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                            , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. Maybe a
Nothing
                            , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. Maybe a
Nothing
                            , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. Maybe a
Nothing
                            , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                            , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                            , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. Maybe a
Nothing
                            , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. Maybe a
Nothing
                            , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                                ( Word16
1500
                                , Word16
9000
                                )
                            , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                            }
                        }
                    ]
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
29
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX A19 Night Vision"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
True
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
                    [ Upgrade
                        { $sel:major:Upgrade :: Word16
major = Word16
2
                        , $sel:minor:Upgrade :: Word16
minor = Word16
80
                        , $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures
                            { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                            , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. Maybe a
Nothing
                            , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. Maybe a
Nothing
                            , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. Maybe a
Nothing
                            , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                            , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                            , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. Maybe a
Nothing
                            , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. Maybe a
Nothing
                            , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                                ( Word16
1500
                                , Word16
9000
                                )
                            , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                            }
                        }
                    ]
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
30
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX BR30 Night Vision"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
True
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
                    [ Upgrade
                        { $sel:major:Upgrade :: Word16
major = Word16
2
                        , $sel:minor:Upgrade :: Word16
minor = Word16
80
                        , $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures
                            { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                            , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. Maybe a
Nothing
                            , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. Maybe a
Nothing
                            , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. Maybe a
Nothing
                            , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                            , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                            , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. Maybe a
Nothing
                            , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. Maybe a
Nothing
                            , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                                ( Word16
1500
                                , Word16
9000
                                )
                            , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                            }
                        }
                    ]
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
31
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Z"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
True
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
32
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Z"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
True
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
                    [ Upgrade
                        { $sel:major:Upgrade :: Word16
major = Word16
2
                        , $sel:minor:Upgrade :: Word16
minor = Word16
77
                        , $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures
                            { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                            , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. Maybe a
Nothing
                            , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. Maybe a
Nothing
                            , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. Maybe a
Nothing
                            , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                            , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                            , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. Maybe a
Nothing
                            , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. Maybe a
Nothing
                            , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. Maybe a
Nothing
                            , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. a -> Maybe a
Just Bool
True
                            }
                        }
                    , Upgrade
                        { $sel:major:Upgrade :: Word16
major = Word16
2
                        , $sel:minor:Upgrade :: Word16
minor = Word16
80
                        , $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures
                            { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                            , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. Maybe a
Nothing
                            , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. Maybe a
Nothing
                            , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. Maybe a
Nothing
                            , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                            , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                            , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. Maybe a
Nothing
                            , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. Maybe a
Nothing
                            , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                                ( Word16
1500
                                , Word16
9000
                                )
                            , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                            }
                        }
                    ]
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
36
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Downlight"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
                    [ Upgrade
                        { $sel:major:Upgrade :: Word16
major = Word16
2
                        , $sel:minor:Upgrade :: Word16
minor = Word16
80
                        , $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures
                            { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                            , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. Maybe a
Nothing
                            , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. Maybe a
Nothing
                            , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. Maybe a
Nothing
                            , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                            , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                            , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. Maybe a
Nothing
                            , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. Maybe a
Nothing
                            , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                                ( Word16
1500
                                , Word16
9000
                                )
                            , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                            }
                        }
                    ]
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
37
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Downlight"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
                    [ Upgrade
                        { $sel:major:Upgrade :: Word16
major = Word16
2
                        , $sel:minor:Upgrade :: Word16
minor = Word16
80
                        , $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures
                            { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                            , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. Maybe a
Nothing
                            , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. Maybe a
Nothing
                            , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. Maybe a
Nothing
                            , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                            , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                            , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. Maybe a
Nothing
                            , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. Maybe a
Nothing
                            , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                                ( Word16
1500
                                , Word16
9000
                                )
                            , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                            }
                        }
                    ]
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
38
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Beam"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
True
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
                    [ Upgrade
                        { $sel:major:Upgrade :: Word16
major = Word16
2
                        , $sel:minor:Upgrade :: Word16
minor = Word16
77
                        , $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures
                            { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                            , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. Maybe a
Nothing
                            , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. Maybe a
Nothing
                            , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. Maybe a
Nothing
                            , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                            , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                            , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. Maybe a
Nothing
                            , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. Maybe a
Nothing
                            , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. Maybe a
Nothing
                            , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. a -> Maybe a
Just Bool
True
                            }
                        }
                    , Upgrade
                        { $sel:major:Upgrade :: Word16
major = Word16
2
                        , $sel:minor:Upgrade :: Word16
minor = Word16
80
                        , $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures
                            { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                            , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. Maybe a
Nothing
                            , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. Maybe a
Nothing
                            , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. Maybe a
Nothing
                            , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                            , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                            , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. Maybe a
Nothing
                            , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. Maybe a
Nothing
                            , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                                ( Word16
1500
                                , Word16
9000
                                )
                            , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                            }
                        }
                    ]
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
39
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Downlight White to Warm"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
                    [ Upgrade
                        { $sel:major:Upgrade :: Word16
major = Word16
2
                        , $sel:minor:Upgrade :: Word16
minor = Word16
80
                        , $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures
                            { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                            , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. Maybe a
Nothing
                            , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. Maybe a
Nothing
                            , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. Maybe a
Nothing
                            , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                            , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                            , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. Maybe a
Nothing
                            , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. Maybe a
Nothing
                            , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                                ( Word16
1500
                                , Word16
9000
                                )
                            , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                            }
                        }
                    ]
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
40
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Downlight"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
                    [ Upgrade
                        { $sel:major:Upgrade :: Word16
major = Word16
2
                        , $sel:minor:Upgrade :: Word16
minor = Word16
80
                        , $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures
                            { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                            , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. Maybe a
Nothing
                            , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. Maybe a
Nothing
                            , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. Maybe a
Nothing
                            , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                            , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                            , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. Maybe a
Nothing
                            , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. Maybe a
Nothing
                            , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                                ( Word16
1500
                                , Word16
9000
                                )
                            , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                            }
                        }
                    ]
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
43
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX A19"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
                    [ Upgrade
                        { $sel:major:Upgrade :: Word16
major = Word16
2
                        , $sel:minor:Upgrade :: Word16
minor = Word16
80
                        , $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures
                            { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                            , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. Maybe a
Nothing
                            , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. Maybe a
Nothing
                            , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. Maybe a
Nothing
                            , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                            , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                            , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. Maybe a
Nothing
                            , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. Maybe a
Nothing
                            , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                                ( Word16
1500
                                , Word16
9000
                                )
                            , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                            }
                        }
                    ]
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
44
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX BR30"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
                    [ Upgrade
                        { $sel:major:Upgrade :: Word16
major = Word16
2
                        , $sel:minor:Upgrade :: Word16
minor = Word16
80
                        , $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures
                            { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                            , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. Maybe a
Nothing
                            , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. Maybe a
Nothing
                            , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. Maybe a
Nothing
                            , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                            , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                            , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. Maybe a
Nothing
                            , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. Maybe a
Nothing
                            , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                                ( Word16
1500
                                , Word16
9000
                                )
                            , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                            }
                        }
                    ]
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
45
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX A19 Night Vision"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
True
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
                    [ Upgrade
                        { $sel:major:Upgrade :: Word16
major = Word16
2
                        , $sel:minor:Upgrade :: Word16
minor = Word16
80
                        , $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures
                            { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                            , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. Maybe a
Nothing
                            , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. Maybe a
Nothing
                            , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. Maybe a
Nothing
                            , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                            , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                            , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. Maybe a
Nothing
                            , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. Maybe a
Nothing
                            , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                                ( Word16
1500
                                , Word16
9000
                                )
                            , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                            }
                        }
                    ]
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
46
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX BR30 Night Vision"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
True
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
                    [ Upgrade
                        { $sel:major:Upgrade :: Word16
major = Word16
2
                        , $sel:minor:Upgrade :: Word16
minor = Word16
80
                        , $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures
                            { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                            , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. Maybe a
Nothing
                            , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. Maybe a
Nothing
                            , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. Maybe a
Nothing
                            , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                            , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                            , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. Maybe a
Nothing
                            , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. Maybe a
Nothing
                            , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                                ( Word16
1500
                                , Word16
9000
                                )
                            , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                            }
                        }
                    ]
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
49
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Mini Color"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
50
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Mini White to Warm"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
6500
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
                    [ Upgrade
                        { $sel:major:Upgrade :: Word16
major = Word16
3
                        , $sel:minor:Upgrade :: Word16
minor = Word16
70
                        , $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures
                            { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                            , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. Maybe a
Nothing
                            , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. Maybe a
Nothing
                            , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. Maybe a
Nothing
                            , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                            , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                            , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. Maybe a
Nothing
                            , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. Maybe a
Nothing
                            , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                                ( Word16
1500
                                , Word16
9000
                                )
                            , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                            }
                        }
                    ]
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
51
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Mini White"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2700
                        , Word16
2700
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
52
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX GU10"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
53
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX GU10"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
55
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Tile"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
True
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
True
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
57
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Candle"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
True
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
59
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Mini Color"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
60
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Mini White to Warm"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
6500
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades =
                    [ Upgrade
                        { $sel:major:Upgrade :: Word16
major = Word16
3
                        , $sel:minor:Upgrade :: Word16
minor = Word16
70
                        , $sel:features:Upgrade :: PartialFeatures
features = PartialFeatures
                            { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                            , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. Maybe a
Nothing
                            , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. Maybe a
Nothing
                            , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. Maybe a
Nothing
                            , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                            , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                            , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. Maybe a
Nothing
                            , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. Maybe a
Nothing
                            , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                                ( Word16
1500
                                , Word16
9000
                                )
                            , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                            }
                        }
                    ]
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
61
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Mini White"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2700
                        , Word16
2700
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
62
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX A19"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
63
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX BR30"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
64
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX A19 Night Vision"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
True
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
65
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX BR30 Night Vision"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
True
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
66
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Mini White"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2700
                        , Word16
2700
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
68
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Candle"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
True
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
70
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Switch"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. a -> Maybe a
Just Bool
True
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. a -> Maybe a
Just Bool
True
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. Maybe a
Nothing
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
71
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Switch"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. a -> Maybe a
Just Bool
True
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. a -> Maybe a
Just Bool
True
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. Maybe a
Nothing
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
81
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Candle White to Warm"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2200
                        , Word16
6500
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
82
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Filament Clear"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2100
                        , Word16
2100
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
85
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Filament Amber"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2000
                        , Word16
2000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
87
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Mini White"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2700
                        , Word16
2700
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
88
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Mini White"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2700
                        , Word16
2700
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
89
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Switch"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. a -> Maybe a
Just Bool
True
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. a -> Maybe a
Just Bool
True
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. Maybe a
Nothing
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
90
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Clean"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. a -> Maybe a
Just Bool
True
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
91
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Color"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
92
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Color"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
93
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX A19 US"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
94
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX BR30"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
96
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Candle White to Warm"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2200
                        , Word16
6500
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
97
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX A19"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
98
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX BR30"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
99
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Clean"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. a -> Maybe a
Just Bool
True
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
100
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Filament Clear"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2100
                        , Word16
2100
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
101
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Filament Amber"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2000
                        , Word16
2000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
109
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX A19 Night Vision"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
True
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
110
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX BR30 Night Vision"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
True
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
111
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX A19 Night Vision"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
True
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
112
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX BR30 Night Vision Intl"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
True
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
113
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Mini WW US"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
114
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Mini WW Intl"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
115
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Switch"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. a -> Maybe a
Just Bool
True
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. a -> Maybe a
Just Bool
True
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. Maybe a
Nothing
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
116
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Switch"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. a -> Maybe a
Just Bool
True
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. a -> Maybe a
Just Bool
True
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. Maybe a
Nothing
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
117
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Z US"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
True
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. a -> Maybe a
Just Bool
True
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
118
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Z Intl"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
True
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. a -> Maybe a
Just Bool
True
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
119
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Beam US"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
True
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. a -> Maybe a
Just Bool
True
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
120
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Beam Intl"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
True
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. a -> Maybe a
Just Bool
True
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
121
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Downlight Intl"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
122
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Downlight US"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
123
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Color US"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
124
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Color Intl"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
125
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX White to Warm US"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
126
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX White to Warm Intl"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
127
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX White US"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2700
                        , Word16
2700
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
128
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX White Intl"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2700
                        , Word16
2700
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
129
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Color US"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
130
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Color Intl"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
131
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX White To Warm US"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
132
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX White To Warm Intl"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
133
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX White US"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2700
                        , Word16
2700
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
134
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX White Intl"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
False
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
2700
                        , Word16
2700
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
135
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX GU10 Color US"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
136
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX GU10 Color Intl"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
False
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
137
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Candle Color US"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
True
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            , ProductInfo
                { $sel:pid:ProductInfo :: Word32
pid = Word32
138
                , $sel:name:ProductInfo :: Text
name = Text
"LIFX Candle Color Intl"
                , $sel:features:ProductInfo :: PartialFeatures
features = PartialFeatures
                    { $sel:hev:PartialFeatures :: Maybe Bool
hev = forall a. Maybe a
Nothing
                    , $sel:color:PartialFeatures :: Maybe Bool
color = forall a. a -> Maybe a
Just Bool
True
                    , $sel:chain:PartialFeatures :: Maybe Bool
chain = forall a. a -> Maybe a
Just Bool
False
                    , $sel:matrix:PartialFeatures :: Maybe Bool
matrix = forall a. a -> Maybe a
Just Bool
True
                    , $sel:relays:PartialFeatures :: Maybe Bool
relays = forall a. Maybe a
Nothing
                    , $sel:buttons:PartialFeatures :: Maybe Bool
buttons = forall a. Maybe a
Nothing
                    , $sel:infrared:PartialFeatures :: Maybe Bool
infrared = forall a. a -> Maybe a
Just Bool
False
                    , $sel:multizone:PartialFeatures :: Maybe Bool
multizone = forall a. a -> Maybe a
Just Bool
False
                    , $sel:temperatureRange:PartialFeatures :: Maybe (Word16, Word16)
temperatureRange = forall a. a -> Maybe a
Just
                        ( Word16
1500
                        , Word16
9000
                        )
                    , $sel:extendedMultizone:PartialFeatures :: Maybe Bool
extendedMultizone = forall a. Maybe a
Nothing
                    }
                , $sel:upgrades:ProductInfo :: [Upgrade]
upgrades = []
                }
            ]
        }
    ]