anchor.diff:  convert_opts(PL) when is_list(PL) ->
       maps:from_list(PL).
   
  +validate_opts(Opts) when is_map(Opts) ->
  +    PLOpts = maps:to_list(Opts),
  +    case validate_opts_keys(PLOpts, maps:keys(?OPTS_SCHEMA)) of
  +        false -> false;
  +        true  -> validate_opts(PLOpts)
  +    end;
  +validate_opts([]) ->
  +    true;
  +validate_opts([{Key, Value} | T]) ->
  +    ValidationFun = maps:get(Key, ?OPTS_SCHEMA),
  +    case ValidationFun(Value) of
  +        true ->
  +            validate_opts(T);
  +        false ->
  +            vffov_utils:verbose(error, "Invalid option ~p value  ~s passed!", [Key, Value]),
  +            false
  +    end.
  +
  +validate_opts_keys([], _AllowedKeys) ->
  +    true;
  +validate_opts_keys([{Key, _V} | T], AllowedKeys) ->
  +    case lists:member(Key, AllowedKeys) of
  +        false ->
  +            vffov_utils:verbose(error, "Invalid option key ~s passed!", [Key]),
  +            false;
  +        true ->
  +            validate_opts_keys(T, AllowedKeys)
  +    end.
  +
   maybe_slice_downloads(Opts) ->
       case {maps:get(offset, Opts, -1), maps:get(count, Opts, -1)} of
           {-1, -1} ->
  
positive.code:     case filelib:is_regular(Path) of
          true  ->
              Opts1 = convert_opts(Opts),
              case maps:get(type, Opts1) of
                  file ->
                      case filelib:is_regular(maps:get(args, Opts1)) of
  
negative.code:               false
        end, supervisor:which_children(vffov_sup)).
  
  -spec show_playlist() -> any().
  show_playlist() ->
      parse(get_playlist_file()).
  
  -spec queue() -> queue:queue().
  queue() ->
      Filtered = lists:filtermap(
  