{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Decide on a tab offered to the site, for whoever may change it: accept puts it in one of the site's channels as it is, with everything kept in it, now read by whoever that channel is for; decline leaves it where it was.",
      "errors": [
        {
          "name": "InvalidOffer"
        },
        {
          "name": "NotFound"
        },
        {
          "name": "Forbidden"
        }
      ],
      "input": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "decision": {
              "knownValues": [
                "accept",
                "decline"
              ],
              "type": "string"
            },
            "group": {
              "format": "did",
              "type": "string"
            },
            "offer": {
              "type": "string"
            },
            "to": {
              "description": "The slug of the site's channel it goes in, if not the one it was offered to.",
              "type": "string"
            }
          },
          "required": [
            "group",
            "offer",
            "decision"
          ],
          "type": "object"
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "channel": {
              "description": "Where it went, when accepted.",
              "type": "string"
            },
            "tab": {
              "description": "Its slug there.",
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "procedure"
    }
  },
  "id": "fyi.opensocial.decideTabOffer",
  "lexicon": 1
}
