code: def _make_wrapped_field(self, name, field, is_fake=False, full_name=None):
          
          if not full_name:
              full_name = '%s.%s' % (self._full_name, name)
  
          if is_fake:
              # Populate with all fields that are supposed to be inside of it
              field = {key: value for key, value in self._all_fields.items()
                       if key.startswith(full_name)}
          if isinstance(field, dict):
              if name.endswith('_tree'):
                  name = name.replace('_tree', '')
                  full_name = '%s.%s' % (self._full_name, name)
              return JsonLayer(name, field, full_name=full_name, is_intermediate=is_fake)
          elif isinstance(field, list):
              # For whatever reason in list-type object it goes back to using the original parent name
              return [self._make_wrapped_field(name, field_part,
                                               full_name=self._full_name.split('.')[0])
                      for field_part in field]
  
          return LayerFieldsContainer(LayerField(name=name, value=field))
docs: Creates the field lazily.
  
          If it's a simple field, wraps it in a container that adds extra features.
          If it's a nested layer, creates a layer for it.
          If it's an intermediate layer, copies over the relevant fields and creates a new layer for
          it.