Create project_goals join table with composite PK (project_id, goal_id), backfill from existing projects.goal_id, and update the project service to read/write through the join table. Shared types now include goalIds and goals arrays on Project. Legacy goalId column is kept in sync. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>