# Specs What nixos-router should become, beyond what exists. `PLAN.md` records decisions and what is done; this file lists wanted features. The MCP server (read and change scopes) exists; the rest is not started. ## Later ### Programmatic access - **REST API**: done with the MCP's feature set (OpenAPI at `/api/openapi.json`, see `PLAN.md`). Still to do: the rest of what the web UI does (apply/confirm, metrics, updates), versioned; the web UI would use the same handlers. - **GraphQL** on top of it, possibly: one query for the overview and for related settings. - **MCP server**: done for reading and editing settings (see `PLAN.md`, "MCP server"). Still to do: an `apply` scope (build, activate, confirm; a token with it can change the running system), more read tools (metrics history; `get_logs` exists), per-token expiry, and a notice in the web UI when a token edited the settings. - Rule for all of it: changes go through `settings.json` and `router-apply` (commit-confirm), never straight to the live system; tokens have scopes; every call is logged.