// automatically generated by the FlatBuffers compiler, do not modify

package MyGame.Example;

@SuppressWarnings("unused")
public final class AnyAmbiguousAliases {
  private AnyAmbiguousAliases() { }
  public static final byte NONE = 0;
  public static final byte M1 = 1;
  public static final byte M2 = 2;
  public static final byte M3 = 3;

  public static final String[] names = { "NONE", "M1", "M2", "M3", };

  public static String name(int e) { return names[e]; }
}

