code: def field_items(self, path=str(), **options):
          
          items = list()
          # Field
          items.append((path if path else 'field', self))
          # Data Object
          data_path = '{0}.{1}'.format(path, 'data') if path else 'data'
          # Container
          if is_container(self._data):
              for field_item in self._data.field_items(data_path, **options):
                  items.append(field_item)
          # Pointer
          elif is_pointer(self._data) and get_nested(options):
              for field_item in self._data.field_items(data_path, **options):
                  items.append(field_item)
          # Field
          elif is_field(self._data):
              items.append((data_path, self._data))
          return items
docs: Returns a **flatten** list of ``('field path', field item)`` tuples
          for the `Pointer` field itself and for each :class:`Field` *nested* in the
          :attr:`data` object referenced by the `Pointer` field.
  
          :param str path: path of the `Pointer` field.
          :keyword bool nested: if ``True`` all :class:`Pointer` fields in the
              :attr:`data` object referenced by the `Pointer` field lists their
              referenced :attr:`~Pointer.data` object field items as well
              (chained method call).