anchor.diff:  #### `@Configurable` and `Defaultable<>`
   
   When creating a new `Fraction` implementation, each of its fields
  -will automatically be configurable through the `project-*.yml` 
  +will automatically be configurable through the `project-*.yml`
   mechanisms.  In the case that different names for the configurable
   items are desired, the `@Configuration` annotation may be used.
   
  
positive.code: }
  ----
  
  #### `ArchivePreparer`
  
  If your fraction needs an opportunity to alter or otherwise prepare all deployed
  archives, you may implement the `org.wildfly.swarm.spi.api.ArchivePreparer` interface.
  
  [source,java]
  ----
  @ApplicationScoped
  public class MyArchivePreparer implements ArchivePreparer {
  
    @Inject
    private MyFraction myFraction;
  
    public void prepareArchive(Archive<?> archive) {
      archive.as( WARArchive.class ).setContextRoot( myFraction.getContextRoot() );
    }
  }
  ----
  
  #### `ArchiveMetadataProcessor`
  
  If your fraction needs an opportunity to process the Jandex metadata of all deployed
  archives, you may implement the `org.wildfly.swarm.spi.api.ArchiveMetadataProcessor`
  interface.
  
  [source,java]
  ----
  @ApplicationScoped
  public class MyArchiveMetadataProcessor implements ArchiveMetadataProcessor {
  
    @Inject
    private MyFraction myFraction;
  
    public void processArchive(Archive<?> archive, Index index) {
      // ...
    }
  }
  
  
negative.code: components may be used.  Within these classes, you can use typical CDI mechanisms
  such as `@Inject`, `@Produces`, and `Instance<>` in order to accomplish whatever
  is required for your fraction.  Typically these components would, at the minimum,
  inject their own fraction.
  
  [source,java]
  ----
  @ApplicationScoped
  public class MyComponent implements Whatever {
  
    @Inject
    private MyFraction myFraction;
  