///|
fn main {
  try {
    let schema = @config.parse_kconfig(
      "config NETWORK\n bool \"Networking\"\n default y\nconfig TLS\n bool \"TLS\"\n depends on NETWORK\n help\n   Enable encrypted transport.\nchoice STORAGE\n bool \"Storage backend\"\n default FLASH\nconfig RAM\n bool \"RAM\"\nconfig FLASH\n bool \"Flash\"\nendchoice",
    )
    let requests = schema.parse_config("CONFIG_TLS=y\nCONFIG_RAM=y")
    let result = schema.resolve(requests)
    for row in schema.inspect(result) {
      println(
        row.name +
        "=" +
        row.value.text() +
        " visibility=" +
        row.visibility.text() +
        " reason=" +
        row.reason,
      )
    }
    assert_eq(schema.request_options(requests, "TLS"), [
      @config.Logic(@config.N),
      @config.Logic(@config.Y),
    ])
    assert_eq(result.value("FLASH"), @config.Logic(@config.N))
    assert_eq(schema.help("TLS"), "Enable encrypted transport.")
  } catch {
    _ => abort("UI workflow failed")
  }
}