Contact
data class Contact(val chatId: Long, val messageId: Long, val phoneNumber: String, val firstName: String, val lastName: String? = null, val userId: Long? = null) : Input
A contact, which is how "share your phone number" arrives.
userId is set when the contact is a Telegram user and null when it is an entry from the sender's address book — so it is not a way to learn who sent the message. That is the ConversationKey the input was submitted under.