EmailApi.sendOnce(request, effectKey) with EmailApiEffectOutcome and EmailApiEffectResult, lookups by idempotency key and RFC Message-ID, and rfcMessageId on EmailApiMessage, so other qbits have one public surface. EmailEffects and its types stay as internal, deprecated delegates; the durable-jobs guide, README and DESIGN 2.5 point at EmailApi. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>