Better script config using CA blocks
Description
Another take on #136 (closed), and an alternative to !623 (closed). Would also help with #138
CA-based opreations are encapsulated into "blocks", which are generic operations which modify a CA object.
The nice thing about this approach is that the block config can be specified ahead of time, and this config is located closely with the functionality.
Some features discussed in #136 (closed) and #138
-
no argparsers were harmed during the making of this mr -
error if extra unused config keys are provided -
error if missing required config -
native multiconfig support (do it later) -
standardise top level config keys (do it later) -
documentation
Review checklist:
-
CI Passing -
Comments addressed -
Source branch is up to date with target