tech.waow.brand.defs

waow.tech

Schema Diff

+18 -4

From

CID
bafyreigjbw2zzbb...
Indexed At
2026-08-09 06:19 UTC
View this version

To

CID
bafyreiek6t3757e...
Indexed At
2026-08-09 21:56 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

1 breaking change, 3 non-breaking changes.

Breaking Changes (1)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "tech.waow.brand.defs#brandView", src: "tech.waow.brand.defs#brandView", tgt: "tech.waow.brand.defs#brandView.subject", kind: "prop", name: Some("subject") }
Non-Breaking Changes (3)
  • AddedVertex AddedVertex { vertex_id: "tech.waow.brand.defs#brandView.known" }
  • AddedVertex AddedVertex { vertex_id: "tech.waow.brand.defs#brandView.subject" }
  • AddedEdge AddedEdge { src: "tech.waow.brand.defs#brandView", tgt: "tech.waow.brand.defs#brandView.known", kind: "prop", name: Some("known") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "tech.waow.brand.defs#brandView.known" }
  • AddedVertex { vertex_id: "tech.waow.brand.defs#brandView.subject" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "tech.waow.brand.defs#brandView", src: "tech.waow.brand.defs#brandView", tgt: "tech.waow.brand.defs#brandView.subject", kind: "prop", name: Some("subject") }
  • Non-breaking: AddedEdge { src: "tech.waow.brand.defs#brandView", tgt: "tech.waow.brand.defs#brandView.known", kind: "prop", name: Some("known") }
1 1
{
2 2
  "id": "tech.waow.brand.defs",
3 3
  "defs": {
4 4
    "colors": {
5 5
      "type": "object",
6 6
      "properties": {
7 7
        "primary": {
8 8
          "type": "string",
9 9
          "maxLength": 7
10 10
        },
11 11
        "background": {
12 12
          "type": "string",
13 13
          "maxLength": 7
14 14
        },
15 15
        "foreground": {
16 16
          "type": "string",
17 17
          "maxLength": 7
18 18
        }
19 19
      },
20 20
      "description": "Brand colors as sRGB hex, '#rrggbb'. Shared by the declaration record and the views that render it."
21 21
    },
22 22
    "authority": {
23 23
      "type": "object",
24 24
      "required": [
25 25
        "domain",
26 26
        "did",
27 27
        "uri"
28 28
      ],
29 29
      "properties": {
30 30
        "did": {
31 31
          "type": "string",
32 32
          "format": "did"
33 33
        },
34 34
        "uri": {
35 35
          "type": "string",
36 36
          "format": "at-uri"
37 37
        },
38 38
        "domain": {
39 39
          "type": "string",
40 40
          "maxLength": 253,
41 -
          "description": "The domain whose _lexicon TXT record names the declaring DID."
41 +
          "description": "The domain whose _lexicon TXT record names the declaring DID, or the actor's handle."
42 42
        }
43 43
      },
44 -
      "description": "Who declared a brand, and where they said it. Present only on a declared response."
44 +
      "description": "Who chose this, and where they said it. For a namespace, the DID its _lexicon TXT record names; for an actor, the account itself."
45 45
    },
46 46
    "brandView": {
47 47
      "type": "object",
48 48
      "required": [
49 +
        "subject",
49 50
        "namespace",
50 51
        "matched",
51 52
        "source",
52 53
        "icon"
53 54
      ],
54 55
      "properties": {
55 56
        "url": {
56 57
          "type": "string",
57 58
          "format": "uri"
58 59
        },
59 60
        "icon": {
60 61
          "type": "string",
61 62
          "maxLength": 8192,
62 63
          "description": "URL for the icon: an https URL, or a data: URI when generated."
63 64
        },
64 65
        "name": {
65 66
          "type": "string",
66 67
          "maxLength": 128
67 68
        },
69 +
        "known": {
70 +
          "type": "boolean",
71 +
          "description": "Whether records have ever been written under this exact namespace, or a schema published for it. Prefix inheritance means an invented namespace still resolves with its parent's icon, so this is how a consumer spots a typo. A hint, never a rejection: false can also mean declared-but-not-yet-used. Absent for actors, or when the check failed."
72 +
        },
68 73
        "colors": {
69 74
          "ref": "tech.waow.brand.defs#colors",
70 75
          "type": "ref"
71 76
        },
72 77
        "source": {
73 78
          "type": "string",
74 79
          "maxLength": 32,
75 80
          "description": "Who chose this. 'declared': the namespace's lexicon authority, in a record. 'borrowed': the reverse-DNS domain's atproto account avatar, chosen for that account rather than for this namespace. 'curated': the responding service's own table. 'generated': nobody, a deterministic monogram.",
76 81
          "knownValues": [
77 82
            "declared",
78 83
            "borrowed",
79 84
            "curated",
80 85
            "generated"
81 86
          ]
82 87
        },
83 88
        "matched": {
84 89
          "type": "string",
85 90
          "maxLength": 317,
86 -
          "description": "The namespace that actually answered: this one, or a shorter prefix it inherits from."
91 +
          "description": "What actually answered: the namespace itself, a shorter prefix it inherits from, or -- for an actor -- their resolved handle."
92 +
        },
93 +
        "subject": {
94 +
          "type": "string",
95 +
          "maxLength": 16,
96 +
          "description": "What kind of thing answered. 'plyr.fm' and 'fm.plyr' are both well-formed inputs and mean entirely different things: an identity and a namespace.",
97 +
          "knownValues": [
98 +
            "namespace",
99 +
            "actor"
100 +
          ]
87 101
        },
88 102
        "wordmark": {
89 103
          "type": "string",
90 104
          "maxLength": 8192
91 105
        },
92 106
        "authority": {
93 107
          "ref": "tech.waow.brand.defs#authority",
94 108
          "type": "ref"
95 109
        },
96 110
        "namespace": {
97 111
          "type": "string",
98 112
          "maxLength": 317,
99 -
          "description": "The namespace that was asked for."
113 +
          "description": "The namespace or identifier that was asked for."
100 114
        },
101 115
        "iconSource": {
102 116
          "type": "string",
103 117
          "maxLength": 32,
104 118
          "description": "Present only when the icon comes from a lower tier than the rest of the response, e.g. a declaration that omitted an icon. The icon never inherits the declaration's authority.",
105 119
          "knownValues": [
106 120
            "declared",
107 121
            "borrowed",
108 122
            "curated",
109 123
            "generated"
110 124
          ]
111 125
        },
112 126
        "description": {
113 127
          "type": "string",
114 128
          "maxLength": 512
115 129
        }
116 130
      },
117 131
      "description": "Resolved brand assets for one namespace."
118 132
    }
119 133
  },
120 134
  "$type": "com.atproto.lexicon.schema",
121 135
  "lexicon": 1
122 136
}

Compare Other Versions

Lexicon Garden

@