docs: def is_right_model(instance, attribute, value):
      """Must include at least the ``source`` and ``license`` keys, but
      not a ``rightsOf`` key (``source`` indicates that the Right is
      derived from and allowed by a source Right; it cannot contain the
      full rights to a Creation).
      """
  
      for key in ['source', 'license']:
          key_value = value.get(key)
          if not isinstance(key_value, str):
              instance_name = instance.__class__.__name__
              raise ModelDataError(("'{key}' must be given as a string in "
                                    "the '{attr}' parameter of a '{cls}'. Given "
                                    "'{value}'").format(key=key,
                                                        attr=attribute.name,
                                                        cls=instance_name,
                                                        value=key_value))