Physically accurate water shader I'm a bit tired of faking it and I'd like to craft a physically accurate water shader in cycles that works in most situations with minimal tweaking.
I haven't found a solution yet and i'd appreciate help.
Some properties the water shader has to have:

Glass- like appearance in small quantities


Volume and green tint in low depth


Blue colour underwater, darker the lower you go, reflective surface at top,
Ability for volumetric rays, even with sun


Snell's window


What i know is impossible with cycles: caustics

I have figured out some of these but can't make them work together.
Render times are not an issue, i just want to create an all purpose water shader, i don't intend to use it all the time.
Most (all?) of those effects can be easily replicated using the standard Principled Shader and Principled Volume shader, with the surface shader providing the IOR and surface interactions (eg, reflectivity, refraction, etc.) and the volume providing any scattering and absorption (but at a suitably low density).
At small scales the volumetric effects are negligible, making the water appear almost clear, the skewed absoption colours (set it with higher Blue, medium Green and low Red) give the different colors at different depths, the scatter can give volumetric rays and the IOR (again) will give 'Snell's window' effects when viewed from within.
This just needs something like the following (note the low Roughness, high Transmission, low(ish) volume Density, blueish volume absorption). I've also added Displacement for adding distortion to the surface.

You might want to tweak the settings slightly to get realistic behaviour with a specific scale - you should always ensure you model at 'real world' scales to ensure it's more physically accurate. In particular, the absorption and scattering (so the volumetric density) will be sensitive to scale.