You could add a pass for each effect, sure, or you could just add them all to the same pass by adding additional lines, like:
vec4 game = texture(Source, vTexCoord);
vec4 effect0 = texture(effect0_tex, vTexCoord);
vec4 effect1 = texture(effect1_tex, vTexCoord);
vec4 effect2 = texture(effect2_tex, vTexCoord);
FragColor = mix(game, effect0, effect0.a);
FragColor = mix(FragColor, effect1, effect1.a);
FragColor = mix(FragColor, effect2, effect2.a);
And if you wanted to add opacity parameters, you could do that like this (you would need to set up a parameter pragma for each of them and add them to the proper structs, etc):
vec4 game = texture(Source, vTexCoord);
vec4 effect0 = texture(effect0_tex, vTexCoord);
effect0.a *= params.effect0_opacity_mod;
vec4 effect1 = texture(effect1_tex, vTexCoord);
effect1.a *= params.effect0_opacity_mod;
vec4 effect2 = texture(effect2_tex, vTexCoord);
effect2.a *= params.effect0_opacity_mod;
FragColor = mix(game, effect0, effect0.a);
FragColor = mix(FragColor, effect1, effect1.a);
FragColor = mix(FragColor, effect2, effect2.a);