place.birds.sighting

birds.place

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "location": {
      "properties": {
        "latitude": {
          "description": "Decimal degrees, as a string to avoid float drift. Deliberately coarse: clients should write no more than 3 decimal places (~110m). These records are public and permanent, and a bird sighting does not need a precise fix.",
          "maxLength": 32,
          "type": "string"
        },
        "longitude": {
          "description": "Decimal degrees, as a string. Same precision limit as latitude.",
          "maxLength": 32,
          "type": "string"
        },
        "name": {
          "description": "Free-text place name, as the observer chose it (e.g. \"Montrose Point Bird Sanctuary, Chicago\"). Independent of the coordinates and not verified against them.",
          "maxGraphemes": 160,
          "maxLength": 640,
          "type": "string"
        }
      },
      "required": [
        "latitude",
        "longitude"
      ],
      "type": "object"
    },
    "main": {
      "description": "A bird sighting logged by the observer, stored in their own repository. Honor system: `species` is what the observer believes they saw, not a verified determination.",
      "key": "tid",
      "record": {
        "properties": {
          "count": {
            "description": "How many individuals the observer counted. Absent means one, or means they did not count.",
            "maximum": 100000,
            "minimum": 1,
            "type": "integer"
          },
          "createdAt": {
            "description": "Client-declared timestamp for when this record was written.",
            "format": "datetime",
            "type": "string"
          },
          "location": {
            "description": "Roughly where the bird was. Optional, and deliberately coarse — see #location.",
            "ref": "#location",
            "type": "ref"
          },
          "media": {
            "description": "Evidence, in whatever form it was captured: a photo, a video, or a recording of the call. Ordered as the observer added it.",
            "items": {
              "ref": "#media",
              "type": "ref"
            },
            "maxLength": 4,
            "type": "array"
          },
          "notes": {
            "description": "Anything else the observer wants to say about the sighting: behaviour, plumage, who they were with.",
            "maxGraphemes": 600,
            "maxLength": 3000,
            "type": "string"
          },
          "observedAt": {
            "description": "Client-declared timestamp for when the bird was seen. Distinct from createdAt so a sighting can be written up later. Not verified by anything.",
            "format": "datetime",
            "type": "string"
          },
          "species": {
            "description": "Common name as the observer said it. Free text on purpose — always present, even when no code was resolved.",
            "maxGraphemes": 160,
            "maxLength": 640,
            "type": "string"
          },
          "speciesCode": {
            "description": "The observer's asserted identification as a stable eBird/Clements taxon code (e.g. `norcar`). Present when they picked from the list; absent when they just typed something. May be a `spuh` or `slash` code when the identification is honestly partial.",
            "maxLength": 32,
            "type": "string"
          }
        },
        "required": [
          "species",
          "observedAt",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "media": {
      "properties": {
        "alt": {
          "description": "Alt text describing the media for people who cannot see or hear it.",
          "maxGraphemes": 400,
          "maxLength": 2000,
          "type": "string"
        },
        "blob": {
          "accept": [
            "image/*",
            "audio/*",
            "video/*"
          ],
          "description": "The captured file. Audio is first-class here: a bird's call is often better evidence than a photograph of a silhouette.",
          "maxSize": 100000000,
          "type": "blob"
        }
      },
      "required": [
        "blob"
      ],
      "type": "object"
    }
  },
  "id": "place.birds.sighting",
  "lexicon": 1
}

Validate Record

Validate a record against place.birds.sighting

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:w4p4bumx22vgnjmctoqjj7sy
CID
bafyreifdudzznkxhtpd4xy5zc7zmiu6wydnslck6h6khyvrpdrp4aey634
Indexed At
2026-07-27 20:03 UTC
AT-URI
at://did:plc:w4p4bumx22vgnjmctoqjj7sy/com.atproto.lexicon.schema/place.birds.sighting

Version History (4 versions)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • The picture the observer wants to represent a species in their own collection. One per species; the record key is the taxon code (e.g. `easpho`), so the choice is addressable without a lookup. Purely a display preferenc…

Lexicon Garden

@