code: def features(self):
          
          if self._features is None:
              metadata = self.metadata()
              if "features" in metadata:
                  self._features = metadata["features"]
              else:
                  self._features = []
          return self._features
docs: lazy fetch and cache features