Undergrads don't start with a formal spec and develop four independent client implementations simultaneously in different programming languages.
Alternatively, several of them develop several components in parallel with constant communication to keep them in sync and with a spec. These have the minimum, basic requirements.
Then, there's security-focused products that... going by your statement... start with a formal spec that ignores basic, integrity checks then develop four implementations simultaneously also missing basics. "Not a great plan." (Tony Stark)