Matthias Clasen wrote:
Well, I have certainly considered C ABI compatibility to be the main deciding factor when making such decisions. I'd say if C# interfaces are inflexible like that then mapping GObject interfaces directly to C# interfaces was probably wrong.
This is totally missing the point. GObject interfaces exist to formalise a pattern of design by contract. Even if the C compiler doesn't catch and report incomplete interface implementations, that doesn't make it correct to ship code that breaks the rules.
Your argument is analogous to claiming that it's OK to change property and signal names and parameters in an ABI-stable release because the C compiler won't notice that anything has broken.