Input validation is the kind of thing that sounds easy on the surface but then gets weirdly hard to implement and maintain effectively as the app grows. You may find validation code ends up getting copied or spread across the application. People get used to it and it just becomes “the way it must be”. Except… it doesn’t need to be that way. You CAN centralize ALL of your validation logic in one place while keeping it flexible enough to use with any input source.