place.birds.sighting

birds.place

{
  "id": "place.birds.sighting",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "species",
          "observedAt",
          "createdAt"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "minimum": 1,
            "description": "How many individuals."
          },
          "media": {
            "type": "array",
            "items": {
              "ref": "#media",
              "type": "ref"
            },
            "maxLength": 4
          },
          "notes": {
            "type": "string",
            "maxLength": 3000,
            "maxGraphemes": 600
          },
          "species": {
            "type": "string",
            "maxLength": 640,
            "description": "Common name as the observer said it. Free text on purpose — always present, even when no code was resolved.",
            "maxGraphemes": 160
          },
          "location": {
            "ref": "#location",
            "type": "ref"
          },
          "createdAt": {
            "type": "string",
            "format": "datetime"
          },
          "observedAt": {
            "type": "string",
            "format": "datetime",
            "description": "When the bird was seen. Distinct from createdAt so a sighting can be logged later."
          },
          "speciesCode": {
            "type": "string",
            "maxLength": 32,
            "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."
          }
        }
      },
      "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."
    },
    "media": {
      "type": "object",
      "required": [
        "blob"
      ],
      "properties": {
        "alt": {
          "type": "string",
          "maxLength": 2000
        },
        "blob": {
          "type": "blob",
          "accept": [
            "image/*",
            "audio/*",
            "video/*"
          ],
          "maxSize": 100000000
        }
      }
    },
    "location": {
      "type": "object",
      "required": [
        "latitude",
        "longitude"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 640,
          "description": "Free-text place name."
        },
        "latitude": {
          "type": "string",
          "maxLength": 32,
          "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."
        },
        "longitude": {
          "type": "string",
          "maxLength": 32,
          "description": "Decimal degrees, as a string. Same precision limit as latitude."
        }
      }
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "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
bafyreib4m3zlmevpcgub4f3b7icrsz4kfh3wkl2nkv3sgro7ijus6cgxcu
Indexed At
2026-07-27 17:07 UTC
AT-URI
at://did:plc:w4p4bumx22vgnjmctoqjj7sy/com.atproto.lexicon.schema/place.birds.sighting

Version History (4 versions)

Lexicon Garden

@