{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A page of memory. The record key is the page's path: lowercase segments of [a-z0-9._-], each starting with a letter or digit, joined by ':' (projects:atproto:spaces). Any page can have child pages; a page's body is the index for its children. Every field is optional. Top-level keys other than the ones defined here are the page's properties, typed by the stream.cameron.memory.schema record for its parent path when there is one. Reserved, never properties: keys starting with '$', description, body, createdAt, updatedAt and meta. New core fields go inside meta, so the reserved set never grows.",
      "key": "any",
      "record": {
        "properties": {
          "body": {
            "description": "The page, in CommonMark. Link to another page by its path.",
            "maxGraphemes": 20000,
            "maxLength": 80000,
            "type": "string"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "description": {
            "description": "One line saying what the page is for, shown in listings and search results.",
            "maxGraphemes": 300,
            "maxLength": 1200,
            "type": "string"
          },
          "meta": {
            "description": "Reserved for core fields added later.",
            "properties": {},
            "type": "object"
          },
          "updatedAt": {
            "format": "datetime",
            "type": "string"
          }
        },
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "stream.cameron.memory",
  "lexicon": 1
}
