pub const NAN_U16: u16 = u16::MAX; pub const QUANT_SCALE: f32 = 65534.0; pub const HISTOGRAM_BINS: usize = 100; pub const H3_PRECOMPUTE_MAX: u8 = 12; pub const H3_REQUEST_MIN: u8 = 4; pub const H3_REQUEST_MAX: u8 = 12; pub const SERVER_ADDRESS: &str = "0.0.0.0:8001"; pub const GRID_CELL_SIZE: f32 = 0.01; pub const MAX_CELLS_PER_REQUEST: usize = 200000; pub const MAX_POIS_PER_REQUEST: usize = 3000; pub const PROPERTIES_LIMIT: usize = 100; pub const PLACES_LIMIT: usize = 20; pub const PRICE_HISTORY_POINTS_LIMIT: usize = 5000; pub const POSTCODE_SEARCH_OFFSET: f64 = 0.02; pub const AI_FILTERS_MAX_TOKENS: usize = 2000; /// Gemini 3 recommends 1.0; lower values can cause looping or degraded performance. pub const AI_FILTERS_TEMPERATURE: f32 = 1.0; pub const AI_FILTERS_WEEKLY_TOKEN_LIMIT: u64 = 10_000_000; /// Timeout for outbound HTTP service calls (seconds). pub const SERVICE_CALL_TIMEOUT: u64 = 120; /// Demo free zone bounds (south, west, north, east) — inner London, roughly zone 1. /// Users without a license can only query data within these bounds. pub const FREE_ZONE_BOUNDS: (f64, f64, f64, f64) = (51.44, -0.31, 51.59, 0.05); pub const SHARE_CACHE_TTL_SECS: u64 = 300; pub const SHARE_CACHE_MAX_ENTRIES: usize = 1024; pub const MIN_SHARE_ZOOM: f64 = 11.0; pub const MAX_SHARE_ZOOM: f64 = 20.0; pub const MAX_SHARE_LAT_SPAN: f64 = 1.2; pub const MAX_SHARE_LON_SPAN: f64 = 2.0;