docs: func (e *example) traverseStruct(s *Shape, required, payload bool) string {
  	var buf bytes.Buffer
  
  	if s.resolvePkg != "" {
  		e.imports[s.resolvePkg] = true
  		buf.WriteString("&" + s.GoTypeElem() + "{")
  	} else {
  		buf.WriteString("&" + s.API.PackageName() + "." + s.GoTypeElem() + "{")
  	}
  
  	if required {
  		buf.WriteString(" // Required")
  	}
  	buf.WriteString("\n")
  
  	req := make([]string, len(s.Required))
  	copy(req, s.Required)
  	sort.Strings(req)
  
  	if e.visited[s.ShapeName] < 2 {
  		for _, n := range req {
  			m := s.MemberRefs[n].Shape
  			p := n == s.Payload && (s.MemberRefs[n].Streaming || m.Streaming)
  			buf.WriteString(n + ": " + e.traverseAny(m, true, p) + ",")
  			if m.Type != "list" && m.Type != "structure" && m.Type != "map" {
  				buf.WriteString(" // Required")
  			}
  			buf.WriteString("\n")
  		}
  
  		for _, n := range s.MemberNames() {
  			if s.IsRequired(n) {
  				continue
  			}
  			m := s.MemberRefs[n].Shape
  			p := n == s.Payload && (s.MemberRefs[n].Streaming || m.Streaming)
  			buf.WriteString(n + ": " + e.traverseAny(m, false, p) + ",\n")
  		}
  	} else {
  		buf.WriteString("// Recursive values...\n")
  	}
  
  	buf.WriteString("}")
  	return buf.String()
  }