Package org.spongepowered.asm.mixin

## Annotation Type Interface

-     @Target({})
      @Retention(CLASS)
      public @interface Interface

  This annotation is used to define information for a soft-implemented interface. See `Implements` for details.

- - ### Required Element Summary

    Required Elements
    Modifier and Type | Required Element | Description
    --- | --- | ---
    `java.lang.Class<?>` | `iface` | Interface that the parent `Implements` indicates the mixin implements.
    `java.lang.String` | `prefix` | [Required] prefix for implementing interface methods.

  - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element | Description
    --- | --- | ---
    `Interface.Remap` | `remap` | By default, the annotation processor will attempt to locate an obfuscation mapping for all methods soft-implemented by the interface declared in this `Interface` annotation, since it is possible that the declared interface may be obfuscated and therefore contain obfuscated member methods.
    `boolean` | `unique` | If set to `true`, all methods implementing this interface are treated as if they were individually decorated with `Unique`

- - ### Element Detail

    - #### iface

          java.lang.Class<?> iface

      Interface that the parent `Implements` indicates the mixin implements. The interface will be hot-patched onto the target class as part of the mixin application.
      Returns:
        interface to implement

  - - #### prefix

          java.lang.String prefix

      [Required] prefix for implementing interface methods. Works similarly to `Shadow` prefixes, but must end with a dollar sign ($)
      Returns:
        prefix to use

  - - #### unique

          boolean unique

      If set to `true`, all methods implementing this interface are treated as if they were individually decorated with `Unique`
      Returns:
        true to mark all implementing methods as unique
      Default:
        false

  - - #### remap

          Interface.Remap remap

      By default, the annotation processor will attempt to locate an obfuscation mapping for all methods soft-implemented by the interface declared in this `Interface` annotation, since it is possible that the declared interface may be obfuscated and therefore contain obfuscated member methods. However since it may be desirable to skip this pass (for example if an interface method intrinsically shadows a soft-implemented method) this setting is provided to restrict or inhibit processing of member methods matching this soft-implements decoration.
      Returns:
        Remapping strategy to use, see `Interface.Remap` for details.
      Default:
        org.spongepowered.asm.mixin.Interface.Remap.ALL