anchor.diff:                      end
                   end,
               chk => fun check_string/1,
  -            class => user_options
  -           },
  -
  -      {password, def} =>
  +            class => user_option
  +           },
  +
  +      password =>
             #{default => undefined,
               chk => fun check_string/1,
  -            class => user_options
  -           },
  -
  -      {quiet_mode, def} =>
  +            class => user_option
  +           },
  +
  +      quiet_mode =>
             #{default => false,
               chk => fun erlang:is_boolean/1,
  -            class => user_options
  +            class => user_option
              },
   
   %%%%% Undocumented
  -      {keyboard_interact_fun, def} =>
  +      keyboard_interact_fun =>
             #{default => undefined,
               chk => fun check_function3/1,
  -            class => user_options
  +            class => undoc_user_option
              }
        };
   
   default(common) ->
       #{
  -       {user_dir, def} =>
  +       user_dir =>
              #{default => false, % FIXME: TBD ~/.ssh at time of call when user is known
                chk => fun(V) -> check_string(V) andalso check_dir(V) end,
  -             class => user_options
  -            },
  -
  -      {pref_public_key_algs, def} =>
  +             class => user_option
  +            },
  +
  +      pref_public_key_algs =>
             #{default => ssh_transport:default_algorithms(public_key),
               chk => fun check_pref_public_key_algs/1,
  -            class => user_options
  -           },
  -
  -       {preferred_algorithms, def} =>
  +            class => user_option
  +           },
  +
  +       preferred_algorithms =>
              #{default => ssh:default_algorithms(),
                chk => fun check_preferred_algorithms/1,
  -             class => user_options
  +             class => user_option
               },
   
          %% NOTE: This option is supposed to be used only in this very module (?MODULE). There is
          %% a final stage in handle_options that "merges" the preferred_algorithms option and this one.
          %% The preferred_algorithms is the one to use in the rest of the ssh application!
  -       {modify_algorithms, def} =>
  +       modify_algorithms =>
              #{default => undefined, % signals error if unsupported algo in preferred_algorithms :(
                chk => fun check_modify_algorithms/1,
  -             class => user_options
  -            },
  -
  -       {id_string, def} => 
  +             class => user_option
  +            },
  +
  +       id_string => 
              #{default => undefined, % FIXME: see ssh_transport:ssh_vsn/0
                chk => fun(random) -> 
                               {true, {random,2,5}}; % 2 - 5 random characters
  
positive.code:                       (_) ->
                             false
                     end,
              class => user_options
             },
  
        {auth_methods, def} =>
            #{default => ?SUPPORTED_AUTH_METHODS,
              chk => fun(As) ->
                             try
  
negative.code:                                                  false
                                           end, L)
                     end,
              class => user_option
             },
  
        shell =>
            #{default => ?DEFAULT_SHELL,
              chk => fun({M,F,A}) -> is_atom(M) andalso is_atom(F) andalso is_list(A);
                        (V) -> check_function1(V) orelse check_function2(V)
                     end,
              class => user_option
             },
  
        exec =>
            #{default => undefined,
              chk => fun({direct, V}) ->  check_function1(V) orelse check_function2(V) orelse check_function3(V);
                        %% Compatibility (undocumented):
                        ({M,F,A}) -> is_atom(M) andalso is_atom(F) andalso is_list(A);
                        (V) -> check_function1(V) orelse check_function2(V) orelse check_function3(V)
                     end,
              class => user_option
             },
  
        ssh_cli =>
            #{default => undefined,
              chk => fun({Cb, As}) -> is_atom(Cb) andalso is_list(As);
                        (V) -> V == no_cli
                     end,
              class => user_option
             },
  
        system_dir =>
            #{default => "/etc/ssh",
              chk => fun(V) -> check_string(V) andalso check_dir(V) end,
              class => user_option
             },
  
        auth_method_kb_interactive_data =>
            #{default => undefined, % Default value can be constructed when User is known
              chk => fun({S1,S2,S3,B}) ->
                             check_string(S1) andalso
  