interface config { variant value { null, boolean(bool), num(number), str(string), arr(list), /// There's no native map type in WIT, so we use a list of tuples. obj(list>), } /// Types cannot be recursive in WIT, so we need to create a /// second type for the top-level type to reference. variant primitive-value { null, boolean(bool), num(number), str(string), } variant number { posint(u64), /// Always less than zero. negint(s64), /// Always finite. float(float64), } /// Returns all config key names. config-keys: func() -> list; /// Returns the named config value. config-var: func(key: string) -> option; /// Returns the number of proxy hops expected exterior to Bulwark. proxy-hops: func() -> u8; }