The core Atelier functionality contains a number of extension points, usually in the way of traits that can be implemented by other clients.
- Adding an Artifact Representation allows the reading and/or writing of different file formats.
- Adding a Linter allows for the creation of custom lint rules.
- Adding a Validator allows for the creation of custom validation rules.
- Adding a Model Transformation allows for the creation of model-to-model transformations.
Unlike the Java implementation Rust does not have a dynamic discovery mechanism, so additional linters and validators are not automatically added at runtime. This means that custom implementations cannot be used without additional work in existing tools such as cargo-atelier.