Skip to main content
< All Topics
Print

02 architecture overview

id: architecture-overview

title: “50-State Expansion Architecture”

version: 1.0

last_updated: 2026-02-11

priority: P0

keywords: [“architecture”, “design”, “strategy”]

2) 50-State Expansion Architecture

2.1 Core Strategy

Replace Georgia-specific models with:

  1. Multi-state region system (USDA climate region + state inference)
  2. Location-aware data retrieval (query by state/zone/coordinates)
  3. National API integrations (USDA, NOAA, NRCS, extension services)
  4. Graceful fallback (generic guidance when state-specific unavailable)

2.2 New Models

StateRegion Model


enum USState: String, CaseIterable {
    case alabama = "AL"
    case alaska = "AK"
    // ... all 50 states + DC + territories
    
    var fullName: String
    var capitalCity: String
    var primaryExtensionURL: String
    var defaultZone: String  // Most populated zone
    var climateRegions: [StateClimateRegion]
}

struct StateClimateRegion {
    let name: String
    let usdaZones: [String]
    let keyCities: [String]
    let avgLastFrost: DateComponents
    let avgFirstFrost: DateComponents
    let growingSeasonDays: ClosedRange<Int>
    let typicalSoilTypes: [String]
    let soilPHRange: ClosedRange<Double>
    let elevationRange: String?
}

LocationContext Model


struct LocationContext {
    let state: USState
    let climateRegion: StateClimateRegion
    let usdaZone: String
    let coordinates: CLLocationCoordinate2D
    let county: String?
    let nearestPWS: String?
}

Table of Contents