> For the complete documentation index, see [llms.txt](https://docs.fractalworks.io/joule/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fractalworks.io/joule/developer-guides/builder-sdk/transformation-api.md).

# Transformation API

## Development steps

### Interface

```java
public interface CustomPlugin {

    /**
     * Initialise sets up the user plugin
     *
     * @throws CustomUserPluginException
     */
    default void initialize() throws CustomUserPluginException {
    }

    /**
     * Validate plugin setting
     *
     * @throws InvalidSpecificationException
     */
    default void validate() throws InvalidSpecificationException {
    }

    /**
     * Set plugin properties
     *
     * @param properties plugin properties
     */
    @JsonProperty(value = "properties")
    default void setProperties(Properties properties){
    }
}
```
