{
    "QuantizedSlidingFindStart": {
        "desc": "识别滑动起点，存入go",
        "recognition": {
            "type": "And",
            "param": {
                "all_of": [
                    "QuantizedSlidingSwipeButton"
                ]
            }
        },
        "pre_delay": 0,
        "action": {
            "type": "Custom",
            "param": {
                "custom_action": "QuantizedSliding"
            }
        },
        "post_delay": 0,
        "rate_limit": 0,
        "next": [
            "QuantizedSlidingSwipeToMax"
        ]
    },
    "QuantizedSlidingMain": {
        "desc": "在这里清除状态，保证不被之前的任务影响",
        "pre_delay": 0,
        "action": {
            "type": "Custom",
            "param": {
                "custom_action": "QuantizedSliding"
            }
        },
        "post_delay": 0,
        "rate_limit": 0,
        "next": [
            "QuantizedSlidingFindStart"
        ]
    },
    "QuantizedSlidingFindEnd": {
        "desc": "识别滑动终点，交由go计算出精确点击位置",
        "recognition": {
            "type": "And",
            "param": {
                "all_of": [
                    "QuantizedSlidingSwipeButton"
                ]
            }
        },
        "pre_delay": 0,
        "action": {
            "type": "Custom",
            "param": {
                "custom_action": "QuantizedSliding"
            }
        },
        "post_delay": 0,
        "rate_limit": 0,
        "next": [
            "QuantizedSlidingPreciseClick"
        ]
    },
    "QuantizedSlidingGetMaxQuantity": {
        "desc": "识别最大可选数量，存入go，如果小于target，会在此处action返回false",
        "recognition": {
            "type": "And",
            "param": {
                "all_of": [
                    "QuantizedSlidingGetQuantity"
                ]
            }
        },
        "pre_delay": 0,
        "action": {
            "type": "Custom",
            "param": {
                "custom_action": "QuantizedSliding"
            }
        },
        "post_delay": 0,
        "rate_limit": 0,
        "next": [
            "QuantizedSlidingFindEnd"
        ]
    },
    "QuantizedSlidingPreciseClick": {
        "desc": "x, y精确点击",
        "pre_delay": 0,
        "action": {
            "type": "Click",
            "param": {
                "target": [
                    0,
                    0
                ]
            }
        },
        "post_wait_freezes": 80,
        "post_delay": 0,
        "rate_limit": 0,
        "next": [
            "QuantizedSlidingClearMaxHit"
        ]
    },
    "QuantizedSlidingClearMaxHit": {
        "desc": "清空节点MaxHit",
        "pre_delay": 0,
        "action": {
            "type": "Custom",
            "param": {
                "custom_action": "ClearHitCount",
                "custom_action_param": {
                    "nodes": [
                        "QuantizedSlidingCheckQuantity"
                    ]
                }
            }
        },
        "post_delay": 0,
        "rate_limit": 0,
        "next": [
            "QuantizedSlidingJumpBackNode"
        ]
    },
    "QuantizedSlidingJumpBackNode": {
        "desc": "返回节点",
        "pre_delay": 0,
        "post_delay": 0,
        "rate_limit": 0,
        "next": [
            "QuantizedSlidingCheckQuantity",
            "QuantizedSlidingFail"
        ]
    },
    "QuantizedSlidingFail": {
        "desc": "如果路由至此，则说明微调失败（超过次数）",
        "pre_delay": 0,
        "post_delay": 0,
        "rate_limit": 0
    },
    "QuantizedSlidingDecreaseQuantity": {
        "desc": "减少数量",
        "enabled": false,
        "pre_delay": 0,
        "action": {
            "type": "Click",
            "param": {
                "target": [
                    0,
                    0,
                    0,
                    0
                ]
            }
        },
        "repeat": 1,
        "post_wait_freezes": 80,
        "post_delay": 0,
        "rate_limit": 0,
        "next": [
            "QuantizedSlidingJumpBackNode"
        ]
    },
    "QuantizedSlidingDone": {
        "desc": "数量与Target一致，成功咯~",
        "enabled": false,
        "pre_delay": 0,
        "action": {
            "type": "Custom",
            "param": {
                "custom_action": "QuantizedSliding"
            }
        },
        "post_delay": 0,
        "rate_limit": 0
    },
    "QuantizedSlidingSwipeToMax": {
        "desc": "滑动到最大",
        "pre_delay": 0,
        "action": {
            "type": "Swipe",
            "param": {
                "begin": "QuantizedSlidingFindStart",
                "begin_offset": [
                    5,
                    5,
                    -5,
                    -5
                ],
                "end": [
                    "QuantizedSlidingFindStart"
                ]
            }
        },
        "post_wait_freezes": 80,
        "post_delay": 0,
        "rate_limit": 0,
        "next": [
            "QuantizedSlidingGetMaxQuantity"
        ]
    },
    "QuantizedSlidingCheckQuantity": {
        "desc": "识别当前数量，交由go选择分支",
        "max_hit": 4,
        "recognition": {
            "type": "And",
            "param": {
                "all_of": [
                    "QuantizedSlidingGetQuantity"
                ]
            }
        },
        "pre_delay": 0,
        "action": {
            "type": "Custom",
            "param": {
                "custom_action": "QuantizedSliding"
            }
        },
        "post_delay": 0,
        "rate_limit": 0,
        "next": [
            "QuantizedSlidingDone",
            "QuantizedSlidingIncreaseQuantity",
            "QuantizedSlidingDecreaseQuantity"
        ]
    },
    "QuantizedSlidingIncreaseQuantity": {
        "desc": "增加数量",
        "enabled": false,
        "pre_delay": 0,
        "action": {
            "type": "Click",
            "param": {
                "target": [
                    0,
                    0,
                    0,
                    0
                ]
            }
        },
        "repeat": 1,
        "post_wait_freezes": 80,
        "post_delay": 0,
        "rate_limit": 0,
        "next": [
            "QuantizedSlidingJumpBackNode"
        ]
    }
}
