docs: public void setLastVotedFor(MemberId candidate) {
      // If we've already voted for another candidate in this term then the last voted for candidate cannot be overridden.
      checkState(!(lastVotedFor != null && candidate != null), "Already voted for another candidate");
      DefaultRaftMember member = cluster.getMember(candidate);
      checkState(member != null, "Unknown candidate: %d", candidate);
      this.lastVotedFor = candidate;
      meta.storeVote(this.lastVotedFor);
  
      if (candidate != null) {
        log.debug("Voted for {}", member.memberId());
      } else {
        log.trace("Reset last voted for");
      }
    }