A birth certificate crossed with a passport. Ptah speaks the name and the thing exists — the character exists because it was named and the naming is permanent.
tid
Timestamp-based ID
Properties
authorshipRecord
string
did
Optional
Permanent, immutable link back to the creator. This never changes even if the character gets contributed to, built on, or rendered a thousand different ways.
canonicalStatus
string
Optional
The canonical standing of this character within its world.
world.ptah.temp.defs#canonicalStatusOfficial, world.ptah.temp.defs#canonicalStatusCommunity, world.ptah.temp.defs#canonicalStatusApocryphalcontrolType
string
Optional
How control of this character is governed. Solves the Ghost Character problem in public domain worlds.
exclusive, open, delegatedcreatedAt
string
datetime
Required
Timestamp of character creation.
creatorDID
string
did
Required
Who created this character. This never changes — it is the provenance that travels.
description
string
Optional
Who this character is, in plain language.
maxLength: 10240 bytesmaxGraphemes: 1024 graphemesname
string
Required
What the character is called.
maxLength: 640 bytesmaxGraphemes: 64 graphemesoriginType
string
Optional
The intellectual property origin of this character.
world.ptah.temp.defs#sourceTypeOriginalIP, world.ptah.temp.defs#sourceTypePublicDomain, contributedproperties
ref
#characterProperties
Optional
Flexible fields — species, age, role, affiliation, abilities. Open-ended so any kind of world can use the same record type.
roleReference
string
at-uri
Optional
The AT URI of the Role record this character is an instance of. If present, this character is a specific performance of a shared role rather than a wholly original character.
sourceReference
string
Optional
If originType is publicDomain, the specific source.
maxLength: 10240 bytesmaxGraphemes: 1024 graphemesworldReference
string
at-uri
Required
The AT URI of the world record this character belongs to.
View raw schema
{
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"name",
"creatorDID",
"worldReference",
"createdAt"
],
"properties": {
"name": {
"type": "string",
"maxLength": 640,
"description": "What the character is called.",
"maxGraphemes": 64
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Timestamp of character creation."
},
"creatorDID": {
"type": "string",
"format": "did",
"description": "Who created this character. This never changes — it is the provenance that travels."
},
"originType": {
"type": "string",
"description": "The intellectual property origin of this character.",
"knownValues": [
"world.ptah.temp.defs#sourceTypeOriginalIP",
"world.ptah.temp.defs#sourceTypePublicDomain",
"contributed"
]
},
"properties": {
"ref": "#characterProperties",
"type": "ref",
"description": "Flexible fields — species, age, role, affiliation, abilities. Open-ended so any kind of world can use the same record type."
},
"controlType": {
"type": "string",
"description": "How control of this character is governed. Solves the Ghost Character problem in public domain worlds.",
"knownValues": [
"exclusive",
"open",
"delegated"
]
},
"description": {
"type": "string",
"maxLength": 10240,
"description": "Who this character is, in plain language.",
"maxGraphemes": 1024
},
"roleReference": {
"type": "string",
"format": "at-uri",
"description": "The AT URI of the Role record this character is an instance of. If present, this character is a specific performance of a shared role rather than a wholly original character."
},
"worldReference": {
"type": "string",
"format": "at-uri",
"description": "The AT URI of the world record this character belongs to."
},
"canonicalStatus": {
"type": "string",
"description": "The canonical standing of this character within its world.",
"knownValues": [
"world.ptah.temp.defs#canonicalStatusOfficial",
"world.ptah.temp.defs#canonicalStatusCommunity",
"world.ptah.temp.defs#canonicalStatusApocryphal"
]
},
"sourceReference": {
"type": "string",
"maxLength": 10240,
"description": "If originType is publicDomain, the specific source.",
"maxGraphemes": 1024
},
"authorshipRecord": {
"type": "string",
"format": "did",
"description": "Permanent, immutable link back to the creator. This never changes even if the character gets contributed to, built on, or rendered a thousand different ways."
}
}
},
"description": "A birth certificate crossed with a passport. Ptah speaks the name and the thing exists — the character exists because it was named and the naming is permanent."
}