Here is my proposed draft for a data model for BetterGEDCOM (BG). This model is also not complete.

I am also using Adrian's terminaology. It is:
The term "Entity" refers to a class of objects, such as automobile is an entity type. A 2010 Kansas City Chiefs red corvette is an actual Entity or also known as an instance.

I would prefer a different term for relationship, but I'd much prefer we develop a commmon ground in terms. Plus, it is trhe standard term in programmer speak.

I don't fear many-to-many relationships in a data model. They can be useful, but any relational data storage will inevitably resolve them .

This is my proposed list (so far):
PERSON
EVENT
NAME
LOCATION
ROLE
TASK
GROUP - stub
CHARACTERISTIC - stub
OBJECTIVE - stub
RESEARCHER
SOURCE
REPOSITORY - stub (sort of). I'm not sure of the usefulness of this. To me it is a place. Maybe we add a field "REPOSITORY" which is true or false to PLACE entity.
OBJECT

Please feel free to mark up this or any of the children pages, and also make comments on it. I'm putting this here to start up the conversation of what is needed by the data model.