update validate-tooling-data for eliminate case insensitive languages #1516
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What kind of change does this PR introduce?
Feature - Adds case-insensitive unique validation for language entries
Issue Number:
Screenshots/videos:

Forcefully made mistakes in the name of language,
Validator finds the mistake,

If relevant, did you update the documentation?
Summary
This PR introduces case-insensitive unique validation for language entries in the tooling data to solve several existing problems:
My solution:
Implements a custom AJV keyword
caseInsensitiveUnique
that:Does this PR introduce a breaking change?
✅ Yes
Impact:
This PR enforces case-insensitive uniqueness for language entries. Any existing tooling data that includes language names with inconsistent casing—such as
"JavaScript"
and"javascript"
—will now fail validation. This change helps eliminate redundancy and confusion caused by duplicate entries with different letter cases.Who is affected:
Tool maintainers and contributors who have added language entries with varying casing.
Migration Path:
Update your
languages
arrays to ensure that each language appears only once in a consistent format, preferably matching the casing defined in the schema enum. For example: