addedOutput schema / properties / source_evidence
Added value: +{
+ "additionalProperties": false,
+ "description": "Immutable source observations, bounded exact extracts, and candidate-to-served lineage. Corrupt parent chains are suppressed without echoing raw values.",
+ "properties": {
+ "corrupt_fields": {
+ "description": "Bounded markers for rows whose identifiers, canonical URL, timestamps, checksums, JSON snapshots, or lineage could not be safely projected. Malformed raw values are never echoed.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "category": {
+ "enum": [
+ "source_asset",
+ "extract",
+ "evidence_edge",
+ "legacy_lineage"
+ ],
+ "type": "string"
+ },
+ "row_index": {
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "category",
+ "row_index"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "evidence_edges": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "candidate_id": {
+ "type": "string"
+ },
+ "commission_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "created_at": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "evidence_edge_id": {
+ "pattern": "^edg_[0-9a-f]{24}$",
+ "type": "string"
+ },
+ "extract_id": {
+ "pattern": "^ext_[0-9a-f]{24}$",
+ "type": "string"
+ },
+ "hook_instance_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "item_index": {
+ "minimum": 0,
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "lineage_quality": {
+ "enum": [
+ "exact",
+ "legacy_ambiguous"
+ ],
+ "type": "string"
+ },
+ "request_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "run_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "source_asset_id": {
+ "pattern": "^sat_[0-9a-f]{24}$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "evidence_edge_id",
+ "commission_id",
+ "run_id",
+ "request_id",
+ "item_index",
+ "candidate_id",
+ "source_asset_id",
+ "extract_id",
+ "hook_instance_id",
+ "lineage_quality",
+ "created_at"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "extracts": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "created_at": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "cue_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "end_ms": {
+ "minimum": 1,
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "exact_text": {
+ "maxLength": 4096,
+ "type": "string"
+ },
+ "extract_id": {
+ "pattern": "^ext_[0-9a-f]{24}$",
+ "type": "string"
+ },
+ "extractor_version": {
+ "type": "string"
+ },
+ "language_evidence": {
+ "type": "string"
+ },
+ "language_tag": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "method": {
+ "type": "string"
+ },
+ "schema_version": {
+ "minimum": 1,
+ "type": "integer"
+ },
+ "source_asset_id": {
+ "pattern": "^sat_[0-9a-f]{24}$",
+ "type": "string"
+ },
+ "span_id": {
+ "type": "string"
+ },
+ "start_ms": {
+ "minimum": 0,
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "text_sha256": {
+ "pattern": "^[0-9a-f]{64}$",
+ "type": "string"
+ },
+ "transformation_class": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "extract_id",
+ "source_asset_id",
+ "schema_version",
+ "method",
+ "language_tag",
+ "language_evidence",
+ "cue_id",
+ "span_id",
+ "start_ms",
+ "end_ms",
+ "exact_text",
+ "text_sha256",
+ "transformation_class",
+ "extractor_version",
+ "created_at"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "legacy_lineage": {
+ "description": "Explicit legacy or ambiguous lineage. Empty until a bounded legacy projection is introduced; missing immutable rows are never called exact.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "hook_instance_id": {
+ "pattern": "^hki_[0-9a-f]{24}$",
+ "type": "string"
+ },
+ "lineage_quality": {
+ "const": "legacy_ambiguous",
+ "type": "string"
+ },
+ "reason": {
+ "const": "source_lineage_not_recorded",
+ "type": "string"
+ }
+ },
+ "required": [
+ "hook_instance_id",
+ "lineage_quality",
+ "reason"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "source_assets": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "actual_platform": {
+ "enum": [
+ "instagram",
+ "tiktok",
+ "youtube"
+ ],
+ "type": "string"
+ },
+ "author_handle": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "author_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "canonical_url": {
+ "format": "uri",
+ "type": "string"
+ },
+ "content_sha256": {
+ "pattern": "^[0-9a-f]{64}$",
+ "type": "string"
+ },
+ "created_at": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "engagement": {
+ "type": "object"
+ },
+ "engagement_horizon": {
+ "type": "string"
+ },
+ "field_provenance": {
+ "type": "object"
+ },
+ "observed_at": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "platform_media_id": {
+ "type": "string"
+ },
+ "schema_version": {
+ "minimum": 1,
+ "type": "integer"
+ },
+ "source_asset_id": {
+ "pattern": "^sat_[0-9a-f]{24}$",
+ "type": "string"
+ },
+ "source_surface": {
+ "type": "string"
+ },
+ "vendor_path": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "source_asset_id",
+ "schema_version",
+ "actual_platform",
+ "platform_media_id",
+ "canonical_url",
+ "author_id",
+ "author_handle",
+ "source_surface",
+ "vendor_path",
+ "observed_at",
+ "engagement",
+ "engagement_horizon",
+ "field_provenance",
+ "content_sha256",
+ "created_at"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "source_assets",
+ "extracts",
+ "evidence_edges",
+ "legacy_lineage",
+ "corrupt_fields"
+ ],
+ "type": "object"
+}