enumNames (v5 proposal) - sgpinkus/json-schema GitHub Wiki
JSON-SCHEMA-ORG/JSON-SCHEMA-SPEC REPOSITORY.
THIS WIKI IS OBSOLETE. PLEASE SEE THE NEWNOTE: This proposal has been migrated to https://github.com/json-schema-org/json-schema-spec/issues/57
Proposed keywords
enumNames
Purpose
Currently, enum values might be inscrutable, they might be meaningful in only one language, or they might be complex objects/arrays.
This keyword would provide short, meaningful names for each enum entry.
Values
The value of enumNames
should be an array. The items in the array should be strings (or [multilingual objects](multilingual-meta-data-(v5-proposal)), if that makes it into the standard).
Behaviour
The names should be matched up to the enum options according to their positions in the respective arrays.
Example
{
"enum": [
"tri",
"sq"
"saw"
],
"enumNames": [
"triangle wave",
"square wave",
"sawtooth wave"
]
}
Concerns
oneOf
Already covered by You can express this (and more) using oneOf
:
{
"oneOf": [
{"enum": ["value1"], "title": "Value #1"},
{"enum": ["value2"], "title": "Value #2"}
]
}
It's actually not that much more verbose than enumNames
, plus it would group the title/description/value in the same place.
Clunkiness
It seems a bit clunky to have this as a separate keyword, but it is important to not complicate the syntax for enum
.
Other keywords
Are there any other keywords that need something like this? If we're doing it for enum
, should we think about a human-readable description for pattern
?