Please explain `export type Extension = {extension: Extension} | readonly Extension[]`

There are library types that just declare their extension property without actually defining it, such as the values returned by Facet.of. Those provide the terminator. You can’t define new terminator values in user code.