{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/hint-health/main/json-schema/hint-health-product-overview-sanitizer-schema.json", "title": "ProductOverviewSanitizer", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/hint-health-partnerproductoverview-api-openapi.yml#/components/schemas/ProductOverviewSanitizer", "type": "object", "properties": { "description": { "type": "string", "description": "Overview body. Renders on the marketplace listing. **Length:** ~500 chars is recommended (the marketplace listing card truncates longer copy in display). hint-api does not currently enforce a hard cap, but partners should treat 500 as the design target." }, "images": { "type": "array", "items": { "$ref": "#/$defs/ProductOverviewSanitizer.ImageSanitizer" }, "description": "Overview images. The array is reconciled by `id`: entries with a matching `id` are edited in place, entries without an `id` are created, and any existing images not represented in the array are deleted. Omitting the `images` key entirely leaves images unchanged." } }, "$defs": { "ProductOverviewSanitizer.ImageSanitizer": { "type": "object", "properties": { "id": { "type": "string", "description": "Public id of an existing image (e.g. `\"ptrimg-...\"`). Include to edit; omit to create a new image." }, "url": { "type": "string", "description": "Image as a base64 data URI (e.g. `\"data:image/png;base64,...\"`). Required when creating a new image; ignored when editing. **Note: the field name differs across listing sections.** Overview images use `url`; highlights (`ProductHighlightSanitizer`) use `image`. Both take the same data-URI payload — only the key differs." }, "alt": { "type": "string", "description": "Alt text used for accessibility." } } } } }