Create a base class for EffectParameterSlot and EffectButtonParameterSlot to avoid duplicate code