Thanks for all the links, it’s very helpful to have such context. I think this deserves a completely separate thread though. Long story-short is that it is not true that these objects are always identified by a primary key. This makes me think that in rom 6.0 we should introduce a dedicated class that represents such a concept because a result of users.by_pk(5).one is different than user.by_pk(5).select(:name, :email).one - the latter returns an instance of a different class (unlike AR).
This is a pretty fundamental difference and something that the docs should explain clearly.
I still think “structs” is a better name, it’s more flexible. “Entities” word comes with too much baggage and various assumptions, the PK/identity being the biggest one. This all can be configurable but it would be good to come up with defaults that we can all agree to.