code: def select_build_worker(self, pos: Union[Unit, Point2, Point3], force: bool=False) -> Optional[Unit]:
          
  
          workers = self.workers.closer_than(20, pos) or self.workers
          for worker in workers.prefer_close_to(pos).prefer_idle:
              if not worker.orders or len(worker.orders) == 1 and worker.orders[0].ability.id in {AbilityId.MOVE,
                                                                                                  AbilityId.HARVEST_GATHER,
                                                                                                  AbilityId.HARVEST_RETURN}:
                  return worker
  
          return workers.random if force else None
docs: Select a worker to build a bulding with.