{
"id": "tech.transparencia.news.enrichment",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"article",
"summary",
"impactLevel",
"eventType",
"contentDomain",
"modelUsed",
"createdAt"
],
"properties": {
"claims": {
"type": "array",
"items": {
"ref": "tech.transparencia.defs#claim",
"type": "ref"
},
"maxLength": 10,
"description": "Key factual claims or assertions extracted from the article."
},
"people": {
"type": "array",
"items": {
"ref": "tech.transparencia.defs#person",
"type": "ref"
},
"maxLength": 50,
"description": "People mentioned in the article with role and sentiment."
},
"region": {
"type": "string",
"maxLength": 32,
"description": "Geographic scope of the article's relevance.",
"knownValues": [
"local",
"state",
"national",
"regional",
"global"
]
},
"topics": {
"type": "array",
"items": {
"type": "string",
"maxLength": 512,
"maxGraphemes": 128
},
"maxLength": 10,
"description": "Main topics covered (max 10)."
},
"article": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "Strong reference to the tech.transparencia.news.article record being enriched."
},
"costUsd": {
"type": "string",
"maxLength": 32,
"description": "Estimated cost of this enrichment in USD as a decimal string (e.g., '0.001234'). Allows consumers to audit AI spend transparently."
},
"summary": {
"type": "string",
"maxLength": 10000,
"description": "AI-generated summary of the article (2-3 sentences).",
"maxGraphemes": 2000
},
"language": {
"type": "string",
"format": "language",
"description": "Language of this enrichment's free-text fields (BCP-47, e.g., 'es', 'en')."
},
"timeline": {
"type": "array",
"items": {
"ref": "tech.transparencia.defs#timelineEntry",
"type": "ref"
},
"maxLength": 20,
"description": "Chronological events mentioned in the article."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "When this enrichment was generated."
},
"eventType": {
"type": "string",
"maxLength": 64,
"description": "Primary category of the news event.",
"knownValues": [
"announcement",
"policy-legislation",
"election-vote",
"appointment-resignation",
"scandal-controversy",
"investigation-audit",
"court-ruling-legal",
"protest-demonstration",
"armed-conflict",
"natural-disaster",
"accident",
"crime-incident",
"market-movement",
"earnings-financial-results",
"merger-acquisition",
"product-launch",
"product-recall",
"scientific-discovery",
"medical-breakthrough",
"epidemic-health-crisis",
"infrastructure-project",
"cultural-event",
"awards-ceremony",
"match-result",
"transfer-signing",
"tournament-competition",
"record-achievement",
"death-obituary",
"interview-profile",
"opinion-editorial",
"data-report-study",
"forecast-prediction",
"regulatory-action",
"environmental-incident",
"diplomatic-relations",
"humanitarian-crisis",
"trend-analysis",
"review-critique",
"other"
]
},
"locations": {
"type": "array",
"items": {
"ref": "tech.transparencia.defs#location",
"type": "ref"
},
"maxLength": 20,
"description": "Geographic locations referenced in the article."
},
"modelUsed": {
"type": "string",
"maxLength": 256,
"description": "AI model identifier used for this enrichment (e.g., 'gemini-2.5-flash')."
},
"impactLevel": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "Estimated relevance and significance. 1=minor local note, 5=nationally or industry-wide relevant, 10=global crisis or historic event."
},
"inputTokens": {
"type": "integer",
"description": "Number of input tokens sent to the AI model for this enrichment."
},
"modelVersion": {
"type": "string",
"maxLength": 128,
"description": "Specific model version or checkpoint if available."
},
"outputTokens": {
"type": "integer",
"description": "Number of output tokens received from the AI model for this enrichment."
},
"readingLevel": {
"type": "string",
"maxLength": 32,
"description": "Estimated reading difficulty of the original article.",
"knownValues": [
"basic",
"intermediate",
"advanced"
]
},
"contentDomain": {
"type": "string",
"maxLength": 64,
"description": "Primary domain/vertical of the article content, aligned with IPTC Media Topics top-level categories.",
"knownValues": [
"arts-culture-entertainment",
"crime-law-justice",
"disaster-accident",
"economy-business-finance",
"education",
"environment",
"health",
"human-interest",
"labour",
"lifestyle-leisure",
"politics",
"religion",
"science-technology",
"society",
"sport",
"conflict-war-peace",
"weather"
]
},
"emotionalTone": {
"type": "string",
"maxLength": 32,
"description": "Emotional framing of the article, independent of political orientation.",
"knownValues": [
"alarmist",
"critical",
"neutral",
"optimistic",
"celebratory",
"melancholic",
"informative",
"satirical",
"inspirational",
"sensationalist",
"technical",
"investigative"
]
},
"clickbaitScore": {
"type": "integer",
"maximum": 10,
"minimum": 0,
"description": "How accurately the headline represents the actual content. 0=pure clickbait (misleading/sensationalist title), 10=headline perfectly represents the article."
},
"structuredRefs": {
"type": "array",
"items": {
"ref": "tech.transparencia.defs#structuredRef",
"type": "ref"
},
"maxLength": 20,
"description": "Typed references to external entities (laws, stocks, products, teams, etc.)."
},
"impactReasoning": {
"type": "string",
"maxLength": 5000,
"description": "Explanation of the impact score.",
"maxGraphemes": 1000
},
"neutralHeadline": {
"type": "string",
"maxLength": 2048,
"description": "AI-rewritten neutral headline, stripped of editorial bias.",
"maxGraphemes": 512
},
"relatedKeywords": {
"type": "array",
"items": {
"type": "string",
"maxLength": 256,
"maxGraphemes": 64
},
"maxLength": 15,
"description": "Keywords for event matching and clustering."
},
"factCheckability": {
"type": "integer",
"maximum": 5,
"minimum": 1,
"description": "How verifiable are the article's claims? 1=pure opinion, 5=hard data with checkable sources."
},
"clickbaitReasoning": {
"type": "string",
"maxLength": 5000,
"description": "Explanation of the clickbait score.",
"maxGraphemes": 1000
},
"economicIndicators": {
"type": "array",
"items": {
"ref": "tech.transparencia.defs#economicIndicator",
"type": "ref"
},
"maxLength": 10,
"description": "Economic data points mentioned in the article."
},
"organizationEntities": {
"type": "array",
"items": {
"ref": "tech.transparencia.defs#organization",
"type": "ref"
},
"maxLength": 30,
"description": "Organizations mentioned in the article with structured metadata."
},
"orientationReasoning": {
"type": "string",
"maxLength": 5000,
"description": "Explanation of why this orientation was assigned.",
"maxGraphemes": 1000
},
"politicalOrientation": {
"type": "string",
"maxLength": 32,
"description": "Detected political bias of the article's framing (not the topic itself).",
"knownValues": [
"left",
"center-left",
"center",
"center-right",
"right",
"neutral"
]
},
"orientationConfidence": {
"type": "string",
"maxLength": 16,
"description": "Confidence in the orientation assessment (decimal string 0-1)."
}
}
},
"description": "AI enrichment of a news article with structured analysis."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1,
"description": "AI-generated structured metadata for a news article. Uses the sidecar pattern — references the article via strongRef so multiple enrichments (from different models or analysts) can coexist."
}