Some things to note here:
1.: There are bugs in the code as I'm no expert on zsh completion *at all*. I just trial-and-error'd a big part of it.
2.: Some things are not done here (marked with a `TODO`), namely the statement syntax of some `nft add` commands.
3.: Some completions try to complete existing chain names/rule handles/table names. For this you either have to be root or use sudo AND enable the gain-privileges zstyle (otherwise this will not work)
4.: I also found the nft man page to be somewhat lacking so there might be some edge case completions which are plain wrong.