code: func (d *Document) Send(b *Bot, to Recipient, opt *SendOptions) (*Message, error) {
  	params := map[string]string{
  		"chat_id": to.Recipient(),
  		"caption": d.Caption,
  	}
  
  	if d.FileSize != 0 {
  		params["file_size"] = strconv.Itoa(d.FileSize)
  	}
  
  	embedSendOptions(params, opt)
  
  	msg, err := b.sendObject(&d.File, "document", params, thumbnailToFilemap(d.Thumbnail))
  	if err != nil {
  		return nil, err
  	}
  
  	msg.Document.File.stealRef(&d.File)
  	*d = *msg.Document
  
  	return msg, nil
  }
docs: // Send delivers media through bot b to recipient.