{
  "id": "com.lattice.email",
  "name": "Email",
  "icon": "✉️",
  "color": "#8b5cf6",
  "description": "Send and receive mail for one account.",
  "requested_permissions": {
    "storage": [
      "kv",
      "sql"
    ],
    "network": {
      "allowlist": []
    },
    "email": true,
    "events": {
      "email-sent": {
        "description": "A message was sent.",
        "schema": {
          "type": "object",
          "properties": {
            "id": {
              "type": "integer",
              "description": "Message ID."
            },
            "to": {
              "type": "string",
              "description": "Recipient address or comma-separated addresses."
            },
            "subject": {
              "type": "string",
              "description": "Message subject."
            },
            "body": {
              "type": "string",
              "description": "Message body; empty means no content."
            },
            "sent_at": {
              "type": "string",
              "description": "Send time, UTC ISO 8601 timestamp."
            }
          },
          "required": [
            "id",
            "to",
            "subject",
            "body",
            "sent_at"
          ]
        }
      },
      "email-received": {
        "description": "A message was received.",
        "schema": {
          "type": "object",
          "properties": {
            "id": {
              "type": "integer",
              "description": "Message ID."
            },
            "from": {
              "type": "string",
              "description": "Sender address or Display Name <address>."
            },
            "subject": {
              "type": "string",
              "description": "Message subject."
            },
            "body": {
              "type": "string",
              "description": "Message body; empty means no content."
            },
            "received_at": {
              "type": "string",
              "description": "Receipt time, UTC ISO 8601 timestamp."
            }
          },
          "required": [
            "id",
            "from",
            "subject",
            "body",
            "received_at"
          ]
        }
      }
    },
    "listeners": {
      "send-email": {
        "description": "Send a message.",
        "schema": {
          "type": "object",
          "properties": {
            "to": {
              "type": "string",
              "description": "Address or comma-separated addresses; \"me\" uses this account."
            },
            "subject": {
              "type": "string",
              "description": "Nonempty message subject."
            },
            "body": {
              "type": "string",
              "description": "Message body; omitted or empty means no content."
            }
          },
          "required": [
            "to",
            "subject"
          ]
        }
      }
    }
  },
  "source": {
    "assets": [
      "index.html",
      "app.js",
      "app.css",
      "ui.css",
      "emits.js",
      "listens.js"
    ]
  }
}