{
  "schema_version": 1,
  "generated_from": "server.py",
  "routes": [
    {
      "method": "DELETE",
      "path": "/api/account/birth-profile",
      "match": "exact",
      "feature": "account",
      "access": "authenticated"
    },
    {
      "method": "POST",
      "path": "/api/account/birth-profile",
      "match": "exact",
      "feature": "account",
      "access": "authenticated"
    },
    {
      "method": "POST",
      "path": "/api/account/password",
      "match": "exact",
      "feature": "account",
      "access": "authenticated"
    },
    {
      "method": "GET",
      "path": "/api/account/status",
      "match": "exact",
      "feature": "account",
      "access": "authenticated"
    },
    {
      "method": "POST",
      "path": "/api/admin/membership",
      "match": "exact",
      "feature": "admin",
      "access": "admin"
    },
    {
      "method": "POST",
      "path": "/api/admin/refresh",
      "match": "exact",
      "feature": "admin",
      "access": "admin"
    },
    {
      "method": "GET",
      "path": "/api/admin/settings",
      "match": "exact",
      "feature": "admin",
      "access": "admin"
    },
    {
      "method": "POST",
      "path": "/api/admin/settings",
      "match": "exact",
      "feature": "admin",
      "access": "admin"
    },
    {
      "method": "POST",
      "path": "/api/admin/settings/test",
      "match": "exact",
      "feature": "admin",
      "access": "admin"
    },
    {
      "method": "GET",
      "path": "/api/alerts",
      "match": "exact",
      "feature": "alerts",
      "access": "authenticated"
    },
    {
      "method": "POST",
      "path": "/api/alerts",
      "match": "exact",
      "feature": "alerts",
      "access": "authenticated"
    },
    {
      "method": "DELETE",
      "path": "/api/alerts/(\\d+)",
      "match": "regex",
      "feature": "alerts",
      "access": "authenticated"
    },
    {
      "method": "POST",
      "path": "/api/alerts/(\\d+)/read",
      "match": "regex",
      "feature": "alerts",
      "access": "authenticated"
    },
    {
      "method": "POST",
      "path": "/api/alerts/read-all",
      "match": "exact",
      "feature": "alerts",
      "access": "authenticated"
    },
    {
      "method": "POST",
      "path": "/api/assistant/chat",
      "match": "exact",
      "feature": "review",
      "access": "member"
    },
    {
      "method": "DELETE",
      "path": "/api/assistant/messages",
      "match": "exact",
      "feature": "review",
      "access": "member"
    },
    {
      "method": "GET",
      "path": "/api/assistant/messages",
      "match": "exact",
      "feature": "review",
      "access": "member"
    },
    {
      "method": "GET",
      "path": "/api/auction",
      "match": "exact",
      "feature": "auction",
      "access": "authenticated"
    },
    {
      "method": "POST",
      "path": "/api/auth/login",
      "match": "exact",
      "feature": "auth",
      "access": "public"
    },
    {
      "method": "POST",
      "path": "/api/auth/logout",
      "match": "exact",
      "feature": "auth",
      "access": "authenticated"
    },
    {
      "method": "GET",
      "path": "/api/auth/me",
      "match": "exact",
      "feature": "auth",
      "access": "authenticated"
    },
    {
      "method": "POST",
      "path": "/api/auth/register",
      "match": "exact",
      "feature": "auth",
      "access": "public"
    },
    {
      "method": "POST",
      "path": "/api/backfill",
      "match": "exact",
      "feature": "admin",
      "access": "admin"
    },
    {
      "method": "GET",
      "path": "/api/chart/intraday",
      "match": "exact",
      "feature": "charts",
      "access": "authenticated"
    },
    {
      "method": "GET",
      "path": "/api/dashboard",
      "match": "exact",
      "feature": "market",
      "access": "authenticated"
    },
    {
      "method": "GET",
      "path": "/api/dragon-tiger",
      "match": "exact",
      "feature": "dragon_tiger",
      "access": "authenticated"
    },
    {
      "method": "GET",
      "path": "/api/dragon-tiger/profiles",
      "match": "exact",
      "feature": "dragon_tiger",
      "access": "authenticated"
    },
    {
      "method": "GET",
      "path": "/api/health",
      "match": "exact",
      "feature": "health",
      "access": "public"
    },
    {
      "method": "POST",
      "path": "/api/heaven/hexagram",
      "match": "exact",
      "feature": "heaven",
      "access": "member"
    },
    {
      "method": "POST",
      "path": "/api/heaven/interpret",
      "match": "exact",
      "feature": "heaven",
      "access": "member"
    },
    {
      "method": "POST",
      "path": "/api/heaven/personal",
      "match": "exact",
      "feature": "heaven",
      "access": "member"
    },
    {
      "method": "GET",
      "path": "/api/heaven/readings",
      "match": "exact",
      "feature": "heaven",
      "access": "member"
    },
    {
      "method": "DELETE",
      "path": "/api/heaven/readings/(\\d+)",
      "match": "regex",
      "feature": "heaven",
      "access": "member"
    },
    {
      "method": "POST",
      "path": "/api/heaven/sector-phases",
      "match": "exact",
      "feature": "heaven",
      "access": "admin"
    },
    {
      "method": "DELETE",
      "path": "/api/heaven/sector-phases/(.+)",
      "match": "regex",
      "feature": "heaven",
      "access": "admin"
    },
    {
      "method": "GET",
      "path": "/api/heaven/setup",
      "match": "exact",
      "feature": "heaven",
      "access": "member"
    },
    {
      "method": "POST",
      "path": "/api/mentors/chat",
      "match": "exact",
      "feature": "mentor",
      "access": "member"
    },
    {
      "method": "DELETE",
      "path": "/api/mentors/messages",
      "match": "exact",
      "feature": "mentor",
      "access": "member"
    },
    {
      "method": "GET",
      "path": "/api/mentors/messages",
      "match": "exact",
      "feature": "mentor",
      "access": "member"
    },
    {
      "method": "POST",
      "path": "/api/mentors/preferences",
      "match": "exact",
      "feature": "mentor",
      "access": "member"
    },
    {
      "method": "GET",
      "path": "/api/mentors/setup",
      "match": "exact",
      "feature": "mentor",
      "access": "member"
    },
    {
      "method": "GET",
      "path": "/api/notes",
      "match": "exact",
      "feature": "review",
      "access": "authenticated"
    },
    {
      "method": "POST",
      "path": "/api/notes",
      "match": "exact",
      "feature": "review",
      "access": "authenticated"
    },
    {
      "method": "DELETE",
      "path": "/api/notes/(\\d+)",
      "match": "regex",
      "feature": "review",
      "access": "authenticated"
    },
    {
      "method": "GET",
      "path": "/api/popularity",
      "match": "exact",
      "feature": "popularity",
      "access": "authenticated"
    },
    {
      "method": "GET",
      "path": "/api/realtime-aggregate/health",
      "match": "exact",
      "feature": "market",
      "access": "authenticated"
    },
    {
      "method": "POST",
      "path": "/api/reasons",
      "match": "exact",
      "feature": "admin",
      "access": "admin"
    },
    {
      "method": "GET",
      "path": "/api/rotation/history",
      "match": "exact",
      "feature": "rotation",
      "access": "authenticated"
    },
    {
      "method": "GET",
      "path": "/api/rotation/members",
      "match": "exact",
      "feature": "rotation",
      "access": "authenticated"
    },
    {
      "method": "POST",
      "path": "/api/screener/compile",
      "match": "exact",
      "feature": "screener",
      "access": "member"
    },
    {
      "method": "POST",
      "path": "/api/screener/run",
      "match": "exact",
      "feature": "screener",
      "access": "member"
    },
    {
      "method": "GET",
      "path": "/api/screener/setup",
      "match": "exact",
      "feature": "screener",
      "access": "member"
    },
    {
      "method": "POST",
      "path": "/api/screener/strategies",
      "match": "exact",
      "feature": "screener",
      "access": "member"
    },
    {
      "method": "DELETE",
      "path": "/api/screener/strategies/(\\d+)",
      "match": "regex",
      "feature": "screener",
      "access": "member"
    },
    {
      "method": "POST",
      "path": "/api/screener/sync",
      "match": "exact",
      "feature": "screener",
      "access": "member"
    },
    {
      "method": "GET",
      "path": "/api/screener/tracking",
      "match": "exact",
      "feature": "screener",
      "access": "member"
    },
    {
      "method": "POST",
      "path": "/api/screener/tracking",
      "match": "exact",
      "feature": "screener",
      "access": "member"
    },
    {
      "method": "DELETE",
      "path": "/api/screener/tracking/(\\d+)",
      "match": "regex",
      "feature": "screener",
      "access": "member"
    },
    {
      "method": "POST",
      "path": "/api/screener/tracking/refresh",
      "match": "exact",
      "feature": "screener",
      "access": "member"
    },
    {
      "method": "GET",
      "path": "/api/search",
      "match": "exact",
      "feature": "search",
      "access": "authenticated"
    },
    {
      "method": "GET",
      "path": "/api/search/detail",
      "match": "exact",
      "feature": "search",
      "access": "authenticated"
    },
    {
      "method": "GET",
      "path": "/api/seat-aliases",
      "match": "exact",
      "feature": "admin",
      "access": "authenticated"
    },
    {
      "method": "POST",
      "path": "/api/seat-aliases",
      "match": "exact",
      "feature": "admin",
      "access": "admin"
    },
    {
      "method": "GET",
      "path": "/api/sentiment/history",
      "match": "exact",
      "feature": "sentiment",
      "access": "authenticated"
    },
    {
      "method": "GET",
      "path": "/api/stock/(\\d{6})",
      "match": "regex",
      "feature": "market",
      "access": "authenticated"
    },
    {
      "method": "GET",
      "path": "/api/stock/(\\d{6})/preview",
      "match": "regex",
      "feature": "market",
      "access": "authenticated"
    },
    {
      "method": "GET",
      "path": "/api/themes",
      "match": "exact",
      "feature": "themes",
      "access": "authenticated"
    },
    {
      "method": "GET",
      "path": "/api/themes/detail",
      "match": "exact",
      "feature": "themes",
      "access": "authenticated"
    },
    {
      "method": "GET",
      "path": "/api/trades",
      "match": "exact",
      "feature": "review",
      "access": "authenticated"
    },
    {
      "method": "POST",
      "path": "/api/trades",
      "match": "exact",
      "feature": "review",
      "access": "authenticated"
    },
    {
      "method": "DELETE",
      "path": "/api/trades/(\\d+)",
      "match": "regex",
      "feature": "review",
      "access": "authenticated"
    },
    {
      "method": "GET",
      "path": "/api/watchlist",
      "match": "exact",
      "feature": "review",
      "access": "authenticated"
    },
    {
      "method": "POST",
      "path": "/api/watchlist",
      "match": "exact",
      "feature": "review",
      "access": "authenticated"
    },
    {
      "method": "DELETE",
      "path": "/api/watchlist/(\\d{6})",
      "match": "regex",
      "feature": "review",
      "access": "authenticated"
    }
  ]
}
