# Opt-in Dating and Voice Profiles

This feature is separate from hiring. It is opt-in and is not needed to use GiveGigs. Its APIs are `/api/ai/date`, `/api/date/profile`, `/api/date/connections`, and `/api/date/media` when listed by `/api/ai/tools`.

## Rules
- Require sign-in and follow each route's existing API-key scope or session/CSRF check. Never infer consent from a worker or client profile.
- Only use dating discovery for users who explicitly opted in. The API applies profile visibility, block, age, and preference rules; do not try to bypass them or identify hidden profiles.
- `GET /api/ai/date` and the route's current query schema discover only eligible profiles. Read the focused route/skill before constructing filters.
- `GET|PUT /api/date/profile` reads or saves the caller's own opt-in profile. The PUT validates adulthood and profile/preference fields. Do not create or edit another person's profile.
- `GET|POST /api/date/connections` reads connection state or performs the route's explicit like/unlike/chat/block/unblock action. Each POST is a consequential social action and needs a separate user confirmation in Valley CMDR.
- `POST /api/date/media` accepts an image or a validated short WAV voice introduction through multipart form data. Use the Commander upload panel to select a file and submit it directly to this route; the file is not sent to the AI provider.

Private preferences, photos, blocks, matches, and message links must be handled only as returned by the API. No scraping, bulk discovery, or contacting a person outside their chosen connection flow. Moderator dating routes are excluded.
