Hub-Spoke: Hub holds shared infra; spokes peer to hub only; NSGs per subnet
Private Endpoints: Always wire PE + DNS Zone Group + DNS Zone; see group ID table in reference
Diagnostics: categoryGroup: 'allLogs' + AllMetrics; pass workspace name not ID
Conditional: bool params with defaults; guard outputs with ternary
Identity: guid() for idempotent role names; principalType: 'ServicePrincipal'; scope narrowly
Budget: 3 forecast thresholds (80%/100%/120%); amount and emails MUST be parameters
What-If: Run before every deploy; watch for unexpected deletes and SKU downgrades
AVM: Always pin versions; wrap modules to override defaults; verify outputs in README
AVM Version Fallback: When AVM version helpers are incomplete, query public MCR tag listings
(mcr.microsoft.com/v2/bicep/{module}/tags/list) to discover authoritative published versions