Executing
ResultSet<IEvent> rs = query.Execute();
ResultSet<IEvent> rs = await query.ExecuteAsync();
IEvent? one = query.FirstOrDefault(); // also FirstOrDefaultAsync()
IEvent first = query.First(); // also FirstAsync()
IEvent only = query.Single(); // throws unless exactly one matches
if (query.TryGet(out var ev)) { … } // false for none, throws for more than oneTryGet is the safe way to read something you expect at most once.