This release brings a lot of changes to the application architecture. The Packwerk tool allows enforcing engines boundaries. Each engine has access to only public SDK classes of dependent engines. Circle CI runs linters to ensure that boundaries are not crossed. Added a new Interests engine to show up an example of how that can work. Each engine doesn't have direct access to Active Record models of dependent engines. Interaction with dependent engines is handled only through Entities (a thin public wrapper around a record) and Repositories.