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
`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
`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