anchor.diff:  -record(ctx, {api_version, %% integer() - Determine which version of the API to use.
                 prefix,      %% string() - prefix for resource urls
                 riak,        %% local | {node(), atom()} - params for riak client
  +              bucket_type, %% string() - bucket type (from uri)
                 bucket,      %% binary() - Bucket name (from uri)
                 key,         %% binary() - Key (from uri),
                 linkquery,
  
positive.code:     {ok, #ctx{api_version=proplists:get_value(api_version, Props),
                prefix=proplists:get_value(prefix, Props),
                riak=proplists:get_value(riak, Props),
                cache_secs=proplists:get_value(cache_secs, Props, 600)
               }}.
  
  %% @spec malformed_request(reqdata(), context()) ->
  
negative.code: %%      can be established.  This function also takes this
  %%      opportunity to extract the 'bucket' and 'key' path
  %%      bindings from the dispatch.
  service_available(RD, Ctx0=#ctx{riak=RiakProps}) ->
      Ctx = riak_kv_wm_utils:ensure_bucket_type(RD, Ctx0, #ctx.bucket_type),
      case riak_kv_wm_utils:get_riak_client(RiakProps, riak_kv_wm_utils:get_client_id(RD)) of
          {ok, C} ->
              CtxBucket =
  