In Bitcoin source, what is the UniValue objects purpose? In the bitcoin source code you can see a lot of objects of type UniValue, particularly in the miner.cpp and rpc/mining.cpp. What is the utility of this UniValue object? Is it used to update the blockchain, or simply to return a message to a miner in their console?
UniValue is a type that encapsulates a JSON value.

It is only used for communication with external utilities through the RPC interface.