anchor.diff:      {ok, [{field11, <<"b">>}], []} = parse_config([{field11, b}], Spec),
   
       {error, {invalid_key, field12}} = parse_config([{field12, a}], Spec),
  -    {error, {invalid_atom, 1}} = parse_config([{field12, [{field12_a, 1}]}], Spec),
  +    {error, {unknown_atom, 1}} = parse_config([{field12, [{field12_a, 1}]}], Spec),
       % Field 12c is ignored
       {ok, [{field12, [{field12_a, ok},{field12_b, 1}]}],[]} = Sub1 = 
           parse_config(
  
positive.code:     ValidOpts = nklib_util:extract(Opts, ValidDomainKeys),
      DefaultDomainOpts = [{K, get(Mod, K)} || K <- ValidDomainKeys],
      Opts2 = nklib_util:defaults(ValidOpts, DefaultDomainOpts),
      case parse_config(Opts2, Spec) of
          {ok, Opts3, _} ->
              lists:foreach(fun({K,V}) -> put_domain(Mod, Domain, K, V) end, Opts3),
              ok;
  
negative.code:     {ok, [], []} = parse_config([], Spec),
      {ok, [], []} = parse_config(#{}, Spec),
  
      {error, {unknown_atom, "12345"}} = parse_config([{field01, "12345"}], Spec),
      
      {ok,[{field01, fieldXX}, {field02, false}],[{"unknown", a}]} = 
          parse_config(
  