def simulate_umpire_decision(pitch, shot, impact, trajectory_hint): if pitch.lower() == "outside leg": return {"decision": "NOT OUT", "reason": "Ball pitched outside leg stump"} if impact.lower() == "outside off" and shot.lower() == "yes": return {"decision": "NOT OUT", "reason": "Impact outside off and shot offered"} if "missing" in trajectory_hint.lower(): return {"decision": "NOT OUT", "reason": "Ball not likely to hit stumps"} return {"decision": "OUT", "reason": "All conditions favor LBW"}