anchor.diff:                         end,
       JSONSpec = {struct, Schema ++ Keys},
       {mochijson2:encode(JSONSpec), ReqData, Context1};
  -produce_body(ReqData, Context=#ctx{}) ->
  +produce_body(ReqData, Context=#ctx{module=Module}) ->
       {ok, {JiakObject0, Context1}} = retrieve_object(ReqData, Context),
  -    JiakObject = apply_read_mask(JiakObject0),
  +    JiakObject = apply_read_mask(Module, JiakObject0),
       {mochijson2:encode(JiakObject),
        wrq:set_resp_header("X-JIAK-VClock",
                            binary_to_list(jiak_object:vclock(JiakObject)),
  
positive.code:               key=proplists:get_value(key_type, Props),
                jiak_client=JiakClient}}.
  
  %% @spec allowed_methods(webmachine:wrq(), context()) ->
  %%          {[http_method()], webmachine:wrq(), context()}
  %% @type http_method() = 'HEAD'|'GET'|'POST'|'PUT'|'DELETE'
  
negative.code: 	 last_modified/2,
  	 generate_etag/2,
  	 expires/2,
           apply_read_mask/2,
           pretty_print/2]).
  
  -define(JIAK_REQUIRED_PROPS, [allowed_fields, required_fields, read_mask,
                                write_mask]).
  
  %% @type context() = term()
  %% @type jiak_module() = atom()|{jiak_default, list()}
  -record(ctx, {bucket,       %% atom() - Bucket name (from uri)
                key,          %% binary()|container|schema - Key (or sentinal
                              %%   meaning "no key provided")
                module,       %% atom()
                jiak_context, %% jiak_context() - context for the request
                jiak_name,    %% string() - prefix for jiak uris
                jiak_client,  %% jiak_client() - the store client
  