I never thought people would actually like this enough to pay money for it, wow!
The ocean floor and objects should be lit by a light function. UNFORTUNATELY this will incur a lighting cost over the whole map. The function should skew the texture in world space in accordance to the angle of the sun. From there, just use a variety of distance calculations to figure out the water height, blur the caustics as they travel through the water (mip blurring works very well), and remove the caustics completely above the water. I’m also coloring any objects that might come under the water by depth so they become more blue the further you go down. If there is a way to do this with translucent surfaces that affect lightmass, that would be great.
The material function should be added to particle effects because they do not respect the shading or position of light functions. You can leave them unlit and color them purely through the function, though this does remove the particle’s respect to shadowing.
As for the algea, I assume you mean the moss growing on the rocks, just vertex paint a moss color/texture/normal blend between the rock and algea, and if you want to go all out, give it some subsurface to really simulate translucency in the light. For the grass, just use a simple two-sided shader with some movement. I personally use the simple grass movement and change the speed and sizes to get something that looks appropriate underwater. Slower speed, larger sizes. If there’s a way to convert the simple grass shader to normals, I would include that as well for accurate lighting, but it’s not totally necessary. If you can set all your grass vertex normals to face upwards, the lighting will be nice and smooth.
I can release this on the marketplace. It may take a while, though. For now, you can take a look at the material function and get started with building the caustics. I suggest looking at vertex painting for moss/algea, and the grass is just the same as any other grass.