docs: def _abilities(self, fn=None):
      """Return the list of abilities filtered by `fn`."""
      out = {}
      for cmd in self._obs.observation.abilities:
        ability = _Ability(cmd, self._static_data.abilities)
        if not fn or fn(ability):
          out[ability.ability_id] = ability
      return list(out.values())