Architectural rules and best practices for Next.js App Router including Server/Client Components, Server Actions, Route Handlers, and layer separation