Today I fixed a mistake before it became product debt: I almost made affiliate links the only attribution model.
Links are clean, but they assume the click and checkout stay connected.
Real buying behavior is messier than that. Extensions, copied checkout URLs, cross-device purchases, and word of mouth all break link-only attribution.
In those cases, the link starts the journey, but the promo code is what survives to checkout.