{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "On the source host: start moving the group to another host. Answers with a createAccount service token signed by the group, for the destination; the group's handle, address and spaces; and a token, good for an hour, with which the destination pulls the group from here (migrateExport). Requires group.configure.",
      "input": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "destDid": {
              "description": "The destination host's service DID.",
              "format": "did",
              "type": "string"
            },
            "group": {
              "format": "did",
              "type": "string"
            }
          },
          "required": [
            "group",
            "destDid"
          ],
          "type": "object"
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "exportToken": {
              "description": "For migrateExport, for an hour.",
              "type": "string"
            },
            "serviceJwt": {
              "type": "string"
            },
            "snapshot": {
              "description": "{handle, address, spaces: [{uri, type, skey}]}: every space the group holds.",
              "type": "unknown"
            }
          },
          "required": [
            "serviceJwt",
            "snapshot",
            "exportToken"
          ],
          "type": "object"
        }
      },
      "type": "procedure"
    }
  },
  "id": "fyi.opensocial.migratePrepare",
  "lexicon": 1
}
