docs: public void transition(RaftMember.Type type) {
      switch (type) {
        case ACTIVE:
          if (!(role instanceof ActiveRole)) {
            transition(RaftServer.Role.FOLLOWER);
          }
          break;
        case PROMOTABLE:
          if (this.role.role() != RaftServer.Role.PROMOTABLE) {
            transition(RaftServer.Role.PROMOTABLE);
          }
          break;
        case PASSIVE:
          if (this.role.role() != RaftServer.Role.PASSIVE) {
            transition(RaftServer.Role.PASSIVE);
          }
          break;
        default:
          if (this.role.role() != RaftServer.Role.INACTIVE) {
            transition(RaftServer.Role.INACTIVE);
          }
          break;
      }
    }