{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://goodgo.vn/schemas/events/listing.nlp_enriched.schema.json", "title": "listing.nlp_enriched", "description": "Emitted by the AI NLP worker with quality/keyword enrichment for a submitted listing. Consumed by the listings projection to update search + quality-score fields.", "type": "object", "additionalProperties": false, "required": [ "listingId", "qualityScore", "keywords", "detectedLanguage", "modelVersion", "scoredAt" ], "properties": { "listingId": { "type": "string", "minLength": 1 }, "qualityScore": { "type": "number", "minimum": 0, "maximum": 1, "description": "Normalized description-quality score. Higher = better." }, "keywords": { "type": "array", "items": { "type": "string", "minLength": 1 }, "maxItems": 50, "description": "Extracted keywords / key phrases (Vietnamese or English)." }, "detectedLanguage": { "type": "string", "pattern": "^[a-z]{2}(-[A-Z]{2})?$", "description": "IETF BCP-47 language tag, e.g. vi, en, vi-VN." }, "modelVersion": { "type": "string", "minLength": 1 }, "scoredAt": { "type": "string", "format": "date-time" } } }