Package org.spongepowered.asm.mixin

## Annotation Type Unique

-     @Documented
      @Retention(RUNTIME)
      @Target({FIELD,METHOD})
      public @interface Unique

  The `Unique` annotation guarantees, when applied to a class member, that the member it was applied on does not cause any modifications to class members of the target classes.

  When using micromixin-transformer, fields will always get renamed to a unique identifier, however this behaviour may be subject to change. If you wish to change the behaviour, please reach out to the micromixin-transformer maintainers.

  When applied on methods, then the annotated method will be overlaid under the semantics of the Intrinsic annotation, that is it will overlay the method with the same name, but when a collision occurs, the method will instead be discarded (with the same semantics as `Shadow`). HOWEVER, if the annotated method is `private` or `protected`, then in case of a collision the annotated method will be renamed using a uniquely generated prefix.

- - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element | Description
    --- | --- | ---
    `boolean` | `silent` | If the member that was annotated with `Unique` is a public method and a collision occurred which caused the member to be absorbed (using the same semantics as `Shadow`), then a warning will be printed to the log unless `silent()` is set to `true`.

- - ### Element Detail

    - #### silent

          boolean silent

      If the member that was annotated with `Unique` is a public method and a collision occurred which caused the member to be absorbed (using the same semantics as `Shadow`), then a warning will be printed to the log unless `silent()` is set to `true`.
      Returns:
        True for the annotation to be silent, false otherwise.
      Default:
        false