Server-side FlagDash client with explicit endpoint tier and bounded TTL cache.
The client is a value, not a background process. It owns a private ETS table
for cached reads and starts no timer while idle. Call close/1 when the
process that created a long-lived client no longer needs it.
Summary
Types
@type context() :: map()
@type option() :: {:base_url, String.t()} | {:timeout, non_neg_integer()} | {:cache_ttl, non_neg_integer()} | {:region, String.t() | nil} | {:req_options, keyword()}
@type t() :: %FlagDash.Client{ base_url: String.t(), cache: :ets.tid(), cache_ttl: non_neg_integer(), region: String.t() | nil, req_options: keyword(), sdk_key: String.t(), timeout: non_neg_integer() }