The documentation currently states the following:
When binding to Map properties, if the key contains anything other than lowercase alpha-numeric characters or -, you need to use the bracket notation so that the original value is preserved. If the key is not surrounded by [], any characters that are not alpha-numeric or - are removed.
This isn't entirely accurate as . characters do not always require the use of bracket notation to be retained. Consider the following application.properties:
example.properties.alpha.bravo=one
example.properties.[charlie.delta]=two
And the following @ConfigurationProperties
@ConfigurationProperties("example")
class ExampleProperties {
	
	private final Properties properties = new Properties();
	public Properties getProperties() {
		return properties;
	}
}Binding results in properties having the following content:
{charlie.delta=two, alpha.bravo=one}
Note that the . in the property key has been retained in both cases.