--- description: "MVC architecture conventions for {{PROJECT_NAME}}" alwaysApply: true --- # MVC Architecture — {{PROJECT_NAME}} ## Layer responsibilities - **Model**: Data + business logic. Pure Dart. - **View**: Renders UI, observes Controller state. No business logic. - **Controller** (GetX): Connects Model ↔ View. Manages state transitions. ## Import rules {{ARCH_IMPORT_RULES}} ## Controller rules - Controllers are injected via `Binding`, never created in widgets - One Controller per feature screen (not per widget) - Controllers fetch data in `onInit()`, clean up in `onClose()` - All reactive state marked with `.obs`