What you can replace
Placement constraints, item ordering, candidate scoring, container selection, solution scoring and a complete single-container solver are registered through the extension registry, without global mutable configuration.
Extensions are not cross-language features
An engine driven over JSON as a subprocess has no wire representation for a registered scorer, so no harness can check that four engines agree about it. Use extensions to specialise one application in one language.
When it belongs in the request
A rule that must hold for every caller of every binding belongs in the request as versioned data: a policy document rather than a plugin. It is then auditable, portable and enforced during the search by every engine.