code: def to_dict(self, drop_null=True, camel=False):
          
          #return _to_dict(self, drop_null, camel)
          def to_dict(obj, drop_null, camel):
              """Recursively constructs the dict."""
              if isinstance(obj, (Body, BodyChild)):
                  obj = obj.__dict__
              if isinstance(obj, dict):
                  data = {}
                  for attr, val in six.iteritems(obj):
                      if camel:
                          attr = _snake_to_camel(attr)
                      valid_null = (isinstance(val, bool) or val == 0 or
                                    (val and to_dict(val, drop_null, camel)))
                      if not drop_null or (drop_null and valid_null):
                          data[attr] = to_dict(val, drop_null, camel)
                  return data
              elif isinstance(obj, list):
                  data = []
                  for val in obj:
                      valid_null = (isinstance(val, bool) or val == 0 or
                                    (val and to_dict(val, drop_null, camel)))
                      if not drop_null or (drop_null and valid_null):
                          data.append(to_dict(val, drop_null, camel))
                  return data
              else:
                  return obj
          return to_dict(self, drop_null, camel)
docs: Serialize self as dict.
  
          Args:
              drop_null: bool, default True. Remove 'empty' attributes.
              camel: bool, default True. Convert keys to camelCase.
  
          Return:
              dict: object params.