Forms: User behavior specification
Makes the server the authority for form validity while the client validates for speed, sharing error codes, focusing the first invalid field, and never leaking whether a private record exists.
Requires exclusive pending, success, error, and empty states for async screens, forbids an unbounded spinner, announces completion, and preserves user input when a request fails.