Each published topic may also have properties associated to it. Properties are represented in
the protocol as JSON and thus property values may be any JSON type. Property keys must be
strings. The following properties have a defined meaning in this spec. Servers shall support
arbitrary properties being set outside of this set. Clients shall ignore properties they do not
recognize. Properties are initially set on publish and may be changed (by any client) using
TextMessage::SetProperties
Each subscription may have options set. The following options have a defined meaning in this
spec. Servers shall preserve arbitrary options, as servers and clients may support arbitrary
options outside of this set. Options are set using Subscribe Message (TextMessage::Subscribe)
and cannot be changed.