A full atmospheric simulation, derived link by link from temperature.
The vision
Vanilla rain is a switch: it rains, or it does not. Weather replaces that switch with a chain of causes. Temperature is the master variable; a temperature gap creates a pressure gap, the pressure map determines wind, and wind moves the weather map, which in turn sets where the clouds are.
Nothing is rolled at the moment you look up. Everything was decided upstream, by quantities that mean something, and that is what makes the sky readable.
Clouds are born mostly over the seas and let the winds carry them. Each holds an accumulation, which rises when two clouds merge. Past a threshold, the cloud triggers a humidity event, rain, snow or storm depending on local temperature, until its accumulation falls back.
A sudden pressure change, on the other hand, yields not rain but wind: gusts, storms, tornadoes. Two distinct causes, two families of events, and a sky whose grammar can be learned.
Since the simulation is causal, it is predictable, and that forecast belongs to the player rather than to an interface. Craftable instruments deliver it in the world: a barometer whose needle rises or falls, a weather vane that betrays the turn of the wind.
A trend beats a certainty. It leaves room to bring the harvest in, to set out anyway, or to bet on a lull.
Mountains block clouds: the windward slope takes the rain, the leeward slope stays dry. Altitude, for its part, cools. Microclimates emerge from the terrain itself, with no extra data to write.
A weather event acts on the world instead of repainting it. A storm cuts visibility and scatters the clouds; lightning can set fire to flora or to a field, or be captured by whoever prepares for it. Some phenomena grow likelier in certain seasons, anchoring weather in the year's cycle.
A global simulation cannot be paid for at block resolution. It therefore runs on a coarse grid at world scale, and detail emerges only within render distance, where the player can actually see it.
Two maps coexist: a procedural one for never-visited regions, another fed by biome data for explored areas. Their interaction makes the whole drift over time, and the seam between them is smoothed by a fade spread across a full day.