The session is the object. Not the user.
A user model with friends, groups and history — the shape every competitor has. A hybrid where sessions are optional inside a profile.
Every real use I observed was bounded: a ride, a hike, a festival day. Modelling the bounded thing directly removed sign-up, contacts, permissions dialogues and the privacy question in one move. A session has a start, a code, participants and an end. That's the whole data model.
No retention loop that doesn't depend on someone starting a new session. No monetisable profile. Recurring crews re-enter a code every Sunday — a friction I chose over an account and still hear about.