<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def visit_GpxModel(self, gpx_model, *args, **kwargs):
 """Render a GPXModel as a single JSON structure."""

        result = OrderedDict()

        put_scalar = lambda name, json_name=None: self.optional_attribute_scalar(result, gpx_model, name, json_name)
        put_list = lambda name, json_name=None: self.optional_attribute_list(result, gpx_model, name, json_name)

        put_scalar('creator')
        put_scalar('metadata')
        put_list('waypoints')
        put_list('routes')
        put_list('tracks')
        put_list('extensions')

        return result