docs: def ReadUserNotifications(self, username, state=None, timerange=None):
      """Reads notifications scheduled for a user within a given timerange."""
      from_time, to_time = self._ParseTimeRange(timerange)
  
      result = []
      for n in self.notifications_by_username.get(username, []):
        if from_time <= n.timestamp <= to_time and (state is None or
                                                    n.state == state):
          result.append(n.Copy())
  
      return sorted(result, key=lambda r: r.timestamp, reverse=True)