Scope: model one user owning many projects. USER#{id}, PROJECT#{id} (rename/site alias), and membership records USER#{id} / MEMBER#PROJECT#{id} + reverse PROJECT#{id} / MEMBER#USER#{id} with a role. Sites get an ownerId.
Done when: given a user we can list their projects, and given a project we can list its members — both via single-partition queries.