Traits vs. object composition

Can anybody point me to docs or discussions about a traits approach to Anytype objects?

Say I have different objects that are events at the core, i.e. they have a place and time and duration, for example. Could I add a number of fields corresponding to the Event trait to an object while also having different traits for different objects? (i.e. a Photograph could have File traits or Authored traits, whereas a Meeting could have Participant traits).

Of course I could create each trait as a separate object and include, but I am not sure I want to maintain a separate object for a timestamp, a duration and a location each time I create them… Also traits could support specific operations, e.g. for a timespan trait we could have interval algebra queries.

How should we think of designing objects with overlapping sets of relations?

If I am not mistaken, the current “relations” in the anytype does exactly what you are asking for. The relations can be used by any number of objects.

Though the current relation model is kind of messy, it works well for most of the scenarios.