anchor.diff:  ----
   
   The metadata basically lists the _capabilities_ of the service, that is the available
  -options for all request parameters (`dependencies`, `type`, `bootVersion`, etc.) The
  -web UI uses that information to initialize the select options and the tree of
  +options for all request parameters (`dependencies`, `type`, `bootVersion`, etc.) A client
  +to the service uses that information to initialize the select options and the tree of
   available dependencies.
   
   The metadata also lists the default values for simple _text_ parameter (i.e. the
  
positive.code: {docs}/html/#metadata-format[available in the documentation].
  
  == Running your own instance
  
  You can easily run your own instance. The `initializr-web` modules uses Spring Boot
  so when it is added to a project, it will trigger the necessary auto-configuration to
  deploy the service.
  
  You first need to create or update your configuration to define the necessary
  attributes that your instance will use. Again, check the documentation for a
  {docs}/html/#create-instance[description of the configuration] and
  {service}[review our own config] for a sample.
  
  You can integrate the library in a traditional Java-based project or by writing the
  super-simple script below:
  
  [source,groovy]
  ----
  package org.acme.myapp
  
  @Grab('io.spring.initializr:initializr-web:1.0.0.BUILD-SNAPSHOT')
  @Grab('spring-boot-starter-web')
  class YourInitializrApplication { }
  ----
  
  NOTE: Spring Initializr is not available on Maven central yet so you will have to
  build it <<build,from source>> in order to use it in your own environment.
  
  Once you have created that script (`my-instance.groovy`), place your configuration
  in the same directory and simply execute this command to start the service:
  
  [source,bash]
  ----
  $ spring run my-instance.groovy
  ----
  
  You may also want to https://github.com/spring-io/start.spring.io#run-app[run the default
  instance locally].
  
  
  [[build]]
  == Building from Source
  
  You need Java 1.8 and a bash-like shell.
  
  [[building]]
  === Building
  
  Just invoke the build at the root of the project
  
  [indent=0]
  ----
  
negative.code: You could use this infrastructure to create your own client since the project is
  generated via a plain HTTP call.
  
  [[metadata]]
  == Service metadata
  The service metadata is used by all clients to know which values they should expose for
  the standard attributes of a project. For instance, a custom version can specify that the
  default `groupId` is `com.example.acme`. You can grab the metadata on the root endpoint
  with the appropriate `Accept` header:
  
  [source,bash]
  ----
  