{
"$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"
},
"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"
},
"link": {
"properties": {
"note": {
"type": "string"
},
"url": {
"format": "uri",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"main": {
"properties": {
"detail": {
"refs": [
"#article",
"#photo",
"#book",
"#video",
"#link",
"#activity",
"#code",
"#game",
"#achievement"
],
"type": "union"
},
"entryType": {
"knownValues": [
"article",
"photo",
"book",
"video",
"link",
"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"
},
"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
}