fix(shared): support non-string discriminator property types
OpenAPI discriminator mappings use string keys, but the actual discriminator
property may be boolean, integer, or number. Previously, all discriminator
values were hardcoded as type 'string'. This change detects the actual
property type from the schema and converts mapping values accordingly.