anchor.diff:  use_default_options(Hex_String) when is_list(Hex_String) ->
       use_default_options(convert:hex_string_to_padded_binary(Hex_String));
   use_default_options(Swarm_id) when is_binary(Swarm_id) ->
  -    {options,
  -     orddict:from_list( [{swarm_id, Swarm_id},
  -                         {chunk_addressing_method, ?PPSPP_DEFAULT_CHUNK_METHOD},
  -                         {chunk_size, ?PPSPP_DEFAULT_CHUNK_SIZE},
  -                         {content_integrity_check_method, ?PPSPP_DEFAULT_INTEGRITY_METHOD},
  -                         {merkle_hash_tree_function, ?PPSPP_DEFAULT_MERKLE_HASH_FUN},
  -                         {minimum_version, ?PPSPP_RFC_VERSION},
  -                         {supported_version, ?PPSPP_RFC_VERSION}])}.
  +    #{swarm_id                       => Swarm_id,
  +      chunk_addressing_method        => ?PPSPP_DEFAULT_CHUNK_METHOD,
  +      chunk_size                     => ?PPSPP_DEFAULT_CHUNK_SIZE,
  +      content_integrity_check_method => ?PPSPP_DEFAULT_INTEGRITY_METHOD,
  +      merkle_hash_tree_function      => ?PPSPP_DEFAULT_MERKLE_HASH_FUN,
  +      minimum_version                => ?PPSPP_RFC_VERSION,
  +      supported_version              => ?PPSPP_RFC_VERSION}.
   
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %% @doc Provides standard options from the PPSPP RFC as erlang terms.
  
positive.code:          use_default_options/0,
           use_default_options/1]).
  
  -export_type([swarm_id/0,
                merkle_tree_hash_function/0,
                content_integrity_protection_method/0,
                options/0,
                option/0]).
  
  %% @type swarm_id() = binary(). Note that could be restricted further.
  -opaque swarm_id() :: binary().
  
  %% @type options() = {options, options_dict()}.
  -opaque options() :: {options, options_dict()}.
  
  %% @type options_dict() = list({ option(), any()}).
  -type options_dict() :: list({ option(), any()}).
  
  %% @type option() = supported_version
  %% | minimum_version
  
negative.code:                         3 -> sha384;
                          4 -> sha512
                      end,
      unpack(Maybe_Options, Options#{merkle_hash_function => Hash_Function});
  unpack( <<?PPSPP_LIVE_SIGNATURE_ALGORITHM,
            Maybe_Algorithm:?BYTE,
            Maybe_Options/binary >>, Options) ->
      Algorithm = case Maybe_Algorithm of
                      %% TODO we can parse this yet but need normative algorithm names
                      0 -> live_signature_algorithm_not_yet_implemented
                  end,
      unpack(Maybe_Options, Options#{merkle_hash_tree_algorithm => Algorithm});
  %% TODO this should probably move to ppspp_chunk.erl eventually
  unpack( <<?PPSPP_CHUNK_ADDRESSING_METHOD,
            Maybe_Method:?BYTE,
            Maybe_Options/binary >>, Options) ->
      Method = case Maybe_Method of
                   0 -> chunk_32bit_bins;
                   1 -> chunk_64bit_bytes;
  