“The software must not determine whether an arbitrary input program halts” ← Now THAT is truly a requirement
“The app must send a JSON query to the /foo endpoints when the submit button is clicked” ← That is a specific design which might change in any one of a dozen ways in the course of implementation (protobuf instead of JSON! /foo is renamed! autosave instead of submit button! etc etc etc)