sig
  type chat_type = Private | Group | Supergroup | Channel
  val read_type : string -> TelegramApi.Chat.chat_type
  type chat = {
    id : int;
    chat_type : TelegramApi.Chat.chat_type;
    title : string option;
    username : string option;
    first_name : string option;
    last_name : string option;
  }
  val create :
    id:int ->
    chat_type:TelegramApi.Chat.chat_type ->
    ?title:string option ->
    ?username:string option ->
    ?first_name:string option ->
    ?last_name:string option -> unit -> TelegramApi.Chat.chat
  val read : Yojson.Safe.json -> TelegramApi.Chat.chat
end