From
bafyreih4ngidbrollrv4gqityugisniysv67xolrj4aqqtx5xbhbvxqdjm
indexed 2026-11-02 15:01 UTC
View this version
To
bafyreigmuos7ilzxjxv7cpgvybldgwvjs2qm6gyojxf3nlbsb3bgh4jvpm
indexed 2026-11-02 18:12 UTC
View this version
Compatibility
backward compatible Backward compatible. 2 non-breaking changes.
Non-breaking changes (2)
- AddedVertex AddedVertex { vertex_id: "page.cavu.forge.attribute:body.reverse" }
- AddedEdge AddedEdge { src: "page.cavu.forge.attribute:body", tgt: "page.cavu.forge.attribute:body.reverse", kind: "prop", name: Some("reverse") }
Migration guidance
Added
AddedVertex { vertex_id: "page.cavu.forge.attribute:body.reverse" }
Notes
- Non-breaking: AddedEdge { src: "page.cavu.forge.attribute:body", tgt: "page.cavu.forge.attribute:body.reverse", kind: "prop", name: Some("reverse") }
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"main": {5
"description": "One word in a project's own vocabulary for facts. Nothing about what can be said of an entity is predefined — a genderless species has no gender, a starship has a registry, a magic system has its own terms — so each project defines the attributes its facts use. Defining one says how its facts combine (one value at a time, or several) and whether its values point at other entities. A fact whose attribute has no definition is read as single-valued text. Only `name` has a meaning readers rely on: it's what an entity is called.",5
"description": "One word in a project's own vocabulary for facts. Nothing about what can be said of an entity is predefined — a genderless species has no gender, a starship has a registry, a magic system has its own terms — so each project defines the attributes its facts use. Defining one says how its facts combine (one value at a time, or several) and whether its values point at other entities — an attribute that does is a relation (allegiance, sails under, married to), named from both sides. A fact whose attribute has no definition is read as single-valued text. Only `name` has a meaning readers rely on: it's what an entity is called.",66
"key": "tid",77
"record": {88
"properties": {99
"createdAt": {1010
"format": "datetime",1111
"type": "string"1212
},1313
"description": {1414
"description": "What it means in this story, for the writer and any assistant.",1515
"maxGraphemes": 300,1616
"maxLength": 3000,1717
"type": "string"1818
},1919
"kinds": {2020
"description": "The entity kinds it's offered for. Absent: any.",2121
"items": {2222
"maxGraphemes": 64,2323
"maxLength": 640,2424
"type": "string"2525
},2626
"maxLength": 20,2727
"type": "array"2828
},2929
"multi": {3030
"description": "Several values hold at once (aliases, allegiances, relationships) instead of a later fact replacing an earlier one. Absent means false.",3131
"type": "boolean"3232
},3333
"name": {3434
"description": "The key facts use, exactly: \"species\", \"rank\", \"home world\".",3535
"maxGraphemes": 64,3636
"maxLength": 640,3737
"type": "string"3838
},39
"reverse": {40
"description": "For an attribute that points at entities: what the relation is called from the other side — \"sails under\" ↔ \"crew\", \"allegiance\" ↔ \"members\", \"captain\" ↔ \"captain of\". Readers use it to show a target's side of the relation and to head groups when entities are grouped by this attribute.",41
"maxGraphemes": 64,42
"maxLength": 640,43
"type": "string"44
},3945
"targets": {4046
"description": "Present when the value points at another entity (fact.target): the entity kinds it may point at, or an empty list for any. A text value may go with it (a relationship's \"wife\").",4147
"items": {4248
"maxGraphemes": 64,4349
"maxLength": 640,4450
"type": "string"4551
},4652
"maxLength": 20,4753
"type": "array"4854
}4955
},5056
"required": [5157
"name",5258
"createdAt"5359
],5460
"type": "object"5561
},5662
"type": "record"5763
}5864
},5965
"id": "page.cavu.forge.attribute",6066
"lexicon": 16167
}