Three variations.
1. Specified - not specified
1938 ... For the PUBACK Packet this has the value 3 if a Return
1939 Code is specified and 2 if it a Return Code is not specified.
2. Not specified - specified
1987 ... For the PUBREC Packet this has the value 2
1988 if no Return Code is specified, and 3 if it a Return Code is specified.
3. Specified - otherwise
2045 ... For the PUBREL Packet this has the value 3 if the variable
2046 header contains a PUBREL Return Code, and 2 otherwise.