PinOrder controls the chat's pinned state and position.
nil: no change to pin state.
0: unpin the chat.
0 (chat is unpinned): pin the chat, appending it to
the end of the pinned list. The specific value is
ignored; the server assigns the next available position.
0 (chat is already pinned): move the chat to the
requested position, shifting neighbors as needed. The
value is clamped to [1, pinned_count].