Improved extension interface

c.f. 8fc41d0, #1634 & #1635

**NOTE** requires a `composer update` in Bolt's root