{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://thinkloom.app/schemas/provenance/1.0/expression-segment.schema.json", "title": "Surviving expression segment", "description": "Stable surviving deposit expression with revision-bound range, digest, recorded origin, lineage, transformations, and separate selection/arrangement assertions.", "type": "object", "properties": { "schema_version": { "const": "1.0" }, "segment_id": { "type": "string", "pattern": "^segment_[0-9A-HJKMNP-TV-Z]{26}$" }, "project_id": { "type": "string", "pattern": "^project_[0-9A-HJKMNP-TV-Z]{26}$" }, "revision_id": { "type": "string", "pattern": "^revision_[0-9A-HJKMNP-TV-Z]{26}$" }, "segment_sequence": { "type": "integer", "minimum": 1 }, "range": { "$ref": "https://thinkloom.app/schemas/provenance/1.0/text-fragment-reference.schema.json" }, "content_sha256": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }, "normalized_unicode_scalar_length": { "type": "integer", "minimum": 1 }, "recorded_origin_kind": { "enum": [ "recorded_direct_human_input", "human_expressive_input_via_transcription", "accepted_ai_output", "imported_or_pasted", "system_restoration", "unattested" ] }, "actor_identity_status": { "enum": [ "verified", "self_declared", "unknown", "not_applicable" ] }, "generation_status": { "enum": [ "recorded", "unknown" ] }, "lineage_status": { "enum": [ "recorded", "unattested", "unknown" ] }, "lineage_reference_ids": { "type": "array", "items": { "type": "string", "pattern": "^[a-z][a-z0-9_]*_[0-9A-HJKMNP-TV-Z]{26}$" }, "uniqueItems": true }, "operation_ids": { "type": "array", "items": { "type": "string", "pattern": "^operation_[0-9A-HJKMNP-TV-Z]{26}$" }, "uniqueItems": true }, "transformation_relationships": { "type": "array", "items": { "enum": [ "inserted", "deleted", "replaced", "moved", "pasted_from_external", "transcribed_from_human_speech", "generated_by_ai", "modified_by_human", "restored_from_revision", "derived_from" ] }, "uniqueItems": true }, "assertion_ids": { "type": "array", "items": { "type": "string", "pattern": "^assertion_[0-9A-HJKMNP-TV-Z]{26}$" }, "uniqueItems": true }, "selection_arrangement_assertion_ids": { "type": "array", "items": { "type": "string", "pattern": "^assertion_[0-9A-HJKMNP-TV-Z]{26}$" }, "uniqueItems": true }, "included_in_deposit_assertion_id": { "anyOf": [ { "type": "string", "pattern": "^assertion_[0-9A-HJKMNP-TV-Z]{26}$" }, { "type": "null" } ] }, "classification_status": { "enum": [ "exact", "degraded", "stale", "unverified" ] } }, "required": [ "schema_version", "segment_id", "project_id", "revision_id", "segment_sequence", "range", "content_sha256", "normalized_unicode_scalar_length", "recorded_origin_kind", "actor_identity_status", "generation_status", "lineage_status", "lineage_reference_ids", "operation_ids", "transformation_relationships", "assertion_ids", "selection_arrangement_assertion_ids", "included_in_deposit_assertion_id", "classification_status" ], "additionalProperties": false, "allOf": [ { "if": { "properties": { "classification_status": { "const": "exact" } }, "required": [ "classification_status" ] }, "then": { "properties": { "recorded_origin_kind": { "enum": [ "recorded_direct_human_input", "human_expressive_input_via_transcription", "accepted_ai_output", "imported_or_pasted", "system_restoration" ] }, "actor_identity_status": { "enum": [ "verified", "self_declared", "not_applicable" ] }, "generation_status": { "const": "recorded" }, "lineage_status": { "const": "recorded" }, "lineage_reference_ids": { "type": "array", "minItems": 1 }, "operation_ids": { "type": "array", "minItems": 1 }, "assertion_ids": { "type": "array", "minItems": 1 }, "included_in_deposit_assertion_id": { "type": "string", "pattern": "^assertion_[0-9A-HJKMNP-TV-Z]{26}$" } } } } ], "examples": [ { "schema_version": "1.0", "segment_id": "segment_01J0000000000000000000000Y", "project_id": "project_01J00000000000000000000001", "revision_id": "revision_01J0000000000000000000000B", "segment_sequence": 1, "range": { "schema_version": "1.0", "document_revision_id": "revision_01J0000000000000000000000B", "coordinate_system": "unicode_scalar", "start": 0, "end": 12, "preimage_sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222", "text_fragment_id": "fragment_01J0000000000000000000000C" }, "content_sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222", "normalized_unicode_scalar_length": 12, "recorded_origin_kind": "recorded_direct_human_input", "actor_identity_status": "self_declared", "generation_status": "recorded", "lineage_status": "recorded", "lineage_reference_ids": [ "operation_01J0000000000000000000000X" ], "operation_ids": [ "operation_01J0000000000000000000000X" ], "transformation_relationships": [ "inserted" ], "assertion_ids": [ "assertion_01J0000000000000000000000V" ], "selection_arrangement_assertion_ids": [], "included_in_deposit_assertion_id": "assertion_01J0000000000000000000000V", "classification_status": "exact" } ] }