I ran across this advice from clojure applied on the first chapter modeling entries:
One specific case for which you should strongly consider maps is in public-facing APIs, whether they’re expected to be consumed by Java or by Clojure. In an API, it’s important to minimize the constraints on our callers. Requiring them to create instances of our record classes causes some of the details of those classes to be effectively public as well. In this case, maps with a well-known set of keys commit to less and are a simpler and better choice.
I’m choosing to ignore the next line:
Don’t fret about making the wrong choice between maps and records!
And want to fret a little. Namely, i’m not sure what details of the classes are reviled by a record being sent to a caller that wouldn’t be if it were a map. At this state in my learning a record seems like a set-key map factory. It gives the reader some idea that this data belongs to group of similar instances and is expected to conform to this set of fields. I dont see why the caller wouldn’t benfiet from this knowledge as well.