Hi Steve,
What you can do is use a microflow for your save button. This microflow will have a parameter of the same entity type as your form, and then at the beggining of the microflow you can use exclusive splits to do all your validation. If the exclusive split is true then save, if its false then show a message or validation feedback.
Hope this helps!