Per-project membership row (phoenix_kit_project_members, chain V3).
A member is a CORE USER (user_uuid → phoenix_kit_users) with a project
role from the frozen PhoenixKitProjects.Authz.roles/0 enum. Members are
the hub's native people layer — staff people/teams/departments remain the
optional assignee enrichment, a separate concern.
invited_by_uuid is FK-less best-effort provenance (the activity log is
the audit trail). Role changes go through PhoenixKitProjects.Members,
which owns the last-owner guard — never update a row's role directly.