{
    // ===== 售卖点顶层节点 =====
    "SellProductInfrastructureOutpost": {
        "desc": "基建前站售卖",
        "max_hit": 1,
        "recognition": "And",
        "all_of": [
            "SellProductCheckInfrastructureOutpostTabText"
        ],
        "pre_delay": 0,
        "post_delay": 0,
        "rate_limit": 0,
        "next": [
            "SellProductInfrastructureOutpostSell",
            "[JumpBack]SellProductGoToInfrastructureOutpost"
        ]
    },
    // ===== 售卖锚点节点 =====
    "SellProductInfrastructureOutpostSell": {
        "desc": "基建前站售卖",
        "recognition": "And",
        "all_of": [
            "SellProductInInfrastructureOutpost"
        ],
        "pre_delay": 0,
        "anchor": {
            "SellProductZeroMoneyHandler": "SellProductZeroMoneyWithTip",
            "SellProductSelectGoodFirstTime": "SellProductSelectFirstGood",
            "SellProductSellAttempt1": "SellProductInfrastructureOutpostSellAttempt1",
            "SellProductSellAttempt2": "SellProductInfrastructureOutpostSellAttempt2",
            "SellProductSellAttempt3": "SellProductInfrastructureOutpostSellAttempt3",
            "SellProductSellAttempt4": "SellProductInfrastructureOutpostSellAttempt4"
        },
        "post_delay": 0,
        "rate_limit": 0,
        "next": [
            "SellProductSellLoop"
        ]
    },
    // ===== 在指定据点的识别节点 =====
    "SellProductInInfrastructureOutpost": {
        "desc": "在基建前站",
        "recognition": "And",
        "all_of": [
            "SellProductCheckInfrastructureOutpostText",
            "SellProductInOutpost"
        ],
        "pre_delay": 0,
        "post_delay": 0,
        "rate_limit": 0
    },
    // ===== 前往据点导航节点 =====
    "SellProductGoToInfrastructureOutpost": {
        "desc": "前往基建前站据点",
        "recognition": "And",
        "all_of": [
            "SellProductInValleyIVOutpost",
            "SellProductCheckInfrastructureOutpostTabText"
        ],
        "box_index": 1,
        "pre_delay": 0,
        "action": "Click",
        "post_delay": 0,
        "rate_limit": 0,
        "next": [
            "SellProductInInfrastructureOutpost"
        ]
    },
    // ===== 标签页文本检查（小文本） =====
    "SellProductCheckInfrastructureOutpostTabText": {
        "desc": "检查基建前站文本",
        "recognition": "OCR",
        "roi": [
            0,
            0,
            1280,
            160
        ],
        "expected": [
            "基建前站",
            "(?i)Infra\\s*-\\s*Station",
            "建設基地"
        ],
        "pre_delay": 0,
        "post_delay": 0,
        "rate_limit": 0
    },
    // ===== 据点内大字文本检查 =====
    "SellProductCheckInfrastructureOutpostText": {
        "desc": "检查基建前站大字文本",
        "recognition": "OCR",
        "roi": [
            198,
            167,
            331,
            127
        ],
        "expected": [
            "基建前站",
            "(?i)Infra\\s*-\\s*Station",
            "建設基地"
        ],
        "pre_delay": 0,
        "post_delay": 0,
        "rate_limit": 0
    },
    // ===== 售卖尝试 1 =====
    "SellProductInfrastructureOutpostSellAttempt1": {
        "desc": "基建前站第1次尝试：先换货再售卖",
        "enabled": false,
        "max_hit": 1,
        "recognition": "And",
        "all_of": [
            "SellProductInOutpost"
        ],
        "pre_delay": 0,
        "anchor": {
            "SellProductSelectNewGood": "SellProductInfrastructureOutpostSelectItem1",
            "SellProductPriorityGoodMissHandler": ""
        },
        "post_delay": 0,
        "rate_limit": 0,
        "next": [
            "SellProductChangeGoods"
        ]
    },
    // ===== 售卖尝试 2 =====
    "SellProductInfrastructureOutpostSellAttempt2": {
        "desc": "基建前站第2次尝试：先换货再售卖",
        "enabled": false,
        "max_hit": 1,
        "recognition": "And",
        "all_of": [
            "SellProductInOutpost"
        ],
        "pre_delay": 0,
        "anchor": {
            "SellProductSelectNewGood": "SellProductInfrastructureOutpostSelectItem2",
            "SellProductPriorityGoodMissHandler": ""
        },
        "post_delay": 0,
        "rate_limit": 0,
        "next": [
            "SellProductChangeGoods"
        ]
    },
    // ===== 售卖尝试 3 =====
    "SellProductInfrastructureOutpostSellAttempt3": {
        "desc": "基建前站第3次尝试：先换货再售卖",
        "enabled": false,
        "max_hit": 1,
        "recognition": "And",
        "all_of": [
            "SellProductInOutpost"
        ],
        "pre_delay": 0,
        "anchor": {
            "SellProductSelectNewGood": "SellProductInfrastructureOutpostSelectItem3",
            "SellProductPriorityGoodMissHandler": ""
        },
        "post_delay": 0,
        "rate_limit": 0,
        "next": [
            "SellProductChangeGoods"
        ]
    },
    // ===== 售卖尝试 4 =====
    "SellProductInfrastructureOutpostSellAttempt4": {
        "desc": "基建前站第4次尝试：先换货再售卖",
        "enabled": false,
        "max_hit": 1,
        "recognition": "And",
        "all_of": [
            "SellProductInOutpost"
        ],
        "pre_delay": 0,
        "anchor": {
            "SellProductSelectNewGood": "SellProductInfrastructureOutpostSelectItem4",
            "SellProductPriorityGoodMissHandler": ""
        },
        "post_delay": 0,
        "rate_limit": 0,
        "next": [
            "SellProductChangeGoods"
        ]
    },
    // ===== 优先物品 1 =====
    "SellProductInfrastructureOutpostSelectItem1": {
        "desc": "基建前站售卖优先物品1",
        "enabled": false,
        "recognition": "OCR",
        "roi": [
            145,
            103,
            998,
            518
        ],
        "expected": [],
        "replace": [
            [
                "[\\[\\]|]+",
                ""
            ]
        ],
        "pre_delay": 0,
        "action": "Click",
        "anchor": {
            "SellProductSelectGoodFirstTime": ""
        },
        "post_delay": 0,
        "rate_limit": 0,
        "next": [
            "SellProductSelectNewGoodConfirm"
        ]
    },
    // ===== 优先物品 2 =====
    "SellProductInfrastructureOutpostSelectItem2": {
        "desc": "基建前站售卖优先物品2",
        "enabled": false,
        "recognition": "OCR",
        "roi": [
            145,
            103,
            998,
            518
        ],
        "expected": [],
        "replace": [
            [
                "[\\[\\]|]+",
                ""
            ]
        ],
        "pre_delay": 0,
        "action": "Click",
        "anchor": {
            "SellProductSelectGoodFirstTime": ""
        },
        "post_delay": 0,
        "rate_limit": 0,
        "next": [
            "SellProductSelectNewGoodConfirm"
        ]
    },
    // ===== 优先物品 3 =====
    "SellProductInfrastructureOutpostSelectItem3": {
        "desc": "基建前站售卖优先物品3",
        "enabled": false,
        "recognition": "OCR",
        "roi": [
            145,
            103,
            998,
            518
        ],
        "expected": [],
        "replace": [
            [
                "[\\[\\]|]+",
                ""
            ]
        ],
        "pre_delay": 0,
        "action": "Click",
        "anchor": {
            "SellProductSelectGoodFirstTime": ""
        },
        "post_delay": 0,
        "rate_limit": 0,
        "next": [
            "SellProductSelectNewGoodConfirm"
        ]
    },
    // ===== 优先物品 4 =====
    "SellProductInfrastructureOutpostSelectItem4": {
        "desc": "基建前站售卖优先物品4",
        "enabled": false,
        "recognition": "OCR",
        "roi": [
            145,
            103,
            998,
            518
        ],
        "expected": [],
        "replace": [
            [
                "[\\[\\]|]+",
                ""
            ]
        ],
        "pre_delay": 0,
        "action": "Click",
        "anchor": {
            "SellProductSelectGoodFirstTime": ""
        },
        "post_delay": 0,
        "rate_limit": 0,
        "next": [
            "SellProductSelectNewGoodConfirm"
        ]
    }
}
