docs: def validate_candidates(self, candidates):
          """Validate the candidate artifacts with the agents in the environment.
  
          In larger societies this method might be costly, as it calls each
          agents' :meth:`validate`.
  
          :returns:
              A list of candidates that are validated by all agents in the
              environment.
          """
          valid_candidates = set(candidates)
          for a in self.get_agents(addr=False):
              vc = set(a.validate(candidates))
              valid_candidates = valid_candidates.intersection(vc)
  
          return list(valid_candidates)