Authentication
Cookie sessions
POST /auth/login con email/password → cookie ms_session=ses_*. TTL 30 días (sliding en cada petición).
OAuth
POST /auth/oauth/:provider/callback — GitHub / Google / Apple. Configuración vía env vars (ver dev-setup.md).
Magic link
POST /auth/magic-link/request con un email → el enlace llega por email (o se imprime en el API stdout en console-mailer mode).
2FA flow
Tras un login con 2FA activada, el servidor devuelve 200 con requires_2fa: true y un twofa_pending_login token. Luego POST /auth/2fa/verify con ese token + el código de 6 dígitos → cookie session.