app.lovesky.actor.defs

toddlambert.com

Documentation

aspectRatio object

No description available.

Properties

height integer Required

No description available.

minimum: 1
width integer Required

No description available.

minimum: 1
View raw schema
{
  "properties": {
    "height": {
      "minimum": 1,
      "type": "integer"
    },
    "width": {
      "minimum": 1,
      "type": "integer"
    }
  },
  "required": [
    "width",
    "height"
  ],
  "type": "object"
}
photo object

A public card photo. Blobs are world-readable and may be cached by any relay or mirror; users should be told this before upload.

Properties

alt string Optional

No description available.

maxLength: 3000 bytesmaxGraphemes: 300 graphemes
aspectRatio ref #aspectRatio Optional

No description available.

image blob Required

No description available.

maxSize: 2.0 MB
View raw schema
{
  "description": "A public card photo. Blobs are world-readable and may be cached by any relay or mirror; users should be told this before upload.",
  "properties": {
    "alt": {
      "maxGraphemes": 300,
      "maxLength": 3000,
      "type": "string"
    },
    "aspectRatio": {
      "ref": "#aspectRatio",
      "type": "ref"
    },
    "image": {
      "accept": [
        "image/jpeg",
        "image/png",
        "image/webp"
      ],
      "maxSize": 2000000,
      "type": "blob"
    }
  },
  "required": [
    "image"
  ],
  "type": "object"
}
photoView object

No description available.

Properties

alt string Optional

No description available.

aspectRatio ref #aspectRatio Optional

No description available.

fullsize string uri Required

A valid URI.

thumb string uri Required

A valid URI.

View raw schema
{
  "properties": {
    "alt": {
      "type": "string"
    },
    "aspectRatio": {
      "ref": "#aspectRatio",
      "type": "ref"
    },
    "fullsize": {
      "format": "uri",
      "type": "string"
    },
    "thumb": {
      "format": "uri",
      "type": "string"
    }
  },
  "required": [
    "thumb",
    "fullsize"
  ],
  "type": "object"
}
preferences object

PRIVATE. Matching preferences held only by the Lovesky AppView, encrypted at rest. This object is an XRPC payload, never a repo record. It holds everything a public card must not: gender, who the user is seeking, birthdate, location.

Properties

ageMax integer Optional

No description available.

minimum: 18maximum: 120
ageMin integer Optional

No description available.

minimum: 18maximum: 120
birthDate string datetime Required

Used to enforce 18+ and to compute the age shown in-app. Never published.

discoverable boolean Optional

False pauses the account: the card stays published but is hidden from discovery.

gender string Required

No description available.

maxLength: 64 bytes
Known values: woman, man, non-binary
geohash string Optional

Client truncates to 6 characters (about 1.2 km cells) before sending. The AppView never stores anything finer.

maxLength: 12 bytes
maxDistanceKm integer Optional

No description available.

minimum: 1maximum: 20000
seeking array of string Required

No description available.

maxLength: 8 items
View raw schema
{
  "description": "PRIVATE. Matching preferences held only by the Lovesky AppView, encrypted at rest. This object is an XRPC payload, never a repo record. It holds everything a public card must not: gender, who the user is seeking, birthdate, location.",
  "properties": {
    "ageMax": {
      "maximum": 120,
      "minimum": 18,
      "type": "integer"
    },
    "ageMin": {
      "maximum": 120,
      "minimum": 18,
      "type": "integer"
    },
    "birthDate": {
      "description": "Used to enforce 18+ and to compute the age shown in-app. Never published.",
      "format": "datetime",
      "type": "string"
    },
    "discoverable": {
      "description": "False pauses the account: the card stays published but is hidden from discovery.",
      "type": "boolean"
    },
    "gender": {
      "knownValues": [
        "woman",
        "man",
        "non-binary"
      ],
      "maxLength": 64,
      "type": "string"
    },
    "geohash": {
      "description": "Client truncates to 6 characters (about 1.2 km cells) before sending. The AppView never stores anything finer.",
      "maxLength": 12,
      "type": "string"
    },
    "maxDistanceKm": {
      "maximum": 20000,
      "minimum": 1,
      "type": "integer"
    },
    "seeking": {
      "items": {
        "knownValues": [
          "women",
          "men",
          "non-binary",
          "everyone"
        ],
        "maxLength": 64,
        "type": "string"
      },
      "maxLength": 8,
      "type": "array"
    }
  },
  "required": [
    "birthDate",
    "gender",
    "seeking"
  ],
  "type": "object"
}
profileView object

A card hydrated by the AppView for an authenticated viewer. Combines the public record with private, per-viewer state.

Properties

age integer Optional

Computed at request time from private birthDate. Shown in-app only.

bio string Optional

No description available.

maxLength: 5000 bytesmaxGraphemes: 500 graphemes
did string did Required

A decentralized identifier (DID).

displayName string Optional

No description available.

maxLength: 640 bytesmaxGraphemes: 64 graphemes
handle string handle Required

An AT Protocol handle (e.g., alice.bsky.social).

indexedAt string datetime Required

An RFC 3339 formatted timestamp.

intent array of string Optional

No description available.

interests array of string Optional

No description available.

languages array of stringlanguage Optional

No description available.

mutuals integer Optional

Number of accounts followed by both the viewer and this profile, from the public Bluesky graph.

photos array of ref#photoView Optional

No description available.

prompts array of ref#prompt Optional

No description available.

pronouns string Optional

No description available.

maxLength: 240 bytesmaxGraphemes: 24 graphemes
region string Optional

No description available.

maxLength: 640 bytesmaxGraphemes: 64 graphemes
sharedInterests array of string Optional

No description available.

tagline string Optional

No description available.

maxLength: 1200 bytesmaxGraphemes: 120 graphemes
viewer ref #viewerState Optional

No description available.

View raw schema
{
  "description": "A card hydrated by the AppView for an authenticated viewer. Combines the public record with private, per-viewer state.",
  "properties": {
    "age": {
      "description": "Computed at request time from private birthDate. Shown in-app only.",
      "type": "integer"
    },
    "bio": {
      "maxGraphemes": 500,
      "maxLength": 5000,
      "type": "string"
    },
    "did": {
      "format": "did",
      "type": "string"
    },
    "displayName": {
      "maxGraphemes": 64,
      "maxLength": 640,
      "type": "string"
    },
    "handle": {
      "format": "handle",
      "type": "string"
    },
    "indexedAt": {
      "format": "datetime",
      "type": "string"
    },
    "intent": {
      "items": {
        "maxLength": 64,
        "type": "string"
      },
      "type": "array"
    },
    "interests": {
      "items": {
        "maxGraphemes": 32,
        "maxLength": 320,
        "type": "string"
      },
      "type": "array"
    },
    "labels": {
      "items": {
        "ref": "com.atproto.label.defs#label",
        "type": "ref"
      },
      "type": "array"
    },
    "languages": {
      "items": {
        "format": "language",
        "type": "string"
      },
      "type": "array"
    },
    "mutuals": {
      "description": "Number of accounts followed by both the viewer and this profile, from the public Bluesky graph.",
      "type": "integer"
    },
    "photos": {
      "items": {
        "ref": "#photoView",
        "type": "ref"
      },
      "type": "array"
    },
    "prompts": {
      "items": {
        "ref": "#prompt",
        "type": "ref"
      },
      "type": "array"
    },
    "pronouns": {
      "maxGraphemes": 24,
      "maxLength": 240,
      "type": "string"
    },
    "region": {
      "maxGraphemes": 64,
      "maxLength": 640,
      "type": "string"
    },
    "sharedInterests": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "tagline": {
      "maxGraphemes": 120,
      "maxLength": 1200,
      "type": "string"
    },
    "viewer": {
      "ref": "#viewerState",
      "type": "ref"
    }
  },
  "required": [
    "did",
    "handle",
    "indexedAt"
  ],
  "type": "object"
}
prompt object

A short question-and-answer pair shown on the public card.

Properties

answer string Required

No description available.

maxLength: 3000 bytesmaxGraphemes: 300 graphemes
question string Required

No description available.

maxLength: 1200 bytesmaxGraphemes: 120 graphemes
View raw schema
{
  "description": "A short question-and-answer pair shown on the public card.",
  "properties": {
    "answer": {
      "maxGraphemes": 300,
      "maxLength": 3000,
      "type": "string"
    },
    "question": {
      "maxGraphemes": 120,
      "maxLength": 1200,
      "type": "string"
    }
  },
  "required": [
    "question",
    "answer"
  ],
  "type": "object"
}
viewerState object

Per-viewer relationship state. Deliberately omits likedBy and blockedBy so one-sided likes and blocks never leak. following/followedBy come from the public Bluesky graph.

Properties

blocking boolean Optional

No description available.

followedBy boolean Optional

This account follows the viewer on Bluesky.

following boolean Optional

The viewer follows this account on Bluesky.

liked boolean Optional

No description available.

matched boolean Optional

No description available.

View raw schema
{
  "description": "Per-viewer relationship state. Deliberately omits likedBy and blockedBy so one-sided likes and blocks never leak. following/followedBy come from the public Bluesky graph.",
  "properties": {
    "blocking": {
      "type": "boolean"
    },
    "followedBy": {
      "description": "This account follows the viewer on Bluesky.",
      "type": "boolean"
    },
    "following": {
      "description": "The viewer follows this account on Bluesky.",
      "type": "boolean"
    },
    "liked": {
      "type": "boolean"
    },
    "matched": {
      "type": "boolean"
    }
  },
  "type": "object"
}

Lexicon Garden

@