docs: def Add(self, artifact=None, target=None, callback=None):
      """Add criteria for a check.
  
      Args:
        artifact: An artifact name.
        target: A tuple of artifact necessary to process the data.
        callback: Entities that should be called if the condition matches.
      """
      # Cases where a target field is undefined or empty need special handling.
      # Repeated field helper in target yields results, so expand this out into a
      # list. If the attribute doesn't exist, default to an empty list.
      # Then, in either case, replace the empty list with one containing a single
      # None value.
      if target is None:
        target = Target()
      os_name = target.Get("os") or [None]
      cpe = target.Get("cpe") or [None]
      label = target.Get("label") or [None]
      attributes = itertools.product(os_name, cpe, label)
      new_conditions = [Condition(artifact, *attr) for attr in attributes]
      self.conditions.update(new_conditions)
      self._Register(new_conditions, callback)