Prolog PEP/RFC/...?

Possibly Novacore has a precedent in the form of init.pl
from SWI-Prolog. Its an interesting Kernel, that has no
dependency on some libraries. For example it does:

'$last'([H|T], Last) :-
    '$last'(T, H, Last).

'$last'([], Last, Last).
'$last'([H|T], _, Last) :-
    '$last'(T, H, Last).

https://www.swi-prolog.org/pldoc/doc/SWI/boot/init.pl?show=raw

On the other hand if I look at the Ciao Prolog distribution,
it gives me on GitHub, and lists.pl is the same lists.pl that
is also consumed by end-users:

+--- core
     +--- lib  essential libraries
            +--- lists.pl

https://github.com/ciao-lang/ciao

So SWI-Prolog has already a Novacore, and Ciao Prolog doesn’t.
Possibly there are more Prolog systems that are entangled as
Ciao Prolog is, all these Prolog systems can not easily

adopt a PEP that would suggest this and that lists library,
and where lists would live in the main name space. They could
adopt it when there would be some side library mechanism.

Edit 24.08.2022
About side library mechanism, I wonder whether this makes
sense that, that expects_dialect/1 from SWI-Prolog sets the
flag emulated_dialect:

expects_dialect(Dialect) :-
    [...]
    set_prolog_flag(emulated_dialect, Dialect).

So far I was writing portable code by doing some
current_prolog_flag(dialect, _) check. But given the above, it
is not portable enough to be run inside an emulation, if

the emulation doesn’t set the dialect flag, but another flag.
So today I made the flag dialect mutable in my systems,
running some experiments with that. Lets see what happens…