It isn’t DrWatson that is complaining. It is JLD2. Or I assume at least, since you haven’t given any exact copy of the messages that clog your logs.
To use string-based dictionaries use @strdict instead of @dict. Or just initialize/create your dictionary with string keys instead of symbols.
To silence the warning you need to open an issue at JLD2.jl requesting a keyword to silence this warning. YOu can propagate this keyword then via the keyword arguments that DrWatson propagates like save_kwargs.
Can you provide some context or more information? DrWatson doesn’t store anything, it is not a IO package. It provides functions that themselves wrap other IO packages. When you call e.g., tagsave by default the JLD2.jl package will be used. So I can’t really say to exactly what thing you are referring when you are saying “it doesn’t store named tuples”. I can easily do tagsave(filename, Dict("data" => NamedTuple())) so the named tuple will be stored correctly.
Do you want to do instead tagsave(filename, (data = "example",))? If so, I unfortunately do not know of any IO backend that does this. You can open an feature request to an existing package, although I doubt it would be implemented. Dictionaries are better suited for this.
What do you mean by “simulation results”?
Generally speaking, I think it is the opposite from what you said. A dictionary is better suited data structure for a named list of many elements. Tuples do not scale well with performance for many elements and to my experience simulation results would have multiple outputs.