{
  "bundle": {
    "id": "freshcloud-mail",
    "name": "FreshCloud Mail",
    "description": "Sovereign mail client for FreshVibe apps. 17 PHP engine modules + 4 app-layer modules + React chrome. MIT-licensed clean-room reimplementation of MailSo."
  },
  "version": "0.1.0",
  "submodules": [
    {"id": "mail-engine-log",                  "version": "0.1.0", "visibility": "public", "optional": false, "feature": "audit",       "note": "Required for all modules. PSR-3-style logger."},
    {"id": "mail-engine-smtp",                 "version": "0.1.0", "visibility": "public", "optional": false, "feature": "send",        "note": "Required for sending mail. SMTP + STARTTLS."},
    {"id": "mail-engine-imap-client",          "version": "0.1.0", "visibility": "public", "optional": false, "feature": "fetch",       "note": "Required for reading mail. IMAP4 state machine."},
    {"id": "mail-engine-imap-commands",        "version": "0.1.0", "visibility": "public", "optional": false, "feature": "fetch",       "note": "IMAP command builders. Pure data."},
    {"id": "mail-engine-imap-requests",        "version": "0.1.0", "visibility": "public", "optional": false, "feature": "fetch",       "note": "IMAP request/response parsers."},
    {"id": "mail-engine-mail-client",          "version": "0.1.0", "visibility": "public", "optional": false, "feature": "facade",      "note": "High-level mail client. Composes SMTP + IMAP + MIME."},
    {"id": "mail-engine-mime-parser",          "version": "0.1.0", "visibility": "public", "optional": false, "feature": "parse",       "note": "RFC 2045-2049 MIME parser."},
    {"id": "mail-engine-mime-content",         "version": "0.1.0", "visibility": "public", "optional": false, "feature": "model",       "note": "MIME value objects (Part, Attachment, BodyPart)."},
    {"id": "mail-engine-mime-enums",           "version": "0.1.0", "visibility": "public", "optional": false, "feature": "model",       "note": "MIME enums (ContentType, TransferEncoding, etc.)."},
    {"id": "mail-engine-net-socket",           "version": "0.1.0", "visibility": "public", "optional": false, "feature": "transport",   "note": "TCP/SSL socket wrapper with STARTTLS."},
    {"id": "mail-engine-net-exceptions",       "version": "0.1.0", "visibility": "public", "optional": false, "feature": "errors",      "note": "Network exception hierarchy."},
    {"id": "mail-engine-base-enums",           "version": "0.1.0", "visibility": "public", "optional": false, "feature": "base",        "note": "Common enums (Priority, Sensitivity, etc.)."},
    {"id": "mail-engine-base-stream-wrappers", "version": "0.1.0", "visibility": "public", "optional": false, "feature": "io",          "note": "PHP stream wrappers for I/O abstraction."},
    {"id": "mail-engine-base-utils",           "version": "0.1.0", "visibility": "public", "optional": false, "feature": "utility",     "note": "Static utilities (Strings, Arrays, Time, Id)."},
    {"id": "mail-engine-config",               "version": "0.1.0", "visibility": "public", "optional": false, "feature": "config",      "note": "Configuration value object."},
    {"id": "mail-engine-cache",                "version": "0.1.0", "visibility": "public", "optional": true,  "feature": "performance", "note": "In-memory + file cache. LRU + TTL. Optional but recommended."},
    {"id": "mail-engine-sieve",                "version": "0.1.0", "visibility": "public", "optional": true,  "feature": "filter",      "note": "RFC 5228 Sieve filter parser + executor. Optional."},
    {"id": "mail-app-compose",                 "version": "0.1.0", "visibility": "public", "optional": false, "feature": "compose",     "note": "App-layer compose orchestrator. Wires SMTP + Identity + PB for /compose/* API."},
    {"id": "mail-app-identity",                "version": "0.1.0", "visibility": "public", "optional": false, "feature": "auth",        "note": "App-layer identity provider. User lookup by credentials."},
    {"id": "mail-app-pocketbase",              "version": "0.1.0", "visibility": "public", "optional": false, "feature": "storage",     "note": "App-layer PocketBase adapter. InMemoryPb (test) + RealPocketBaseAdapter (prod)."},
    {"id": "mail-app-smtp-bridge",             "version": "0.1.0", "visibility": "public", "optional": true,  "feature": "compat",      "note": "SMTP bridge shim. Wraps new SmtpClient to old Smtp interface."}
  ],
  "compatibility": {
    "fvw": "8.2",
    "platform": ["standalone-spa", "node-server"],
    "php": "8.1"
  },
  "license": {
    "type": "generic",
    "name": "MIT",
    "requires_key": false
  }
}
