!str #15121 MaterializerSettings now uses a config object

Resolves #15121
also document what it means to be empty