Thank you for this awesome work. A few comments though regarding it, before we can forward this to testing:
In general (and to make things harder ;-), there should be an issue for each issue, and a separate pull-request associated to each issue.
DisplayName: This is a user-settable property and should not be overridden (rejected).
Visibility: This is a breaking change in behavior: Also a lot of service doesn't allow you to turn all layers on so this unfortunately needs to stay as an explicit set (rejected).
Capabilities error handling: This is great and a good addition. However an issue with repro should be logged and a separate pull-request associated with the issue.
Expose SubLayer properties: This change introduces compiler warnings due to lack of code summaries. An issue with description of the use-case should be logged, and a pull-request associated with it.
DisplayName, Visibility: I know this is not a bug, but I thought You may to know that only one-line change on toolkit site can remove need for a lot of coding + event handling on programmer site.
Thank you for this awesome work. A few comments though regarding it, before we can forward this to testing: In general (and to make things harder ;-), there should be an issue for each issue, and a separate pull-request associated to each issue.