import type { PluginManifest } from "@@/plugins/manifest"; /** * Finances. * * The skeleton, published before the feature so that the repository, the mount prefix and the permission * key exist and are stable while the rest is still being decided. * * What it does NOT ship yet, and why each is an absence rather than a stub: * * db/ no tables until the data model is settled. A table added is easy; a table renamed after * someone has rows in it is not. * sidecar/ no process. Nothing here is long-lived yet — an importer or a rates poller would be. */ export const manifest: PluginManifest = { publisher: "officerdev", version: "2026.08.27.01", platform: ">=1.0.0", label: "Finances", summary: "Money, on your own machine.", tags: ["Personal"], icon: "Wallet", color: "#059669", /** * One key gating the whole surface. * * Finances is the kind of data where "read" is already a strong grant, so a second key splitting * read from write would say less than it looks like it says. One, until there is a surface that * genuinely divides. */ permissions: [ { key: "finances", label: "Finances", description: "Accounts, balances and transactions", }, ], };