Packet types and core types

Through some coding I noted that many of the integer types in packets are int32.
For example the GossipID aka menu_id is int32 in the packet. However in the core code elsewhere it is treated as uint32.

Should the core types be changed, packet types be changed or should casting be used? Currently casting is being used implicitly.

implicit casts are fine if they dont produce compiler warnings

as for the source of this - types taken from “magic client” (including their sign)