VSNS can work, if you look up FILT serialization/deserialization. It would also allow it to be as compact as possible.
I would recommend using ACEL instead though, it's intended for stuff like this. You can also set ACEL's .life to increase the speed it accelerates photons by.