anchor.diff:          {style, StyleID :: atom()} |
           {jid, string()} |
           {games, [echessd_game:id()]}.
  +
  +-type encrypted_password() ::
  +        legacy_sha1_encrypted_password() |
  +        {Algo :: password_encryption_algo(),
  +         Salt :: binary(),
  +         EncryptedPassword :: binary()}.
  +
  +-type password_encryption_algo() :: sha.
  +
  +-type legacy_sha1_encrypted_password() :: binary().
   
   -type info_item_key() ::
           password | created | login | fullname | timezone |
  
positive.code:               [Name, Reason]),
              Error
      end.
  
  %% @doc Fetch the user properties from the database.
  -spec getprops(Name :: name()) ->
  
negative.code: -type info_item() ::
          {login, name()} |
          {password, ((ClearPassword :: nonempty_string()) |
                      (PasswordHash :: encrypted_password()))} |
          {created, erlang:timestamp()} |
          {fullname, string()} |
          {timezone, echessd_lib:administrative_offset()} |
  