Decides which external delivery channels a user's notification should go out on (the in-app inbox is handled separately, by the creation choke point).
External routing is FAIL-CLOSED. Unlike the fail-open in-app inbox, an
action that doesn't resolve to a known notification type, or a type the user
hasn't explicitly opted a channel into, is NOT delivered externally. A channel
is a target only when, for that specific type, the user has it enabled, has
opted the type in (types[type_key] == true), and the channel reports
configured?/2.
Summary
Functions
Whether ANY external channel wants this action — the cheap check the creation choke point uses to decide whether to enqueue delivery even when the in-app inbox is muted for the type (Model B: independent destinations).
Delivery targets for an activity action string. Resolves the action to its
notification type, then delegates to targets_for_type/2. Unknown/unmapped
action ⇒ [] (fail-closed — standalone/untyped notifications never route out).
Delivery targets for an explicit type key. nil/non-binary ⇒ [].
Types
Functions
Whether ANY external channel wants this action — the cheap check the creation choke point uses to decide whether to enqueue delivery even when the in-app inbox is muted for the type (Model B: independent destinations).
Delivery targets for an activity action string. Resolves the action to its
notification type, then delegates to targets_for_type/2. Unknown/unmapped
action ⇒ [] (fail-closed — standalone/untyped notifications never route out).
Delivery targets for an explicit type key. nil/non-binary ⇒ [].