Fix discriminator inheritance to use Omit for proper type narrowing
- Remove union of child discriminator values from intermediate types
- Each type now gets only its direct discriminator value
- Use Omit<> to remove parent discriminator properties and avoid conflicts
- Enables proper TypeScript type narrowing with discriminated unions
Example: CarDto.$type is now 'Car' instead of 'Car' | 'Volvo'
VolvoDto uses Omit<CarDto, '$type'> & { $type: 'Volvo' }
Co-authored-by: mrlubos <12529395+mrlubos@users.noreply.github.com>