code: def check_save(sender, **kwargs):
      
      tag = kwargs['instance']
      obj = Tag.get_object(tag)
      previous_tags = Tag.get_tags(obj)
      
      err_uniq = check_item_type_uniqueness(tag, previous_tags)
      err_appl = check_field_applicability(tag)
      err_mult = check_field_multiplicity(tag, previous_tags)
      err_msg = generate_error_message(tag, err_uniq, err_appl, err_mult)
      if err_uniq or err_appl or err_mult:
          raise TypeError(err_msg)
docs: Checks item type uniqueness, field applicability and multiplicity.