A test whose job is catching subtle JSON-serializer drift should not use loose comparison - deepEqual would pass a string 1 against a numeric 1. Also documents the zod/v4 isSchemaOptional() quirk on bare .default() at the call site rather than only in a planning doc.