# ===================================================================== # Content Events — published by Content Service # ===================================================================== events: content.template.published.v1: routing_key: content.template.published.v1 description: A template (project_container) was published. payload: type: object required: [container_id, slug, primary_mode] properties: container_id: { type: string, format: uuid } tenant_id: { type: string, format: uuid, nullable: true } slug: { type: string } name: { type: string } primary_mode: { type: string } project_ids: type: array items: { type: string, format: uuid } content.template.unpublished.v1: routing_key: content.template.unpublished.v1 payload: type: object required: [container_id, reason] properties: container_id: { type: string, format: uuid } tenant_id: { type: string, format: uuid, nullable: true } slug: { type: string } reason: { type: string } content.font.installed.v1: routing_key: content.font.installed.v1 description: Font registered as installed on render nodes. payload: type: object required: [font_id, name, system_name, node_ids] properties: font_id: { type: string, format: uuid } name: { type: string } system_name: { type: string } node_ids: type: array items: { type: string, format: uuid } content.svg_preview.generated.v1: routing_key: content.svg_preview.generated.v1 description: AI service produced an SVG color preview for a scene/project. payload: type: object required: [svg_preview_id, svg_url, color_zones_count] properties: svg_preview_id: { type: string, format: uuid } project_id: { type: string, format: uuid, nullable: true } scene_id: { type: string, format: uuid, nullable: true } svg_url: { type: string } thumbnail_url: { type: string, nullable: true } color_zones_count: { type: integer } quality_score: { type: number, minimum: 0, maximum: 1 } generated_by_ai: { type: boolean }