{
"id": "world.ptah.origin",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"contributorDID",
"worldReference",
"createdAt"
],
"properties": {
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Timestamp when this contribution was made"
},
"description": {
"type": "string",
"maxLength": 10240,
"description": "Description of what was contributed",
"maxGraphemes": 1024
},
"contributorDID": {
"type": "string",
"format": "did",
"description": "The permanent identity of the contributor"
},
"worldReference": {
"type": "string",
"format": "at-uri",
"description": "Reference to the world this contribution is part of"
},
"splitPercentage": {
"type": "integer",
"maximum": 10000,
"minimum": 0,
"description": "Contribution share in basis points (100 = 1%)"
},
"targetReference": {
"type": "string",
"format": "at-uri",
"description": "Reference to the specific record being contributed to"
},
"attributionChain": {
"type": "array",
"items": {
"ref": "#attributionEntry",
"type": "ref"
},
"description": "The chain of attribution for this contribution"
},
"contributionType": {
"type": "string",
"description": "The type of contribution",
"knownValues": [
"originator",
"coauthor",
"contributor",
"editor",
"translator",
"illustrator"
]
},
"originatorApproval": {
"type": "string",
"description": "Whether the world originator has approved this contribution",
"knownValues": [
"approved",
"pending",
"rejected",
"notRequired"
]
},
"publicDomainCompliance": {
"type": "string",
"description": "For public domain worlds, whether this contribution complies with source attribution requirements",
"knownValues": [
"compliant",
"pending",
"disputed",
"notApplicable"
]
}
}
},
"description": "The attribution and permission layer. Tracks who contributed what and under what terms."
},
"attributionEntry": {
"type": "object",
"required": [
"contributorDID",
"role"
],
"properties": {
"role": {
"type": "string",
"maxLength": 640,
"maxGraphemes": 64
},
"timestamp": {
"type": "string",
"format": "datetime"
},
"contributorDID": {
"type": "string",
"format": "did"
},
"splitPercentage": {
"type": "integer",
"maximum": 10000,
"minimum": 0
}
},
"description": "An entry in the attribution chain"
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}