What
A friend system centered on meeting people organically inside a town.
Flows
- Request — when you're near another player in any town, send a friend request from a proximity UI.
- Accept — the other player sees the pending request in a friends panel.
- Roster — sidebar/panel listing friends with status (online/offline, current town if public).
- Jump to friend — click a friend to teleport to whichever public town they're currently in.
- Discover — see the list of your friend's public towns and visit them directly.
Why
Solves the empty-town problem: today, bringing a friend requires copy-pasting a share code. A roster makes hanging out one click and turns Town into a place you check to see who's around.
Rough scope
- `Friend` model (reciprocal), pending / accepted states
- Proximity-based request UI in the game
- Friends sidebar / roster
- "Jump to friend's town" flow — reuses existing invite/share-code plumbing
- Presence signal per friend (current town + last-seen)
Notes
- Blocking / muting becomes necessary the moment friend roster ships — likely a follow-up issue.
- Composes tightly with the Passport (shared identity primitive).
What
A friend system centered on meeting people organically inside a town.
Flows
Why
Solves the empty-town problem: today, bringing a friend requires copy-pasting a share code. A roster makes hanging out one click and turns Town into a place you check to see who's around.
Rough scope
Notes