Andei lendo sobre esse padrão e descobri que existe o "Caretaker" que vai guardar todos os Memento, responsável pela custódia, checkpoint, permitindo que eles sejam restaurados. Minha dúvida é: o Caretaker seria o mecanismo que salva e restaura a classe Estado para Contrato conforme abaixo?
historico.adiciona_estado(contrato.salva_estado()) contrato.restaura_estado(historico.obtem_estado(0)
Se sim, aí fica mais claro o objetivo da classe Estado - armazenar o memento.