Engineering manualSchema reference
Brand Studio Social Capture V1 bundle
Declared schema: schemas/social-capture-v1.schema.json
Source: schemas/social-capture-v1.schema.json. This is the complete declaration, including nested definitions and constraints. Its presence is not evidence that a runtime producer or consumer validates against it.
All schemas · Data structures and lineage
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://brand.mirrorfactory.ai/schemas/social-capture-v1.schema.json",
"title": "Brand Studio Social Capture V1 bundle",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"generated_at",
"canonical_source",
"markdown_role",
"captures",
"totals"
],
"properties": {
"schema_version": {
"const": "brand-studio-social-capture-bundle/v1"
},
"generated_at": {
"type": "string"
},
"canonical_source": {
"const": "social-capture.json"
},
"markdown_role": {
"const": "deterministic_view_only"
},
"captures": {
"type": "array",
"items": {
"$ref": "#/$defs/capture"
}
},
"totals": {
"$ref": "#/$defs/counts"
}
},
"$defs": {
"counts": {
"type": "object",
"additionalProperties": false,
"required": [
"captures",
"source_nodes",
"accepted_records",
"rejected_records",
"quarantined_nodes"
],
"properties": {
"captures": {
"type": "integer",
"minimum": 0
},
"source_nodes": {
"type": "integer",
"minimum": 0
},
"accepted_records": {
"type": "integer",
"minimum": 0
},
"rejected_records": {
"type": "integer",
"minimum": 0
},
"quarantined_nodes": {
"type": "integer",
"minimum": 0
}
}
},
"capture": {
"type": "object",
"required": [
"schema_version",
"capture_id",
"platform",
"capture_method",
"captured_at",
"profile",
"route",
"capture_contract",
"privacy",
"checkpoints",
"nodes",
"records",
"rejections",
"quarantine",
"receipt"
],
"properties": {
"schema_version": {
"const": "brand-studio-social-capture/v1"
},
"capture_id": {
"type": "string",
"pattern": "^social-capture-[a-f0-9]{24}$"
},
"platform": {
"type": "string",
"minLength": 1
},
"adapter_version": {
"type": "string"
},
"record_schema_version": {
"type": "string"
},
"capture_method": {
"type": "string",
"minLength": 1
},
"captured_at": {
"type": "string"
},
"profile": {
"type": "object"
},
"route": {
"type": "object",
"required": [
"url",
"purpose",
"kind",
"status"
],
"properties": {
"url": {
"type": "string"
},
"purpose": {
"type": "string"
},
"kind": {
"type": "string"
},
"status": {
"enum": [
"complete",
"complete_empty",
"partial",
"auth_required",
"challenge_detected",
"navigation_failed",
"extraction_stalled",
"time_budget_reached"
]
}
}
},
"capture_contract": {
"type": "object",
"required": [
"losslessness",
"markdown_role",
"normalization_source",
"raw_dom_persisted",
"import_mode"
],
"properties": {
"losslessness": {
"type": "string"
},
"markdown_role": {
"const": "deterministic_view_only"
},
"normalization_source": {
"type": "string"
},
"raw_dom_persisted": {
"const": false
},
"import_mode": {
"type": "string"
}
}
},
"privacy": {
"type": "object",
"required": [
"status",
"quarantined_nodes",
"quarantine_payloads_persisted",
"viewer_identity_terms_configured"
],
"properties": {
"status": {
"type": "string"
},
"quarantined_nodes": {
"type": "integer",
"minimum": 0
},
"quarantine_payloads_persisted": {
"const": false
},
"viewer_identity_terms_configured": {
"type": "boolean"
}
}
},
"limits": {
"type": "object"
},
"archive_probe": {},
"checkpoint_receipt": {},
"checkpoints": {
"type": "array",
"items": {
"type": "object",
"required": [
"index",
"observed_at",
"node_ids",
"quarantined_count"
],
"properties": {
"index": {
"type": "integer",
"minimum": 0
},
"observed_at": {
"type": "string"
},
"node_ids": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true
},
"quarantined_count": {
"type": "integer",
"minimum": 0
},
"probe": {}
}
}
},
"nodes": {
"type": "array",
"items": {
"type": "object",
"required": [
"node_id",
"checkpoint_index",
"group",
"source_pointer",
"classification",
"payload"
],
"properties": {
"node_id": {
"type": "string"
},
"checkpoint_index": {
"type": "integer",
"minimum": 0
},
"group": {
"type": "string"
},
"source_pointer": {
"type": "string"
},
"classification": {
"type": "string"
},
"payload": {}
}
}
},
"records": {
"type": "array",
"items": {
"type": "object",
"required": [
"field_provenance",
"source_node_ids",
"source_groups"
],
"properties": {
"field_provenance": {
"type": "object",
"additionalProperties": {
"type": "object",
"required": [
"source_node_id",
"source_pointer",
"classification",
"transform"
],
"properties": {
"source_node_id": {
"type": "string"
},
"source_pointer": {
"type": "string"
},
"classification": {
"enum": [
"observed",
"adapter_derived",
"capture_metadata"
]
},
"transform": {
"type": "string"
}
}
}
},
"source_node_ids": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
"source_groups": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
}
}
}
},
"content_records": {
"type": "array",
"items": {
"type": "object",
"required": [
"schema_version"
],
"properties": {
"schema_version": {
"const": "brand-studio-social-content/v2"
}
}
}
},
"rejections": {
"type": "array",
"items": {
"type": "object",
"required": [
"reason"
],
"properties": {
"node_id": {
"type": "string"
},
"checkpoint_index": {
"type": "integer",
"minimum": 0
},
"group": {
"type": "string"
},
"reason": {
"type": "string"
},
"payload_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
}
}
}
},
"quarantine": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"node_id",
"checkpoint_index",
"group",
"source_pointer",
"reason",
"payload_sha256"
],
"properties": {
"node_id": {
"type": "string"
},
"checkpoint_index": {
"type": "integer",
"minimum": 0
},
"group": {
"type": "string"
},
"source_pointer": {
"type": "string"
},
"reason": {
"type": "string"
},
"payload_sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
}
}
}
},
"receipt": {
"type": "object",
"required": [
"source_nodes",
"quarantined_nodes",
"accepted_records",
"rejected_records",
"status"
],
"properties": {
"source_nodes": {
"type": "integer",
"minimum": 0
},
"quarantined_nodes": {
"type": "integer",
"minimum": 0
},
"accepted_records": {
"type": "integer",
"minimum": 0
},
"rejected_records": {
"type": "integer",
"minimum": 0
},
"status": {
"type": "string"
}
}
}
}
}
}
}