···24| `title` | `string` | ✅ | The title of the livestream, as it will be announced to followers. | Max Length: 1400<br/>Max Graphemes: 140 |
25| `url` | `string` | ❌ | The URL where this stream can be found. This is primarily a hint for other Streamplace nodes to locate and replicate the stream. | Format: `uri` |
26| `createdAt` | `string` | ✅ | Client-declared timestamp when this livestream started. | Format: `datetime` |
27-| `lastSeenAt` | `string` | ❌ | Client-declared timestamp when this livestream was last seen by the user. | Format: `datetime` |
028| `post` | [`com.atproto.repo.strongRef`](https://github.com/bluesky-social/atproto/tree/main/lexicons/com/atproto/repo/strongref.json#undefined) | ❌ | The post that announced this livestream. | |
29| `agent` | `string` | ❌ | The source of the livestream, if available, in a User Agent format: `<product> / <product-version> <comment>` e.g. Streamplace/0.7.5 iOS | |
30| `canonicalUrl` | `string` | ❌ | The primary URL where this livestream can be viewed, if available. | Format: `uri` |
···161 "lastSeenAt": {
162 "type": "string",
163 "format": "datetime",
164- "description": "Client-declared timestamp when this livestream was last seen by the user."
00000165 },
166 "post": {
167 "type": "ref",
···24| `title` | `string` | ✅ | The title of the livestream, as it will be announced to followers. | Max Length: 1400<br/>Max Graphemes: 140 |
25| `url` | `string` | ❌ | The URL where this stream can be found. This is primarily a hint for other Streamplace nodes to locate and replicate the stream. | Format: `uri` |
26| `createdAt` | `string` | ✅ | Client-declared timestamp when this livestream started. | Format: `datetime` |
27+| `lastSeenAt` | `string` | ❌ | Client-declared timestamp when this livestream was last seen by the Streamplace station. | Format: `datetime` |
28+| `endedAt` | `string` | ❌ | Client-declared timestamp when this livestream ended. Ended livestreams are not supposed to start up again. | Format: `datetime` |
29| `post` | [`com.atproto.repo.strongRef`](https://github.com/bluesky-social/atproto/tree/main/lexicons/com/atproto/repo/strongref.json#undefined) | ❌ | The post that announced this livestream. | |
30| `agent` | `string` | ❌ | The source of the livestream, if available, in a User Agent format: `<product> / <product-version> <comment>` e.g. Streamplace/0.7.5 iOS | |
31| `canonicalUrl` | `string` | ❌ | The primary URL where this livestream can be viewed, if available. | Format: `uri` |
···162 "lastSeenAt": {
163 "type": "string",
164 "format": "datetime",
165+ "description": "Client-declared timestamp when this livestream was last seen by the Streamplace station."
166+ },
167+ "endedAt": {
168+ "type": "string",
169+ "format": "datetime",
170+ "description": "Client-declared timestamp when this livestream ended. Ended livestreams are not supposed to start up again."
171 },
172 "post": {
173 "type": "ref",
+6-1
lexicons/place/stream/livestream.json
···29 "lastSeenAt": {
30 "type": "string",
31 "format": "datetime",
32- "description": "Client-declared timestamp when this livestream was last seen by the user."
0000033 },
34 "post": {
35 "type": "ref",
···29 "lastSeenAt": {
30 "type": "string",
31 "format": "datetime",
32+ "description": "Client-declared timestamp when this livestream was last seen by the Streamplace station."
33+ },
34+ "endedAt": {
35+ "type": "string",
36+ "format": "datetime",
37+ "description": "Client-declared timestamp when this livestream ended. Ended livestreams are not supposed to start up again."
38 },
39 "post": {
40 "type": "ref",
···25 CanonicalUrl *string `json:"canonicalUrl,omitempty" cborgen:"canonicalUrl,omitempty"`
26 // createdAt: Client-declared timestamp when this livestream started.
27 CreatedAt string `json:"createdAt" cborgen:"createdAt"`
28- // lastSeenAt: Client-declared timestamp when this livestream was last seen by the user.
0029 LastSeenAt *string `json:"lastSeenAt,omitempty" cborgen:"lastSeenAt,omitempty"`
30 NotificationSettings *Livestream_NotificationSettings `json:"notificationSettings,omitempty" cborgen:"notificationSettings,omitempty"`
31 // post: The post that announced this livestream.
···25 CanonicalUrl *string `json:"canonicalUrl,omitempty" cborgen:"canonicalUrl,omitempty"`
26 // createdAt: Client-declared timestamp when this livestream started.
27 CreatedAt string `json:"createdAt" cborgen:"createdAt"`
28+ // endedAt: Client-declared timestamp when this livestream ended. Ended livestreams are not supposed to start up again.
29+ EndedAt *string `json:"endedAt,omitempty" cborgen:"endedAt,omitempty"`
30+ // lastSeenAt: Client-declared timestamp when this livestream was last seen by the Streamplace station.
31 LastSeenAt *string `json:"lastSeenAt,omitempty" cborgen:"lastSeenAt,omitempty"`
32 NotificationSettings *Livestream_NotificationSettings `json:"notificationSettings,omitempty" cborgen:"notificationSettings,omitempty"`
33 // post: The post that announced this livestream.