com.dryan.timeline.entry
The dryan.com timeline's per-entry data, carried in the `content` open union of a site.standard.document record. The document holds what every entry shares (title, path, publishedAt, description, textContent, tags, coverImage); this holds the entry type, the day it belongs to, and the type-specific detail. atproto records cannot carry floats, so measurements that are not whole numbers (speeds, heart rates, coordinates) are decimal strings.
Details · object
| Kind | object |
|---|---|
| Authority | timeline.dryan.com |
| Indexed |
Checks
Validunlimited-stringdefs.achievement.properties.achievementIdNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.achievement.properties.descriptionNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.achievement.properties.gameNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.achievement.properties.platformNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.activity.properties.averageHeartrateNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.activity.properties.averageSpeedNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.activity.properties.maxHeartrateNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.activity.properties.maxSpeedNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.activity.properties.polylineNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.activity.properties.sourceNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.activity.properties.sourceIdNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.activity.properties.sportTypeNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.article.properties.descriptionNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.article.properties.shareImageNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.book.properties.asinNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.book.properties.authorNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.book.properties.dateFinishedNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.book.properties.dateStartedNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.book.properties.goodreadsIdNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.book.properties.isbnNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.book.properties.subtitleNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.bounds.properties.maxLatitudeNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.bounds.properties.maxLongitudeNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.bounds.properties.minLatitudeNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.bounds.properties.minLongitudeNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.code.properties.actionNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.code.properties.eventNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.code.properties.githubEventIdNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.code.properties.repoNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.commit.properties.messageNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.commit.properties.shaNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.crosspost.properties.nameNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.game.properties.dateNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.game.properties.platformNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.gameTitle.properties.nameNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.highlight.properties.locationNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.highlight.properties.noteNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.highlight.properties.textNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.link.properties.noteNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.main.properties.entryTypeNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.main.properties.localDateNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.main.properties.timezoneNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.movie.properties.ratingNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.movie.properties.tmdbIdNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.photo.properties.altTextNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.photo.properties.contentHashNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.point.properties.latitudeNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.point.properties.longitudeNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.video.properties.authorNameNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.video.properties.noteNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.video.properties.providerNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.video.properties.videoIdNo maxLength, maxGraphemes or format limits this string.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"achievement": {
"properties": {
"achievementId": {
"type": "string"
},
"description": {
"type": "string"
},
"game": {
"type": "string"
},
"iconUrl": {
"format": "uri",
"type": "string"
},
"platform": {
"knownValues": [
"xbox"
],
"type": "string"
},
"xboxTitleId": {
"type": "integer"
}
},
"required": [
"game",
"platform"
],
"type": "object"
},
"activity": {
"properties": {
"averageHeartrate": {
"description": "Beats per minute, decimal string.",
"type": "string"
},
"averageSpeed": {
"description": "Metres per second, decimal string.",
"type": "string"
},
"bounds": {
"ref": "#bounds",
"type": "ref"
},
"distanceMeters": {
"type": "integer"
},
"elapsedTimeSeconds": {
"type": "integer"
},
"elevationGainMeters": {
"type": "integer"
},
"elevationLossMeters": {
"type": "integer"
},
"end": {
"ref": "#point",
"type": "ref"
},
"maxElevationMeters": {
"type": "integer"
},
"maxHeartrate": {
"description": "Beats per minute, decimal string.",
"type": "string"
},
"maxSpeed": {
"description": "Metres per second, decimal string.",
"type": "string"
},
"minElevationMeters": {
"type": "integer"
},
"movingTimeSeconds": {
"type": "integer"
},
"polyline": {
"description": "Google encoded polyline of the track.",
"type": "string"
},
"source": {
"description": "Where the track came from (Strava, AllTrails, onX...).",
"type": "string"
},
"sourceId": {
"description": "The activity's id at the source, e.g. the Strava activity id.",
"type": "string"
},
"sourceUrl": {
"format": "uri",
"type": "string"
},
"sportType": {
"type": "string"
},
"start": {
"ref": "#point",
"type": "ref"
}
},
"type": "object"
},
"article": {
"properties": {
"crosspostedFrom": {
"ref": "#crosspost",
"type": "ref"
},
"description": {
"type": "string"
},
"shareImage": {
"description": "Filename of the article's share graphic on the site.",
"type": "string"
}
},
"type": "object"
},
"book": {
"properties": {
"amazonUrl": {
"format": "uri",
"type": "string"
},
"asin": {
"type": "string"
},
"author": {
"type": "string"
},
"bookshopOrgUrl": {
"format": "uri",
"type": "string"
},
"coverUrl": {
"format": "uri",
"type": "string"
},
"dateFinished": {
"type": "string"
},
"dateStarted": {
"type": "string"
},
"goodreadsId": {
"type": "string"
},
"goodreadsUrl": {
"format": "uri",
"type": "string"
},
"highlights": {
"description": "Kindle highlights and notes, oldest first.",
"items": {
"ref": "#highlight",
"type": "ref"
},
"type": "array"
},
"isbn": {
"type": "string"
},
"openLibraryUrl": {
"format": "uri",
"type": "string"
},
"reviewUrl": {
"format": "uri",
"type": "string"
},
"subtitle": {
"type": "string"
}
},
"type": "object"
},
"bounds": {
"properties": {
"maxLatitude": {
"type": "string"
},
"maxLongitude": {
"type": "string"
},
"minLatitude": {
"type": "string"
},
"minLongitude": {
"type": "string"
}
},
"required": [
"minLatitude",
"maxLatitude",
"minLongitude",
"maxLongitude"
],
"type": "object"
},
"code": {
"properties": {
"action": {
"type": "string"
},
"commitCount": {
"type": "integer"
},
"commits": {
"items": {
"ref": "#commit",
"type": "ref"
},
"type": "array"
},
"event": {
"description": "GitHub event type (push, pull_request, issue_comment...).",
"type": "string"
},
"githubEventId": {
"type": "string"
},
"repo": {
"description": "owner/name on GitHub.",
"type": "string"
},
"url": {
"format": "uri",
"type": "string"
}
},
"required": [
"repo",
"event"
],
"type": "object"
},
"commit": {
"properties": {
"message": {
"type": "string"
},
"sha": {
"type": "string"
}
},
"required": [
"sha"
],
"type": "object"
},
"crosspost": {
"properties": {
"name": {
"type": "string"
},
"url": {
"format": "uri",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"game": {
"properties": {
"date": {
"description": "YYYY-MM-DD of the session.",
"type": "string"
},
"leagueId": {
"description": "Hearthstone ranked league.",
"type": "integer"
},
"legendRank": {
"type": "integer"
},
"platform": {
"knownValues": [
"xbox",
"hearthstone"
],
"type": "string"
},
"starLevel": {
"type": "integer"
},
"stars": {
"type": "integer"
},
"titles": {
"items": {
"ref": "#gameTitle",
"type": "ref"
},
"type": "array"
}
},
"required": [
"platform"
],
"type": "object"
},
"gameTitle": {
"properties": {
"logoUrl": {
"format": "uri",
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"highlight": {
"properties": {
"highlightedAt": {
"format": "datetime",
"type": "string"
},
"location": {
"description": "Kindle location number.",
"type": "string"
},
"note": {
"type": "string"
},
"text": {
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"link": {
"properties": {
"note": {
"type": "string"
},
"url": {
"format": "uri",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"main": {
"properties": {
"detail": {
"refs": [
"#article",
"#photo",
"#book",
"#video",
"#link",
"#movie",
"#activity",
"#code",
"#game",
"#achievement"
],
"type": "union"
},
"entryType": {
"knownValues": [
"article",
"photo",
"book",
"video",
"link",
"movie",
"activity.walk",
"activity.hike",
"activity.cycle",
"activity.kayak",
"activity.other",
"code",
"game",
"game.achievement"
],
"type": "string"
},
"localDate": {
"description": "YYYY-MM-DD: the day the entry is filed under on the site.",
"type": "string"
},
"timezone": {
"description": "IANA zone the entry happened in; localDate is derived from publishedAt in this zone.",
"type": "string"
}
},
"required": [
"entryType"
],
"type": "object"
},
"movie": {
"properties": {
"letterboxdUrl": {
"format": "uri",
"type": "string"
},
"liked": {
"type": "boolean"
},
"posterUrl": {
"format": "uri",
"type": "string"
},
"rating": {
"description": "Star rating as a decimal string, absent when unrated.",
"type": "string"
},
"rewatch": {
"type": "boolean"
},
"tmdbId": {
"description": "The Movie Database id.",
"type": "string"
},
"year": {
"type": "integer"
}
},
"type": "object"
},
"photo": {
"properties": {
"altText": {
"type": "string"
},
"contentHash": {
"description": "sha256 fingerprint used for duplicate detection.",
"type": "string"
},
"exif": {
"description": "Camera and capture metadata as extracted at upload; non-integer numbers are decimal strings.",
"type": "unknown"
},
"imageUrl": {
"description": "Full-size delivery URL; coverImage on the document is the copy under atproto's blob cap.",
"format": "uri",
"type": "string"
}
},
"type": "object"
},
"point": {
"properties": {
"latitude": {
"description": "Decimal degrees as a string.",
"type": "string"
},
"longitude": {
"description": "Decimal degrees as a string.",
"type": "string"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"video": {
"properties": {
"authorName": {
"type": "string"
},
"authorUrl": {
"format": "uri",
"type": "string"
},
"durationSeconds": {
"type": "integer"
},
"note": {
"type": "string"
},
"provider": {
"knownValues": [
"youtube",
"vimeo"
],
"type": "string"
},
"thumbnailUrl": {
"format": "uri",
"type": "string"
},
"url": {
"format": "uri",
"type": "string"
},
"videoId": {
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
}
},
"description": "The dryan.com timeline's per-entry data, carried in the `content` open union of a site.standard.document record. The document holds what every entry shares (title, path, publishedAt, description, textContent, tags, coverImage); this holds the entry type, the day it belongs to, and the type-specific detail. atproto records cannot carry floats, so measurements that are not whole numbers (speeds, heart rates, coordinates) are decimal strings.",
"id": "com.dryan.timeline.entry",
"lexicon": 1
}