from __future__ import annotations


def execute(payload: dict) -> dict:
    reasons = []
    force = float(payload.get("forceLimitN", 0))
    if payload.get("operation") != "pinching": reasons.append("UNSUPPORTED_OPERATION")
    if payload.get("safetyState") != "READY": reasons.append("SAFETY_NOT_READY")
    if not 1 <= force <= 18: reasons.append("FORCE_LIMIT_OUT_OF_RANGE")
    accepted = not reasons
    sequence = ["APPROACH", "GRIP", "CUT", "RETRACT"] if accepted else []
    return {"component": "kiro/pinching-end-effector", "accepted": accepted,
            "status": "SEQUENCE_READY" if accepted else "BLOCKED", "target": "mcu",
            "targetId": str(payload.get("targetId", "unknown")), "sequence": sequence,
            "interlocks": reasons, "estimatedCycleMs": 2800 if accepted else 0}
