{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A user's Galaxy: the outer boundary of who they know they would feel comfortable interacting with online. Each account has at most one Galaxy (record key `self`). Membership is stored as separate `app.cosmosis.galaxyMember` records so a Galaxy can hold thousands of accounts. Galaxies are always permissioned: the Galaxy lives in a dedicated Space of type `app.cosmosis.galaxySpace`. The Space `skey` is a tid minted at creation (HappyView skeys are unique per Space type across an entire instance, so a fixed `skey` could only ever be used by one account); the record inside always uses rkey `self`, so the record's full URI is `at://<space-authority>/space/app.cosmosis.galaxySpace/<tid>/<owner-did>/app.cosmosis.galaxy/self`. Clients find a user's Galaxy by listing their `app.cosmosis.galaxySpace`-typed Spaces. The Galaxy record and all of its galaxyMember records live inside that Space and share its permission boundary.",
      "key": "literal:self",
      "record": {
        "properties": {
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "lastInferredAt": {
            "description": "When the user last accepted suggestions from Galaxy inference. Informational only (e.g. for prompting a refresh).",
            "format": "datetime",
            "type": "string"
          }
        },
        "required": [
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "app.cosmosis.galaxy",
  "lexicon": 1
}
