The button was unresponsive because the form's flat data structure
({ SpreadDescriptor }) didn't match the Zod schema's nested structure
({ Spread: { SpreadDescriptor } }), causing silent validation failure.
Updated schema to match form state and transform to nested structure
only when submitting to the API.