docs: private static List<UberData> extractAffordances(Links links) {
  
  		return links.stream() //
  				.flatMap(it -> it.getAffordances().stream()) //
  				.map(it -> it.getAffordanceModel(MediaTypes.UBER_JSON)) //
  				.map(UberAffordanceModel.class::cast) //
  				.map(it -> {
  
  					if (it.hasHttpMethod(HttpMethod.GET)) {
  
  						String suffix = it.getQueryProperties().stream() //
  								.map(UberData::getName) //
  								.collect(Collectors.joining(","));
  
  						if (!it.getQueryMethodParameters().isEmpty()) {
  							suffix = "{?" + suffix + "}";
  						}
  
  						return new UberData() //
  								.withName(it.getName()) //
  								.withRel(Collections.singletonList(LinkRelation.of(it.getName())))
  								.withUrl(it.getLink().expand().getHref() + suffix) //
  								.withAction(it.getAction());
  
  					} else {
  
  						return new UberData() //
  								.withName(it.getName()) //
  								.withRel(Collections.singletonList(LinkRelation.of(it.getName())))
  								.withUrl(it.getLink().expand().getHref()).withModel(it.getInputProperties().stream() //
  										.map(UberData::getName).map(property -> property + "={" + property + "}") //
  										.collect(Collectors.joining("&")))
  								.withAction(it.getAction());
  					}
  				}).collect(Collectors.toList());
  	}