function prepareCustom(coordSys) {
	        var rect = coordSys.getRect();

	        return {
	            coordSys: {
	                type: 'singleAxis',
	                x: rect.x,
	                y: rect.y,
	                width: rect.width,
	                height: rect.height
	            },
	            api: {
	                coord: zrUtil.bind(coordSys.dataToPoint, coordSys),
	                size: zrUtil.bind(dataToCoordSize, coordSys)
	            }
	        };
	    }
Convert
[{
 type: 'group',
 id: 'xx',
 children: [{type: 'circle'}, {type: 'polygon'}]
}]
to
[
 {type: 'group', id: 'xx'},
 {type: 'circle', parentId: 'xx'},
 {type: 'polygon', parentId: 'xx'}
]

@private
@param {Array.<Object>} optionList option list
@param {Array.<Object>} result result of flatten
@param {Object} parentOption parent option