I'm fine with this for now, to avoid delaying the PR, but this large background suggests we should split this into several features, as we have different promotion configuration.