Compiled from "Extra.java"
public class dev.latvian.mods.kubejs.event.Extra {
  public static final dev.latvian.mods.kubejs.event.Extra STRING;

  public static final dev.latvian.mods.kubejs.event.Extra REQUIRES_STRING;

  public static final dev.latvian.mods.kubejs.event.Extra ID;

  public static final dev.latvian.mods.kubejs.event.Extra REQUIRES_ID;

  public static final dev.latvian.mods.kubejs.event.Extra REGISTRY;

  public static final dev.latvian.mods.kubejs.event.Extra REQUIRES_REGISTRY;

  public dev.latvian.mods.kubejs.event.Extra$Transformer transformer;

  public boolean identity;

  public boolean required;

  public java.util.function.Predicate<java.lang.Object> validator;

  public dev.latvian.mods.kubejs.event.Extra$Transformer toString;

  public java.util.function.Function<dev.latvian.mods.kubejs.typings.desc.DescriptionContext, dev.latvian.mods.kubejs.typings.desc.TypeDescJS> describeType;

  private static java.lang.String toString(java.lang.Object);
    Code:
       0: aload_0
       1: ifnonnull     6
       4: aconst_null
       5: areturn
       6: aload_0
       7: invokevirtual #37                 // Method java/lang/Object.toString:()Ljava/lang/String;
      10: astore_1
      11: aload_1
      12: invokevirtual #43                 // Method java/lang/String.isBlank:()Z
      15: ifeq          22
      18: aconst_null
      19: goto          23
      22: aload_1
      23: areturn

  private static net.minecraft.resources.ResourceLocation toResourceLocation(java.lang.Object);
    Code:
       0: aload_0
       1: ifnonnull     6
       4: aconst_null
       5: areturn
       6: aload_0
       7: instanceof    #50                 // class net/minecraft/resources/ResourceLocation
      10: ifeq          20
      13: aload_0
      14: checkcast     #50                 // class net/minecraft/resources/ResourceLocation
      17: astore_1
      18: aload_1
      19: areturn
      20: aload_0
      21: invokevirtual #37                 // Method java/lang/Object.toString:()Ljava/lang/String;
      24: astore_1
      25: aload_1
      26: invokevirtual #43                 // Method java/lang/String.isBlank:()Z
      29: ifeq          36
      32: aconst_null
      33: goto          40
      36: aload_1
      37: invokestatic  #54                 // Method net/minecraft/resources/ResourceLocation.m_135820_:(Ljava/lang/String;)Lnet/minecraft/resources/ResourceLocation;
      40: areturn

  private static net.minecraft.resources.ResourceKey<? extends net.minecraft.core.Registry<?>> toRegistryKey(java.lang.Object);
    Code:
       0: aload_0
       1: ifnonnull     6
       4: aconst_null
       5: areturn
       6: aload_0
       7: instanceof    #61                 // class net/minecraft/resources/ResourceKey
      10: ifeq          20
      13: aload_0
      14: checkcast     #61                 // class net/minecraft/resources/ResourceKey
      17: astore_1
      18: aload_1
      19: areturn
      20: aload_0
      21: instanceof    #50                 // class net/minecraft/resources/ResourceLocation
      24: ifeq          37
      27: aload_0
      28: checkcast     #50                 // class net/minecraft/resources/ResourceLocation
      31: astore_2
      32: aload_2
      33: invokestatic  #65                 // Method net/minecraft/resources/ResourceKey.m_135788_:(Lnet/minecraft/resources/ResourceLocation;)Lnet/minecraft/resources/ResourceKey;
      36: areturn
      37: aload_0
      38: invokevirtual #37                 // Method java/lang/Object.toString:()Ljava/lang/String;
      41: astore_1
      42: aload_1
      43: invokevirtual #43                 // Method java/lang/String.isBlank:()Z
      46: ifeq          53
      49: aconst_null
      50: goto          64
      53: new           #50                 // class net/minecraft/resources/ResourceLocation
      56: dup
      57: aload_1
      58: invokespecial #69                 // Method net/minecraft/resources/ResourceLocation."<init>":(Ljava/lang/String;)V
      61: invokestatic  #65                 // Method net/minecraft/resources/ResourceKey.m_135788_:(Lnet/minecraft/resources/ResourceLocation;)Lnet/minecraft/resources/ResourceKey;
      64: areturn

  public dev.latvian.mods.kubejs.event.Extra();
    Code:
       0: aload_0
       1: invokespecial #73                 // Method java/lang/Object."<init>":()V
       4: aload_0
       5: getstatic     #76                 // Field dev/latvian/mods/kubejs/event/Extra$Transformer.IDENTITY:Ldev/latvian/mods/kubejs/event/Extra$Transformer;
       8: putfield      #78                 // Field transformer:Ldev/latvian/mods/kubejs/event/Extra$Transformer;
      11: aload_0
      12: iconst_0
      13: putfield      #80                 // Field identity:Z
      16: aload_0
      17: iconst_0
      18: putfield      #82                 // Field required:Z
      21: aload_0
      22: getstatic     #87                 // Field dev/latvian/mods/kubejs/util/UtilsJS.ALWAYS_TRUE:Ljava/util/function/Predicate;
      25: putfield      #89                 // Field validator:Ljava/util/function/Predicate;
      28: aload_0
      29: getstatic     #76                 // Field dev/latvian/mods/kubejs/event/Extra$Transformer.IDENTITY:Ldev/latvian/mods/kubejs/event/Extra$Transformer;
      32: putfield      #91                 // Field toString:Ldev/latvian/mods/kubejs/event/Extra$Transformer;
      35: aload_0
      36: invokedynamic #110,  0            // InvokeDynamic #0:apply:()Ljava/util/function/Function;
      41: putfield      #112                // Field describeType:Ljava/util/function/Function;
      44: return

  public dev.latvian.mods.kubejs.event.Extra copy();
    Code:
       0: new           #2                  // class dev/latvian/mods/kubejs/event/Extra
       3: dup
       4: invokespecial #116                // Method "<init>":()V
       7: astore_1
       8: aload_1
       9: aload_0
      10: getfield      #78                 // Field transformer:Ldev/latvian/mods/kubejs/event/Extra$Transformer;
      13: putfield      #78                 // Field transformer:Ldev/latvian/mods/kubejs/event/Extra$Transformer;
      16: aload_1
      17: aload_0
      18: getfield      #80                 // Field identity:Z
      21: putfield      #80                 // Field identity:Z
      24: aload_1
      25: aload_0
      26: getfield      #82                 // Field required:Z
      29: putfield      #82                 // Field required:Z
      32: aload_1
      33: aload_0
      34: getfield      #89                 // Field validator:Ljava/util/function/Predicate;
      37: putfield      #89                 // Field validator:Ljava/util/function/Predicate;
      40: aload_1
      41: aload_0
      42: getfield      #91                 // Field toString:Ldev/latvian/mods/kubejs/event/Extra$Transformer;
      45: putfield      #91                 // Field toString:Ldev/latvian/mods/kubejs/event/Extra$Transformer;
      48: aload_1
      49: areturn

  public dev.latvian.mods.kubejs.event.Extra transformer(dev.latvian.mods.kubejs.event.Extra$Transformer);
    Code:
       0: aload_0
       1: aload_1
       2: putfield      #78                 // Field transformer:Ldev/latvian/mods/kubejs/event/Extra$Transformer;
       5: aload_0
       6: areturn

  public dev.latvian.mods.kubejs.event.Extra identity();
    Code:
       0: aload_0
       1: iconst_1
       2: putfield      #80                 // Field identity:Z
       5: aload_0
       6: areturn

  public dev.latvian.mods.kubejs.event.Extra required();
    Code:
       0: aload_0
       1: iconst_1
       2: putfield      #82                 // Field required:Z
       5: aload_0
       6: areturn

  public dev.latvian.mods.kubejs.event.Extra validator(java.util.function.Predicate<java.lang.Object>);
    Code:
       0: aload_0
       1: aload_1
       2: putfield      #89                 // Field validator:Ljava/util/function/Predicate;
       5: aload_0
       6: areturn

  public dev.latvian.mods.kubejs.event.Extra describeType(java.util.function.Function<dev.latvian.mods.kubejs.typings.desc.DescriptionContext, dev.latvian.mods.kubejs.typings.desc.TypeDescJS>);
    Code:
       0: aload_0
       1: aload_1
       2: putfield      #112                // Field describeType:Ljava/util/function/Function;
       5: aload_0
       6: areturn

  public dev.latvian.mods.kubejs.event.Extra toString(dev.latvian.mods.kubejs.event.Extra$Transformer);
    Code:
       0: aload_0
       1: aload_1
       2: putfield      #91                 // Field toString:Ldev/latvian/mods/kubejs/event/Extra$Transformer;
       5: aload_0
       6: areturn

  private static dev.latvian.mods.kubejs.typings.desc.TypeDescJS lambda$new$0(dev.latvian.mods.kubejs.typings.desc.DescriptionContext);
    Code:
       0: getstatic     #129                // Field dev/latvian/mods/kubejs/typings/desc/TypeDescJS.STRING:Ldev/latvian/mods/kubejs/typings/desc/TypeDescJS;
       3: areturn

  static {};
    Code:
       0: new           #2                  // class dev/latvian/mods/kubejs/event/Extra
       3: dup
       4: invokespecial #116                // Method "<init>":()V
       7: invokedynamic #138,  0            // InvokeDynamic #1:transform:()Ldev/latvian/mods/kubejs/event/Extra$Transformer;
      12: invokevirtual #140                // Method transformer:(Ldev/latvian/mods/kubejs/event/Extra$Transformer;)Ldev/latvian/mods/kubejs/event/Extra;
      15: putstatic     #142                // Field STRING:Ldev/latvian/mods/kubejs/event/Extra;
      18: getstatic     #142                // Field STRING:Ldev/latvian/mods/kubejs/event/Extra;
      21: invokevirtual #144                // Method copy:()Ldev/latvian/mods/kubejs/event/Extra;
      24: invokevirtual #146                // Method required:()Ldev/latvian/mods/kubejs/event/Extra;
      27: putstatic     #148                // Field REQUIRES_STRING:Ldev/latvian/mods/kubejs/event/Extra;
      30: new           #2                  // class dev/latvian/mods/kubejs/event/Extra
      33: dup
      34: invokespecial #116                // Method "<init>":()V
      37: invokedynamic #152,  0            // InvokeDynamic #2:transform:()Ldev/latvian/mods/kubejs/event/Extra$Transformer;
      42: invokevirtual #140                // Method transformer:(Ldev/latvian/mods/kubejs/event/Extra$Transformer;)Ldev/latvian/mods/kubejs/event/Extra;
      45: putstatic     #154                // Field ID:Ldev/latvian/mods/kubejs/event/Extra;
      48: getstatic     #154                // Field ID:Ldev/latvian/mods/kubejs/event/Extra;
      51: invokevirtual #144                // Method copy:()Ldev/latvian/mods/kubejs/event/Extra;
      54: invokevirtual #146                // Method required:()Ldev/latvian/mods/kubejs/event/Extra;
      57: putstatic     #156                // Field REQUIRES_ID:Ldev/latvian/mods/kubejs/event/Extra;
      60: new           #2                  // class dev/latvian/mods/kubejs/event/Extra
      63: dup
      64: invokespecial #116                // Method "<init>":()V
      67: invokedynamic #160,  0            // InvokeDynamic #3:transform:()Ldev/latvian/mods/kubejs/event/Extra$Transformer;
      72: invokevirtual #140                // Method transformer:(Ldev/latvian/mods/kubejs/event/Extra$Transformer;)Ldev/latvian/mods/kubejs/event/Extra;
      75: invokevirtual #162                // Method identity:()Ldev/latvian/mods/kubejs/event/Extra;
      78: putstatic     #164                // Field REGISTRY:Ldev/latvian/mods/kubejs/event/Extra;
      81: getstatic     #164                // Field REGISTRY:Ldev/latvian/mods/kubejs/event/Extra;
      84: invokevirtual #144                // Method copy:()Ldev/latvian/mods/kubejs/event/Extra;
      87: invokevirtual #146                // Method required:()Ldev/latvian/mods/kubejs/event/Extra;
      90: putstatic     #166                // Field REQUIRES_REGISTRY:Ldev/latvian/mods/kubejs/event/Extra;
      93: return
}
