An object can hold a liquid if it is a LiquidContainer. A LiquidContainer stores an array of Regeants and their amounts. A LiquidContainer should also have a maximum capacity.
A SQL database called ChemistryRecipes and a command ‘chemistry’ that allows one to create recipes for chemistry. When a new liquid is moved to a container, it should check this database for the closest match.
Machines that dispense fluids into a LiquidContainer.
If you pour the contents of a LiquidContainer onto an object that is not a LiquidContainer, you ‘spill’ them and get rid of them.
If you are in a room with more than 50% any liquid of its total capacity, you will be drowning (eventually make swimming? or maybe for this update?). It should tell you if it is a small puddle, a puddle, a large puddle, etc. Or brimmed to the tip.
If a room is a LiquidContainer and Sunlit, the liquid should slowly evaporate at 30 mL per 10 minutes.
There should be raining in Sunlit rooms. If they are also a LiquidContainer, these rooms should slowly fill up.