>a 'message' knows that it contains specific packets like packet_public_key_encrypted_session_key and has all the logic to decrypt itself

I think you have the right idea, I was specifying the packetlist but really meant acting on the packetlist through the message.