If it helps, I've a working copy of Stefan's idea over at github.com/joaotavora/sly.

Indeed it's called backend there, and it's been working fine for some years to let Sly's completion providing backend do the flex or prefix heavy lifting, while still appearing as a normal completion table to Emacs frontends, such as icomplete, vanilla, company-capf and even Helm.

A first approach could be just to copy that over to Emacs minubuffer.el.

João

On Sun, May 23, 2021, 16:51 Stefan Monnier <monnier@iro.umontreal.ca> wrote:
>> Clearly, this is not right: passthrough completion should pass the `str`
>> and `point` info to the completion table.  The completion table may opt
>> to ignore that information, but we shouldn't prevent them from using it.
>> I expect most passthrough uses will want to use `str`.
>
> I see what you mean. In my use case I didn't use an improperly
> implemented completion table which does not ignore . However the
> question is then if this "passthrough" style is really needed since if
> you don't ignore the input, it is mostly equivalent to the emacs21 style.

The "passthrough" (elsewhere called "backend") completion-style is
definitely something we need to add, yes.  But what it should do is pass
all the args from `completion-all/try-completions` to the table and let
the table do *all* the work, i.e. let the completion table implement the
completion-style methods.  But we shouldn't call `all-completions` or
`try-completions` for that.  Instead we should call the completion-table
directly, as is done for the `completion-boundaries` method.


        Stefan