Location attributes validation rules for name-value pairs, categories compatibility, and feature constraints
Location Attributes
LocationAttributesListMustNotIncludeNulls
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that a list does not include null |
LocationAttributesMustNotBeEmptyArray
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that locationAttributes is not an empty array |
Example Validation Report
{
"code": "VALIDATION__LocationAttributesMustNotBeEmptyArray",
"message": "'{{field}}' must be omitted or contain at least one element; empty arrays are not allowed.",
"severity": "VIOLATION",
"context": {
"field": "locationAttributes"
},
"details": {
"compared": [],
"expected": [],
"submitted": [
{
"field": "$.locationDetails.locationAttributes",
"value": "[]"
}
],
"createdDate": "2026-03-03T13:58:43.946Z"
}
}
LocationAttributesProvidedMustNotBePresent
| Preconditions |
|---|
locationAttributes are present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that provided is not present |
LocationAttributesTypeMustNotBePresent
| Preconditions |
|---|
locationAttributes are present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that type is not present |
Name
IncompatibleNameCombination
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that a name is compatible with another listed name |
Incompatibles
| Name | Not Compatible With |
|---|---|
accolades.michelin.key | accolades.michelin.bib_gourmand, accolades.michelin.green_star |
accolades.michelin.star | accolades.michelin.bib_gourmand, accolades.michelin.key |
accolades.golf_digest.100_greatest_courses_in_admin_area_type | accolades.golf_digest.2nd_100_greatest_courses_in_admin_area_type |
Example Validation Report
{
"code": "VALIDATION__IncompatibleNameCombination",
"severity": "VIOLATION",
"message": "'{{name}}' is incompatible with another listed name",
"context": {
"name": "accolades.michelin.bib_gourmand"
},
"details": {
"createdDate": "2026-10-10T11:36:02.00Z",
"submitted": [
{
"field": "$.locationDetails.locationAttributes[0].name",
"value": "accolades.michelin.bib_gourmand"
},
{
"field": "$.locationDetails.locationAttributes[1].name",
"value": "accolades.michelin.star"
}
],
"compared": [],
"expected": []
}
}
LocationAttributesNameMustBeDistinct
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that each name is distinct | Link |
LocationAttributesNameMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that name is not an empty string |
LocationAttributesNameMustBePresent
| Preconditions |
|---|
locationAttributes are present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that name is present | Link |
LocationAttributesNameMustBeValid
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that name is valid | Link |
LocationAttributesNameNotExpectedFromYourOrg
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that a name is submitted by an expected organization |
Example Validation Report
{
"code": "VALIDATION__LocationAttributesNameNotExpectedFromYourOrg",
"severity": "VIOLATION",
"message": "Location attribute 'name' '{{value}}' is not expected from your organization",
"context": {
"value": "accolades.michelin.bib_gourmand"
},
"details": {
"createdDate": "2026-09-01T21:00:59.865Z",
"submitted": [
{
"field": "$.locationDetails.locationAttributes[0].name",
"value": "accolades.michelin.bib_gourmand"
}
],
"compared": [],
"expected": []
}
}
Value
LocationAttributesValueMustBePresent
| Preconditions |
|---|
locationAttributes are present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that value is present |
LocationAttributesValueMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that value is not an empty string |
LocationAttributesValueMustMatchAllowableItem
| Preconditions |
|---|
| Name's allowable values are itemized |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that value matches an allowed item |
Example Validation Report
{
"code": "VALIDATION__LocationAttributesValueMustMatchAllowableItem",
"severity": "VIOLATION",
"message": "'{{value}}' value does not match an item allowed for 'name'",
"context": {
"value": "NEIGHBORHOOD"
},
"details": {
"createdDate": "2026-10-10T11:36:02.00Z",
"submitted": [
{
"field": "$.locationDetails.locationAttributes[0].name",
"value": "accolades.golf_digest.best_in_admin_area_type"
},
{
"field": "$.locationDetails.locationAttributes[0].value",
"value": "NEIGHBORHOOD"
}
],
"compared": [],
"expected": []
}
}