// Basic assertion: expect(value, 'to be a string')
type SimpleAssertion = ['to be a string'];
// Parameterized assertion: expect(value, 'to be greater than', 5)
type ParametricAssertion = [z.number(), 'to be greater than', z.number()];
// Choice-based assertion: expect(value, ['to be', 'to equal'], expected)
type ChoiceAssertion = [z.any(), ['to be', 'to equal'], z.any()];
Non-empty tuple type representing the complete structure of an assertion.
This defines the signature of an assertion by combining phrases (natural language) and Zod schemas (validation constraints). The tuple must contain at least one element and typically starts with a subject schema followed by phrase literals and additional parameter schemas.