Configuration properties should be fully documented with clear descriptions, explicit default values, and proper metadata. This helps users understand and configure the application correctly.

Key requirements:

Example:

@ConfigurationProperties("spring.example")
public class ExampleProperties {
    /**
     * Maximum number of connections to create.
     */
    private int maxConnections = 100;
    
    /**
     * Connection timeout duration.
     */
    private Duration timeout = Duration.ofSeconds(30);
    
    // Getters/setters
}

For enums:

{
  "properties": [
    {
      "name": "spring.example.mode",
      "defaultValue": "auto"
    }
  ]
}