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:     #{
          return => map|list,         % Default is list
          path => binary(),           % Returned in errors
          defaults => map() | list()
      }.
  
  
  
negative.code:     throw({syntax_error, nklib_util:to_binary(Key)}).
  
  
  
  %% @private
  check_mandatory([], _) ->
      ok;
  
  check_mandatory([Key|Rest], All) ->
      case lists:keymember(Key, 1, All) of
          true -> check_mandatory(Rest, All);
          false -> {missing, Key}
      end.
  
  
  %% @private
  -spec do_parse_config(syntax_opt(), term()) ->
      {ok, term()} | error | unknown.
  