]`. The same * extension object can be enabled on a server (initialize response) and on a client * (initialize request); the side that enables it decides which. * * @author Christopher Hertel */ interface ExtensionInterface { /** * The reverse-DNS identifier used as the key under `capabilities.extensions`. */ public function getId(): string; /** * The capability payload announced for this extension. * * The returned array is cast to an object and embedded under * `capabilities.extensions[]`, so every value must be JSON-serializable * (scalars, arrays, or `JsonSerializable` objects). * * @return array */ public function getCapabilities(): array; }