anchor.diff:              parse_config([], OK2, NoOK, Syntax, maps:remove(defaults, Opts));
           {ok, _, DefNoOK} ->
               lager:warning("Error parsing in defaults: ~p", [Defaults]),
  -            {error, {no_pk, DefNoOK}};
  +            {error, {no_ok, DefNoOK}};
           {error, Error} ->
               lager:warning("Error parsing in defaults: ~p", [Defaults]),
               {error, Error}
  
positive.code:     throw({syntax_error, nklib_util:to_binary(Key)}).
  
  
  %% @private
  -spec do_parse_config(syntax_opt(), term()) ->
      {ok, term()} | error | unknown.
  
negative.code: parse_config([], OK, NoOK, _Syntax, Opts) ->
      OK2 = lists:reverse(OK),
      NoOK2 = lists:reverse(NoOK),
      Mandatory = maps:get(mandatory, Opts, []),
      case check_mandatory(Mandatory, OK) of
          ok ->
              case Opts of
                  #{return:=map} ->
                      {ok, maps:from_list(OK2), maps:from_list(NoOK)};
                  _ ->
                      {ok, OK2, NoOK2}
              end;
          {missing, Key} ->
              {error, {missing_mandatory_field, Key}}
      end;
  
  parse_config([{Key, Val}|Rest], OK, NoOK, Syntax, Opts) ->
  