{"action":"opened","issue":{"url":"https://api.github.com/repos/bazaarvoice/jolt/issues/131","labels_url":"https://api.github.com/repos/bazaarvoice/jolt/issues/131/labels{/name}","comments_url":"https://api.github.com/repos/bazaarvoice/jolt/issues/131/comments","events_url":"https://api.github.com/repos/bazaarvoice/jolt/issues/131/events","html_url":"https://github.com/bazaarvoice/jolt/issues/131","id":100304797,"number":131,"title":"Help with transformation and sorting","user":{"login":"fteem","id":854173,"avatar_url":"https://avatars.githubusercontent.com/u/854173?v=3","gravatar_id":"","url":"https://api.github.com/users/fteem","html_url":"https://github.com/fteem","followers_url":"https://api.github.com/users/fteem/followers","following_url":"https://api.github.com/users/fteem/following{/other_user}","gists_url":"https://api.github.com/users/fteem/gists{/gist_id}","starred_url":"https://api.github.com/users/fteem/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fteem/subscriptions","organizations_url":"https://api.github.com/users/fteem/orgs","repos_url":"https://api.github.com/users/fteem/repos","events_url":"https://api.github.com/users/fteem/events{/privacy}","received_events_url":"https://api.github.com/users/fteem/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-08-11T12:56:01Z","updated_at":"2015-08-11T12:56:01Z","closed_at":null,"body":"Hello,\r\n\r\nfirst and foremost, I'd like to say that what you've done here is **awesome**. Jolt is a great tool, nicely documented and it's saving us a ton of time. Big fan!\r\n\r\nOur use case is quite complicated. \r\nInput JSON:\r\n```json\r\n{\r\n\t\"token\": \"\",\r\n\t\"content\": \"record\",\r\n\t\"formId\": \"CCM_landing_site_v1_5\",\r\n\t\"formVersion\": \"2015073115\",\r\n\t\"data\": [\r\n\t\t{\r\n\t\t\t\"*meta-instance-id*\": \"uuid:0af376c5-f33b-4a23-8e19-d4ed86f686de\",\r\n\t\t\t\"*meta-model-version*\": 2015073115,\r\n\t\t\t\"*meta-ui-version*\": null,\r\n\t\t\t\"*meta-submission-date*\": \"2015-08-06T07:59:06.107Z\",\r\n\t\t\t\"*meta-is-complete*\": true,\r\n\t\t\t\"*meta-date-marked-as-complete*\": \"2015-08-06T07:59:06.107Z\",\r\n\t\t\t\"start\": \"2015-08-06T07:55:15.807Z\",\r\n\t\t\t\"end\": \"2015-08-06T07:59:03.564Z\",\r\n\t\t\t\"today\": \"2015-08-06\",\r\n\t\t\t\"deviceid\": \"351809063750250\",\r\n\t\t\t\"phonenumber\": null,\r\n\t\t\t\"geopoint:Latitude\": -34.0757933333,\r\n\t\t\t\"geopoint:Longitude\": 18.8652233333,\r\n\t\t\t\"geopoint:Altitude\": 85.6,\r\n\t\t\t\"geopoint:Accuracy\": 6.1,\r\n\t\t\t\"monitor_name\": \"STBMonitor\",\r\n\t\t\t\"monitor_name_manual\": null,\r\n\t\t\t\"landing_site\": \"struisbaai\",\r\n\t\t\t\"weather\": \"weather_sunny\",\r\n\t\t\t\"wind_strength\": \"wind_breezy\",\r\n\t\t\t\"wind_direction\": \"wind_southeast\",\r\n\t\t\t\"sea_condition\": \"sea_rough\",\r\n\t\t\t\"rpt_boats\": [\r\n\t\t\t\t{\r\n\t\t\t\t\t\"fisher_name\": \"STBFisher3\",\r\n\t\t\t\t\t\"fisher_gender\": \"male\",\r\n\t\t\t\t\t\"permit_has\": \"no\",\r\n\t\t\t\t\t\"fisher_name_manual\": null,\r\n\t\t\t\t\t\"permit_type\": null,\r\n\t\t\t\t\t\"boat_type\": \"boat_ski\",\r\n\t\t\t\t\t\"reg_type\": \"reg_n_a\",\r\n\t\t\t\t\t\"boat_skipper\": \"STBFisher3\",\r\n\t\t\t\t\t\"boat_owner\": \"STBFisher3\",\r\n\t\t\t\t\t\"crew_number\": 3,\r\n\t\t\t\t\t\"engine_capacity\": 70,\r\n\t\t\t\t\t\"boat_skipper_manual\": null,\r\n\t\t\t\t\t\"boat_owner_manual\": null,\r\n\t\t\t\t\t\"catch_specie_list\": [\r\n\t\t\t\t\t\t\"capebream\",\r\n\t\t\t\t\t\t\"capesalmon\"\r\n\t\t\t\t\t],\r\n\t\t\t\t\t\"catch_specie_manual\": null,\r\n\t\t\t\t\t\"yesno_label\": \"Nee\",\r\n\t\t\t\t\t\"calc_form_language\": \"Afrikaans\",\r\n\t\t\t\t\t\"rpt_catch_count\": \"2\",\r\n\t\t\t\t\t\"rpt_catch\": [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\"selected_specie\": \"capebream\",\r\n\t\t\t\t\t\t\t\"selected_specie_label\": \"Hottentot\",\r\n\t\t\t\t\t\t\t\"catch_number\": 5,\r\n\t\t\t\t\t\t\t\"catch_weight_kg\": 6,\r\n\t\t\t\t\t\t\t\"catch_bait\": null,\r\n\t\t\t\t\t\t\t\"rpt_sample\": [\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\"sample_length\": 5,\r\n\t\t\t\t\t\t\t\t\t\"sample_weight\": 10,\r\n\t\t\t\t\t\t\t\t\t\"sample_gender\": null,\r\n\t\t\t\t\t\t\t\t\t\"sample_berry\": null\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\"sample_length\": 5,\r\n\t\t\t\t\t\t\t\t\t\"sample_weight\": 20,\r\n\t\t\t\t\t\t\t\t\t\"sample_gender\": null,\r\n\t\t\t\t\t\t\t\t\t\"sample_berry\": null\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t]\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\"selected_specie\": \"capesalmon\",\r\n\t\t\t\t\t\t\t\"selected_specie_label\": \"Geelbek\",\r\n\t\t\t\t\t\t\t\"catch_number\": 6,\r\n\t\t\t\t\t\t\t\"catch_weight_kg\": 15,\r\n\t\t\t\t\t\t\t\"catch_bait\": null,\r\n\t\t\t\t\t\t\t\"rpt_sample\": [\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\"sample_length\": 20,\r\n\t\t\t\t\t\t\t\t\t\"sample_weight\": 5,\r\n\t\t\t\t\t\t\t\t\t\"sample_gender\": null,\r\n\t\t\t\t\t\t\t\t\t\"sample_berry\": null\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\"sample_length\": 20,\r\n\t\t\t\t\t\t\t\t\t\"sample_weight\": 25,\r\n\t\t\t\t\t\t\t\t\t\"sample_gender\": null,\r\n\t\t\t\t\t\t\t\t\t\"sample_berry\": null\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t],\r\n\t\t\t\t\t\"comment_has\": \"no\",\r\n\t\t\t\t\t\"comment_text\": null,\r\n\t\t\t\t\t\"comment_image\": null\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\t\"fisher_name\": \"STBFisher4\",\r\n\t\t\t\t\t\"fisher_gender\": \"male\",\r\n\t\t\t\t\t\"permit_has\": \"yes\",\r\n\t\t\t\t\t\"fisher_name_manual\": null,\r\n\t\t\t\t\t\"permit_type\": \"permit_tlf\",\r\n\t\t\t\t\t\"boat_type\": \"boat_bakkie\",\r\n\t\t\t\t\t\"reg_type\": \"reg_n_a\",\r\n\t\t\t\t\t\"boat_skipper\": \"STBFisher4\",\r\n\t\t\t\t\t\"boat_owner\": \"STBFisher4\",\r\n\t\t\t\t\t\"crew_number\": 3,\r\n\t\t\t\t\t\"engine_capacity\": 80,\r\n\t\t\t\t\t\"boat_skipper_manual\": null,\r\n\t\t\t\t\t\"boat_owner_manual\": null,\r\n\t\t\t\t\t\"catch_specie_list\": [\r\n\t\t\t\t\t\t\"capebream\"\r\n\t\t\t\t\t],\r\n\t\t\t\t\t\"catch_specie_manual\": null,\r\n\t\t\t\t\t\"yesno_label\": \"Ja\",\r\n\t\t\t\t\t\"calc_form_language\": \"Afrikaans\",\r\n\t\t\t\t\t\"rpt_catch_count\": \"1\",\r\n\t\t\t\t\t\"rpt_catch\": [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\"selected_specie\": \"capebream\",\r\n\t\t\t\t\t\t\t\"selected_specie_label\": \"Hottentot\",\r\n\t\t\t\t\t\t\t\"catch_number\": 50,\r\n\t\t\t\t\t\t\t\"catch_weight_kg\": 5,\r\n\t\t\t\t\t\t\t\"catch_bait\": null,\r\n\t\t\t\t\t\t\t\"rpt_sample\": [\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\"sample_length\": 3,\r\n\t\t\t\t\t\t\t\t\t\"sample_weight\": 20,\r\n\t\t\t\t\t\t\t\t\t\"sample_gender\": null,\r\n\t\t\t\t\t\t\t\t\t\"sample_berry\": null\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t],\r\n\t\t\t\t\t\"comment_has\": \"no\",\r\n\t\t\t\t\t\"comment_text\": null,\r\n\t\t\t\t\t\"comment_image\": null\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\t\"fisher_name\": \"STBFisher5\",\r\n\t\t\t\t\t\"fisher_gender\": \"male\",\r\n\t\t\t\t\t\"permit_has\": \"no\",\r\n\t\t\t\t\t\"fisher_name_manual\": null,\r\n\t\t\t\t\t\"permit_type\": null,\r\n\t\t\t\t\t\"boat_type\": \"boat_bakkie\",\r\n\t\t\t\t\t\"reg_type\": \"reg_n_a\",\r\n\t\t\t\t\t\"boat_skipper\": \"STBFisher5\",\r\n\t\t\t\t\t\"boat_owner\": \"STBFisher5\",\r\n\t\t\t\t\t\"crew_number\": 2,\r\n\t\t\t\t\t\"engine_capacity\": 60,\r\n\t\t\t\t\t\"boat_skipper_manual\": null,\r\n\t\t\t\t\t\"boat_owner_manual\": null,\r\n\t\t\t\t\t\"catch_specie_list\": [\r\n\t\t\t\t\t\t\"capesalmon\"\r\n\t\t\t\t\t],\r\n\t\t\t\t\t\"catch_specie_manual\": null,\r\n\t\t\t\t\t\"yesno_label\": \"Nee\",\r\n\t\t\t\t\t\"calc_form_language\": \"Afrikaans\",\r\n\t\t\t\t\t\"rpt_catch_count\": \"1\",\r\n\t\t\t\t\t\"rpt_catch\": [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\"selected_specie\": \"capesalmon\",\r\n\t\t\t\t\t\t\t\"selected_specie_label\": \"Geelbek\",\r\n\t\t\t\t\t\t\t\"catch_number\": 5,\r\n\t\t\t\t\t\t\t\"catch_weight_kg\": 50,\r\n\t\t\t\t\t\t\t\"catch_bait\": null,\r\n\t\t\t\t\t\t\t\"rpt_sample\": []\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t],\r\n\t\t\t\t\t\"comment_has\": \"no\",\r\n\t\t\t\t\t\"comment_text\": null,\r\n\t\t\t\t\t\"comment_image\": null\r\n\t\t\t\t}\r\n\t\t\t],\r\n\t\t\t\"num_boats_launched\": 5,\r\n\t\t\t\"instanceID\": \"uuid:0af376c5-f33b-4a23-8e19-d4ed86f686de\"\r\n\t\t}\r\n\t]\r\n}\r\n```\r\n\r\nThe spec:\r\n\r\n```json\r\n[\r\n\t{\r\n\t\t\"operation\": \"shift\",\r\n\t\t\"spec\": {\r\n\t\t\t\"data\": \"CCM_MonitorLog__c\"\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\t\"operation\": \"shift\",\r\n\t\t\"spec\": {\r\n\t\t\t\"CCM_MonitorLog__c\": {\r\n\t\t\t\t\"*\": {\r\n\t\t\t\t\t\"end\": \"ODK_time_end__c\",\r\n\t\t\t\t\t\"today\": \"ODK_date__c\",\r\n\t\t\t\t\t\"deviceid\": \"ODK_device__c\",\r\n\t\t\t\t\t\"monitor_name\": \"monitor_name__c\",\r\n\t\t\t\t\t\"monitor_name_manual\": \"monitor_name_manual__c\",\r\n\t\t\t\t\t\"wind_direction\": \"wind_direction__c\",\r\n\t\t\t\t\t\"landing_site\": \"landing_site__c\",\r\n\t\t\t\t\t\"sea_condition\": \"sea_condition__c\",\r\n\t\t\t\t\t\"wind_strength\": \"wind_strength__c\",\r\n\t\t\t\t\t\"weather\": \"weather__c\",\r\n\t\t\t\t\t\"num_boats_launched\": \"num_boats_launched__c\",\r\n\t\t\t\t\t\"geopoint\": \"geopoint__c\",\r\n\t\t\t\t\t\"instanceID\": \"odk_key__c\",\r\n\t\t\t\t\t\"rpt_boats\": {\r\n\t\t\t\t\t\t\"*\": {\r\n\t\t\t\t\t\t\t\"fisher_name\": \"CCM_Boats__r[&1].fisher_name__c\",\r\n\t\t\t\t\t\t\t\"fisher_gender\": \"CCM_Boats__r[&1].fisher_gender__c\",\r\n\t\t\t\t\t\t\t\"permit_has\": \"CCM_Boats__r[&1].permit_has__c\",\r\n\t\t\t\t\t\t\t\"boat_type\": \"CCM_Boats__r[&1].boat_type__c\",\r\n\t\t\t\t\t\t\t\"reg_type\": \"CCM_Boats__r[&1].reg_type__c\",\r\n\t\t\t\t\t\t\t\"boat_skipper\": \"CCM_Boats__r[&1].boat_skipper__c\",\r\n\t\t\t\t\t\t\t\"boat_owner\": \"CCM_Boats__r[&1].boat_owner__c\",\r\n\t\t\t\t\t\t\t\"crew_number\": \"CCM_Boats__r[&1].crew_number__c\",\r\n\t\t\t\t\t\t\t\"engine_capacity\": \"CCM_Boats__r[&1].engine_capacity__c\",\r\n\t\t\t\t\t\t\t\"catch_specie_list\": \"CCM_Boats__r[&1].catch_specie_list__c\",\r\n\t\t\t\t\t\t\t\"comment_has\": \"CCM_Boats__r[&1].comment_has__c\",\r\n\t\t\t\t\t\t\t\"comment_text\": \"CCM_Boats__r[&1].comment_text__c\",\r\n\t\t\t\t\t\t\t\"comment_image\": \"CCM_Boats__r[&1].comment_image__c\",\r\n\t\t\t\t\t\t\t\"rpt_catch\": {\r\n\t\t\t\t\t\t\t\t\"*\": {\r\n\t\t\t\t\t\t\t\t\t\"selected_specie\": \"CCM_Boats__r[&1].CCM_Catches__r[&3].selected_specie__c\",\r\n\t\t\t\t\t\t\t\t\t\"catch_number\": \"CCM_Boats__r[&1].CCM_Catches__r[&3].catch_number__c\",\r\n\t\t\t\t\t\t\t\t\t\"catch_weight_kg\": \"CCM_Boats__r[&1].CCM_Catches__r[&3].catch_weight_kg__c\",\r\n\t\t\t\t\t\t\t\t\t\"catch_bait\": \"CCM_Boats__r[&1].CCM_Catches__r[&3].catch_bait__c\",\r\n\t\t\t\t\t\t\t\t\t\"rpt_sample\": {\r\n\t\t\t\t\t\t\t\t\t\t\"*\": {\r\n\t\t\t\t\t\t\t\t\t\t\t\"sample_length\": \"CCM_Boats__r[&1].CCM_Catches__r[&3].CCM_Samples__r[&5].sample_length__c\",\r\n\t\t\t\t\t\t\t\t\t\t\t\"sample_weight\": \"CCM_Boats__r[&1].CCM_Catches__r[&3].CCM_Samples__r[&5].sample_weight__c\",\r\n\t\t\t\t\t\t\t\t\t\t\t\"sample_gender\": \"CCM_Boats__r[&1].CCM_Catches__r[&3].CCM_Samples__r[&5].sample_gender__c\",\r\n\t\t\t\t\t\t\t\t\t\t\t\"sample_berry\": \"CCM_Boats__r[&1].CCM_Catches__r[&3].CCM_Samples__r[&5].sample_berry__c\"\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n]\r\n```\r\n\r\n**Wished** output (not actual):\r\n```json\r\n{\r\n  \"CCM_MonitorLog__c\": {\r\n    \"ODK_time_end__c\": \"2015-08-06T07:59:03.564Z\",\r\n    \"ODK_date__c\": \"2015-08-06\",\r\n    \"ODK_device__c\": \"351809063750250\",\r\n    \"monitor_name__c\": \"STBMonitor\",\r\n    \"wind_direction__c\": \"wind_southeast\",\r\n    \"landing_site__c\": \"struisbaai\",\r\n    \"sea_condition__c\": \"sea_rough\",\r\n    \"wind_strength__c\": \"wind_breezy\",\r\n    \"weather__c\": \"weather_sunny\",\r\n    \"num_boats_launched__c\": 5,\r\n    \"odk_key__c\": \"uuid:0af376c5-f33b-4a23-8e19-d4ed86f686de\",\r\n    \"CCM_Boats__r\": [\r\n      {\r\n        \"fisher_name__c\": \"STBFisher3\",\r\n        \"fisher_gender__c\": \"male\",\r\n        \"permit_has__c\": \"no\",\r\n        \"boat_type__c\": \"boat_ski\",\r\n        \"reg_type__c\": \"reg_n_a\",\r\n        \"boat_skipper__c\": \"STBFisher3\",\r\n        \"boat_owner__c\": \"STBFisher3\",\r\n        \"crew_number__c\": 3,\r\n        \"engine_capacity__c\": 70,\r\n        \"catch_specie_list__c\": [\r\n          \"capebream\",\r\n          \"capesalmon\"\r\n        ],\r\n        \"comment_has\": \"no\",\r\n        \"comment_text\": null,\r\n        \"comment_image\": null,\r\n        \"CCM_Catches__r\": [\r\n          {\r\n            \"selected_specie__c\": \"capebream\",\r\n            \"catch_number__c\": 5,\r\n            \"catch_weight_kg__c\": 6,\r\n            \"CCM_Samples__r\": [\r\n              {\r\n                \"sample_length__c\": 5,\r\n                \"sample_weight__c\": 10,\r\n                \"sample_gender__c\": null,\r\n                \"sample_berry__c\": null\r\n              },\r\n              {\r\n                \"sample_length__c\": 5,\r\n                \"sample_weight__c\": 20,\r\n                \"sample_gender__c\": null,\r\n                \"sample_berry__c\": null\r\n              }\r\n            ]\r\n          },\r\n          {\r\n            \"selected_specie__c\": \"capesalmon\",\r\n            \"catch_number__c\": 6,\r\n            \"catch_weight_kg__c\": 15,\r\n            \"CCM_Samples__r\": [\r\n              {\r\n                \"sample_length__c\": 20,\r\n                \"sample_weight__c\": 5,\r\n                \"sample_gender__c\": null,\r\n                \"sample_berry__c\": null\r\n              },\r\n              {\r\n                \"sample_length\": 20,\r\n                \"sample_weight\": 25,\r\n                \"sample_gender\": null,\r\n                \"sample_berry\": null\r\n              }\r\n            ]\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        \"fisher_name__c\": \"STBFisher4\",\r\n        \"fisher_gender__c\": \"male\",\r\n        \"permit_has__c\": \"yes\",\r\n        \"permit_type__c\": \"permit_tlf\",\r\n        \"boat_type__c\": \"boat_bakkie\",\r\n        \"reg_type__c\": \"reg_n_a\",\r\n        \"boat_skipper__c\": \"STBFisher4\",\r\n        \"boat_owner__c\": \"STBFisher4\",\r\n        \"crew_number__c\": 3,\r\n        \"engine_capacity__c\": 80,\r\n        \"catch_specie_list__c\": [\r\n          \"capebream\"\r\n        ],\r\n        \"comment_has\": \"no\",\r\n        \"comment_text\": null,\r\n        \"comment_image\": null,\r\n        \"CCM_Catches__r\": [\r\n          {\r\n            \"selected_specie__c\": \"capebream\",\r\n            \"selected_specie_label__c\": \"Hottentot\",\r\n            \"catch_number__c\": 50,\r\n            \"catch_weight_kg__c\": 5,\r\n            \"catch_bait__c\": null,\r\n            \"CCM_Samples__r\": [\r\n              {\r\n                \"sample_length\": 3,\r\n                \"sample_weight\": 20\r\n              }\r\n            ]\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        \"fisher_name__c\": \"STBFisher5\",\r\n        \"fisher_gender__c\": \"male\",\r\n        \"permit_has__c\": \"no\",\r\n        \"boat_type__c\": \"boat_bakkie\",\r\n        \"reg_type__c\": \"reg_n_a\",\r\n        \"boat_skipper__c\": \"STBFisher5\",\r\n        \"boat_owner__c\": \"STBFisher5\",\r\n        \"crew_number__c\": 2,\r\n        \"engine_capacity__c\": 60,\r\n        \"catch_specie_list__c\": [\r\n          \"capesalmon\"\r\n        ],\r\n        \"comment_has__c\": \"no\",\r\n        \"comment_text__c\": null,\r\n        \"comment_image__c\": null,\r\n        \"CCM_Catches__r\": [\r\n          {\r\n            \"selected_specie__c\": \"capesalmon\",\r\n            \"selected_specie_label__c\": \"Geelbek\",\r\n            \"catch_number__c\": 5,\r\n            \"catch_weight_kg__c\": 50\r\n          }\r\n        ]\r\n      }\r\n    ]\r\n  }\r\n}\r\n```\r\n\r\nOur current spec works okay, with one drawback - sorting. So, the first question would be: can we force Jolt to format the output with the same format of the spec? What we are getting right now is:\r\n```json\r\n{\r\n  \"ODK_time_end__c\" : \"2015-08-06T07:59:03.564Z\",\r\n  \"ODK_date__c\" : \"2015-08-06\",\r\n  \"ODK_device__c\" : \"351809063750250\",\r\n  \"monitor_name__c\" : \"STBMonitor\",\r\n  \"wind_direction__c\" : \"wind_southeast\",\r\n  \"landing_site__c\" : \"struisbaai\",\r\n  \"sea_condition__c\" : \"sea_rough\",\r\n  \"wind_strength__c\" : \"wind_breezy\",\r\n  \"weather__c\" : \"weather_sunny\",\r\n  \"num_boats_launched__c\" : 5,\r\n  \"odk_key__c\" : \"uuid:0af376c5-f33b-4a23-8e19-d4ed86f686de\",\r\n  \"CCM_Boats__r\" : [ {\r\n    \"fisher_name__c\" : \"STBFisher3\",\r\n    \"fisher_gender__c\" : \"male\",\r\n    \"permit_has__c\" : \"no\",\r\n    \"boat_type__c\" : \"boat_ski\",\r\n    \"reg_type__c\" : \"reg_n_a\",\r\n    \"boat_skipper__c\" : \"STBFisher3\",\r\n    \"boat_owner__c\" : \"STBFisher3\",\r\n    \"crew_number__c\" : 3,\r\n    \"engine_capacity__c\" : 70,\r\n    \"catch_specie_list__c\" : [ \"capebream\", \"capesalmon\" ],\r\n    \"comment_has__c\" : \"no\",\r\n    \"CCM_Catches__r\" : [ {\r\n      \"selected_specie__c\" : \"capebream\",\r\n      \"catch_number__c\" : 5,\r\n      \"catch_weight_kg__c\" : 6,\r\n      \"CCM_Samples__r\" : [ {\r\n        \"sample_length__c\" : 5,\r\n        \"sample_weight__c\" : 10\r\n      }, {\r\n        \"sample_length__c\" : 3,\r\n        \"sample_weight__c\" : 20\r\n      } ]\r\n    }, {\r\n      \"CCM_Samples__r\" : [ {\r\n        \"sample_length__c\" : 20,\r\n        \"sample_weight__c\" : 5\r\n      } ],\r\n      \"selected_specie__c\" : \"capebream\",\r\n      \"catch_number__c\" : 50,\r\n      \"catch_weight_kg__c\" : 5\r\n    }, {\r\n      \"selected_specie__c\" : \"capesalmon\",\r\n      \"catch_number__c\" : 5,\r\n      \"catch_weight_kg__c\" : 50\r\n    } ]\r\n  }, {\r\n    \"CCM_Catches__r\" : [ {\r\n      \"CCM_Samples__r\" : [ {\r\n        \"sample_length__c\" : 5,\r\n        \"sample_weight__c\" : 20\r\n      } ],\r\n      \"selected_specie__c\" : \"capesalmon\",\r\n      \"catch_number__c\" : 6,\r\n      \"catch_weight_kg__c\" : 15\r\n    }, {\r\n      \"CCM_Samples__r\" : [ {\r\n        \"sample_length__c\" : 20,\r\n        \"sample_weight__c\" : 25\r\n      } ]\r\n    } ],\r\n    \"fisher_name__c\" : \"STBFisher4\",\r\n    \"fisher_gender__c\" : \"male\",\r\n    \"permit_has__c\" : \"yes\",\r\n    \"boat_type__c\" : \"boat_bakkie\",\r\n    \"reg_type__c\" : \"reg_n_a\",\r\n    \"boat_skipper__c\" : \"STBFisher4\",\r\n    \"boat_owner__c\" : \"STBFisher4\",\r\n    \"crew_number__c\" : 3,\r\n    \"engine_capacity__c\" : 80,\r\n    \"catch_specie_list__c\" : [ \"capebream\" ],\r\n    \"comment_has__c\" : \"no\"\r\n  }, {\r\n    \"fisher_name__c\" : \"STBFisher5\",\r\n    \"fisher_gender__c\" : \"male\",\r\n    \"permit_has__c\" : \"no\",\r\n    \"boat_type__c\" : \"boat_bakkie\",\r\n    \"reg_type__c\" : \"reg_n_a\",\r\n    \"boat_skipper__c\" : \"STBFisher5\",\r\n    \"boat_owner__c\" : \"STBFisher5\",\r\n    \"crew_number__c\" : 2,\r\n    \"engine_capacity__c\" : 60,\r\n    \"catch_specie_list__c\" : [ \"capesalmon\" ],\r\n    \"comment_has__c\" : \"no\"\r\n  } ]\r\n}\r\n```\r\n\r\nAs you can see, the first item of the ```CCM_Boats__r``` array is formatted nicely, but the second is not. What I mean by this is that the properties should come first, and the nested arrays (like ```CCM_Catches__r```) should come after. Is this possible?\r\n\r\nThe second question is about the nested repeating arrays in the spec. Is there a better way to get the same functionality, or is our solution okay? \r\n\r\nThank you in advance, and thank you for making and maintaining Jolt!\r\nIle\r\n\r\n "}}