code: func (s *Shape) NestedShape() *Shape {
  	var nestedShape *Shape
  	switch s.Type {
  	case "structure":
  		nestedShape = s
  	case "map":
  		nestedShape = s.ValueRef.Shape
  	case "list":
  		nestedShape = s.MemberRef.Shape
  	}
  
  	return nestedShape
  }
docs: // NestedShape returns the shape pointer value for the shape which is nested
  // under the current shape. If the shape is not nested nil will be returned.
  //
  // strucutures, the current shape is returned
  // map: the value shape of the map is returned
  // list: the element shape of the list is returned