anchor.diff:  %% Adds given links to the document with given key if link does not exist.
   %% @end
   %%--------------------------------------------------------------------
  --spec create_link(opt_ctx(), ext_key(), link_spec()) ->
  +-spec create_link(opt_ctx(), ext_key() | document(), link_spec()) ->
       ok | create_error().
  +create_link(Ctx, #document{key = Key}, Link) ->
  +    create_link(Ctx, Key, Link);
   create_link(Ctx, Key, Link) ->
       exec_driver(Ctx, create_link, [Key, normalize_link_target(Ctx, Link)]).
   
  
positive.code: %% Adds given links to the document with given key. Allows for link duplication when model is configured this way.
  %% @end
  %%--------------------------------------------------------------------
  -spec add_links(opt_ctx(), ext_key(), link_spec() | [link_spec()]) ->
      ok | generic_error().
  add_links(Ctx, Key, {_LinkName, _LinkTarget} = LinkSpec) ->
      add_links(Ctx, Key, [LinkSpec]);
  add_links(Ctx, Key, Links) when is_list(Links) ->
  
negative.code: %% Gets specified link from the document given by key.
  %% @end
  %%--------------------------------------------------------------------
  -spec fetch_link(opt_ctx(), ext_key() | document(), link_name()) ->
      {ok, simple_link_target()} | link_error().
  fetch_link(Ctx, #document{key = Key}, LinkName) ->
      fetch_link(Ctx, Key, LinkName);
  fetch_link(Ctx, Key, LinkName) ->
      {RawLinkName, RequestedScope, VHash} = links_utils:unpack_link_scope(undefined, LinkName),
      case fetch_full_link(Ctx, Key, RawLinkName) of
  