How fail2ban reads its configuration
Fail2ban loads jail.conf first, then every .local file that sits beside it, then everything in jail.d/. Later values win, so a jail.local only needs the settings you want to change. Anything you leave out keeps the packaged default.
That layering is why editing jail.conf is a mistake: the package manager replaces that file on upgrade and your changes disappear without warning. The same rule applies to filters and actions, where you override filter.d/sshd.conf with filter.d/sshd.local.
The [DEFAULT] section in the generated file sets the policy every jail inherits. Each jail section then names its filter, its log source and any value that should differ.