What problem does it solve? Writing Nix modules requires choosing the correct option types and declaration helpers, and picking the wrong type or forgetting a default leads to confusing evaluation errors. This Skill provides ready-to-use patterns for declaring options correctly the first time. ## Core Features & Use Cases - Helper Selection Guidance: Shows when to use mkEnableOption, mkPackageOption, or mkOption for common declaration scenarios. - Type Reference Patterns: Covers basic types (str, int, port, path, package), collection types (listOf, attrsOf, enum, nullOr, either), and validated port ranges. - Submodule Pattern: Demonstrates attrsOf submodule declarations for nested service configuration with per-instance options. - Use Case: When adding a new service to a NixOS or Home Manager module, use these patterns to declare an enable flag, a validated port option, and a package option with sensible defaults. ## Quick Start Ask the AI to define Nix module options for a new service including an enable flag, a port, and a package using mkOption and the appropriate types.