The ZX calculus is a language for surface code lattice surgery | Synapse