| 0001 |
One container; Go + HTMX, no SPA |
| 0002 |
SQLite by default, Postgres optional, behind one Store and a shared contract suite |
| 0003 |
Money is an append-only ledger in integer minor units |
| 0004 |
Withdrawal requests hold funds on creation |
| 0005 |
In-process scheduler with idempotency keys, no cron sidecar |
| 0006 |
Migrations run at startup |
| 0007 |
Email via an outbox; in-app is the source of truth |
| 0008 |
Per-account throttling; kids hard-lock, admins never do |
| 0009 |
Jar locks: admin locks are hard, kid self-locks are soft with an override gauntlet |
| 0010 |
AGPL-3.0 licence, matching Copperkeep |
| 0011 |
The lock-breaking gauntlet is enforced by the server |
| 0012 |
Release images are built with the Dockerfile and buildx, not ko |
| 0013 |
Charts are SVG drawn on the server |
| 0014 |
Investing is a simulated brokerage at real prices, with parent-paid profit |
| 0015 |
JSON API at /api/v1 with household bearer tokens (read / write / money scopes) |
| 0016 |
MCP server (opt-in, streamable HTTP) layered on the service layer |