code: public RandomICAutomatonGenerator<SP, TP> withTransitionProperties(Collection<? extends TP> possibleTps) {
          if (possibleTps.isEmpty()) {
              return withTransitionProperties(r -> null);
          }
          List<TP> tpList = new ArrayList<>(possibleTps);
          return withTransitionProperties((r) -> RandomUtil.choose(tpList, r));
      }
docs: Sets the possible transition properties, and returns {@code this}. The collection is internally converted into a
  list, from which transition properties are selected using {@link RandomUtil#choose(List, Random)}. If the
  collection is empty, {@code null} will always be chosen as the transition property.
  <p>
  Note that if the collection contains elements several times, the probability of these elements being selected is
  proportionally higher.
  
  @param possibleTps
  the collection of possible transition properties
  
  @return {@code this}