public static IAsyncEnumerable <EventMessage <StateChangePayload <TState> > > GetStateChangesAsync <TState>(
     this IHomeAssistantWebSocketsClient client,
     Func <EventMessage <StateChangePayload <TState> >, bool> predicate = null,
     CancellationToken cancellationToken = default
     )
     where TState : EntityState
 => client.Subscribe(EventTypes.Instance.StateChanged(), predicate, cancellationToken);
 // TODO: Broken?
 public static IAsyncEnumerable <EventMessage <TimeChangedPayload> > GetTimeChangesAsync(
     this IHomeAssistantWebSocketsClient client,
     Func <EventMessage <TimeChangedPayload>, bool> predicate = null,
     CancellationToken cancellationToken = default
     )
 => client.Subscribe(EventTypes.Instance.TimeChanged(), predicate, cancellationToken);