public static FindMission attemptFor(Actor actor) {
    if (actor.mind.mission() != null) return null ;
    final Venue admin = Audit.nearestAdminFor(actor, false) ;
    if (admin == null) return null ;
    //
    //  Find a mission that seems pretty appealing at the moment-
    final Choice choice = new Choice(actor) ;
    for (Mission mission : actor.base().allMissions()) {
      if (! mission.open()) continue ;
      choice.add(mission) ;
    }
    final Mission picked = (Mission) choice.weightedPick() ;
    if (picked == null) return null ;
    //
    //  And try to apply for it-
    return new FindMission(actor, picked, admin) ;
  }