Clean up some leaked mutable objects in serialization. Javadoc the RuntimeExceptions instead of declaring them. Use Builder provided ItemStacks in TradeOffer constructor instead of making new ItemStacks. Remove unecessary copyOf methods. Delegate creating a Builder with a TradeOffer as a template to TradeOffer#builderOf instead. Use direct field ItemStacks for equals method.