Instead of a fixed enum of layout types, user can provide custom layouts via implementations of LayoutFactory in spring.factories.