# Implementation

## Artifacts

BoostedYAML is a standalone library available under `boosted-yaml` ID.

{% hint style="info" %}
**Coming from Spigot (Bukkit) API and using custom object serialization?**

If you **are** using custom object serialization provided by these APIs (your classes implement ConfigurationSerializable / you are serializing locations, items...), make sure to add:

* `boosted-yaml-spigot`: includes a custom BoostedYAML serializer compatible with the Spigot (Bukkit) API serialization system.

This artifact is provided for the ease of migration to BoostedYAML. If you aren't using this serialization system, but developing with these APIs, **it is recommended** to build with the standard `boosted-yaml` artifact.
{% endhint %}

## Add using Maven (recommended)

### Dependency

Add dependency for the artifact:

```xml
<dependency>
  <groupId>dev.dejvokep</groupId>
  <artifactId>boosted-yaml</artifactId>
  <version>1.3.5</version>
</dependency>
<!-- Optionally, add also BoostedYAML for Spigot extension (see above) -->
<dependency>
  <groupId>dev.dejvokep</groupId>
  <artifactId>boosted-yaml-spigot</artifactId>
  <version>1.5</version>
</dependency>
```

{% hint style="info" %}
**No repository specification is required.**

BoostedYAML releases are hosted on [Maven Central Repository](https://central.sonatype.com/).
{% endhint %}

### Shading

Add this shading section to your build configuration:

```xml
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <version>3.2.4</version>
      <configuration>
        <relocations>
          <relocation>
            <pattern>dev.dejvokep.boostedyaml.*</pattern>
            <!-- Replace this -->
            <shadedPattern>me.plugin.libs</shadedPattern>
          </relocation>
        </relocations>
      </configuration>
      <executions>
        <execution>
          <phase>package</phase>
          <goals>
            <goal>shade</goal>
          </goals>
          <configuration>
            <artifactSet>
              <includes>
                <include>dev.dejvokep:boosted-yaml</include>
                <!-- If also implementing the boosted-yaml-spigot, add this: -->
                <include>dev.dejvokep:boosted-yaml-spigot</include>
              </includes>
            </artifactSet>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>
```

This configuration will shade (= "copy") the whole BoostedYAML library into a package inside your project defined by `<shadedPattern>` to avoid any runtime classpath conflicts. **Do not forget to change it to your corresponding package.**

## **Download and add into project's libraries**

If you cannot use Maven / Gradle due to some reason, you can still download the .JAR archives needed from the [Maven Central Repository](https://central.sonatype.com/) (click "Browse" for the latest version):

[boosted-yaml](https://central.sonatype.com/artifact/dev.dejvokep/boosted-yaml/versions), [boosted-yaml-spigot](https://central.sonatype.com/artifact/dev.dejvokep/boosted-yaml-spigot/versions)

You can then add it into your project's libraries. This can be done in IntelliJ IDEA in menu *File > Project Structure > Libraries*.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dejvokep.gitbook.io/boostedyaml/getting-started/implementation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
