CLASS net/minecraft/class_5330 net/minecraft/util/JsonSerializing
	METHOD method_29306 createSerializerBuilder (Lnet/minecraft/class_2378;Ljava/lang/String;Ljava/lang/String;Ljava/util/function/Function;)Lnet/minecraft/class_5330$class_5331;
		ARG 0 registry
		ARG 1 rootFieldName
		ARG 2 idFieldName
		ARG 3 typeGetter
	CLASS class_5331 SerializerBuilder
		COMMENT A builder for serializing types to JSON that can either obtain a type from
		COMMENT a registry to handle JSON conversion or handle with a custom logic bound
		COMMENT to a type.
		COMMENT
		COMMENT <p>When the root element read is an object, the built serializer obtains the type
		COMMENT from registry to handle reading; otherwise, it falls back to custom
		COMMENT logic.
		FIELD field_25192 registry Lnet/minecraft/class_2378;
		FIELD field_25193 rootFieldName Ljava/lang/String;
		FIELD field_25194 idFieldName Ljava/lang/String;
		FIELD field_25195 typeGetter Ljava/util/function/Function;
		FIELD field_25196 elementSerializer Lcom/mojang/datafixers/util/Pair;
		FIELD field_28444 defaultType Lnet/minecraft/class_5336;
		METHOD <init> (Lnet/minecraft/class_2378;Ljava/lang/String;Ljava/lang/String;Ljava/util/function/Function;)V
			ARG 1 registry
			ARG 2 rootFieldName
			ARG 3 idFieldName
			ARG 4 typeIdentification
		METHOD method_29307 build ()Ljava/lang/Object;
		METHOD method_32385 elementSerializer (Lnet/minecraft/class_5336;Lnet/minecraft/class_5330$class_5332;)Lnet/minecraft/class_5330$class_5331;
			COMMENT Sets the element serializer and its target type. It can serialize and
			COMMENT deserialize instances of one type to non-{@link com.google.gson.JsonObject}
			COMMENT elements.
			COMMENT
			COMMENT @apiNote There can only be one element serializer for this builder and
			COMMENT the built serializer. Calling this method replaces any previous serializer.
			ARG 1 type
				COMMENT the target type of the element serializer
			ARG 2 serializer
				COMMENT the element serializer
		METHOD method_33409 defaultType (Lnet/minecraft/class_5336;)Lnet/minecraft/class_5330$class_5331;
			COMMENT Sets the default type that is used when there's no ID field.
			COMMENT
			COMMENT @return this instance
			ARG 1 defaultType
				COMMENT the default type
	CLASS class_5332 ElementSerializer
		METHOD method_29308 fromJson (Lcom/google/gson/JsonElement;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object;
			ARG 1 json
			ARG 2 context
		METHOD method_29309 toJson (Ljava/lang/Object;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement;
			ARG 1 object
			ARG 2 context
	CLASS class_5333 GsonSerializer
		FIELD field_25197 registry Lnet/minecraft/class_2378;
		FIELD field_25198 rootFieldName Ljava/lang/String;
		FIELD field_25199 idFieldName Ljava/lang/String;
		FIELD field_25200 typeGetter Ljava/util/function/Function;
		FIELD field_25201 elementSerializer Lcom/mojang/datafixers/util/Pair;
		FIELD field_28445 defaultType Lnet/minecraft/class_5336;
		METHOD <init> (Lnet/minecraft/class_2378;Ljava/lang/String;Ljava/lang/String;Ljava/util/function/Function;Lnet/minecraft/class_5336;Lcom/mojang/datafixers/util/Pair;)V
			ARG 1 registry
			ARG 2 rootFieldName
			ARG 3 idFieldName
			ARG 4 typeGetter
			ARG 5 defaultType
			ARG 6 elementSerializer
		METHOD deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object;
			ARG 1 json
			ARG 2 type
			ARG 3 context
		METHOD serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement;
			ARG 1 object
			ARG 2 type
			ARG 3 context
