DataTokens with structure or enumeration types will fail equality tests (.Equals()/==).
This breaks certain DataDictionary and DataList methods when using structs or enums as keys or values.
Debug.Log(new DataToken(new Vector3(1, 2, 3)) == new DataToken(new Vector3(1, 2, 3)));
// Result: "false"
// Expected: "true" - The structs stored in the DataTokens are equal
Debug.Log(new DataToken(VRC_Pickup.PickupHand.Right) == new DataToken(VRC_Pickup.PickupHand.Right));
// Result: "false"
// Expected: "true" - The enums stored in the DataTokens are equal
DataDictionary dict = new DataDictionary();
dict.Add(new DataToken(new Vector3(1, 2, 3)), new DataToken(new Vector3(1, 2, 3)));
Debug.Log(dict.ContainsKey(new DataToken(new Vector3(1, 2, 3))));
// Result: "false"
// Expected: "true"
Debug.Log(dict.ContainsValue(new DataToken(new Vector3(1, 2, 3))));
// Result: "false"
// Expected: "true"
DataList list = new DataList();
list.Add(new DataToken(VRC_Pickup.PickupHand.Right));
Debug.Log(list.Contains(new DataToken(VRC_Pickup.PickupHand.Right)));
// Result: "false"
// Expected: "true"
Debug.Log(list.Remove(new DataToken(VRC_Pickup.PickupHand.Right)));
// Result: "false"
// Expected: "true"