private static Delivery bestOrigin(
    Actor actor, Service goods[], Owner client,
    Batch <Owner> origins, int sizeLimit, int tradeType
  ) {
    Delivery picked = null ;
    float bestRating = 0 ;
    for (Owner origin : origins) {
      Item order[] = Deliveries.configDelivery(
        goods, origin, client, actor,
        sizeLimit, actor.world(), tradeType
      ) ;
      if (verbose) I.sayAbout(actor, "Order length: "+order.length) ;
      if (order.length == 0) continue ;
      final Delivery d = new Delivery(order, origin, client) ;
      final float rating = d.priorityFor(actor) ;
      if (verbose) I.sayAbout(actor, "Rating: "+rating) ;
      if (rating > bestRating) { bestRating = rating ; picked = d ; }
    }
    if (picked != null) picked.shouldPay = picked.destination ;
    return picked ;
  }