Very thoughtful response, thank you.
In the past, I have occasionally followed the #2. solution you described, and as you say, it becomes a whole lot more workable when there is a ‘copy entity’ function (+ ideally a ‘lock entity for edits’ to ensure the v1.0 is not accidentally used).
But yes, I can well imagine that there are many situations where being able to link to specific historical versions creates a lot of what-if questions. That’s probably why I’ve never encountered a solution that I truly love. Maybe I should not wish for this feature after all(!)
As a compromise, I have tried to implement a flag that would indicate if an entity has been changed since the last time it was ‘approved’ so that anyone viewing the entity can make a value judgement on whether or not any existing related entities are still valid, or if they also need updating. It’s sort of related to what some software tools implement as ‘Mark as suspect’.
However, the hassle of implementing this for every type where this kind of flagging would be useful has somewhat put me off.
(this is one of the reasons why I had previously suggested the possibility of Fields applicable to all types which I know generated a fair bit of discussion!)
As you have said (here and elsewhere) the fibery team seem to have a very good idea for what adds value and how best to implement, so I have also decided to hold off making major feature requests for the time being. Instead, I just look forward to seeing what they bring out and working out the ways it can be useful to me.
But I still love reading these forums to hear what challenges other people have and how they solve them