All resources expose their settings classes on DBus for remote configuration. We cannot have a wrapper in AkonadiCore for each resource, but we could at least have a basic C++ class that wraps the common methods from KConfigSkeleton (load(), save(), etc.) and have a method in Akonadi::ServerManager to directly obtain the wrapper object for an AgentInstance.
This would allow us to get rid of a tons of code that builds QDBusInterface in various not-always-correct ways (e.g. missing support for Akonadi instances).