The default implementation of configuration entities used to persist all properties of the configuration entity that were marked public. Providing public properties with direct access to the entity data does not allow data model changes without changing the API (the API being in this case the public properties), so this practice was changed. The new default implementation of configuration entities relies on configuration schema instead for persisting the object.
Providing configuration schema for your configuration is definitely best practice (it offers translation integration as well as ensures proper types when persisting and therefore only valid changes happening when deploying). However if you really want to avoid providing a configuration schema, you need to implement the toArray() method on your configuration entity entirely on your own without calling to the base implementation.
Comments
Does this mean that we can
Does this mean that we can now how protected properties that get get saved automatically into the config (granted of course they are declared in the schema) ?
You can follow me on Twitter: @drupalexp or on my blog.
what is configuration schema?
Is the configuration schema just the entity object variables at the top?
As opposed to the contentEntity, which derives the db schema from function baseFieldDefinitions()