Authentication
x-guest-portal-token: <HALLIFY_GUEST_PORTAL_TOKEN>Guest-owned portal session token.
Parameters
No path, query or ordinary header parameters. See authentication and request body below.
Request body
Required
Uses the presented Guest Portal capability to append an explicit consent decision for the identity, organization, and venue owned by that capability.
application/json
Full definition
{
"$ref": "#/components/schemas/RecordGuestPortalConsentDto"
}Responses
200Returns the effective consent profile after recording the decision.
Full definition
{
"$ref": "#/components/schemas/GuestConsentWorkspaceDto"
}{
"identityRevision": 1,
"policyVersion": "example",
"consents": [
{
"id": "4aebbd5f-0775-4a9f-8cdf-18303bfc76dd",
"purpose": "MARKETING_EMAIL",
"status": "UNKNOWN",
"captureSource": "STAFF",
"policyVersion": "example",
"effectiveAt": "2026-01-15T12:00:00.000Z"
}
],
"marketingPreference": {
"frequency": "TRANSACTIONAL_ONLY",
"preferredChannels": [
"EMAIL"
],
"topics": [
"example"
],
"revision": 1
}
}401Rejects a missing, malformed, expired, revoked, or invalid guestPortalToken credential at the owning domain boundary.
Full definition
{
"$ref": "#/components/schemas/TranslatedErrorDto"
}{
"statusCode": 401,
"error": "errors:http.unauthorized",
"code": "HTTP_UNAUTHORIZED",
"message": "errors:http.unauthorized",
"translationKey": "errors:http.unauthorized"
}Schemas
RecordGuestPortalConsentDto
Uses the presented Guest Portal capability to append an explicit consent decision for the identity, organization, and venue owned by that capability.
expectedIdentityRevisionRequiredMonotonic optimistic-concurrency revision for guest portal consent. Accepted values enforce minimum 1.
integerFull definition
{ "type": "integer", "minimum": 1, "description": "Monotonic optimistic-concurrency revision for guest portal consent. Accepted values enforce minimum 1.", "example": 1 }purposeRequiredAllowed purpose for guest portal consent: MARKETING_EMAIL, MARKETING_SMS, MARKETING_PHONE, MARKETING_WHATSAPP, PROFILING.
stringFull definition
{ "type": "string", "enum": [ "MARKETING_EMAIL", "MARKETING_SMS", "MARKETING_PHONE", "MARKETING_WHATSAPP", "PROFILING" ], "description": "Allowed purpose for guest portal consent: MARKETING_EMAIL, MARKETING_SMS, MARKETING_PHONE, MARKETING_WHATSAPP, PROFILING.", "example": "MARKETING_EMAIL" }statusRequiredCurrent lifecycle status of guest portal consent; allowed values are UNKNOWN, OPTED_IN, OPTED_OUT.
stringFull definition
{ "type": "string", "enum": [ "UNKNOWN", "OPTED_IN", "OPTED_OUT" ], "description": "Current lifecycle status of guest portal consent; allowed values are UNKNOWN, OPTED_IN, OPTED_OUT.", "example": "UNKNOWN" }evidenceOptionalHuman-entered evidence retained with guest portal consent for audit or later review. Accepted values enforce maximum length 2000.
stringFull definition
{ "type": "string", "maxLength": 2000, "description": "Human-entered evidence retained with guest portal consent for audit or later review. Accepted values enforce maximum length 2000.", "example": "example" }expiresAtOptionalRFC 3339 timestamp for expires at; offsets represent the same absolute instant.
string · date-timeFull definition
{ "type": "string", "format": "date-time", "description": "RFC 3339 timestamp for expires at; offsets represent the same absolute instant.", "example": "2026-12-31T18:00:00.000Z" }
Full definition
{
"type": "object",
"properties": {
"expectedIdentityRevision": {
"type": "integer",
"minimum": 1,
"description": "Monotonic optimistic-concurrency revision for guest portal consent. Accepted values enforce minimum 1.",
"example": 1
},
"purpose": {
"type": "string",
"enum": [
"MARKETING_EMAIL",
"MARKETING_SMS",
"MARKETING_PHONE",
"MARKETING_WHATSAPP",
"PROFILING"
],
"description": "Allowed purpose for guest portal consent: MARKETING_EMAIL, MARKETING_SMS, MARKETING_PHONE, MARKETING_WHATSAPP, PROFILING.",
"example": "MARKETING_EMAIL"
},
"status": {
"type": "string",
"enum": [
"UNKNOWN",
"OPTED_IN",
"OPTED_OUT"
],
"description": "Current lifecycle status of guest portal consent; allowed values are UNKNOWN, OPTED_IN, OPTED_OUT.",
"example": "UNKNOWN"
},
"evidence": {
"type": "string",
"maxLength": 2000,
"description": "Human-entered evidence retained with guest portal consent for audit or later review. Accepted values enforce maximum length 2000.",
"example": "example"
},
"expiresAt": {
"type": "string",
"format": "date-time",
"description": "RFC 3339 timestamp for expires at; offsets represent the same absolute instant.",
"example": "2026-12-31T18:00:00.000Z"
}
},
"required": [
"expectedIdentityRevision",
"purpose",
"status"
],
"description": "Uses the presented Guest Portal capability to append an explicit consent decision for the identity, organization, and venue owned by that capability.",
"example": {
"expectedIdentityRevision": 1,
"purpose": "MARKETING_EMAIL",
"status": "UNKNOWN"
}
}GuestConsentWorkspaceDto
Returns current consent, channel preferences, sources, and decision timestamps.
identityRevisionRequiredMonotonic optimistic-concurrency revision for guest portal consents.
integerFull definition
{ "type": "integer", "description": "Monotonic optimistic-concurrency revision for guest portal consents.", "example": 1 }policyVersionRequiredPolicy version for guest portal consents.
stringFull definition
{ "type": "string", "description": "Policy version for guest portal consents.", "example": "example" }consentsRequiredConsents included as consents in guest portal consents.
arrayFull definition
{ "type": "array", "items": { "type": "object", "required": [ "id", "purpose", "status", "captureSource", "policyVersion", "effectiveAt" ], "properties": { "id": { "type": "string", "format": "uuid", "description": "Hallify UUID identifying guest portal consents item.", "example": "4aebbd5f-0775-4a9f-8cdf-18303bfc76dd" }, "purpose": { "type": "string", "enum": [ "MARKETING_EMAIL", "MARKETING_SMS", "MARKETING_PHONE", "MARKETING_WHATSAPP", "PROFILING" ], "description": "Allowed purpose for guest portal consents item: MARKETING_EMAIL, MARKETING_SMS, MARKETING_PHONE, MARKETING_WHATSAPP, PROFILING.", "example": "MARKETING_EMAIL" }, "status": { "type": "string", "enum": [ "UNKNOWN", "OPTED_IN", "OPTED_OUT" ], "description": "Current lifecycle status of guest portal consents item; allowed values are UNKNOWN, OPTED_IN, OPTED_OUT.", "example": "UNKNOWN" }, "captureSource": { "type": "string", "enum": [ "STAFF", "GUEST_PORTAL", "RESERVATION", "IMPORT", "PROVIDER" ], "description": "Allowed capture source for guest portal consents item: STAFF, GUEST_PORTAL, RESERVATION, IMPORT, PROVIDER.", "example": "STAFF" }, "policyVersion": { "type": "string", "description": "Policy version for guest portal consents item.", "example": "example" }, "evidence": { "type": "string", "nullable": true, "description": "Human-entered evidence retained with guest portal consents item for audit or later review. Null means no value is recorded for this representation.", "example": "example" }, "effectiveAt": { "type": "string", "format": "date-time", "description": "RFC 3339 timestamp for effective at; offsets represent the same absolute instant.", "example": "2026-01-15T12:00:00.000Z" }, "expiresAt": { "type": "string", "format": "date-time", "nullable": true, "description": "RFC 3339 timestamp for expires at; offsets represent the same absolute instant. Null means no value is recorded for this representation.", "example": "2026-12-31T18:00:00.000Z" } }, "example": { "id": "4aebbd5f-0775-4a9f-8cdf-18303bfc76dd", "purpose": "MARKETING_EMAIL", "status": "UNKNOWN", "captureSource": "STAFF", "policyVersion": "example", "effectiveAt": "2026-01-15T12:00:00.000Z" } }, "description": "Consents included as consents in guest portal consents.", "example": [ { "id": "4aebbd5f-0775-4a9f-8cdf-18303bfc76dd", "purpose": "MARKETING_EMAIL", "status": "UNKNOWN", "captureSource": "STAFF", "policyVersion": "example", "effectiveAt": "2026-01-15T12:00:00.000Z" } ] }marketingPreferenceRequiredMarketing preference details embedded in guest portal consents containing frequency, preferred channels, topics, suppressed until, and revision.
objectFull definition
{ "type": "object", "required": [ "frequency", "preferredChannels", "topics", "revision" ], "properties": { "frequency": { "type": "string", "enum": [ "TRANSACTIONAL_ONLY", "OCCASIONAL", "WEEKLY", "MONTHLY" ], "description": "Allowed frequency for guest portal consents marketing preference: TRANSACTIONAL_ONLY, OCCASIONAL, WEEKLY, MONTHLY.", "example": "TRANSACTIONAL_ONLY" }, "preferredChannels": { "type": "array", "items": { "type": "string", "enum": [ "EMAIL", "SMS", "PHONE", "WHATSAPP" ], "example": "EMAIL" }, "description": "Preferred channels values included as preferred channels in guest portal consents marketing preference.", "example": [ "EMAIL" ] }, "topics": { "type": "array", "items": { "type": "string", "example": "example" }, "description": "Topics values included as topics in guest portal consents marketing preference.", "example": [ "example" ] }, "suppressedUntil": { "type": "string", "format": "date-time", "nullable": true, "description": "RFC 3339 timestamp for suppressed until; offsets represent the same absolute instant. Null means no value is recorded for this representation.", "example": "2026-12-31T18:00:00.000Z" }, "revision": { "type": "integer", "description": "Monotonic optimistic-concurrency revision for guest portal consents marketing preference.", "example": 1 } }, "description": "Marketing preference details embedded in guest portal consents containing frequency, preferred channels, topics, suppressed until, and revision.", "example": { "frequency": "TRANSACTIONAL_ONLY", "preferredChannels": [ "EMAIL" ], "topics": [ "example" ], "revision": 1 } }
Full definition
{
"type": "object",
"required": [
"identityRevision",
"policyVersion",
"consents",
"marketingPreference"
],
"properties": {
"identityRevision": {
"type": "integer",
"description": "Monotonic optimistic-concurrency revision for guest portal consents.",
"example": 1
},
"policyVersion": {
"type": "string",
"description": "Policy version for guest portal consents.",
"example": "example"
},
"consents": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"purpose",
"status",
"captureSource",
"policyVersion",
"effectiveAt"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "Hallify UUID identifying guest portal consents item.",
"example": "4aebbd5f-0775-4a9f-8cdf-18303bfc76dd"
},
"purpose": {
"type": "string",
"enum": [
"MARKETING_EMAIL",
"MARKETING_SMS",
"MARKETING_PHONE",
"MARKETING_WHATSAPP",
"PROFILING"
],
"description": "Allowed purpose for guest portal consents item: MARKETING_EMAIL, MARKETING_SMS, MARKETING_PHONE, MARKETING_WHATSAPP, PROFILING.",
"example": "MARKETING_EMAIL"
},
"status": {
"type": "string",
"enum": [
"UNKNOWN",
"OPTED_IN",
"OPTED_OUT"
],
"description": "Current lifecycle status of guest portal consents item; allowed values are UNKNOWN, OPTED_IN, OPTED_OUT.",
"example": "UNKNOWN"
},
"captureSource": {
"type": "string",
"enum": [
"STAFF",
"GUEST_PORTAL",
"RESERVATION",
"IMPORT",
"PROVIDER"
],
"description": "Allowed capture source for guest portal consents item: STAFF, GUEST_PORTAL, RESERVATION, IMPORT, PROVIDER.",
"example": "STAFF"
},
"policyVersion": {
"type": "string",
"description": "Policy version for guest portal consents item.",
"example": "example"
},
"evidence": {
"type": "string",
"nullable": true,
"description": "Human-entered evidence retained with guest portal consents item for audit or later review. Null means no value is recorded for this representation.",
"example": "example"
},
"effectiveAt": {
"type": "string",
"format": "date-time",
"description": "RFC 3339 timestamp for effective at; offsets represent the same absolute instant.",
"example": "2026-01-15T12:00:00.000Z"
},
"expiresAt": {
"type": "string",
"format": "date-time",
"nullable": true,
"description": "RFC 3339 timestamp for expires at; offsets represent the same absolute instant. Null means no value is recorded for this representation.",
"example": "2026-12-31T18:00:00.000Z"
}
},
"example": {
"id": "4aebbd5f-0775-4a9f-8cdf-18303bfc76dd",
"purpose": "MARKETING_EMAIL",
"status": "UNKNOWN",
"captureSource": "STAFF",
"policyVersion": "example",
"effectiveAt": "2026-01-15T12:00:00.000Z"
}
},
"description": "Consents included as consents in guest portal consents.",
"example": [
{
"id": "4aebbd5f-0775-4a9f-8cdf-18303bfc76dd",
"purpose": "MARKETING_EMAIL",
"status": "UNKNOWN",
"captureSource": "STAFF",
"policyVersion": "example",
"effectiveAt": "2026-01-15T12:00:00.000Z"
}
]
},
"marketingPreference": {
"type": "object",
"required": [
"frequency",
"preferredChannels",
"topics",
"revision"
],
"properties": {
"frequency": {
"type": "string",
"enum": [
"TRANSACTIONAL_ONLY",
"OCCASIONAL",
"WEEKLY",
"MONTHLY"
],
"description": "Allowed frequency for guest portal consents marketing preference: TRANSACTIONAL_ONLY, OCCASIONAL, WEEKLY, MONTHLY.",
"example": "TRANSACTIONAL_ONLY"
},
"preferredChannels": {
"type": "array",
"items": {
"type": "string",
"enum": [
"EMAIL",
"SMS",
"PHONE",
"WHATSAPP"
],
"example": "EMAIL"
},
"description": "Preferred channels values included as preferred channels in guest portal consents marketing preference.",
"example": [
"EMAIL"
]
},
"topics": {
"type": "array",
"items": {
"type": "string",
"example": "example"
},
"description": "Topics values included as topics in guest portal consents marketing preference.",
"example": [
"example"
]
},
"suppressedUntil": {
"type": "string",
"format": "date-time",
"nullable": true,
"description": "RFC 3339 timestamp for suppressed until; offsets represent the same absolute instant. Null means no value is recorded for this representation.",
"example": "2026-12-31T18:00:00.000Z"
},
"revision": {
"type": "integer",
"description": "Monotonic optimistic-concurrency revision for guest portal consents marketing preference.",
"example": 1
}
},
"description": "Marketing preference details embedded in guest portal consents containing frequency, preferred channels, topics, suppressed until, and revision.",
"example": {
"frequency": "TRANSACTIONAL_ONLY",
"preferredChannels": [
"EMAIL"
],
"topics": [
"example"
],
"revision": 1
}
}
},
"description": "Returns current consent, channel preferences, sources, and decision timestamps.",
"example": {
"identityRevision": 1,
"policyVersion": "example",
"consents": [
{
"id": "4aebbd5f-0775-4a9f-8cdf-18303bfc76dd",
"purpose": "MARKETING_EMAIL",
"status": "UNKNOWN",
"captureSource": "STAFF",
"policyVersion": "example",
"effectiveAt": "2026-01-15T12:00:00.000Z"
}
],
"marketingPreference": {
"frequency": "TRANSACTIONAL_ONLY",
"preferredChannels": [
"EMAIL"
],
"topics": [
"example"
],
"revision": 1
}
}
}TranslatedErrorDto
Stable error envelope emitted by the global HTTP exception boundary. Domain-specific machine data, when present, is nested under details.
statusCodeRequiredHTTP status code repeated from the response.
integerFull definition
{ "type": "integer", "description": "HTTP status code repeated from the response.", "example": 400 }errorRequiredTranslation key for the HTTP category, such as errors:http.conflict. The specific cause is identified by code and translationKey.
stringFull definition
{ "type": "string", "description": "Translation key for the HTTP category, such as errors:http.conflict. The specific cause is identified by code and translationKey.", "example": "errors.request.invalid" }codeRequiredStable machine-readable domain code, or an HTTP_* fallback when no domain code is provided. Branch on this field and the HTTP status; localized wording never controls retries or business decisions.
stringFull definition
{ "type": "string", "example": "HTTP_BAD_REQUEST", "description": "Stable machine-readable domain code, or an HTTP_* fallback when no domain code is provided. Branch on this field and the HTTP status; localized wording never controls retries or business decisions." }messageRequiredTranslation key, identical to translationKey. The API does not return localized display text. Resolve the key and translationValues in the consuming application.
stringFull definition
{ "type": "string", "example": "errors:http.badRequest", "description": "Translation key, identical to translationKey. The API does not return localized display text. Resolve the key and translationValues in the consuming application." }translationKeyRequiredCanonical translation key, identical to message. Status-specific errors:http.* keys cover unspecified failures. Public keys and EN/RU explanations are listed in Developers; unknown keys require a localized client fallback.
stringFull definition
{ "type": "string", "example": "errors:http.badRequest", "description": "Canonical translation key, identical to message. Status-specific errors:http.* keys cover unspecified failures. Public keys and EN/RU explanations are listed in Developers; unknown keys require a localized client fallback." }translationValuesOptionalOptional scalar values for placeholders in the translation. Treat values as data, escape them when rendering, and never use them as translation options.
objectFull definition
{ "type": "object", "additionalProperties": { "oneOf": [ { "type": "string", "example": "example" }, { "type": "number", "example": 0 }, { "type": "boolean", "example": true } ], "example": "example" }, "description": "Optional scalar values for placeholders in the translation. Treat values as data, escape them when rendering, and never use them as translation options.", "example": { "exampleKey": "example" } }validationErrorsOptionalField validation failures with translation keys and stable validator codes. Submitted values and raw validator text are not included.
arrayFull definition
{ "description": "Field validation failures with translation keys and stable validator codes. Submitted values and raw validator text are not included.", "type": "array", "items": { "$ref": "#/components/schemas/ValidationErrorDto" }, "example": [ { "field": "email", "translationKey": "validation:isEmail", "code": "isEmail", "message": "validation:isEmail" } ] }detailsOptionalOptional domain-specific blocker or validation details
oneOfFull definition
{ "description": "Optional domain-specific blocker or validation details", "oneOf": [ { "type": "array", "items": { "$ref": "#/components/schemas/JsonValue" }, "example": [ "example" ] }, { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/JsonValue" }, "example": { "exampleKey": "example" } } ], "example": [ "example" ] }
Full definition
{
"type": "object",
"properties": {
"statusCode": {
"type": "integer",
"description": "HTTP status code repeated from the response.",
"example": 400
},
"error": {
"type": "string",
"description": "Translation key for the HTTP category, such as errors:http.conflict. The specific cause is identified by code and translationKey.",
"example": "errors.request.invalid"
},
"code": {
"type": "string",
"example": "HTTP_BAD_REQUEST",
"description": "Stable machine-readable domain code, or an HTTP_* fallback when no domain code is provided. Branch on this field and the HTTP status; localized wording never controls retries or business decisions."
},
"message": {
"type": "string",
"example": "errors:http.badRequest",
"description": "Translation key, identical to translationKey. The API does not return localized display text. Resolve the key and translationValues in the consuming application."
},
"translationKey": {
"type": "string",
"example": "errors:http.badRequest",
"description": "Canonical translation key, identical to message. Status-specific errors:http.* keys cover unspecified failures. Public keys and EN/RU explanations are listed in Developers; unknown keys require a localized client fallback."
},
"translationValues": {
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "string",
"example": "example"
},
{
"type": "number",
"example": 0
},
{
"type": "boolean",
"example": true
}
],
"example": "example"
},
"description": "Optional scalar values for placeholders in the translation. Treat values as data, escape them when rendering, and never use them as translation options.",
"example": {
"exampleKey": "example"
}
},
"validationErrors": {
"description": "Field validation failures with translation keys and stable validator codes. Submitted values and raw validator text are not included.",
"type": "array",
"items": {
"$ref": "#/components/schemas/ValidationErrorDto"
},
"example": [
{
"field": "email",
"translationKey": "validation:isEmail",
"code": "isEmail",
"message": "validation:isEmail"
}
]
},
"details": {
"description": "Optional domain-specific blocker or validation details",
"oneOf": [
{
"type": "array",
"items": {
"$ref": "#/components/schemas/JsonValue"
},
"example": [
"example"
]
},
{
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/JsonValue"
},
"example": {
"exampleKey": "example"
}
}
],
"example": [
"example"
]
}
},
"required": [
"statusCode",
"error",
"code",
"message",
"translationKey"
],
"description": "Stable error envelope emitted by the global HTTP exception boundary. Domain-specific machine data, when present, is nested under details.",
"example": {
"statusCode": 400,
"error": "errors:http.badRequest",
"code": "HTTP_BAD_REQUEST",
"message": "errors:http.badRequest",
"translationKey": "errors:http.badRequest"
}
}ValidationErrorDto
Field validation failure with a field path, stable validator code and a translation key. Human-readable text belongs to the consuming application.
fieldRequiredPublic field path. Nested properties and array indices are separated by dots.
stringFull definition
{ "type": "string", "example": "email", "description": "Public field path. Nested properties and array indices are separated by dots." }translationKeyRequiredTranslation key for this validator, identical to message. Resolve it using a client dictionary; see the public Developers error catalog.
stringFull definition
{ "type": "string", "example": "validation:isEmail", "description": "Translation key for this validator, identical to message. Resolve it using a client dictionary; see the public Developers error catalog." }codeRequiredStable validator identifier for this field failure. Custom validators may define additional identifiers.
stringFull definition
{ "type": "string", "example": "isEmail", "description": "Stable validator identifier for this field failure. Custom validators may define additional identifiers." }messageRequiredTranslation key describing this field validation failure, identical to translationKey. Submitted values and validator prose are not included.
stringFull definition
{ "type": "string", "example": "validation:isEmail", "description": "Translation key describing this field validation failure, identical to translationKey. Submitted values and validator prose are not included." }translationValuesOptionalOptional scalar values for placeholders in the translation. Treat values as data, escape them when rendering, and never use them as translation options.
objectFull definition
{ "type": "object", "additionalProperties": { "oneOf": [ { "type": "string", "example": "example" }, { "type": "number", "example": 0 }, { "type": "boolean", "example": true } ], "example": "example" }, "description": "Optional scalar values for placeholders in the translation. Treat values as data, escape them when rendering, and never use them as translation options.", "example": { "exampleKey": "example" } }
Full definition
{
"type": "object",
"properties": {
"field": {
"type": "string",
"example": "email",
"description": "Public field path. Nested properties and array indices are separated by dots."
},
"translationKey": {
"type": "string",
"example": "validation:isEmail",
"description": "Translation key for this validator, identical to message. Resolve it using a client dictionary; see the public Developers error catalog."
},
"code": {
"type": "string",
"example": "isEmail",
"description": "Stable validator identifier for this field failure. Custom validators may define additional identifiers."
},
"message": {
"type": "string",
"example": "validation:isEmail",
"description": "Translation key describing this field validation failure, identical to translationKey. Submitted values and validator prose are not included."
},
"translationValues": {
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "string",
"example": "example"
},
{
"type": "number",
"example": 0
},
{
"type": "boolean",
"example": true
}
],
"example": "example"
},
"description": "Optional scalar values for placeholders in the translation. Treat values as data, escape them when rendering, and never use them as translation options.",
"example": {
"exampleKey": "example"
}
}
},
"required": [
"field",
"translationKey",
"code",
"message"
],
"description": "Field validation failure with a field path, stable validator code and a translation key. Human-readable text belongs to the consuming application.",
"example": {
"field": "email",
"translationKey": "validation:isEmail",
"code": "isEmail",
"message": "validation:isEmail"
}
}JsonValue
Recursively JSON-safe value used only where the owning contract intentionally allows free-form structured data.
Full definition
{
"oneOf": [
{
"type": "string",
"nullable": true,
"example": "example"
},
{
"type": "number",
"example": 0
},
{
"type": "boolean",
"example": true
},
{
"type": "array",
"items": {
"$ref": "#/components/schemas/JsonValue"
},
"example": [
"example"
]
},
{
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/JsonValue"
},
"example": {
"exampleKey": "example"
}
}
],
"description": "Recursively JSON-safe value used only where the owning contract intentionally allows free-form structured data.",
"example": "example"
}