Yaml_read atom vs string

I want to process some data sourced from a yaml file using yaml_read/2.
As shown in the example below, prolog will render textual data as a string where I’d prefer an atom.
By analogy, json_read_dict/3 is giving the user a choice by way of an option value_string_as(+Type)
Is there such an option when dealing with yaml?

?- yaml_read('test.yaml', D).
D = yaml{2022:"This year", string_data:"This is a string", string_tag:"more text", tag:"some text"}.```

The original text in test.yaml is:

2022: This year
tag: some text
"string_tag": more text
string_data: "This is a string"

Seems not. Using mapsubterms/3 it is rather simple to convert:

to_atom(String, Atom) :- string(String), atom_string(Atom, String).

    yaml_read(In, SData),
    mapsubterms(to_atom, SData, Data).

yep, this looks promising.
Still, yaml_read/3 could/should provide a set of options much like its sibling json_read_dict/3!

I’m still unsure about this. Using strings avoids the ambiguities wrt booleans, null, etc. It is also more efficient when it comes to (many) long texts. Only, some of the string values are more like identifiers while others are more free text and we cannot tell which is which.

That’s probably the reason why json_read_dict/3 has an option value_string_as(+Type).
But here we are again in prolog’s never ending discussion of atom vs string.
Btw. I’ll live with the mapsubterms/3 for now.
Thanks for providing this solution!