com.airplaneian.contrail.temp.trip

airplaneian.com

{
  "id": "com.airplaneian.contrail.temp.trip",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "createdAt"
        ],
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 640,
            "description": "Free-text name for the trip, for example 'Tokyo, spring 2026'. Optional, and as with any free text it is public and permanent once published.",
            "maxGraphemes": 64
          },
          "source": {
            "type": "string",
            "maxLength": 64,
            "description": "Short identifier for the tool that produced this record, for example 'flighty' or 'manual'. Same meaning as on a flight record: together with 'sourceId' it lets a tool update the trips it wrote previously instead of duplicating them on a re-import."
          },
          "flights": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "at-uri"
            },
            "maxLength": 200,
            "description": "The flights that made up this trip, in the order they were flown, as AT-URIs pointing at com.airplaneian.contrail.temp.flight records. Plain AT-URIs rather than content-pinned strong references, because flight records are expected to be corrected in place as better data arrives, and a pinned reference would break on every such correction. References may dangle if a flight is later deleted; readers must tolerate that rather than treat it as an error."
          },
          "sourceId": {
            "type": "string",
            "maxLength": 512,
            "description": "The identifier the tool named in 'source' uses for this trip, in that tool's own namespace. Note that a source's grouping key may be sensitive even when the resulting grouping is not. A booking reference, for instance, is a credential that can be used to retrieve a reservation, and must not be written here. Derive an opaque identifier instead where the natural key cannot be published."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "When this record was written, as distinct from when the trip happened. The only required field. Write it with an explicit UTC offset and no fractional seconds, for example '2026-07-25T18:22:05-07:00'."
          }
        }
      },
      "description": "An assertion that a set of flights belonged to one journey. Grouping is a separate record so that a flight record stays a standalone assertion that does not depend on any grouping existing, and so that deleting a trip orphans nothing. The reference points one way only, from trip to flight, because nothing in the protocol keeps two directions consistent. A trip references only flight records the author wrote, and makes no claim about anyone else's repository. Only 'createdAt' is required, and an absent field means unknown or not applicable. Values derivable from the referenced flights, including start and end dates, leg count and total distance, are excluded on purpose. Note that a trip discloses more than its flights do individually, because it asserts that particular journeys were a single continuous absence."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}

Validate Record

Validate a record against com.airplaneian.contrail.temp.trip

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:5jsivedaksbcc4n2epiegflk
CID
bafyreifkqlkwvwv4x7h5mhgauqw3xbsugvryql2gh47loxmakpckm7oewy
Indexed At
2026-07-25 18:50 UTC
AT-URI
at://did:plc:5jsivedaksbcc4n2epiegflk/com.atproto.lexicon.schema/com.airplaneian.contrail.temp.trip

Version History (5 versions)

Lexicon Garden

@