public Pathing doSearch() {
    if (verbose) I.say(
      "Searching for path between "+init+" and "+destination+
      ", search limit: "+searchLimit(init, destination)
    ) ;
    super.doSearch() ;
    if (verbose) {
      if (success()) I.say("\n  Success!") ;
      else {
        I.say("\n  Failed.") ;
        if (client != null) {

          if (! Visit.arrayIncludes(destination.canBoard(null), aimPoint)) {
            I.say("NO EXIT!") ;
          }
          if (! Visit.arrayIncludes(aimPoint.canBoard(null), destination)) {
            I.say("NO ENTRY!") ;
          }
          
          I.say("Origin      open? "+canEnter(init       )) ;
          I.say("Destination open? "+canEnter(destination)) ;
        }
      }
      I.say("  Closest approach: "+closest+", aimed for "+aimPoint) ;
      I.say("  Total searched: "+flagged.size()+"/"+maxSearched) ;
      I.say("") ;
    }
    return this ;
  }