- withMissingInviteConsentFixture serializa a janela de operação sob lease
(serializeWindow default true; teste de ensures concorrentes migrou para
key/lease privada; re-verificação/re-delete do gap setup→janela)
- spec Onda0 volta a leases shared (exclusivo causava ABBA com escritores de
invite) e o down-migration restaura as linhas com os ids originais
(restoreConsentRows compartilhado; no-op para o resto da suíte)
- asserções de restore referenciam o snapshot do fixture (contrato real);
rollback asserta id+key; ORDER BY/sort nas leituras limit-1
- contraprova: suíte int completa ×5 + 6 arquivos da key ×13/14 verdes