Resolves the active (live) email template for a given template key. The lambda and admin sendTest paths both need this.
Injected by the composition root, as a type-only dependency here.
Importing the renderer's value would pull React Email into every graph
that imports this barrel; only a root that explicitly imports
@cfxlabsinc/notification-services/email-render pays that cost.
Send an email notification via the active template.
Orchestrates:
Throws on SendGrid errors; caller must handle retries/DLQ.
Notification payload
Template key for active template lookup
Reusable email send core: recipient deduplication → active template resolution → rendering → SendGrid transport. ONE implementation, reused by both the Lambda handler (event-driven sends) and admin sendTest (manual test sends).
Orchestrates the full send pipeline so callers need only provide:
This is the notification analogue of how
wire-email-handlerconsumes@cfxlabsinc/wire-email-services.