Thanks for the comments.
I poked at it a little with something like this but got nowhere:
apply Notification "email-service" to Service {
...
vars.message_transport = {{
var res = {}
for (u in get_objects(User)) {
if (u.email) {
res = "email"
}
}
return res
}}
assign where service.vars.notify.email && service.vars.message_transport
Code plagarized in part from:
Execute a notificationCommand with multiple users - Icinga 2 - Icinga Community
The use case is when you have a user that has two notification methods for one service, perhaps warning goes to email and critical and unknown go to pager. The alternative is to have a group for each notification method.