Is this a breaking change? It feels borderline.

Keyword-only subscripts are permitted. The positional index will be the empty tuple:
obj[spam=1, eggs=2]
# calls type(obj).__getitem__(obj, (), spam=1, eggs=2)

I.e. consider:

>>> d = dict()
>>> d[()] = "foo"
>>> d
{(): 'foo'}
I don't really object to this fact, and one could argue it's not a breaking change since a built-in dict will simply raise an exception with keyword arguments.  However, it does make the empty tuple the "default key" for new objects that will accept keyword indices.

The dead increasingly dominate and strangle both the living and the
not-yet born.  Vampiric capital and undead corporate persons abuse
the lives and control the thoughts of homo faber. Ideas, once born,
become abortifacients against new conceptions.