* The original object's keys should be strings or numbers. The values of the original object will become the keys of the new object, and the keys of the original object will become the values of the new object.
*
* Note: If the original object has duplicate values, the resulting inverted object will override previous keys, as object keys must be unique. The key retained in the inverted object will be the one that appears last in the original object.
*
* This function can be useful when you need to reverse a mapping, or when you need to look up keys by their associated values.
*
* @templateObj - An object with string or number keys.
* @templateKey - The keys of the object T.
* @templateReturn - The inverted object.
*
* @param{Obj}object - The original object to invert.
* @returns{Return} The new object with inverted keys and values.