{
  "_id": "6a1ee762b401979e73411757",
  "Package": "soilKey",
  "Type": "Package",
  "Title": "Automated Soil Profile Classification per 'WRB' 2022, 'SiBCS' 5\nand 'USDA' Soil Taxonomy 13",
  "Version": "0.9.97",
  "Date": "2026-05-13",
  "Authors@R": "person(\"Hugo\", \"Rodrigues\",\nemail = \"rodrigues.machado.hugo@gmail.com\",\nrole  = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0002-8070-8126\"))",
  "Description": "Implements deterministic classification keys for the World\nReference Base for Soil Resources ('WRB') 2022, 4th edition\n(IUSS Working Group WRB, 2022, ISBN:979-8-9862451-1-9), the\nBrazilian System of Soil Classification ('SiBCS') 5th edition\n(Santos et al., 2018, ISBN:978-85-7035-800-4) and the United\nStates Department of Agriculture ('USDA') Soil Taxonomy 13th\nedition (Soil Survey Staff, 2022,\n<https://www.nrcs.usda.gov/resources/guides-and-instructions/keys-to-soil-taxonomy>).\nProvides a unified profile representation with explicit\nper-attribute provenance, multimodal extraction from field\nreports and photos via vision-language models (VLM), spatial\npriors from 'SoilGrids' (Poggio et al., 2021,\n<doi:10.5194/soil-7-217-2021>) and national soil maps, and\ngap-filling of soil attributes from visible-near-infrared\n(Vis-NIR) or mid-infrared (MIR) spectra via the Open Soil\nSpectral Library ('OSSL'; Safanelli et al., 2025,\n<doi:10.7717/peerj.18908>). The taxonomic key itself is never\ndelegated to a large language model (LLM); LLMs are restricted\nto schema-validated extraction. Each classification result\nreports a key trace, a provenance-aware evidence grade, and\nambiguities that further measurement would resolve.",
  "License": "MIT + file LICENSE",
  "URL": "https://github.com/HugoMachadoRodrigues/soilKey,\nhttps://hugomachadorodrigues.github.io/soilKey/",
  "BugReports": "https://github.com/HugoMachadoRodrigues/soilKey/issues",
  "Encoding": "UTF-8",
  "LazyData": "true",
  "RoxygenNote": "7.3.3",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-19 14:16:28 UTC",
    "User": "root"
  },
  "Author": "Hugo Rodrigues [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-8070-8126>)",
  "Maintainer": "Hugo Rodrigues <rodrigues.machado.hugo@gmail.com>",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-05-19 09:20:21 UTC",
  "RemoteUrl": "https://github.com/cran/soilKey",
  "RemoteRef": "HEAD",
  "RemoteSha": "52ec21dd0b9b877640546d1c1d6b9d75ea204c93",
  "MD5sum": "bd25e446b9238d0c8b44dbad55b204c5",
  "_user": "cran",
  "_type": "src",
  "_file": "soilKey_0.9.97.tar.gz",
  "_fileid": "d8a4b2acec68ae97f7ee9ad4f7f70619c3a4647577bd4dec079a45481dbfbf68",
  "_filesize": 7855925,
  "_sha256": "d8a4b2acec68ae97f7ee9ad4f7f70619c3a4647577bd4dec079a45481dbfbf68",
  "_created": "2026-05-19T14:16:28.000Z",
  "_published": "2026-06-02T14:23:30.226Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 79093334609,
      "time": 362,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7086218915"
    },
    {
      "job": 79093334646,
      "time": 339,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7086207671"
    },
    {
      "job": 79093333930,
      "time": 328,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7086060486"
    },
    {
      "job": 79093333324,
      "time": 169,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7360470555"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/26102339739",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/cran/soilKey",
  "_commit": {
    "id": "52ec21dd0b9b877640546d1c1d6b9d75ea204c93",
    "author": "Hugo Rodrigues <rodrigues.machado.hugo@gmail.com>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 0.9.97\n",
    "time": 1779182421
  },
  "_maintainer": {
    "name": "Hugo Rodrigues",
    "email": "rodrigues.machado.hugo@gmail.com",
    "login": "hugomachadorodrigues",
    "orcid": "0000-0002-8070-8126",
    "twitter": "@Hugo_MRodrigues",
    "description": "Research Soil Scientist | Soil Health Modeling, Digital Soil Mapping & AI | Spectroscopy",
    "uuid": 37313555
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1",
      "role": "Depends"
    },
    {
      "package": "R6",
      "role": "Imports"
    },
    {
      "package": "data.table",
      "role": "Imports"
    },
    {
      "package": "yaml",
      "role": "Imports"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "withr",
      "role": "Imports"
    },
    {
      "package": "aqp",
      "role": "Suggests"
    },
    {
      "package": "SoilTaxonomy",
      "role": "Suggests"
    },
    {
      "package": "mpspline2",
      "role": "Suggests"
    },
    {
      "package": "terra",
      "role": "Suggests"
    },
    {
      "package": "foreign",
      "role": "Suggests"
    },
    {
      "package": "sf",
      "role": "Suggests"
    },
    {
      "package": "chromote",
      "role": "Suggests"
    },
    {
      "package": "munsellinterpol",
      "role": "Suggests"
    },
    {
      "package": "pls",
      "role": "Suggests"
    },
    {
      "package": "prospectr",
      "role": "Suggests"
    },
    {
      "package": "resemble",
      "role": "Suggests"
    },
    {
      "package": "ellmer",
      "role": "Suggests"
    },
    {
      "package": "httr",
      "role": "Suggests"
    },
    {
      "package": "jsonlite",
      "role": "Suggests"
    },
    {
      "package": "jsonvalidate",
      "role": "Suggests"
    },
    {
      "package": "pdftools",
      "role": "Suggests"
    },
    {
      "package": "magick",
      "role": "Suggests"
    },
    {
      "package": "shiny",
      "role": "Suggests"
    },
    {
      "package": "DT",
      "role": "Suggests"
    },
    {
      "package": "DBI",
      "role": "Suggests"
    },
    {
      "package": "RSQLite",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-21",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "0.9.97",
      "date": "2026-05-19"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "hugomachadorodrigues",
      "count": 1,
      "uuid": 37313555
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/soilKey"
  },
  "_devurl": "https://github.com/hugomachadorodrigues/soilkey",
  "_pkgdown": "https://hugomachadorodrigues.github.io/soilKey/",
  "_searchresults": 38,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/soilKey.html",
    "manual.pdf"
  ],
  "_cranurl": false,
  "_releases": [
    {
      "version": "0.9.97",
      "date": "2026-05-19"
    }
  ],
  "_exports": [
    "%||%",
    "abrupt_textural_difference",
    "acric_andisol_usda",
    "acric_oxisol_usda",
    "acrisol",
    "aeolic_material",
    "aeric_oxisol_usda",
    "aeric_subgroup_usda",
    "al_rich_spodic_usda",
    "albaquult_qualifying_usda",
    "albeluvic_glossae",
    "albic",
    "albic_horizon_usda",
    "albic_subgroup_usda",
    "alboll_qualifying_usda",
    "alfic_subgroup_usda",
    "alfisol_qualifying_usda",
    "alfisol_usda",
    "alic_andisol_usda",
    "alisol",
    "andic_properties",
    "andic_soil_properties_usda",
    "andic_subgroup_usda",
    "andisol_qualifying_usda",
    "andisol_usda",
    "andosol",
    "anhydrous_conditions_usda",
    "anionic_subgroup_usda",
    "annotate_wrb_from_usda",
    "anthraquic",
    "anthric_horizons",
    "aqualf_qualifying_usda",
    "aquand_qualifying_usda",
    "aquandic_subgroup_usda",
    "aquent_qualifying_usda",
    "aquept_qualifying_usda",
    "aquert_qualifying_usda",
    "aquic_conditions_usda",
    "aquic_subgroup_usda",
    "aquoll_qualifying_usda",
    "aquult_qualifying_usda",
    "arenic_subgroup_usda",
    "arenic_texture",
    "argic",
    "argic_aqp",
    "argic_aridisol_usda",
    "argic_mollisol_usda",
    "argic_subgroup_usda",
    "argic_with_strong_clay_films",
    "argillic_clay_films_test",
    "argillic_or_kandic_usda",
    "argillic_usda",
    "argillic_within_usda",
    "argissolo",
    "argissolo_acinzentado",
    "argissolo_amarelo",
    "argissolo_bruno_acinzentado",
    "argissolo_vermelho",
    "argissolo_vermelho_amarelo",
    "aridisol_qualifying_usda",
    "aridisol_usda",
    "artefacts",
    "as_aqp",
    "atividade_argila_alta",
    "attach_lucas_spectra",
    "audit_argic_strong_films",
    "auto_set_proj_env",
    "available_esdb_attributes",
    "B_espodico",
    "B_incipiente",
    "B_latossolico",
    "B_nitico",
    "B_planico",
    "B_textural",
    "batch_robustness",
    "benchmark_afsp",
    "benchmark_bdsolos",
    "benchmark_lucas_2018",
    "benchmark_performance",
    "benchmark_redape",
    "benchmark_run_classification",
    "benchmark_unified",
    "benchmark_wrb_vs_usda",
    "calcaric_material",
    "calcic",
    "calcic_horizon_usda",
    "calcic_subgroup_usda",
    "cambic",
    "cambic_aqp",
    "cambissolo",
    "cambissolo_fluvico",
    "cambissolo_haplico",
    "cambissolo_histico",
    "cambissolo_humico",
    "canonical_reference",
    "canonicalise_kst13ed_gg",
    "carater_acrico",
    "carater_alitico",
    "carater_arenico",
    "carater_argiluvico",
    "carater_cambissolico",
    "carater_cambissolico_arg",
    "carater_carbonatico",
    "carater_chernossolico",
    "carater_coeso",
    "carater_durico",
    "carater_ebanico",
    "carater_espessarenico",
    "carater_espodico",
    "carater_espodico_profundo",
    "carater_eutrico",
    "carater_ferrico",
    "carater_fluvico",
    "carater_gleissolico",
    "carater_hidromorfico",
    "carater_hipocarbonatico",
    "carater_humico_espesso",
    "carater_latossolico",
    "carater_leptico",
    "carater_leptofragmentario",
    "carater_luvissolico",
    "carater_nitossolico",
    "carater_palico",
    "carater_perferrico",
    "carater_petroplintico",
    "carater_placico",
    "carater_planossolico",
    "carater_plintico",
    "carater_psamitico",
    "carater_redoxico",
    "carater_retratil",
    "carater_rubrico",
    "carater_salico",
    "carater_salino",
    "carater_saprolitico",
    "carater_sodico",
    "carater_solodico",
    "carater_sombrico",
    "carater_terrico",
    "carater_tionico",
    "carater_vertissolico",
    "cerosidade",
    "chernic",
    "chernossolo",
    "chernossolo_argiluvico",
    "chernossolo_ebanico",
    "chernossolo_haplico",
    "chernossolo_rendzico",
    "chernozem",
    "chernozem_strict",
    "claric_material",
    "classification_robustness",
    "ClassificationResult",
    "classify_all",
    "classify_by_spectral_neighbours",
    "classify_from_documents",
    "classify_sibcs",
    "classify_sibcs_familia",
    "classify_usda",
    "classify_via_smartsolos_api",
    "classify_with_engine_heuristic",
    "classify_wrb2022",
    "clear_kst13_cache",
    "clear_ossl_cache",
    "combine_priors",
    "compare_engines",
    "compare_smartsolos",
    "compute_ki",
    "compute_kr",
    "contato_litico",
    "contato_litico_fragmentario",
    "continuous_rock",
    "cryic_conditions",
    "cryoturbation_usda",
    "cumulic_subgroup_usda",
    "densiaquept_qualifying_usda",
    "DiagnosticResult",
    "distrofico",
    "dolomitic_material",
    "download_bdsolos",
    "download_extdata_cache",
    "download_ossl_subset",
    "download_ossl_subset_with_labels",
    "download_redape_dataset",
    "duric_horizon",
    "duric_subgroup_usda",
    "duripa",
    "duripan_usda",
    "dystric_subgroup_usda",
    "entic_subgroup_usda",
    "entisol_usda",
    "episaturation_usda",
    "espodossolo",
    "espodossolo_ferri_humiluvico",
    "espodossolo_ferriluvico",
    "espodossolo_humiluvico",
    "eutric_inceptisol_usda",
    "eutric_oxisol_usda",
    "eutric_subgroup_usda",
    "eutrofico",
    "evaluate_rsg_tests",
    "extract_horizons_from_pdf",
    "extract_munsell_from_photo",
    "extract_site_from_fieldsheet",
    "familia_andico",
    "familia_atividade_argila",
    "familia_constituicao_esqueletica",
    "familia_distribuicao_cascalhos",
    "familia_grupamento_textural",
    "familia_label",
    "familia_mineralogia_areia",
    "familia_mineralogia_argila_geral",
    "familia_mineralogia_argila_latossolo",
    "familia_organossolo_espessura",
    "familia_organossolo_lenhosidade",
    "familia_organossolo_material_subjacente",
    "familia_oxidos_ferro",
    "familia_prefixo_profundidade",
    "familia_saturacao_aluminio",
    "familia_saturacao_bases",
    "familia_subgrupamento_textural",
    "familia_tipo_horizonte_superficial",
    "FamilyAttribute",
    "febr_index_munsell",
    "ferralic",
    "ferralsol",
    "ferric",
    "ferric_subgroup_usda",
    "fibric_predominant_usda",
    "fibric_subgroup_usda",
    "fibrico",
    "fill_from_spectra",
    "fill_munsell_from_spectra",
    "fluvaquentic_usda",
    "fluvent_qualifying_usda",
    "fluventic_usda",
    "fluvic_material",
    "folist_qualifying_usda",
    "folistic_epipedon_usda",
    "folistic_subgroup_usda",
    "format_wrb_name",
    "fragic",
    "fragipa",
    "fragipan_usda",
    "frasic_qualifying_usda",
    "from_aqp",
    "fulvic_andisol_usda",
    "gelisol_usda",
    "glacic_layer_usda",
    "gleissolo",
    "gleissolo_haplico",
    "gleissolo_melanico",
    "gleissolo_salico",
    "gleissolo_tiomorfico",
    "gleyic_properties",
    "gleysol",
    "glossic_subgroup_usda",
    "grossarenic_subgroup_usda",
    "GSM_DEPTHS",
    "gypsic",
    "gypsic_horizon_usda",
    "gypsic_subgroup_usda",
    "gypsiric_material",
    "halaquept_qualifying_usda",
    "halic_subgroup_usda",
    "harmonize_to_gsm",
    "hemic_subgroup_usda",
    "hemico",
    "histel_qualifying_usda",
    "histic_epipedon_usda",
    "histic_horizon",
    "histic_subgroup_usda",
    "histosol_qualifying_usda",
    "histosol_usda",
    "horizonte_A_antropico",
    "horizonte_A_chernozemico",
    "horizonte_A_fraco",
    "horizonte_A_humico",
    "horizonte_A_moderado",
    "horizonte_A_proeminente",
    "horizonte_calcico",
    "horizonte_concrecionario",
    "horizonte_E_albico",
    "horizonte_glei",
    "horizonte_histico",
    "horizonte_litoplintico",
    "horizonte_petrocalcico",
    "horizonte_plintico",
    "horizonte_sulfurico",
    "horizonte_vertico",
    "hortic",
    "humic_andisol_usda",
    "humic_inceptisol_usda",
    "humic_oxisol_usda",
    "humic_spodic_usda",
    "humic_subgroup_usda",
    "humilluvic_subgroup_usda",
    "humult_qualifying_usda",
    "hydragric",
    "hydraquent_qualifying_usda",
    "hydric_andisol_usda",
    "hydric_subgroup_usda",
    "hypersulfidic_material",
    "hyposulfidic_material",
    "inceptisol_qualifying_usda",
    "inceptisol_usda",
    "inspect_bdsolos_csv",
    "irragric",
    "kandic_horizon_usda",
    "kandic_oxisol_usda",
    "kanhapl_qualifying_usda",
    "kastanozem",
    "kastanozem_strict",
    "kst13_canonical",
    "kst13_codes",
    "kst13_criteria",
    "lamellic_subgroup_usda",
    "latossolo",
    "latossolo_amarelo",
    "latossolo_bruno",
    "latossolo_ki_kr",
    "latossolo_vermelho",
    "latossolo_vermelho_amarelo",
    "leptic_features",
    "limnic_material",
    "limnic_usda",
    "limonic",
    "lithic_contact_usda",
    "lithic_discontinuity",
    "lixisol",
    "load_afsp_pedons",
    "load_afsp_sample",
    "load_bdsolos_csv",
    "load_embrapa_pedons",
    "load_febr_pedons",
    "load_kssl_nasis_sample",
    "load_kssl_pedons",
    "load_kssl_pedons_gpkg",
    "load_kssl_pedons_with_nasis",
    "load_kssl_sample",
    "load_lucas_pedons",
    "load_lucas_soil_2018",
    "load_ossl_models",
    "load_redape_pedons",
    "load_rules",
    "load_wosis_sample",
    "load_wosis_stratified_sample",
    "lookup_esdb",
    "lookup_mapbiomas_solos",
    "lookup_soilgrids",
    "luvisol",
    "luvissolo",
    "luvissolo_cromico",
    "luvissolo_haplico",
    "make_acrisol_canonical",
    "make_alisol_canonical",
    "make_andosol_canonical",
    "make_anthrosol_canonical",
    "make_arenosol_canonical",
    "make_argissolo_canonical",
    "make_calcisol_canonical",
    "make_cambisol_canonical",
    "make_cambissolo_canonical",
    "make_chernossolo_canonical",
    "make_chernozem_canonical",
    "make_cryosol_canonical",
    "make_durisol_canonical",
    "make_empty_horizons",
    "make_espodossolo_canonical",
    "make_ferralsol_canonical",
    "make_fluvisol_canonical",
    "make_gleissolo_canonical",
    "make_gleysol_canonical",
    "make_gypsisol_canonical",
    "make_histosol_canonical",
    "make_kastanozem_canonical",
    "make_latossolo_canonical",
    "make_leptosol_canonical",
    "make_lixisol_canonical",
    "make_luvisol_canonical",
    "make_luvissolo_canonical",
    "make_neossolo_canonical",
    "make_nitisol_canonical",
    "make_nitossolo_canonical",
    "make_organossolo_canonical",
    "make_phaeozem_canonical",
    "make_planosol_canonical",
    "make_planossolo_canonical",
    "make_plinthosol_canonical",
    "make_plintossolo_canonical",
    "make_podzol_canonical",
    "make_retisol_canonical",
    "make_solonchak_canonical",
    "make_solonetz_canonical",
    "make_stagnosol_canonical",
    "make_synthetic_pedon_with_spectra",
    "make_technosol_canonical",
    "make_umbrisol_canonical",
    "make_vertisol_canonical",
    "make_vertissolo_canonical",
    "melanic_andisol_usda",
    "melanic_epipedon_usda",
    "mineral_material",
    "MockVLMProvider",
    "mollic",
    "mollic_epipedon_usda",
    "mollisol_qualifying_usda",
    "mollisol_usda",
    "mudanca_textural_abrupta",
    "mulmic_material",
    "natric_horizon",
    "natric_horizon_usda",
    "natric_subgroup_usda",
    "neossolo",
    "neossolo_fluvico",
    "neossolo_litolico",
    "neossolo_quartzarenico",
    "neossolo_regolitico",
    "nitic_horizon",
    "nitossolo",
    "nitossolo_bruno",
    "nitossolo_haplico",
    "nitossolo_vermelho",
    "nitric_subgroup_usda",
    "normalise_febr_sibcs",
    "normalise_febr_usda",
    "normalise_febr_wrb",
    "normalise_kssl_subgroup",
    "ochric_epipedon_usda",
    "ollama_is_running",
    "organic_material",
    "organossolo",
    "organossolo_folico",
    "organossolo_haplico",
    "organossolo_tiomorfico",
    "organotechnic_material",
    "ornithogenic_material",
    "ossl_library_template",
    "oxic_horizon_usda",
    "oxic_usda",
    "oxisol_usda",
    "oxyaquic_subgroup_usda",
    "pachic_subgroup_usda",
    "pale_qualifying_usda",
    "paleargid_qualifying_usda",
    "panpaic",
    "pedon_json_schema",
    "pedon_to_spc",
    "PedonRecord",
    "permafrost_within_usda",
    "petrocalcic",
    "petrocalcic_subgroup_usda",
    "petroduric",
    "petroferric_contact_usda",
    "petrogypsic",
    "petrogypsic_horizon_usda",
    "petrogypsic_subgroup_usda",
    "petronodic_subgroup_usda",
    "petroplinthic",
    "phaeozem",
    "pi_to_confidence",
    "pick_engine",
    "pick_engine_batch",
    "pisoplinthic",
    "placic_horizon_usda",
    "plaggic",
    "planic_features",
    "planosol",
    "planossolo",
    "planossolo_haplico",
    "planossolo_natrico",
    "plinth_subgroup_usda",
    "plinthaquox_qualifying_usda",
    "plinthic",
    "plinthic_subgroup_usda",
    "plintossolo",
    "plintossolo_argiluvico",
    "plintossolo_haplico",
    "plintossolo_petrico",
    "posterior_classify",
    "predict_from_spectra",
    "predict_lab_from_spectra",
    "predict_munsell_from_spectra",
    "predict_ossl_mbl",
    "predict_ossl_plsr_local",
    "predict_ossl_pretrained",
    "predict_xyz_from_spectra",
    "preprocess_spectra",
    "pretic",
    "prior_consistency_check",
    "protocalcic_properties",
    "protogypsic_properties",
    "protovertic",
    "psamment_qualifying_usda",
    "psammentic_subgroup_usda",
    "qual_abruptic",
    "qual_aceric",
    "qual_acric",
    "qual_acroxic",
    "qual_activic",
    "qual_albic",
    "qual_alcalic",
    "qual_alic",
    "qual_aluandic",
    "qual_andic",
    "qual_anofluvic",
    "qual_anthraquic",
    "qual_anthric",
    "qual_anthromollic",
    "qual_archaic",
    "qual_arenic",
    "qual_arenicolic",
    "qual_aric",
    "qual_bathyspodic",
    "qual_biocrustic",
    "qual_brunic",
    "qual_bryic",
    "qual_calcaric",
    "qual_calcic",
    "qual_cambic",
    "qual_capillaric",
    "qual_carbic",
    "qual_carbonatic",
    "qual_carbonic",
    "qual_chernic",
    "qual_chloridic",
    "qual_chromic",
    "qual_clayic",
    "qual_coarsic",
    "qual_cohesic",
    "qual_columnic",
    "qual_cordic",
    "qual_cryic",
    "qual_cumulic",
    "qual_cutanic",
    "qual_densic",
    "qual_differentic",
    "qual_dolomitic",
    "qual_dorsic",
    "qual_drainic",
    "qual_duric",
    "qual_dystric",
    "qual_ekranic",
    "qual_endic",
    "qual_endoabruptic",
    "qual_endocalcaric",
    "qual_endocalcic",
    "qual_endodolomitic",
    "qual_endoduric",
    "qual_endodystric",
    "qual_endoeutric",
    "qual_endogleyic",
    "qual_endogypsic",
    "qual_endoleptic",
    "qual_endostagnic",
    "qual_endothionic",
    "qual_endothyric",
    "qual_entic",
    "qual_epic",
    "qual_epidystric",
    "qual_epieutric",
    "qual_escalic",
    "qual_eutric",
    "qual_eutrosilic",
    "qual_evapocrustic",
    "qual_ferralic",
    "qual_ferric",
    "qual_ferritic",
    "qual_fibric",
    "qual_floatic",
    "qual_fluvic",
    "qual_folic",
    "qual_fractic",
    "qual_garbic",
    "qual_gelic",
    "qual_gelistagnic",
    "qual_geoabruptic",
    "qual_geric",
    "qual_gibbsic",
    "qual_gilgaic",
    "qual_glacic",
    "qual_gleyic",
    "qual_glossic",
    "qual_greyzemic",
    "qual_grumic",
    "qual_gypsic",
    "qual_gypsiric",
    "qual_haplic",
    "qual_hemic",
    "qual_histic",
    "qual_hortic",
    "qual_humic",
    "qual_hydragric",
    "qual_hydric",
    "qual_hydrophobic",
    "qual_hyperalbic",
    "qual_hyperalic",
    "qual_hyperartefactic",
    "qual_hypercalcic",
    "qual_hyperdystric",
    "qual_hypereutric",
    "qual_hypergypsic",
    "qual_hypernatric",
    "qual_hyperorganic",
    "qual_hypersalic",
    "qual_hyperskeletic",
    "qual_hypersodic",
    "qual_hyperspodic",
    "qual_hypocalcic",
    "qual_hypogypsic",
    "qual_hyposalic",
    "qual_hyposodic",
    "qual_immissic",
    "qual_inclinic",
    "qual_irragric",
    "qual_isolatic",
    "qual_isopteric",
    "qual_kalaic",
    "qual_lamellic",
    "qual_lapiadic",
    "qual_laxic",
    "qual_leptic",
    "qual_lignic",
    "qual_limnic",
    "qual_linic",
    "qual_lithic",
    "qual_litholinic",
    "qual_lixic",
    "qual_loamic",
    "qual_luvic",
    "qual_magnesic",
    "qual_mahic",
    "qual_mawic",
    "qual_mazic",
    "qual_melanic",
    "qual_mineralic",
    "qual_mochipic",
    "qual_mollic",
    "qual_mulmic",
    "qual_murshic",
    "qual_muusic",
    "qual_naramic",
    "qual_natric",
    "qual_nechic",
    "qual_neobrunic",
    "qual_neocambic",
    "qual_nitic",
    "qual_nudiargic",
    "qual_nudilithic",
    "qual_nudinatric",
    "qual_ochric",
    "qual_ombric",
    "qual_organotechnic",
    "qual_ornithic",
    "qual_orthofluvic",
    "qual_ortsteinic",
    "qual_oxyaquic",
    "qual_oxygleyic",
    "qual_pachic",
    "qual_pantofluvic",
    "qual_pellic",
    "qual_pelocrustic",
    "qual_petric",
    "qual_petrocalcic",
    "qual_petroduric",
    "qual_petrogypsic",
    "qual_petroplinthic",
    "qual_petrosalic",
    "qual_pisoplinthic",
    "qual_placic",
    "qual_plaggic",
    "qual_plinthic",
    "qual_posic",
    "qual_pretic",
    "qual_profondic",
    "qual_profundihumic",
    "qual_protic",
    "qual_protoandic",
    "qual_protoargic",
    "qual_protocalcic",
    "qual_protogypsic",
    "qual_protospodic",
    "qual_protovertic",
    "qual_puffic",
    "qual_pyric",
    "qual_raptic",
    "qual_reductaquic",
    "qual_reductic",
    "qual_reductigleyic",
    "qual_relocatic",
    "qual_rendzic",
    "qual_retic",
    "qual_rheic",
    "qual_rhodic",
    "qual_rockic",
    "qual_rubic",
    "qual_rustic",
    "qual_salic",
    "qual_sapric",
    "qual_saprolithic",
    "qual_silandic",
    "qual_siltic",
    "qual_skeletic",
    "qual_sodic",
    "qual_solimovic",
    "qual_sombric",
    "qual_someric",
    "qual_spodic",
    "qual_spolic",
    "qual_stagnic",
    "qual_subaquatic",
    "qual_sulfatic",
    "qual_sulfidic",
    "qual_takyric",
    "qual_technic",
    "qual_tephric",
    "qual_terric",
    "qual_thionic",
    "qual_thixotropic",
    "qual_thyric",
    "qual_tidalic",
    "qual_tonguic",
    "qual_toxic",
    "qual_transportic",
    "qual_turbic",
    "qual_umbric",
    "qual_urbic",
    "qual_uterquic",
    "qual_vermic",
    "qual_vertic",
    "qual_vetic",
    "qual_vitric",
    "qual_wapnic",
    "qual_xanthic",
    "qual_yermic",
    "quartzipsamment_qualifying_usda",
    "read_febr_pedons",
    "reducing_conditions",
    "rendoll_qualifying_usda",
    "report",
    "report_html",
    "report_pdf",
    "report_to_qgis",
    "resolve_wrb_qualifiers",
    "retic_properties",
    "rhodic_subgroup_usda",
    "run_classify_app",
    "run_demo",
    "run_sibcs_grande_grupo",
    "run_sibcs_key",
    "run_sibcs_subgrupo",
    "run_sibcs_subordem",
    "run_taxa_list",
    "run_taxonomic_key",
    "run_usda_great_group",
    "run_usda_key",
    "run_usda_subgroup",
    "run_usda_suborder",
    "run_wrb_key",
    "ruptic_histic_subgroup_usda",
    "ruptic_subgroup_usda",
    "salic",
    "salic_horizon_usda",
    "salic_subgroup_usda",
    "sapric_predominant_usda",
    "sapric_subgroup_usda",
    "saprico",
    "save_ossl_models",
    "shrink_swell_cracks",
    "sideralic_properties",
    "smr_aridic_usda",
    "smr_torric_usda",
    "smr_udic_usda",
    "smr_ustic_usda",
    "smr_xeric_usda",
    "sodic_subgroup_usda",
    "soil_classes_at_location",
    "soil_moisture_regime_usda",
    "soil_organic_carbon",
    "soil_temperature_regime_usda",
    "soilgrids_usda_lut",
    "soilgrids_wrb_lut",
    "solimovic_material",
    "sombric",
    "sombric_subgroup_usda",
    "spatial_prior",
    "spatial_prior_embrapa",
    "spatial_prior_soilgrids",
    "sphagnic_usda",
    "spodic",
    "spodic_andisol_usda",
    "spodic_horizon_usda",
    "spodic_subgroup_usda",
    "spodosol_usda",
    "st_features_canonical",
    "stagnic_properties",
    "str_cryic_usda",
    "str_gelic_usda",
    "subgrupo_planossolo_espessos",
    "subgrupo_planossolo_mesicos",
    "subgrupo_plintossolo_endico_concrecionario",
    "subgrupo_plintossolo_endico_litoplintico",
    "subgrupo_plintossolo_espessos",
    "sulfic_subgroup_usda",
    "sulfidic_materials_usda",
    "sulfuric_horizon_usda",
    "takyric_properties",
    "technic_features",
    "technic_hard_material",
    "tephric_material",
    "terric",
    "terric_usda",
    "test_abrupt_textural_change",
    "test_al_saturation_above",
    "test_al_saturation_below",
    "test_andic_alfe",
    "test_artefacts_concentration",
    "test_bs_above",
    "test_bs_below",
    "test_bulk_density_below",
    "test_caco3_concentration",
    "test_carbonates_present",
    "test_caso4_concentration",
    "test_cec_per_clay",
    "test_cec_per_clay_above",
    "test_chernic_color",
    "test_clay_above",
    "test_clay_increase_argic",
    "test_coarse_texture_throughout",
    "test_designation_pattern",
    "test_duripan_concentration",
    "test_ec_concentration",
    "test_ecec_per_clay",
    "test_esp_above",
    "test_fe_dcb_above",
    "test_ferralic_texture",
    "test_ferralic_thickness",
    "test_fluvic_stratification",
    "test_gleyic_features",
    "test_minimum_thickness",
    "test_mollic_base_saturation",
    "test_mollic_color",
    "test_mollic_organic_carbon",
    "test_mollic_structure",
    "test_mollic_thickness",
    "test_oc_above",
    "test_ph_below",
    "test_plinthite_concentration",
    "test_salic_product",
    "test_slickensides_present",
    "test_spodic_aluminum_iron",
    "test_stagnic_pattern",
    "test_texture_argic",
    "test_top_at_or_above",
    "texture_class_from_pct",
    "thaptic_subgroup_usda",
    "thapto_humic_usda",
    "thionic",
    "train_pls_from_ossl",
    "tsitelic",
    "turbic_subgroup_usda",
    "ultic_subgroup_usda",
    "ultisol_qualifying_usda",
    "ultisol_usda",
    "umbric_epipedon_usda",
    "umbric_horizon",
    "umbric_subgroup_usda",
    "usda_to_wrb_rsg",
    "validate_pedon_json",
    "vermic_subgroup_usda",
    "vertic_aridisol_usda",
    "vertic_horizon",
    "vertic_properties",
    "vertic_subgroup_usda",
    "vertisol",
    "vertisol_qualifying_usda",
    "vertisol_usda",
    "vertissolo",
    "vertissolo_ebanico",
    "vertissolo_haplico",
    "vertissolo_hidromorfico",
    "vitrand_qualifying_usda",
    "vitrandic_subgroup_usda",
    "vitric_properties",
    "vitric_subgroup_usda",
    "vlm_pick_provider",
    "vlm_provider",
    "wassent_qualifying_usda",
    "wassist_qualifying_usda",
    "wrb06_code_to_rsg",
    "wrb2022_canonical",
    "xanthic_subgroup_usda",
    "yermic_properties"
  ],
  "_datasets": [
    {
      "name": "ossl_demo_sa",
      "title": "Synthetic OSSL South America demo subset",
      "object": "ossl_demo_sa",
      "class": [
        "list"
      ],
      "fields": [],
      "table": false,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "abrupt_textural_difference",
      "title": "Abrupt textural difference (WRB 2022 Ch 3.2.1)",
      "topics": [
        "abrupt_textural_difference"
      ]
    },
    {
      "page": "acric_andisol_usda",
      "title": "Acric Subgroup helper (Andisols Acrudoxic / Acraquoxic / Acrustoxic / etc.)",
      "topics": [
        "acric_andisol_usda"
      ]
    },
    {
      "page": "acric_oxisol_usda",
      "title": "Acric Oxisol Suborder helper (Acroperox/Acrudox/Acrustox/Acraquox) Pass when oxic or kandic horizon has ECEC < 1.5 cmol/kg clay AND pH (KCl) >= 5.0.",
      "topics": [
        "acric_oxisol_usda"
      ]
    },
    {
      "page": "acrisol",
      "title": "Acrisol RSG diagnostic (WRB 2022)",
      "topics": [
        "acrisol"
      ]
    },
    {
      "page": "aeolic_material",
      "title": "Aeolic material (WRB 2022 Ch 3.3.1)",
      "topics": [
        "aeolic_material"
      ]
    },
    {
      "page": "aeric_oxisol_usda",
      "title": "Aeric Subgroup (for Oxisols Aquox) - chroma-3 below epipedon Already defined for Aquods; here we add Oxisol-specific variant (any 10+ cm horizon below A with chroma >= 3 in 50%+ peds).",
      "topics": [
        "aeric_oxisol_usda"
      ]
    },
    {
      "page": "aeric_subgroup_usda",
      "title": "Aeric Subgroup helper (Aquods) Pass when ochric epipedon is present (vs. histic/umbric/etc).",
      "topics": [
        "aeric_subgroup_usda"
      ]
    },
    {
      "page": "al_rich_spodic_usda",
      "title": "Aluminum-rich spodic helper (Alaquods, Alorthods, KST Ch 14)",
      "topics": [
        "al_rich_spodic_usda"
      ]
    },
    {
      "page": "albaquult_qualifying_usda",
      "title": "Albic-over-argillic qualifying (Albaquults) Pass when albic horizon overlies an argillic horizon directly.",
      "topics": [
        "albaquult_qualifying_usda"
      ]
    },
    {
      "page": "albeluvic_glossae",
      "title": "Albeluvic glossae (WRB 2022 Ch 3.2.2)",
      "topics": [
        "albeluvic_glossae"
      ]
    },
    {
      "page": "albic",
      "title": "Albic horizon (WRB 2022)",
      "topics": [
        "albic"
      ]
    },
    {
      "page": "albic_horizon_usda",
      "title": "Albic horizon (USDA, KST 13ed Ch 3)",
      "topics": [
        "albic_horizon_usda"
      ]
    },
    {
      "page": "albic_subgroup_usda",
      "title": "Albic Subgroup helper (Albaquultic / Albaquic)",
      "topics": [
        "albic_subgroup_usda"
      ]
    },
    {
      "page": "alboll_qualifying_usda",
      "title": "Albolls qualifier: mollic + albic + argillic.",
      "topics": [
        "alboll_qualifying_usda"
      ]
    },
    {
      "page": "alfic_subgroup_usda",
      "title": "Alfic Subgroup helper (Spodosols): argillic or kandic with BS >= 35%",
      "topics": [
        "alfic_subgroup_usda"
      ]
    },
    {
      "page": "alfisol_qualifying_usda",
      "title": "Alfisol Order qualifier Pass when argillic OR kandic horizon present + BS >= 35% in some part.",
      "topics": [
        "alfisol_qualifying_usda"
      ]
    },
    {
      "page": "alfisol_usda",
      "title": "Alfisols (USDA Cap 5): argillic/kandic/natric horizon + base saturation >= 35% at the implicit reference depth.",
      "topics": [
        "alfisol_usda"
      ]
    },
    {
      "page": "alic_andisol_usda",
      "title": "Alic Subgroup helper (Andisols) Pass when al_kcl_cmol > 2.0 in a 10+ cm layer between 25 and 50 cm.",
      "topics": [
        "alic_andisol_usda"
      ]
    },
    {
      "page": "alisol",
      "title": "Alisol RSG diagnostic (WRB 2022)",
      "topics": [
        "alisol"
      ]
    },
    {
      "page": "andic_properties",
      "title": "Andic properties (WRB 2022)",
      "topics": [
        "andic_properties"
      ]
    },
    {
      "page": "andic_soil_properties_usda",
      "title": "Andic soil properties (USDA, KST 13ed Ch 3, p 32)",
      "topics": [
        "andic_soil_properties_usda"
      ]
    },
    {
      "page": "andic_subgroup_usda",
      "title": "Andic Subgroup helper (USDA, KST 13ed)",
      "topics": [
        "andic_subgroup_usda"
      ]
    },
    {
      "page": "andisol_qualifying_usda",
      "title": "Andisol Order qualifier (USDA, KST 13ed Ch 3, p 7)",
      "topics": [
        "andisol_qualifying_usda"
      ]
    },
    {
      "page": "andisol_usda",
      "title": "Andisols (USDA Cap 6): andic soil properties >= 60% of thickness.",
      "topics": [
        "andisol_usda"
      ]
    },
    {
      "page": "andosol",
      "title": "Andosol RSG gate (WRB 2022 Ch 4, p 104)",
      "topics": [
        "andosol"
      ]
    },
    {
      "page": "anhydrous_conditions_usda",
      "title": "Anhydrous conditions (USDA Soil Taxonomy, 13th edition)",
      "topics": [
        "anhydrous_conditions_usda"
      ]
    },
    {
      "page": "anionic_subgroup_usda",
      "title": "Anionic Subgroup helper (Oxisols)",
      "topics": [
        "anionic_subgroup_usda"
      ]
    },
    {
      "page": "annotate_wrb_from_usda",
      "title": "Annotate KSSL/NASIS pedons with a derived WRB Reference Soil Group",
      "topics": [
        "annotate_wrb_from_usda"
      ]
    },
    {
      "page": "anthraquic",
      "title": "Anthraquic horizon (WRB 2022): puddled-rice / paddy plough layer. v0.3.3 detects via designation pattern 'Apl|Ap|Hh'.",
      "topics": [
        "anthraquic"
      ]
    },
    {
      "page": "anthric_horizons",
      "title": "Anthric horizons (WRB 2022)",
      "topics": [
        "anthric_horizons"
      ]
    },
    {
      "page": "aqualf_qualifying_usda",
      "title": "Aqualf Suborder qualifier (aquic conditions in argillic Alfisol).",
      "topics": [
        "aqualf_qualifying_usda"
      ]
    },
    {
      "page": "aquand_qualifying_usda",
      "title": "Aquands Suborder qualifier (Cap 6, p 117) Pass when histic OR aquic conditions in 40-50 cm with redox features. Simplified: histic OR aquic_conditions(max_top=50).",
      "topics": [
        "aquand_qualifying_usda"
      ]
    },
    {
      "page": "aquandic_subgroup_usda",
      "title": "Aquandic Subgroup helper (Spodosols / others) Aquic + Andic.",
      "topics": [
        "aquandic_subgroup_usda"
      ]
    },
    {
      "page": "aquent_qualifying_usda",
      "title": "Aquent Suborder qualifier (Entisol with aquic conditions <50 cm).",
      "topics": [
        "aquent_qualifying_usda"
      ]
    },
    {
      "page": "aquept_qualifying_usda",
      "title": "Aquept Suborder qualifier",
      "topics": [
        "aquept_qualifying_usda"
      ]
    },
    {
      "page": "aquert_qualifying_usda",
      "title": "Aquerts qualifier (Vertisols with aquic conditions) Pass when aquic_conditions within 50 cm.",
      "topics": [
        "aquert_qualifying_usda"
      ]
    },
    {
      "page": "aquic_conditions_usda",
      "title": "Aquic conditions (USDA Soil Taxonomy, 13th edition)",
      "topics": [
        "aquic_conditions_usda"
      ]
    },
    {
      "page": "aquic_subgroup_usda",
      "title": "Aquic Subgroup helper (within 100 cm of mineral soil surface)",
      "topics": [
        "aquic_subgroup_usda"
      ]
    },
    {
      "page": "aquoll_qualifying_usda",
      "title": "Aquolls qualifier (aquic conditions in mollic).",
      "topics": [
        "aquoll_qualifying_usda"
      ]
    },
    {
      "page": "aquult_qualifying_usda",
      "title": "Aquult Suborder qualifier Pass when aquic_conditions within 50 cm.",
      "topics": [
        "aquult_qualifying_usda"
      ]
    },
    {
      "page": "arenic_subgroup_usda",
      "title": "Arenic / Grossarenic Subgroup helper (Spodosols)",
      "topics": [
        "arenic_subgroup_usda"
      ]
    },
    {
      "page": "arenic_texture",
      "title": "Arenic texture (WRB 2022)",
      "topics": [
        "arenic_texture"
      ]
    },
    {
      "page": "argic",
      "title": "Argic horizon (WRB 2022)",
      "topics": [
        "argic"
      ]
    },
    {
      "page": "argic_aqp",
      "title": "Argic / argillic horizon via aqp::getArgillicBounds()",
      "topics": [
        "argic_aqp"
      ]
    },
    {
      "page": "argic_aridisol_usda",
      "title": "Argic Aridisol helper - argillic-or-kandic in Argids/Cryids/etc.",
      "topics": [
        "argic_aridisol_usda"
      ]
    },
    {
      "page": "argic_mollisol_usda",
      "title": "Argic Mollisol Suborder helper - delegates argillic_within_usda.",
      "topics": [
        "argic_mollisol_usda"
      ]
    },
    {
      "page": "argic_subgroup_usda",
      "title": "Argic Subgroup helper (Endoaquods/Fragiaquods): argillic or kandic. Synonym of ultic at this level. Re-exported for naming clarity.",
      "topics": [
        "argic_subgroup_usda"
      ]
    },
    {
      "page": "argic_with_strong_clay_films",
      "title": "Test whether a pedon's argic horizon has strong clay films",
      "topics": [
        "argic_with_strong_clay_films"
      ]
    },
    {
      "page": "argillic_clay_films_test",
      "title": "Test for clay-illuviation evidence (KST 13ed Ch 3 p 4)",
      "topics": [
        "argillic_clay_films_test"
      ]
    },
    {
      "page": "argillic_or_kandic_usda",
      "title": "Argillic-or-Kandic helper (USDA, used in Spodosols Subgroups)",
      "topics": [
        "argillic_or_kandic_usda"
      ]
    },
    {
      "page": "argillic_usda",
      "title": "Argillic horizon (USDA Soil Taxonomy)",
      "topics": [
        "argillic_usda"
      ]
    },
    {
      "page": "argillic_within_usda",
      "title": "Argillic horizon helper (USDA, KST 13ed Ch 3)",
      "topics": [
        "argillic_within_usda"
      ]
    },
    {
      "page": "argissolo",
      "title": "Argissolos (SiBCS Cap 4, p 114; conceito Cap 3, p 86-88)",
      "topics": [
        "argissolo"
      ]
    },
    {
      "page": "argissolo_acinzentado",
      "title": "Argissolos Acinzentados (SiBCS Cap 5)",
      "topics": [
        "argissolo_acinzentado"
      ]
    },
    {
      "page": "argissolo_amarelo",
      "title": "Argissolos Amarelos (SiBCS Cap 5)",
      "topics": [
        "argissolo_amarelo"
      ]
    },
    {
      "page": "argissolo_bruno_acinzentado",
      "title": "Argissolos Bruno-Acinzentados (SiBCS Cap 5)",
      "topics": [
        "argissolo_bruno_acinzentado"
      ]
    },
    {
      "page": "argissolo_vermelho",
      "title": "Argissolos Vermelhos (SiBCS Cap 5)",
      "topics": [
        "argissolo_vermelho"
      ]
    },
    {
      "page": "argissolo_vermelho_amarelo",
      "title": "Argissolos Vermelho-Amarelos (catch-all dos Argissolos)",
      "topics": [
        "argissolo_vermelho_amarelo"
      ]
    },
    {
      "page": "aridisol_qualifying_usda",
      "title": "Aridisol Order qualifier (USDA, KST 13ed, Ch 2) Pass when the soil has aridic SMR AND any one of: argillic, natric, kandic, calcic, petrocalcic, gypsic, petrogypsic, salic, duripan, cambic, sulfuric horizon. Also requires no other prior order match.",
      "topics": [
        "aridisol_qualifying_usda"
      ]
    },
    {
      "page": "aridisol_usda",
      "title": "Aridisols (USDA Cap 7): aridic moisture regime + ochric/anthropic + subsurface diagnostic. v0.8 simplification: detected via aridity proxies (low EC OR salic OR caracter combinations) + non-mollic surface + low OC (no organic accumulation).",
      "topics": [
        "aridisol_usda"
      ]
    },
    {
      "page": "artefacts",
      "title": "Artefacts (WRB 2022 Ch 3.3.2)",
      "topics": [
        "artefacts"
      ]
    },
    {
      "page": "as_aqp",
      "title": "Convert one or more PedonRecord objects to an aqp SoilProfileCollection",
      "topics": [
        "as_aqp"
      ]
    },
    {
      "page": "atividade_argila_alta",
      "title": "Atividade da fracao argila (SiBCS Cap 1, p 30)",
      "topics": [
        "atividade_argila_alta"
      ]
    },
    {
      "page": "attach_lucas_spectra",
      "title": "Attach LUCAS 2018 Vis-NIR spectra to a list of PedonRecord objects",
      "topics": [
        "attach_lucas_spectra"
      ]
    },
    {
      "page": "audit_argic_strong_films",
      "title": "Audit the strong-clay-films exclusion across a list of pedons",
      "topics": [
        "audit_argic_strong_films"
      ]
    },
    {
      "page": "auto_set_proj_env",
      "title": "Auto-detect PROJ_LIB and GDAL_DATA directories",
      "topics": [
        "auto_set_proj_env"
      ]
    },
    {
      "page": "available_esdb_attributes",
      "title": "List ESDB Raster Library attributes available at a given root",
      "topics": [
        "available_esdb_attributes"
      ]
    },
    {
      "page": "B_espodico",
      "title": "Horizonte B espodico (SiBCS Cap 2, p 62-65; v0.7)",
      "topics": [
        "B_espodico"
      ]
    },
    {
      "page": "B_incipiente",
      "title": "Horizonte B incipiente (SiBCS Cap 2, p 59-61; v0.7)",
      "topics": [
        "B_incipiente"
      ]
    },
    {
      "page": "B_latossolico",
      "title": "Horizonte B latossolico (SiBCS Cap 2, p 57-59; v0.7 strict)",
      "topics": [
        "B_latossolico"
      ]
    },
    {
      "page": "B_nitico",
      "title": "Horizonte B nitico (SiBCS Cap 2, p 61-62; v0.7)",
      "topics": [
        "B_nitico"
      ]
    },
    {
      "page": "B_planico",
      "title": "Horizonte B planico (SiBCS Cap 2, p 65-66; v0.7)",
      "topics": [
        "B_planico"
      ]
    },
    {
      "page": "B_textural",
      "title": "Horizonte B textural (SiBCS Cap 2, p 54-57; v0.7 strict)",
      "topics": [
        "B_textural"
      ]
    },
    {
      "page": "batch_robustness",
      "title": "Batch robustness across many pedons",
      "topics": [
        "batch_robustness"
      ]
    },
    {
      "page": "benchmark_afsp",
      "title": "Benchmark soilKey WRB predictions against AfSP ground truth",
      "topics": [
        "benchmark_afsp"
      ]
    },
    {
      "page": "benchmark_bdsolos",
      "title": "Benchmark soilKey classifiers against BDsolos national reference labels",
      "topics": [
        "benchmark_bdsolos"
      ]
    },
    {
      "page": "benchmark_lucas_2018",
      "title": "Run the LUCAS Soil 2018 / ESDB WRB benchmark",
      "topics": [
        "benchmark_lucas_2018"
      ]
    },
    {
      "page": "benchmark_performance",
      "title": "Run the soilKey performance benchmark",
      "topics": [
        "benchmark_performance"
      ]
    },
    {
      "page": "benchmark_redape",
      "title": "Benchmark soilKey SiBCS predictions against the Redape gold standard",
      "topics": [
        "benchmark_redape"
      ]
    },
    {
      "page": "benchmark_run_classification",
      "title": "Run a benchmark across one of the loaded pedon lists",
      "topics": [
        "benchmark_run_classification"
      ]
    },
    {
      "page": "benchmark_unified",
      "title": "Unified cross-dataset benchmark across SiBCS / WRB / USDA",
      "topics": [
        "benchmark_unified"
      ]
    },
    {
      "page": "benchmark_wrb_vs_usda",
      "title": "Benchmark soilKey WRB predictions against a USDA-derived ground truth",
      "topics": [
        "benchmark_wrb_vs_usda"
      ]
    },
    {
      "page": "calcaric_material",
      "title": "Calcaric material (WRB 2022 Ch 3.3.3): \\>= 2% CaCO3 throughout the fine earth, primary carbonates from the parent material.",
      "topics": [
        "calcaric_material"
      ]
    },
    {
      "page": "calcic",
      "title": "Calcic horizon (WRB 2022)",
      "topics": [
        "calcic"
      ]
    },
    {
      "page": "calcic_horizon_usda",
      "title": "Calcic horizon (USDA, delegates to WRB calcic).",
      "topics": [
        "calcic_horizon_usda"
      ]
    },
    {
      "page": "calcic_subgroup_usda",
      "title": "Calcic Subgroup helper - delegates to calcic_horizon_usda within 'max_top_cm'.",
      "topics": [
        "calcic_subgroup_usda"
      ]
    },
    {
      "page": "cambic",
      "title": "Cambic horizon (WRB 2022)",
      "topics": [
        "cambic"
      ]
    },
    {
      "page": "cambic_aqp",
      "title": "Cambic horizon via aqp::getCambicBounds()",
      "topics": [
        "cambic_aqp"
      ]
    },
    {
      "page": "cambissolo",
      "title": "Cambissolos (SiBCS Cap 4, p 113; conceito Cap 3, p 88-89)",
      "topics": [
        "cambissolo"
      ]
    },
    {
      "page": "cambissolo_fluvico",
      "title": "Cambissolos Fluvicos (Cap 6): carater fluvico.",
      "topics": [
        "cambissolo_fluvico"
      ]
    },
    {
      "page": "cambissolo_haplico",
      "title": "Cambissolos Haplicos (catch-all).",
      "topics": [
        "cambissolo_haplico"
      ]
    },
    {
      "page": "cambissolo_histico",
      "title": "Cambissolos Histicos (Cap 6): horizonte histico sem espessura para Organossolo.",
      "topics": [
        "cambissolo_histico"
      ]
    },
    {
      "page": "cambissolo_humico",
      "title": "Cambissolos Humicos (Cap 6): horizonte A humico.",
      "topics": [
        "cambissolo_humico"
      ]
    },
    {
      "page": "canonical_reference",
      "title": "Load a canonical reference dataset from soilKey or SoilTaxonomy",
      "topics": [
        "canonical_reference"
      ]
    },
    {
      "page": "canonicalise_kst13ed_gg",
      "title": "Canonicalise a USDA Great Group label to a KST 13ed-compatible key",
      "topics": [
        "canonicalise_kst13ed_gg"
      ]
    },
    {
      "page": "carater_acrico",
      "title": "Carater acrico (SiBCS Cap 1, p 31)",
      "topics": [
        "carater_acrico"
      ]
    },
    {
      "page": "carater_alitico",
      "title": "Carater alitico (SiBCS Cap 1, p 32)",
      "topics": [
        "carater_alitico"
      ]
    },
    {
      "page": "carater_arenico",
      "title": "Carater arenico (SiBCS Cap 5)",
      "topics": [
        "carater_arenico"
      ]
    },
    {
      "page": "carater_argiluvico",
      "title": "Carater argiluvico (SiBCS Cap 1; Cap 6)",
      "topics": [
        "carater_argiluvico"
      ]
    },
    {
      "page": "carater_cambissolico",
      "title": "Carater cambissolico (SiBCS Cap 14)",
      "topics": [
        "carater_cambissolico"
      ]
    },
    {
      "page": "carater_cambissolico_arg",
      "title": "Carater cambissolico (Argissolos - Cap 5)",
      "topics": [
        "carater_cambissolico_arg"
      ]
    },
    {
      "page": "carater_carbonatico",
      "title": "Carater carbonatico (SiBCS Cap 1, p 33)",
      "topics": [
        "carater_carbonatico"
      ]
    },
    {
      "page": "carater_chernossolico",
      "title": "Carater chernossolico (SiBCS Cap 5; A chernozemico + Ta alta)",
      "topics": [
        "carater_chernossolico"
      ]
    },
    {
      "page": "carater_coeso",
      "title": "Carater coeso (SiBCS Cap 1, pp 32-33)",
      "topics": [
        "carater_coeso"
      ]
    },
    {
      "page": "carater_durico",
      "title": "Carater durico (SiBCS Cap 1)",
      "topics": [
        "carater_durico"
      ]
    },
    {
      "page": "carater_ebanico",
      "title": "Carater ebanico (SiBCS Cap 1; Cap 7 e Cap 17)",
      "topics": [
        "carater_ebanico"
      ]
    },
    {
      "page": "carater_espessarenico",
      "title": "Carater espessarenico (SiBCS Cap 5)",
      "topics": [
        "carater_espessarenico"
      ]
    },
    {
      "page": "carater_espodico",
      "title": "Carater espodico (SiBCS Cap 1, p 35; Cap 8)",
      "topics": [
        "carater_espodico"
      ]
    },
    {
      "page": "carater_espodico_profundo",
      "title": "Carater B espodico profundo (SiBCS Cap 8)",
      "topics": [
        "carater_espodico_profundo"
      ]
    },
    {
      "page": "carater_eutrico",
      "title": "Carater eutrico (SiBCS Cap 1, p 35)",
      "topics": [
        "carater_eutrico"
      ]
    },
    {
      "page": "carater_ferrico",
      "title": "Carater ferrico (SiBCS Cap 1, p 35; Cap 5 e Cap 10)",
      "topics": [
        "carater_ferrico"
      ]
    },
    {
      "page": "carater_fluvico",
      "title": "Carater fluvico (SiBCS Cap 1, p 35-36): camadas estratificadas + distribuicao irregular de C organico. Reuso de fluvic_material (WRB).",
      "topics": [
        "carater_fluvico"
      ]
    },
    {
      "page": "carater_gleissolico",
      "title": "Carater gleissolico (SiBCS Cap 5; horizonte_glei em posicao nao-Gleissolo)",
      "topics": [
        "carater_gleissolico"
      ]
    },
    {
      "page": "carater_hidromorfico",
      "title": "Carater hidromorfico (SiBCS Cap 8)",
      "topics": [
        "carater_hidromorfico"
      ]
    },
    {
      "page": "carater_hipocarbonatico",
      "title": "Carater hipocarbonatico (SiBCS Cap 1, p 33): CaCO3 entre 50 e 150 g/kg.",
      "topics": [
        "carater_hipocarbonatico"
      ]
    },
    {
      "page": "carater_humico_espesso",
      "title": "Carater espesso-humico (SiBCS Cap 5, p 119)",
      "topics": [
        "carater_humico_espesso"
      ]
    },
    {
      "page": "carater_latossolico",
      "title": "Carater latossolico (SiBCS Cap 5)",
      "topics": [
        "carater_latossolico"
      ]
    },
    {
      "page": "carater_leptico",
      "title": "Carater leptico (SiBCS Cap 5; contato litico em 50-100 cm)",
      "topics": [
        "carater_leptico"
      ]
    },
    {
      "page": "carater_leptofragmentario",
      "title": "Carater leptofragmentario (SiBCS Cap 5; Cr / fragmentary 50-100 cm)",
      "topics": [
        "carater_leptofragmentario"
      ]
    },
    {
      "page": "carater_luvissolico",
      "title": "Carater luvissolico (SiBCS Cap 5; Ta + S alta)",
      "topics": [
        "carater_luvissolico"
      ]
    },
    {
      "page": "carater_nitossolico",
      "title": "Carater nitossolico (SiBCS Cap 5)",
      "topics": [
        "carater_nitossolico"
      ]
    },
    {
      "page": "carater_palico",
      "title": "Carater palico (SiBCS Cap 11)",
      "topics": [
        "carater_palico"
      ]
    },
    {
      "page": "carater_perferrico",
      "title": "Carater perferrico (SiBCS Cap 1; Cap 6 CX Perferricos)",
      "topics": [
        "carater_perferrico"
      ]
    },
    {
      "page": "carater_petroplintico",
      "title": "Carater petroplintico (SiBCS Cap 5)",
      "topics": [
        "carater_petroplintico"
      ]
    },
    {
      "page": "carater_placico",
      "title": "Carater placico (SiBCS Cap 5; horizonte placico cementado por Fe/Mn)",
      "topics": [
        "carater_placico"
      ]
    },
    {
      "page": "carater_planossolico",
      "title": "Carater planossolico (SiBCS Cap 5)",
      "topics": [
        "carater_planossolico"
      ]
    },
    {
      "page": "carater_plintico",
      "title": "Carater plintico (SiBCS Cap 1, p 36): plintita >= 5% em quantidade insuficiente para horizonte plintico.",
      "topics": [
        "carater_plintico"
      ]
    },
    {
      "page": "carater_psamitico",
      "title": "Carater psamitico (SiBCS Cap 10)",
      "topics": [
        "carater_psamitico"
      ]
    },
    {
      "page": "carater_redoxico",
      "title": "Carater redoxico (SiBCS Cap 1, p 36-37): feicoes redoximorficas em quantidade pelo menos comum, dentro da secao de controle. 'epirredoxico' se dentro de 50 cm; 'endorredoxico' se 50-150 cm.",
      "topics": [
        "carater_redoxico"
      ]
    },
    {
      "page": "carater_retratil",
      "title": "Carater retratil (SiBCS Cap 1, p 33)",
      "topics": [
        "carater_retratil"
      ]
    },
    {
      "page": "carater_rubrico",
      "title": "Carater rubrico (SiBCS Cap 1; Cap 10 Latossolos Brunos)",
      "topics": [
        "carater_rubrico"
      ]
    },
    {
      "page": "carater_salico",
      "title": "Carater salico (SiBCS Cap 1, p 38): CE >= 7 dS/m em alguma epoca.",
      "topics": [
        "carater_salico"
      ]
    },
    {
      "page": "carater_salino",
      "title": "Carater salino (SiBCS Cap 1, p 39): 4 <= CE < 7 dS/m.",
      "topics": [
        "carater_salino"
      ]
    },
    {
      "page": "carater_saprolitico",
      "title": "Carater saprolitico (SiBCS Cap 5)",
      "topics": [
        "carater_saprolitico"
      ]
    },
    {
      "page": "carater_sodico",
      "title": "Carater sodico (SiBCS Cap 1, p 39): saturacao por sodio (PST) >= 15%.",
      "topics": [
        "carater_sodico"
      ]
    },
    {
      "page": "carater_solodico",
      "title": "Carater solodico (SiBCS Cap 1, p 39): PST entre 6% e < 15%.",
      "topics": [
        "carater_solodico"
      ]
    },
    {
      "page": "carater_sombrico",
      "title": "Carater sombrico (SiBCS Cap 1; Cap 5 PV)",
      "topics": [
        "carater_sombrico"
      ]
    },
    {
      "page": "carater_terrico",
      "title": "Carater terrico (SiBCS Cap 14)",
      "topics": [
        "carater_terrico"
      ]
    },
    {
      "page": "carater_tionico",
      "title": "Carater tionico (SiBCS Cap 9; Cap 1 thionic-related)",
      "topics": [
        "carater_tionico"
      ]
    },
    {
      "page": "carater_vertissolico",
      "title": "Carater vertissolico (SiBCS Cap 6)",
      "topics": [
        "carater_vertissolico"
      ]
    },
    {
      "page": "cerosidade",
      "title": "Cerosidade quantitativa (SiBCS Cap 13, p 207; Cap 1)",
      "topics": [
        "cerosidade"
      ]
    },
    {
      "page": "chernic",
      "title": "Chernic horizon (WRB 2022): the cherozemic-style mollic with very high biological activity (worm holes, casts, coprolites). v0.3.3: delegates to mollic + worm_holes_pct >= 50 (proxy for \"biological homogenization\").",
      "topics": [
        "chernic"
      ]
    },
    {
      "page": "chernossolo",
      "title": "Chernossolos (SiBCS Cap 4, p 113; conceito Cap 3, p 89-90)",
      "topics": [
        "chernossolo"
      ]
    },
    {
      "page": "chernossolo_argiluvico",
      "title": "Chernossolos Argiluvicos (Cap 7): B textural abaixo do A chernozemico.",
      "topics": [
        "chernossolo_argiluvico"
      ]
    },
    {
      "page": "chernossolo_ebanico",
      "title": "Chernossolos Ebanicos (Cap 7): caracter ebanico em B. v0.7.1: detecta via Munsell em B - hue 7.5YR ou mais amarelo: V<4 + C<3 umido; OR hue mais vermelho 7.5YR: preto/cinza muito escuro.",
      "topics": [
        "chernossolo_ebanico"
      ]
    },
    {
      "page": "chernossolo_haplico",
      "title": "Chernossolos Haplicos (catch-all).",
      "topics": [
        "chernossolo_haplico"
      ]
    },
    {
      "page": "chernossolo_rendzico",
      "title": "Chernossolos Rendzicos (Cap 7): A chernozemico + (calcico/petrocalcico OR carater carbonatico).",
      "topics": [
        "chernossolo_rendzico"
      ]
    },
    {
      "page": "chernozem",
      "title": "Chernozem RSG diagnostic (WRB 2022)",
      "topics": [
        "chernozem"
      ]
    },
    {
      "page": "chernozem_strict",
      "title": "Chernozem RSG gate (strengthened, WRB 2022 Ch 4, p 111)",
      "topics": [
        "chernozem_strict"
      ]
    },
    {
      "page": "claric_material",
      "title": "Claric material (WRB 2022 Ch 3.3.4): light-coloured fine earth with Munsell criteria.",
      "topics": [
        "claric_material"
      ]
    },
    {
      "page": "classification_robustness",
      "title": "Robustness of classification under input perturbation",
      "topics": [
        "classification_robustness"
      ]
    },
    {
      "page": "ClassificationResult",
      "title": "ClassificationResult: structured outcome of running a key",
      "topics": [
        "ClassificationResult"
      ]
    },
    {
      "page": "classify_all",
      "title": "Classify a pedon across all three taxonomic systems",
      "topics": [
        "classify_all"
      ]
    },
    {
      "page": "classify_by_spectral_neighbours",
      "title": "Classify a soil by spectral similarity to OSSL reference profiles",
      "topics": [
        "classify_by_spectral_neighbours"
      ]
    },
    {
      "page": "classify_from_documents",
      "title": "Build a fully-classified `PedonRecord` from documents in one call",
      "topics": [
        "classify_from_documents"
      ]
    },
    {
      "page": "classify_sibcs",
      "title": "Classifica um pedon segundo o SiBCS 5a edicao (1o + 2o + 3o + 4o niveis)",
      "topics": [
        "classify_sibcs"
      ]
    },
    {
      "page": "classify_sibcs_familia",
      "title": "Classifica um perfil no 5o nivel categorico do SiBCS (Familia)",
      "topics": [
        "classify_sibcs_familia"
      ]
    },
    {
      "page": "classify_usda",
      "title": "Classify a pedon under USDA Soil Taxonomy (13th edition)",
      "topics": [
        "classify_usda"
      ]
    },
    {
      "page": "classify_via_smartsolos_api",
      "title": "Classify a PedonRecord via Embrapa's SmartSolosExpert REST API",
      "topics": [
        "classify_via_smartsolos_api"
      ]
    },
    {
      "page": "classify_with_engine_heuristic",
      "title": "Classify a pedon with the engine chosen by `pick_engine()`",
      "topics": [
        "classify_with_engine_heuristic"
      ]
    },
    {
      "page": "classify_wrb2022",
      "title": "Classify a pedon under WRB 2022",
      "topics": [
        "classify_wrb2022"
      ]
    },
    {
      "page": "clear_kst13_cache",
      "title": "Clear the in-memory KST13 cache",
      "topics": [
        "clear_kst13_cache"
      ]
    },
    {
      "page": "clear_ossl_cache",
      "title": "Clear the soilKey OSSL cache",
      "topics": [
        "clear_ossl_cache"
      ]
    },
    {
      "page": "combine_priors",
      "title": "Combine multiple spatial priors via weighted geometric mean",
      "topics": [
        "combine_priors"
      ]
    },
    {
      "page": "compare_engines",
      "title": "Side-by-side comparison of soilKey vs aqp diagnostic engines",
      "topics": [
        "compare_engines"
      ]
    },
    {
      "page": "compare_smartsolos",
      "title": "Cross-validate the local SiBCS classifier against the SmartSolosExpert API",
      "topics": [
        "compare_smartsolos"
      ]
    },
    {
      "page": "compute_ki",
      "title": "Ki (silica:alumina molar) - SiBCS Cap 1, p 32",
      "topics": [
        "compute_ki"
      ]
    },
    {
      "page": "compute_kr",
      "title": "Kr (silica:sesquioxidos molar) - SiBCS Cap 1, p 32",
      "topics": [
        "compute_kr"
      ]
    },
    {
      "page": "contato_litico",
      "title": "Contato litico (SiBCS Cap 1, p 40): rocha continua dura. Reuso de 'continuous_rock' via designacao R / Cr.",
      "topics": [
        "contato_litico"
      ]
    },
    {
      "page": "contato_litico_fragmentario",
      "title": "Contato litico fragmentario (SiBCS Cap 1, p 40): rocha fragmentada.",
      "topics": [
        "contato_litico_fragmentario"
      ]
    },
    {
      "page": "continuous_rock",
      "title": "Continuous rock (WRB 2022 Ch 3.2.5)",
      "topics": [
        "continuous_rock"
      ]
    },
    {
      "page": "cryic_conditions",
      "title": "Cryic conditions (WRB 2022)",
      "topics": [
        "cryic_conditions"
      ]
    },
    {
      "page": "cryoturbation_usda",
      "title": "Cryoturbation (USDA Soil Taxonomy, 13th edition)",
      "topics": [
        "cryoturbation_usda"
      ]
    },
    {
      "page": "cumulic_subgroup_usda",
      "title": "Cumulic Subgroup helper (Mollorthels / Umbrorthels)",
      "topics": [
        "cumulic_subgroup_usda"
      ]
    },
    {
      "page": "densiaquept_qualifying_usda",
      "title": "Densiaquept qualifying (densic contact within 100 cm)",
      "topics": [
        "densiaquept_qualifying_usda"
      ]
    },
    {
      "page": "DiagnosticResult",
      "title": "DiagnosticResult: structured outcome of a diagnostic test",
      "topics": [
        "DiagnosticResult"
      ]
    },
    {
      "page": "distrofico",
      "title": "Solo distrofico (SiBCS Cap 1, p 30)",
      "topics": [
        "distrofico"
      ]
    },
    {
      "page": "dolomitic_material",
      "title": "Dolomitic material (WRB 2022 Ch 3.3.5): \\>= 2% Mg-rich carbonate, CaCO3/MgCO3 < 1.5. v0.3.3: detects via designation pattern 'kdo|do|magn' as proxy when ratio data missing.",
      "topics": [
        "dolomitic_material"
      ]
    },
    {
      "page": "download_bdsolos",
      "title": "Download the BDsolos consulta-publica CSV (experimental, requires chromote)",
      "topics": [
        "download_bdsolos"
      ]
    },
    {
      "page": "download_extdata_cache",
      "title": "Download one or more soilKey lazy-fetch caches from GitHub Release",
      "topics": [
        "download_extdata_cache"
      ]
    },
    {
      "page": "download_ossl_subset",
      "title": "Download an OSSL subset and return an `ossl_library` artefact",
      "topics": [
        "download_ossl_subset"
      ]
    },
    {
      "page": "download_ossl_subset_with_labels",
      "title": "Download an OSSL subset and attach WRB / SiBCS / USDA labels",
      "topics": [
        "download_ossl_subset_with_labels"
      ]
    },
    {
      "page": "download_redape_dataset",
      "title": "Download the curated Redape GeoTab dataset (Vaz et al 2023)",
      "topics": [
        "download_redape_dataset"
      ]
    },
    {
      "page": "duric_horizon",
      "title": "Duric horizon (WRB 2022)",
      "topics": [
        "duric_horizon"
      ]
    },
    {
      "page": "duric_subgroup_usda",
      "title": "Duric Subgroup helper (USDA Spodosols)",
      "topics": [
        "duric_subgroup_usda"
      ]
    },
    {
      "page": "duripa",
      "title": "Duripa (SiBCS Cap 2, p 74; v0.7)",
      "topics": [
        "duripa"
      ]
    },
    {
      "page": "duripan_usda",
      "title": "Duripan (USDA, KST 13ed Ch 3, pp 36-37)",
      "topics": [
        "duripan_usda"
      ]
    },
    {
      "page": "dystric_subgroup_usda",
      "title": "Dystric Subgroup helper (Vertisols Dystr*) Pass when BS (NH4OAc) < 50% in some part of the upper 100 cm.",
      "topics": [
        "dystric_subgroup_usda"
      ]
    },
    {
      "page": "entic_subgroup_usda",
      "title": "Entic Subgroup helper (Spodosols)",
      "topics": [
        "entic_subgroup_usda"
      ]
    },
    {
      "page": "entisol_usda",
      "title": "Entisols (USDA Cap 8): catch-all for soils that don't match any other Order. Always passes.",
      "topics": [
        "entisol_usda"
      ]
    },
    {
      "page": "episaturation_usda",
      "title": "Episaturation helper (USDA, KST 13ed Ch 3, p 41) Pass when aquic conditions PLUS perched water (saturation type \"episaturation\").",
      "topics": [
        "episaturation_usda"
      ]
    },
    {
      "page": "espodossolo",
      "title": "Espodossolos (SiBCS Cap 4, p 112; conceito Cap 3, p 90-91)",
      "topics": [
        "espodossolo"
      ]
    },
    {
      "page": "espodossolo_ferri_humiluvico",
      "title": "Espodossolos Ferri-humiluvicos (Cap 8): B espodico tipo Bhs OR catch-all dos espodossolos.",
      "topics": [
        "espodossolo_ferri_humiluvico"
      ]
    },
    {
      "page": "espodossolo_ferriluvico",
      "title": "Espodossolos Ferriluvicos (Cap 8): B espodico tipo Bs (Fe + Al, baixo OC iluvial).",
      "topics": [
        "espodossolo_ferriluvico"
      ]
    },
    {
      "page": "espodossolo_humiluvico",
      "title": "Espodossolos Humiluvicos (Cap 8): B espodico tipo Bh (org. + Al, pouco/sem Fe).",
      "topics": [
        "espodossolo_humiluvico"
      ]
    },
    {
      "page": "eutric_inceptisol_usda",
      "title": "Eutric Inceptisol Suborder helper (Eutrudepts) Pass when BS (NH4OAc) >= 60% in some part of upper 75 cm.",
      "topics": [
        "eutric_inceptisol_usda"
      ]
    },
    {
      "page": "eutric_oxisol_usda",
      "title": "Eutric Oxisol Suborder helper (Eutroperox/Eutrudox/etc.) Pass when BS (NH4OAc) >= 35% in all layers within 125 cm.",
      "topics": [
        "eutric_oxisol_usda"
      ]
    },
    {
      "page": "eutric_subgroup_usda",
      "title": "Eutric Subgroup helper (Andisols) Pass when base_saturation (sum-of-cations) >= 50% in some part.",
      "topics": [
        "eutric_subgroup_usda"
      ]
    },
    {
      "page": "eutrofico",
      "title": "Solo eutrofico (SiBCS Cap 1, p 30)",
      "topics": [
        "eutrofico"
      ]
    },
    {
      "page": "evaluate_rsg_tests",
      "title": "Evaluate the test block of a single RSG",
      "topics": [
        "evaluate_rsg_tests"
      ]
    },
    {
      "page": "extract_horizons_from_pdf",
      "title": "Extract horizons from a soil description PDF",
      "topics": [
        "extract_horizons_from_pdf"
      ]
    },
    {
      "page": "extract_munsell_from_photo",
      "title": "Extract Munsell color from a profile photo",
      "topics": [
        "extract_munsell_from_photo"
      ]
    },
    {
      "page": "extract_site_from_fieldsheet",
      "title": "Extract site metadata from a field-sheet image",
      "topics": [
        "extract_site_from_fieldsheet"
      ]
    },
    {
      "page": "familia_andico",
      "title": "Familia: propriedades andicas (Cap 1, p 42-43)",
      "topics": [
        "familia_andico"
      ]
    },
    {
      "page": "familia_atividade_argila",
      "title": "Familia: subgrupamento de atividade da fracao argila (Cap 18, p 287)",
      "topics": [
        "familia_atividade_argila"
      ]
    },
    {
      "page": "familia_constituicao_esqueletica",
      "title": "Familia: constituicao esqueletica (Cap 1, p 48)",
      "topics": [
        "familia_constituicao_esqueletica"
      ]
    },
    {
      "page": "familia_distribuicao_cascalhos",
      "title": "Familia: distribuicao de cascalhos no perfil (Cap 1, p 47-48)",
      "topics": [
        "familia_distribuicao_cascalhos"
      ]
    },
    {
      "page": "familia_grupamento_textural",
      "title": "Familia: grupamento textural (Cap 1, p 46)",
      "topics": [
        "familia_grupamento_textural"
      ]
    },
    {
      "page": "familia_label",
      "title": "Constroi label textual de Familia a partir de 'classify_sibcs_familia'",
      "topics": [
        "familia_label"
      ]
    },
    {
      "page": "familia_mineralogia_areia",
      "title": "Familia: mineralogia da fracao areia (Cap 18, p 286)",
      "topics": [
        "familia_mineralogia_areia"
      ]
    },
    {
      "page": "familia_mineralogia_argila_geral",
      "title": "Familia: mineralogia da fracao argila (geral, nao-Latossolos)",
      "topics": [
        "familia_mineralogia_argila_geral"
      ]
    },
    {
      "page": "familia_mineralogia_argila_latossolo",
      "title": "Familia: mineralogia da fracao argila para Latossolos (Cap 18, p 286-287)",
      "topics": [
        "familia_mineralogia_argila_latossolo"
      ]
    },
    {
      "page": "familia_organossolo_espessura",
      "title": "Familia: espessura > 100 cm de material organico em Organossolos (Cap 18, p 287)",
      "topics": [
        "familia_organossolo_espessura"
      ]
    },
    {
      "page": "familia_organossolo_lenhosidade",
      "title": "Familia: lenhosidade em Organossolos (Cap 18, p 288)",
      "topics": [
        "familia_organossolo_lenhosidade"
      ]
    },
    {
      "page": "familia_organossolo_material_subjacente",
      "title": "Familia: material subjacente em Organossolos (Cap 18, p 287)",
      "topics": [
        "familia_organossolo_material_subjacente"
      ]
    },
    {
      "page": "familia_oxidos_ferro",
      "title": "Familia: teor de oxidos de ferro (Cap 1, p 42)",
      "topics": [
        "familia_oxidos_ferro"
      ]
    },
    {
      "page": "familia_prefixo_profundidade",
      "title": "Familia: prefixo de profundidade epi-/meso-/endo- (Cap 18, p 284-285)",
      "topics": [
        "familia_prefixo_profundidade"
      ]
    },
    {
      "page": "familia_saturacao_aluminio",
      "title": "Familia: saturacao por aluminio - \"alico\" (Cap 18, p 285)",
      "topics": [
        "familia_saturacao_aluminio"
      ]
    },
    {
      "page": "familia_saturacao_bases",
      "title": "Familia: saturacao por bases (Cap 18, p 285)",
      "topics": [
        "familia_saturacao_bases"
      ]
    },
    {
      "page": "familia_subgrupamento_textural",
      "title": "Familia: subgrupamento textural (Cap 18, p 283; em validacao)",
      "topics": [
        "familia_subgrupamento_textural"
      ]
    },
    {
      "page": "familia_tipo_horizonte_superficial",
      "title": "Familia: tipo de horizonte diagnostico superficial (Cap 2)",
      "topics": [
        "familia_tipo_horizonte_superficial"
      ]
    },
    {
      "page": "FamilyAttribute",
      "title": "Classe S4-like para atributos de Familia (5o nivel SiBCS)",
      "topics": [
        "FamilyAttribute"
      ]
    },
    {
      "page": "febr_index_munsell",
      "title": "Curated index of FEBR datasets that carry Munsell colors",
      "topics": [
        "febr_index_munsell"
      ]
    },
    {
      "page": "ferralic",
      "title": "Ferralic horizon (WRB 2022)",
      "topics": [
        "ferralic"
      ]
    },
    {
      "page": "ferralsol",
      "title": "Ferralsol RSG gate (WRB 2022 Ch 4, p 110)",
      "topics": [
        "ferralsol"
      ]
    },
    {
      "page": "ferric",
      "title": "Ferric horizon (WRB 2022)",
      "topics": [
        "ferric"
      ]
    },
    {
      "page": "ferric_subgroup_usda",
      "title": "Ferric Subgroup helper (Ferrudalfs) Pass when iron-rich (fe_dcb_pct >= 4%) horizon present in B.",
      "topics": [
        "ferric_subgroup_usda"
      ]
    },
    {
      "page": "fibric_predominant_usda",
      "title": "Fibric_predominant_usda: Fibrists Suborder qualifier",
      "topics": [
        "fibric_predominant_usda"
      ]
    },
    {
      "page": "fibric_subgroup_usda",
      "title": "Fibric Subgroup helper (Haplohemists / Haplowassists / Sulfiwassists) Pass when fibric layers cumulative thickness >= 25 cm in control section below surface tier.",
      "topics": [
        "fibric_subgroup_usda"
      ]
    },
    {
      "page": "fibrico",
      "title": "Material organico fibrico (SiBCS Cap 14)",
      "topics": [
        "fibrico"
      ]
    },
    {
      "page": "fill_from_spectra",
      "title": "Fill missing soil attributes from spectra via OSSL",
      "topics": [
        "fill_from_spectra"
      ]
    },
    {
      "page": "fill_munsell_from_spectra",
      "title": "Fill missing Munsell colors on a PedonRecord from Vis-NIR spectra",
      "topics": [
        "fill_munsell_from_spectra"
      ]
    },
    {
      "page": "fluvaquentic_usda",
      "title": "Fluvaquentic Subgroup helper (irregular OC decrease + aquic)",
      "topics": [
        "fluvaquentic_usda"
      ]
    },
    {
      "page": "fluvent_qualifying_usda",
      "title": "Fluvent Suborder qualifier (irregular OC decrease in 25-125 cm, OR layered alluvial designation).",
      "topics": [
        "fluvent_qualifying_usda"
      ]
    },
    {
      "page": "fluventic_usda",
      "title": "Fluventic Subgroup helper (irregular OC decrease, NO aquic req.)",
      "topics": [
        "fluventic_usda"
      ]
    },
    {
      "page": "fluvic_material",
      "title": "Fluvic material (WRB 2022)",
      "topics": [
        "fluvic_material"
      ]
    },
    {
      "page": "folist_qualifying_usda",
      "title": "Folists Suborder qualifier (KST 13ed, Ch 10, p 200)",
      "topics": [
        "folist_qualifying_usda"
      ]
    },
    {
      "page": "folistic_epipedon_usda",
      "title": "Folistic epipedon (USDA Soil Taxonomy, 13th edition)",
      "topics": [
        "folistic_epipedon_usda"
      ]
    },
    {
      "page": "folistic_subgroup_usda",
      "title": "Folistic Subgroup helper (folistic_epipedon present)",
      "topics": [
        "folistic_subgroup_usda"
      ]
    },
    {
      "page": "format_wrb_name",
      "title": "Format a WRB 2022 soil name with qualifiers",
      "topics": [
        "format_wrb_name"
      ]
    },
    {
      "page": "fragic",
      "title": "Fragic horizon (WRB 2022): a high-bulk-density horizon with restricted rooting. v0.3.3: detects via bulk_density_g_cm3 >= 1.65 AND structure grade massive/very firm OR designation pattern 'x'/'Bx'.",
      "topics": [
        "fragic"
      ]
    },
    {
      "page": "fragipa",
      "title": "Fragipa (SiBCS Cap 2, p 73-74; v0.7)",
      "topics": [
        "fragipa"
      ]
    },
    {
      "page": "fragipan_usda",
      "title": "Fragipan (USDA, KST 13ed Ch 3, p 38)",
      "topics": [
        "fragipan_usda"
      ]
    },
    {
      "page": "frasic_qualifying_usda",
      "title": "Frasiwassists Subgroup helper (Wassists)",
      "topics": [
        "frasic_qualifying_usda"
      ]
    },
    {
      "page": "from_aqp",
      "title": "Convert an aqp SoilProfileCollection back to a list of PedonRecord",
      "topics": [
        "from_aqp"
      ]
    },
    {
      "page": "fulvic_andisol_usda",
      "title": "Fulvic Andisols: similar to melanic but with melanic_index > 1.70 (more humic acid). v0.8: detected via OC >= 6 in cumulative 30 cm but WITHOUT melanic_epipedon (since melanic requires index <= 1.70).",
      "topics": [
        "fulvic_andisol_usda"
      ]
    },
    {
      "page": "gelisol_usda",
      "title": "Gelisols (USDA Cap 9): gelic conditions / permafrost.",
      "topics": [
        "gelisol_usda"
      ]
    },
    {
      "page": "glacic_layer_usda",
      "title": "Glacic layer (USDA Soil Taxonomy, 13th edition)",
      "topics": [
        "glacic_layer_usda"
      ]
    },
    {
      "page": "gleissolo",
      "title": "Gleissolos (SiBCS Cap 4, p 112-113; conceito Cap 3, p 91-93)",
      "topics": [
        "gleissolo"
      ]
    },
    {
      "page": "gleissolo_haplico",
      "title": "Gleissolos Haplicos (catch-all).",
      "topics": [
        "gleissolo_haplico"
      ]
    },
    {
      "page": "gleissolo_melanico",
      "title": "Gleissolos Melanicos (Cap 9): horizonte hístico < 40 cm OR A humico, proeminente, chernozemico.",
      "topics": [
        "gleissolo_melanico"
      ]
    },
    {
      "page": "gleissolo_salico",
      "title": "Gleissolos Salicos (Cap 9): caracter salico em < 100 cm.",
      "topics": [
        "gleissolo_salico"
      ]
    },
    {
      "page": "gleissolo_tiomorfico",
      "title": "Gleissolos Tiomorficos (Cap 9): materiais sulfidricos OR horizonte sulfurico em < 100 cm.",
      "topics": [
        "gleissolo_tiomorfico"
      ]
    },
    {
      "page": "gleyic_properties",
      "title": "Gleyic properties (WRB 2022)",
      "topics": [
        "gleyic_properties"
      ]
    },
    {
      "page": "gleysol",
      "title": "Gleysol RSG gate (WRB 2022 Ch 4, p 103)",
      "topics": [
        "gleysol"
      ]
    },
    {
      "page": "glossic_subgroup_usda",
      "title": "Glossic Subgroup helper (Glossaqualfs, Glossocryalfs, Glossudalfs) Pass when interfingering of albic materials into argillic horizon is detected. v0.8 proxy: albic + argillic + lateral chroma <= 2 on argillic boundary.",
      "topics": [
        "glossic_subgroup_usda"
      ]
    },
    {
      "page": "grapes-or-or-grapes",
      "title": "Default-value-for-NULL operator",
      "topics": [
        "%||%",
        "grapes-or-or-grapes"
      ]
    },
    {
      "page": "grossarenic_subgroup_usda",
      "title": "Grossarenic Subgroup helper: sandy throughout, spodic >= 125 cm.",
      "topics": [
        "grossarenic_subgroup_usda"
      ]
    },
    {
      "page": "GSM_DEPTHS",
      "title": "Default GlobalSoilMap depth intervals (cm)",
      "topics": [
        "GSM_DEPTHS"
      ]
    },
    {
      "page": "gypsic",
      "title": "Gypsic horizon (WRB 2022)",
      "topics": [
        "gypsic"
      ]
    },
    {
      "page": "gypsic_horizon_usda",
      "title": "Gypsic horizon (USDA, delegates to WRB gypsic).",
      "topics": [
        "gypsic_horizon_usda"
      ]
    },
    {
      "page": "gypsic_subgroup_usda",
      "title": "Gypsic Subgroup helper - delegates to gypsic_horizon_usda.",
      "topics": [
        "gypsic_subgroup_usda"
      ]
    },
    {
      "page": "gypsiric_material",
      "title": "Gypsiric material (WRB 2022 Ch 3.3.7): \\>= 5% gypsum that is primary (not secondary). Without a \"secondary fraction\" schema column, v0.3.3 treats any layer with caso4_pct >= 5 as gypsiric unless it explicitly carries gypsic-horizon designation.",
      "topics": [
        "gypsiric_material"
      ]
    },
    {
      "page": "halaquept_qualifying_usda",
      "title": "Halic helper for Halaquepts Pass when EC >= 8 dS/m within 100 cm.",
      "topics": [
        "halaquept_qualifying_usda"
      ]
    },
    {
      "page": "halic_subgroup_usda",
      "title": "Halic Subgroup helper (Haplosaprists)",
      "topics": [
        "halic_subgroup_usda"
      ]
    },
    {
      "page": "harmonize_to_gsm",
      "title": "Harmonise pedons to GlobalSoilMap depth intervals",
      "topics": [
        "harmonize_to_gsm"
      ]
    },
    {
      "page": "hemic_subgroup_usda",
      "title": "Hemic Subgroup helper",
      "topics": [
        "hemic_subgroup_usda"
      ]
    },
    {
      "page": "hemico",
      "title": "Material organico hemico (SiBCS Cap 14)",
      "topics": [
        "hemico"
      ]
    },
    {
      "page": "histel_qualifying_usda",
      "title": "Histels Suborder qualifier (USDA, KST 13ed)",
      "topics": [
        "histel_qualifying_usda"
      ]
    },
    {
      "page": "histic_epipedon_usda",
      "title": "Histic epipedon (USDA Soil Taxonomy, 13th edition)",
      "topics": [
        "histic_epipedon_usda"
      ]
    },
    {
      "page": "histic_horizon",
      "title": "Histic horizon (WRB 2022)",
      "topics": [
        "histic_horizon"
      ]
    },
    {
      "page": "histic_subgroup_usda",
      "title": "Histic Subgroup helper (in Spodosols, Aquods) Pass when histic_epipedon_usda passes.",
      "topics": [
        "histic_subgroup_usda"
      ]
    },
    {
      "page": "histosol_qualifying_usda",
      "title": "Histosols Order qualifier (USDA, KST 13ed, Ch 2, p 7)",
      "topics": [
        "histosol_qualifying_usda"
      ]
    },
    {
      "page": "histosol_usda",
      "title": "Histosols (USDA Cap 10): organic materials >= 40 cm in 0-100. Refined v0.8.4 - now uses histosol_qualifying_usda (40 cm threshold) instead of WRB histic_horizon (10 cm).",
      "topics": [
        "histosol_usda"
      ]
    },
    {
      "page": "horizonte_A_antropico",
      "title": "Horizonte A antropico (SiBCS) (SiBCS Cap 2, p 53)",
      "topics": [
        "horizonte_A_antropico"
      ]
    },
    {
      "page": "horizonte_A_chernozemico",
      "title": "Horizonte A chernozemico (SiBCS Cap 2, p 50-51)",
      "topics": [
        "horizonte_A_chernozemico"
      ]
    },
    {
      "page": "horizonte_A_fraco",
      "title": "Horizonte A fraco (SiBCS Cap 2, p 53): cor clara + estrutura grao simples/macica + OC < 6 g/kg; OR espessura < 5 cm.",
      "topics": [
        "horizonte_A_fraco"
      ]
    },
    {
      "page": "horizonte_A_humico",
      "title": "Horizonte A humico (SiBCS Cap 2, p 51-52)",
      "topics": [
        "horizonte_A_humico"
      ]
    },
    {
      "page": "horizonte_A_moderado",
      "title": "Horizonte A moderado (SiBCS Cap 2, p 53-54): catch-all. Returns TRUE quando o solo tem horizonte superficial mas nao se enquadra nas demais classes diagnosticas superficiais.",
      "topics": [
        "horizonte_A_moderado"
      ]
    },
    {
      "page": "horizonte_A_proeminente",
      "title": "Horizonte A proeminente (SiBCS Cap 2, p 52-53)",
      "topics": [
        "horizonte_A_proeminente"
      ]
    },
    {
      "page": "horizonte_calcico",
      "title": "Horizonte calcico (SiBCS Cap 2, p 71-72; v0.7)",
      "topics": [
        "horizonte_calcico"
      ]
    },
    {
      "page": "horizonte_concrecionario",
      "title": "Horizonte concrecionario (SiBCS Cap 2, p 68-69; v0.7)",
      "topics": [
        "horizonte_concrecionario"
      ]
    },
    {
      "page": "horizonte_E_albico",
      "title": "Horizonte E albico (SiBCS Cap 2, p 66-67; v0.7)",
      "topics": [
        "horizonte_E_albico"
      ]
    },
    {
      "page": "horizonte_glei",
      "title": "Horizonte glei (SiBCS Cap 2, p 69-71; v0.7)",
      "topics": [
        "horizonte_glei"
      ]
    },
    {
      "page": "horizonte_histico",
      "title": "Horizonte histico (SiBCS Cap 2, p 49-50)",
      "topics": [
        "horizonte_histico"
      ]
    },
    {
      "page": "horizonte_litoplintico",
      "title": "Horizonte litoplintico (SiBCS Cap 2, p 69; v0.7)",
      "topics": [
        "horizonte_litoplintico"
      ]
    },
    {
      "page": "horizonte_petrocalcico",
      "title": "Horizonte petrocalcico (SiBCS Cap 2, p 72; v0.7)",
      "topics": [
        "horizonte_petrocalcico"
      ]
    },
    {
      "page": "horizonte_plintico",
      "title": "Horizonte plintico (SiBCS Cap 2, p 67-68; v0.7)",
      "topics": [
        "horizonte_plintico"
      ]
    },
    {
      "page": "horizonte_sulfurico",
      "title": "Horizonte sulfurico (SiBCS Cap 2, p 72-73; v0.7)",
      "topics": [
        "horizonte_sulfurico"
      ]
    },
    {
      "page": "horizonte_vertico",
      "title": "Horizonte vertico (SiBCS Cap 2, p 73; v0.7)",
      "topics": [
        "horizonte_vertico"
      ]
    },
    {
      "page": "hortic",
      "title": "Hortic horizon (WRB 2022): garden / kitchen-midden topsoil. Diagnostic criteria: thickness \\>= 20 cm, dark colour (mollic-like), high P (Mehlich-3 P >= 100 mg/kg or P2O5_1pct_citric >= 175 mg/kg), high SOC.",
      "topics": [
        "hortic"
      ]
    },
    {
      "page": "humic_andisol_usda",
      "title": "Humic Andisols Subgroup helper Pass when mollic OR umbric epipedon present.",
      "topics": [
        "humic_andisol_usda"
      ]
    },
    {
      "page": "humic_inceptisol_usda",
      "title": "Humic Inceptisol Suborder helper (Hum*) Pass when umbric or mollic epipedon present + thick (>= 25 cm).",
      "topics": [
        "humic_inceptisol_usda"
      ]
    },
    {
      "page": "humic_oxisol_usda",
      "title": "Humic-Oxisol Subgroup helper Pass when cumulative organic carbon mass is >= 16 kg/m2 between surface and 100 cm (computed as SUM(OC% * bulk_density * dz)). v0.8 proxy: uses default bulk_density 1.0 g/cm3 if unavailable.",
      "topics": [
        "humic_oxisol_usda"
      ]
    },
    {
      "page": "humic_spodic_usda",
      "title": "Humic-spodic Suborder/GG check (>= 6% OC in 10+ cm of spodic)",
      "topics": [
        "humic_spodic_usda"
      ]
    },
    {
      "page": "humic_subgroup_usda",
      "title": "Humic Subgroup helper (Humic Duricryods / Humic Placocryods) Pass when spodic horizon has >= 6% OC in 10+ cm.",
      "topics": [
        "humic_subgroup_usda"
      ]
    },
    {
      "page": "humilluvic_subgroup_usda",
      "title": "Humilluvic Subgroup helper (Luvihemists)",
      "topics": [
        "humilluvic_subgroup_usda"
      ]
    },
    {
      "page": "humult_qualifying_usda",
      "title": "Humult Suborder qualifier (Ultisols with thick humus accumulation) Pass when 0.9% OC weighted average in 0-15 cm AND/OR organic carbon mass >= 12 kg/m2 in 0-100 cm (proxy via humic_oxisol_usda with lower threshold).",
      "topics": [
        "humult_qualifying_usda"
      ]
    },
    {
      "page": "hydragric",
      "title": "Hydragric horizon (WRB 2022): subsoil hydric horizon under anthraquic. v0.3.3 detects via designation pattern 'Bg|Brg' immediately below an anthraquic-like topsoil.",
      "topics": [
        "hydragric"
      ]
    },
    {
      "page": "hydraquent_qualifying_usda",
      "title": "Hydric Aquent helper (Hydraquents) Pass when surface 0-50 has high water content (n value high). v0.8 proxy: water_content_1500kpa >= 80% in surface.",
      "topics": [
        "hydraquent_qualifying_usda"
      ]
    },
    {
      "page": "hydric_andisol_usda",
      "title": "Hydric (Andisols): 1500 kPa water retention >= 70% on undried samples throughout a 35+ cm layer within 100 cm.",
      "topics": [
        "hydric_andisol_usda"
      ]
    },
    {
      "page": "hydric_subgroup_usda",
      "title": "Hydric Subgroup helper (Histosols Cryofibrists / Sphagnofibrists / etc.)",
      "topics": [
        "hydric_subgroup_usda"
      ]
    },
    {
      "page": "hypersulfidic_material",
      "title": "Hypersulfidic material (WRB 2022 Ch 3.3.8): \\>= 0.01% inorganic sulfidic S, pH \\>= 4, capable of severe acidification on aerobic incubation.",
      "topics": [
        "hypersulfidic_material"
      ]
    },
    {
      "page": "hyposulfidic_material",
      "title": "Hyposulfidic material (WRB 2022 Ch 3.3.9): same S and pH as hypersulfidic but does NOT consist of hypersulfidic (i.e. not capable of severe acidification). v0.3.3: returns sulfidic layers that don't meet hypersulfidic.",
      "topics": [
        "hyposulfidic_material"
      ]
    },
    {
      "page": "inceptisol_qualifying_usda",
      "title": "Inceptisol Order qualifier Pass when a cambic horizon is present (no argillic, no spodic, no mollic, etc. - enforced by prior order exclusion).",
      "topics": [
        "inceptisol_qualifying_usda"
      ]
    },
    {
      "page": "inceptisol_usda",
      "title": "Inceptisols (USDA Cap 11): cambic horizon (or several alternative subsurface diagnostics: folistic/histic/mollic with thin sub, salic, sodium-affected sub).",
      "topics": [
        "inceptisol_usda"
      ]
    },
    {
      "page": "inspect_bdsolos_csv",
      "title": "Diagnostic inspection of a BDsolos CSV before loading",
      "topics": [
        "inspect_bdsolos_csv"
      ]
    },
    {
      "page": "irragric",
      "title": "Irragric horizon (WRB 2022): topsoil thickened by irrigation deposits. v0.3.3: thickness >= 20 cm + sediment-derived structure proxied via designation 'Apk|Apg|Au'.",
      "topics": [
        "irragric"
      ]
    },
    {
      "page": "kandic_horizon_usda",
      "title": "Kandic horizon (USDA, KST 13ed Ch 3, p 45)",
      "topics": [
        "kandic_horizon_usda"
      ]
    },
    {
      "page": "kandic_oxisol_usda",
      "title": "Kandic Suborder helper for Oxisols (Kandiperox/Kandiudox/Kandiustox) Delegates to kandic_horizon_usda.",
      "topics": [
        "kandic_oxisol_usda"
      ]
    },
    {
      "page": "kanhapl_qualifying_usda",
      "title": "Kanhapl qualifying helper (Kanhapludults / Kanhaplustults / etc.) Pass when kandic horizon present BUT NOT meeting Pale criteria (i.e. younger / less developed kandic).",
      "topics": [
        "kanhapl_qualifying_usda"
      ]
    },
    {
      "page": "kastanozem",
      "title": "Kastanozem RSG diagnostic (WRB 2022)",
      "topics": [
        "kastanozem"
      ]
    },
    {
      "page": "kastanozem_strict",
      "title": "Kastanozem RSG gate (strengthened, WRB 2022 Ch 4, p 112)",
      "topics": [
        "kastanozem_strict"
      ]
    },
    {
      "page": "kst13_canonical",
      "title": "Keys to Soil Taxonomy 13th edition canonical reference",
      "topics": [
        "kst13_canonical"
      ]
    },
    {
      "page": "kst13_codes",
      "title": "Load the canonical KST 13ed code -> taxon-name lookup table",
      "topics": [
        "kst13_codes"
      ]
    },
    {
      "page": "kst13_criteria",
      "title": "Load the canonical KST 13ed criteria for a single taxon code",
      "topics": [
        "kst13_criteria"
      ]
    },
    {
      "page": "lamellic_subgroup_usda",
      "title": "Lamellic Subgroup helper (Spodosols Haplorthods)",
      "topics": [
        "lamellic_subgroup_usda"
      ]
    },
    {
      "page": "latossolo",
      "title": "Latossolos (SiBCS Cap 4, p 113; conceito Cap 3, p 93-94)",
      "topics": [
        "latossolo"
      ]
    },
    {
      "page": "latossolo_amarelo",
      "title": "Latossolos Amarelos (Cap 10): matiz \\>= 7.5YR (mais amarelo).",
      "topics": [
        "latossolo_amarelo"
      ]
    },
    {
      "page": "latossolo_bruno",
      "title": "Latossolos Brunos (Cap 10): matiz \\>= 7.5YR + valor \\<= 4 + croma \\<= 5 (cores brunadas) OR caracter retratil.",
      "topics": [
        "latossolo_bruno"
      ]
    },
    {
      "page": "latossolo_ki_kr",
      "title": "Ki/Kr para Latossolos (SiBCS Cap 10, p 173-176)",
      "topics": [
        "latossolo_ki_kr"
      ]
    },
    {
      "page": "latossolo_vermelho",
      "title": "Latossolos Vermelhos (Cap 10): matiz \\<= 2.5YR (mais vermelho).",
      "topics": [
        "latossolo_vermelho"
      ]
    },
    {
      "page": "latossolo_vermelho_amarelo",
      "title": "Latossolos Vermelho-Amarelos (catch-all).",
      "topics": [
        "latossolo_vermelho_amarelo"
      ]
    },
    {
      "page": "leptic_features",
      "title": "Leptic features (WRB 2022)",
      "topics": [
        "leptic_features"
      ]
    },
    {
      "page": "limnic_material",
      "title": "Limnic material (WRB 2022 Ch 3.3.10): subaquatic deposits (coprogenous earth, diatomaceous earth, marl, gyttja). v0.3.3: detects via 'rock_origin %in% c(\"lacustrine\", \"marine\")' or designation pattern.",
      "topics": [
        "limnic_material"
      ]
    },
    {
      "page": "limnic_usda",
      "title": "Limnic Subgroup helper (Histels)",
      "topics": [
        "limnic_usda"
      ]
    },
    {
      "page": "limonic",
      "title": "Limonic horizon (WRB 2022 Ch 3.1)",
      "topics": [
        "limonic"
      ]
    },
    {
      "page": "lithic_contact_usda",
      "title": "Lithic contact within X cm of the surface (USDA Subgroup helper)",
      "topics": [
        "lithic_contact_usda"
      ]
    },
    {
      "page": "lithic_discontinuity",
      "title": "Lithic discontinuity (WRB 2022 Ch 3.2.7)",
      "topics": [
        "lithic_discontinuity"
      ]
    },
    {
      "page": "lixisol",
      "title": "Lixisol RSG diagnostic (WRB 2022)",
      "topics": [
        "lixisol"
      ]
    },
    {
      "page": "load_afsp_pedons",
      "title": "Load Africa Soil Profiles (AfSP) v1.2 as PedonRecord objects",
      "topics": [
        "load_afsp_pedons"
      ]
    },
    {
      "page": "load_afsp_sample",
      "title": "Load the bundled AfSP stratified sample (v0.9.77)",
      "topics": [
        "load_afsp_sample"
      ]
    },
    {
      "page": "load_bdsolos_csv",
      "title": "Load a BDsolos CSV export as a list of PedonRecord objects",
      "topics": [
        "load_bdsolos_csv"
      ]
    },
    {
      "page": "load_embrapa_pedons",
      "title": "Load Embrapa dadosolos pedons with reference SiBCS classification",
      "topics": [
        "load_embrapa_pedons"
      ]
    },
    {
      "page": "load_febr_pedons",
      "title": "Load the Embrapa FEBR superconjunto into a list of PedonRecords",
      "topics": [
        "load_febr_pedons"
      ]
    },
    {
      "page": "load_kssl_nasis_sample",
      "title": "Load the bundled KSSL + NASIS morphological-enriched sample (v0.9.75)",
      "topics": [
        "load_kssl_nasis_sample"
      ]
    },
    {
      "page": "load_kssl_pedons",
      "title": "Load NCSS / KSSL pedons with reference USDA Soil Taxonomy classification",
      "topics": [
        "load_kssl_pedons"
      ]
    },
    {
      "page": "load_kssl_pedons_gpkg",
      "title": "Load KSSL / NCSS pedons from the ncss_labdata GeoPackage",
      "topics": [
        "load_kssl_pedons_gpkg"
      ]
    },
    {
      "page": "load_kssl_pedons_with_nasis",
      "title": "Load KSSL pedons enriched with NASIS morphology",
      "topics": [
        "load_kssl_pedons_with_nasis"
      ]
    },
    {
      "page": "load_kssl_sample",
      "title": "Load the bundled KSSL/NCSS lab-data sample (v0.9.74)",
      "topics": [
        "load_kssl_sample"
      ]
    },
    {
      "page": "load_lucas_pedons",
      "title": "Load EU-LUCAS / ESDB pedons with reference WRB classification",
      "topics": [
        "load_lucas_pedons"
      ]
    },
    {
      "page": "load_lucas_soil_2018",
      "title": "Load the LUCAS Soil 2018 Topsoil release as a list of PedonRecord objects",
      "topics": [
        "load_lucas_soil_2018"
      ]
    },
    {
      "page": "load_redape_pedons",
      "title": "Load curated soil profiles from the Embrapa Redape GeoTab dataset",
      "topics": [
        "load_redape_pedons"
      ]
    },
    {
      "page": "load_rules",
      "title": "Load a soilKey rule set (YAML)",
      "topics": [
        "load_rules"
      ]
    },
    {
      "page": "load_wosis_sample",
      "title": "Load the bundled WoSIS South-America sample",
      "topics": [
        "load_wosis_sample"
      ]
    },
    {
      "page": "load_wosis_stratified_sample",
      "title": "Load the bundled WoSIS stratified RSG-balanced sample (v0.9.73)",
      "topics": [
        "load_wosis_stratified_sample"
      ]
    },
    {
      "page": "lookup_esdb",
      "title": "Look up an ESDB raster value at WGS84 coordinates",
      "topics": [
        "lookup_esdb"
      ]
    },
    {
      "page": "lookup_mapbiomas_solos",
      "title": "Look up a MapBiomas Solos raster value at WGS84 coordinates",
      "topics": [
        "lookup_mapbiomas_solos"
      ]
    },
    {
      "page": "lookup_soilgrids",
      "title": "Look up a SoilGrids 250m soil property at WGS84 coordinates",
      "topics": [
        "lookup_soilgrids"
      ]
    },
    {
      "page": "luvisol",
      "title": "Luvisol RSG diagnostic (WRB 2022)",
      "topics": [
        "luvisol"
      ]
    },
    {
      "page": "luvissolo",
      "title": "Luvissolos (SiBCS Cap 4, p 113; conceito Cap 3, p 95-96)",
      "topics": [
        "luvissolo"
      ]
    },
    {
      "page": "luvissolo_cromico",
      "title": "Luvissolos Cromicos (Cap 11): caracter cromico (cores fortes em B). Aplicado pela presenca de Munsell vermelho-amarelado em B com cromas altos.",
      "topics": [
        "luvissolo_cromico"
      ]
    },
    {
      "page": "luvissolo_haplico",
      "title": "Luvissolos Haplicos (catch-all).",
      "topics": [
        "luvissolo_haplico"
      ]
    },
    {
      "page": "make_acrisol_canonical",
      "title": "Build the canonical Acrisol fixture",
      "topics": [
        "make_acrisol_canonical"
      ]
    },
    {
      "page": "make_alisol_canonical",
      "title": "Build the canonical Alisol fixture",
      "topics": [
        "make_alisol_canonical"
      ]
    },
    {
      "page": "make_andosol_canonical",
      "title": "Build the canonical Andosol fixture",
      "topics": [
        "make_andosol_canonical"
      ]
    },
    {
      "page": "make_anthrosol_canonical",
      "title": "Build the canonical Anthrosol fixture",
      "topics": [
        "make_anthrosol_canonical"
      ]
    },
    {
      "page": "make_arenosol_canonical",
      "title": "Build the canonical Arenosol fixture",
      "topics": [
        "make_arenosol_canonical"
      ]
    },
    {
      "page": "make_argissolo_canonical",
      "title": "Perfil canonico de Argissolo (SiBCS 5a ed., Cap 5)",
      "topics": [
        "make_argissolo_canonical"
      ]
    },
    {
      "page": "make_calcisol_canonical",
      "title": "Build the canonical Calcisol fixture",
      "topics": [
        "make_calcisol_canonical"
      ]
    },
    {
      "page": "make_cambisol_canonical",
      "title": "Build the canonical Cambisol fixture",
      "topics": [
        "make_cambisol_canonical"
      ]
    },
    {
      "page": "make_cambissolo_canonical",
      "title": "Perfil canonico de Cambissolo (SiBCS 5a ed., Cap 6)",
      "topics": [
        "make_cambissolo_canonical"
      ]
    },
    {
      "page": "make_chernossolo_canonical",
      "title": "Perfil canonico de Chernossolo (SiBCS 5a ed., Cap 7)",
      "topics": [
        "make_chernossolo_canonical"
      ]
    },
    {
      "page": "make_chernozem_canonical",
      "title": "Build the canonical Chernozem fixture",
      "topics": [
        "make_chernozem_canonical"
      ]
    },
    {
      "page": "make_cryosol_canonical",
      "title": "Build the canonical Cryosol fixture",
      "topics": [
        "make_cryosol_canonical"
      ]
    },
    {
      "page": "make_durisol_canonical",
      "title": "Build the canonical Durisol fixture",
      "topics": [
        "make_durisol_canonical"
      ]
    },
    {
      "page": "make_empty_horizons",
      "title": "Build an empty horizons data.table with the canonical schema",
      "topics": [
        "make_empty_horizons"
      ]
    },
    {
      "page": "make_espodossolo_canonical",
      "title": "Perfil canonico de Espodossolo (SiBCS 5a ed., Cap 8)",
      "topics": [
        "make_espodossolo_canonical"
      ]
    },
    {
      "page": "make_ferralsol_canonical",
      "title": "Build the canonical Ferralsol fixture",
      "topics": [
        "make_ferralsol_canonical"
      ]
    },
    {
      "page": "make_fluvisol_canonical",
      "title": "Build the canonical Fluvisol fixture",
      "topics": [
        "make_fluvisol_canonical"
      ]
    },
    {
      "page": "make_gleissolo_canonical",
      "title": "Perfil canonico de Gleissolo (SiBCS 5a ed., Cap 9)",
      "topics": [
        "make_gleissolo_canonical"
      ]
    },
    {
      "page": "make_gleysol_canonical",
      "title": "Build the canonical Gleysol fixture",
      "topics": [
        "make_gleysol_canonical"
      ]
    },
    {
      "page": "make_gypsisol_canonical",
      "title": "Build the canonical Gypsisol fixture",
      "topics": [
        "make_gypsisol_canonical"
      ]
    },
    {
      "page": "make_histosol_canonical",
      "title": "Build the canonical Histosol fixture",
      "topics": [
        "make_histosol_canonical"
      ]
    },
    {
      "page": "make_kastanozem_canonical",
      "title": "Build the canonical Kastanozem fixture",
      "topics": [
        "make_kastanozem_canonical"
      ]
    },
    {
      "page": "make_latossolo_canonical",
      "title": "Perfil canonico de Latossolo (SiBCS 5a ed., Cap 10)",
      "topics": [
        "make_latossolo_canonical"
      ]
    },
    {
      "page": "make_leptosol_canonical",
      "title": "Build the canonical Leptosol fixture",
      "topics": [
        "make_leptosol_canonical"
      ]
    },
    {
      "page": "make_lixisol_canonical",
      "title": "Build the canonical Lixisol fixture",
      "topics": [
        "make_lixisol_canonical"
      ]
    },
    {
      "page": "make_luvisol_canonical",
      "title": "Build the canonical Luvisol fixture",
      "topics": [
        "make_luvisol_canonical"
      ]
    },
    {
      "page": "make_luvissolo_canonical",
      "title": "Perfil canonico de Luvissolo (SiBCS 5a ed., Cap 11)",
      "topics": [
        "make_luvissolo_canonical"
      ]
    },
    {
      "page": "make_neossolo_canonical",
      "title": "Perfil canonico de Neossolo Litolico (SiBCS 5a ed., Cap 12)",
      "topics": [
        "make_neossolo_canonical"
      ]
    },
    {
      "page": "make_nitisol_canonical",
      "title": "Build the canonical Nitisol fixture",
      "topics": [
        "make_nitisol_canonical"
      ]
    },
    {
      "page": "make_nitossolo_canonical",
      "title": "Perfil canonico de Nitossolo Vermelho (SiBCS 5a ed., Cap 13)",
      "topics": [
        "make_nitossolo_canonical"
      ]
    },
    {
      "page": "make_organossolo_canonical",
      "title": "Perfil canonico de Organossolo (SiBCS 5a ed., Cap 14)",
      "topics": [
        "make_organossolo_canonical"
      ]
    },
    {
      "page": "make_phaeozem_canonical",
      "title": "Build the canonical Phaeozem fixture",
      "topics": [
        "make_phaeozem_canonical"
      ]
    },
    {
      "page": "make_planosol_canonical",
      "title": "Build the canonical Planosol fixture",
      "topics": [
        "make_planosol_canonical"
      ]
    },
    {
      "page": "make_planossolo_canonical",
      "title": "Perfil canonico de Planossolo (SiBCS 5a ed., Cap 15)",
      "topics": [
        "make_planossolo_canonical"
      ]
    },
    {
      "page": "make_plinthosol_canonical",
      "title": "Build the canonical Plinthosol fixture",
      "topics": [
        "make_plinthosol_canonical"
      ]
    },
    {
      "page": "make_plintossolo_canonical",
      "title": "Perfil canonico de Plintossolo (SiBCS 5a ed., Cap 16)",
      "topics": [
        "make_plintossolo_canonical"
      ]
    },
    {
      "page": "make_podzol_canonical",
      "title": "Build the canonical Podzol fixture",
      "topics": [
        "make_podzol_canonical"
      ]
    },
    {
      "page": "make_retisol_canonical",
      "title": "Build the canonical Retisol fixture",
      "topics": [
        "make_retisol_canonical"
      ]
    },
    {
      "page": "make_solonchak_canonical",
      "title": "Build the canonical Solonchak fixture",
      "topics": [
        "make_solonchak_canonical"
      ]
    },
    {
      "page": "make_solonetz_canonical",
      "title": "Build the canonical Solonetz fixture",
      "topics": [
        "make_solonetz_canonical"
      ]
    },
    {
      "page": "make_stagnosol_canonical",
      "title": "Build the canonical Stagnosol fixture",
      "topics": [
        "make_stagnosol_canonical"
      ]
    },
    {
      "page": "make_synthetic_pedon_with_spectra",
      "title": "Build a synthetic PedonRecord with attached spectra (testing aid)",
      "topics": [
        "make_synthetic_pedon_with_spectra"
      ]
    },
    {
      "page": "make_technosol_canonical",
      "title": "Build the canonical Technosol fixture",
      "topics": [
        "make_technosol_canonical"
      ]
    },
    {
      "page": "make_umbrisol_canonical",
      "title": "Build the canonical Umbrisol fixture",
      "topics": [
        "make_umbrisol_canonical"
      ]
    },
    {
      "page": "make_vertisol_canonical",
      "title": "Build the canonical Vertisol fixture",
      "topics": [
        "make_vertisol_canonical"
      ]
    },
    {
      "page": "make_vertissolo_canonical",
      "title": "Perfil canonico de Vertissolo (SiBCS 5a ed., Cap 17)",
      "topics": [
        "make_vertissolo_canonical"
      ]
    },
    {
      "page": "melanic_andisol_usda",
      "title": "Melanic Andisols: melanic_epipedon present.",
      "topics": [
        "melanic_andisol_usda"
      ]
    },
    {
      "page": "melanic_epipedon_usda",
      "title": "Melanic epipedon (USDA Soil Taxonomy, 13th edition)",
      "topics": [
        "melanic_epipedon_usda"
      ]
    },
    {
      "page": "mineral_material",
      "title": "Mineral material (WRB 2022 Ch 3.3.11): < 20% SOC AND < 35% volume artefacts containing >= 20% organic carbon. The complement of organic_material / organotechnic_material.",
      "topics": [
        "mineral_material"
      ]
    },
    {
      "page": "mollic",
      "title": "Mollic horizon (WRB 2022)",
      "topics": [
        "mollic"
      ]
    },
    {
      "page": "mollic_epipedon_usda",
      "title": "Mollic epipedon (USDA Soil Taxonomy, 13th edition)",
      "topics": [
        "mollic_epipedon_usda"
      ]
    },
    {
      "page": "mollisol_qualifying_usda",
      "title": "Mollisol Order qualifier (USDA, KST 13ed, Ch 12) Pass when mollic_epipedon AND BS (NH4OAc) >= 50% in upper 100 cm.",
      "topics": [
        "mollisol_qualifying_usda"
      ]
    },
    {
      "page": "mollisol_usda",
      "title": "Mollisols (USDA Cap 12): mollic epipedon + base saturation >= 50%.",
      "topics": [
        "mollisol_usda"
      ]
    },
    {
      "page": "mudanca_textural_abrupta",
      "title": "Mudanca textural abrupta (SiBCS Cap 1, p 30-31)",
      "topics": [
        "mudanca_textural_abrupta"
      ]
    },
    {
      "page": "mulmic_material",
      "title": "Mulmic material (WRB 2022 Ch 3.3.12): mineral material developed from organic material; \\>= 8% SOC, with low BD, structural / chroma criteria.",
      "topics": [
        "mulmic_material"
      ]
    },
    {
      "page": "natric_horizon",
      "title": "Natric horizon (WRB 2022)",
      "topics": [
        "natric_horizon"
      ]
    },
    {
      "page": "natric_horizon_usda",
      "title": "Natric horizon helper (USDA, KST 13ed Ch 3)",
      "topics": [
        "natric_horizon_usda"
      ]
    },
    {
      "page": "natric_subgroup_usda",
      "title": "Natric Subgroup helper for Natraquerts.",
      "topics": [
        "natric_subgroup_usda"
      ]
    },
    {
      "page": "neossolo",
      "title": "Neossolos (SiBCS Cap 4, p 111-112; conceito Cap 3, p 96-97)",
      "topics": [
        "neossolo"
      ]
    },
    {
      "page": "neossolo_fluvico",
      "title": "Neossolos Fluvicos (Cap 12): caracter fluvico em < 150 cm.",
      "topics": [
        "neossolo_fluvico"
      ]
    },
    {
      "page": "neossolo_litolico",
      "title": "Neossolos Litolicos (Cap 12): contato litico ou litico fragmentario \\<= 50 cm.",
      "topics": [
        "neossolo_litolico"
      ]
    },
    {
      "page": "neossolo_quartzarenico",
      "title": "Neossolos Quartzarenicos (Cap 12): textura areia/areia franca em todos os horizontes ate 150 cm + 95% quartzo.",
      "topics": [
        "neossolo_quartzarenico"
      ]
    },
    {
      "page": "neossolo_regolitico",
      "title": "Neossolos Regoliticos (catch-all dos Neossolos).",
      "topics": [
        "neossolo_regolitico"
      ]
    },
    {
      "page": "nitic_horizon",
      "title": "Nitic horizon (WRB 2022)",
      "topics": [
        "nitic_horizon"
      ]
    },
    {
      "page": "nitossolo",
      "title": "Nitossolos (SiBCS Cap 4, p 114; conceito Cap 3, p 97-98)",
      "topics": [
        "nitossolo"
      ]
    },
    {
      "page": "nitossolo_bruno",
      "title": "Nitossolos Brunos (Cap 13): matiz \\>= 7.5YR + valor <= 4 + croma <= 5.",
      "topics": [
        "nitossolo_bruno"
      ]
    },
    {
      "page": "nitossolo_haplico",
      "title": "Nitossolos Haplicos (catch-all).",
      "topics": [
        "nitossolo_haplico"
      ]
    },
    {
      "page": "nitossolo_vermelho",
      "title": "Nitossolos Vermelhos (Cap 13): matiz \\<= 2.5YR.",
      "topics": [
        "nitossolo_vermelho"
      ]
    },
    {
      "page": "nitric_subgroup_usda",
      "title": "Nitric Subgroup helper (Anhyturbels / Anhyorthels)",
      "topics": [
        "nitric_subgroup_usda"
      ]
    },
    {
      "page": "normalise_febr_sibcs",
      "title": "Canonicalise FEBR SiBCS names to match soilKey rule outputs.",
      "topics": [
        "normalise_febr_sibcs"
      ]
    },
    {
      "page": "normalise_febr_usda",
      "title": "Normalise FEBR USDA taxon strings to USDA Soil Taxonomy Order",
      "topics": [
        "normalise_febr_usda"
      ]
    },
    {
      "page": "normalise_febr_wrb",
      "title": "Normalise FEBR WRB taxon strings to RSG-only",
      "topics": [
        "normalise_febr_wrb"
      ]
    },
    {
      "page": "normalise_kssl_subgroup",
      "title": "Normalise KSSL USDA subgroup labels for benchmark comparison",
      "topics": [
        "normalise_kssl_subgroup"
      ]
    },
    {
      "page": "ochric_epipedon_usda",
      "title": "Ochric epipedon (USDA Soil Taxonomy, 13th edition)",
      "topics": [
        "ochric_epipedon_usda"
      ]
    },
    {
      "page": "ollama_is_running",
      "title": "Is the local Ollama HTTP API reachable?",
      "topics": [
        "ollama_is_running"
      ]
    },
    {
      "page": "organic_material",
      "title": "Organic material (WRB 2022 Ch 3.3.13): \\>= 20% SOC + recognisability criteria. v0.3.3: SOC threshold only.",
      "topics": [
        "organic_material"
      ]
    },
    {
      "page": "organossolo",
      "title": "Organossolos (SiBCS Cap 4, chave do 1o nivel; conceito Cap 3, p 99-101)",
      "topics": [
        "organossolo"
      ]
    },
    {
      "page": "organossolo_folico",
      "title": "Organossolos Folicos (Cap 14): horizonte O histico (drenado). Detectado via designation pattern \\\"^O\\\".",
      "topics": [
        "organossolo_folico"
      ]
    },
    {
      "page": "organossolo_haplico",
      "title": "Organossolos Haplicos (catch-all).",
      "topics": [
        "organossolo_haplico"
      ]
    },
    {
      "page": "organossolo_tiomorfico",
      "title": "Organossolos Tiomorficos (Cap 14): materiais sulfidricos OR horizonte sulfurico em < 100 cm.",
      "topics": [
        "organossolo_tiomorfico"
      ]
    },
    {
      "page": "organotechnic_material",
      "title": "Organotechnic material (WRB 2022 Ch 3.3.14): \\>= 35% volume of artefacts that themselves contain \\>= 20% organic C. Soil itself has < 20% SOC.",
      "topics": [
        "organotechnic_material"
      ]
    },
    {
      "page": "ornithogenic_material",
      "title": "Ornithogenic material (WRB 2022 Ch 3.3.15): bird-influenced topsoil. Mehlich-3 P >= 750 mg/kg + designation pattern 'Aornit|Bornit'.",
      "topics": [
        "ornithogenic_material"
      ]
    },
    {
      "page": "ossl_demo_sa",
      "title": "Synthetic OSSL South America demo subset",
      "topics": [
        "ossl_demo_sa"
      ]
    },
    {
      "page": "ossl_library_template",
      "title": "Canonical schema for an `ossl_library` object",
      "topics": [
        "ossl_library_template"
      ]
    },
    {
      "page": "oxic_horizon_usda",
      "title": "Oxic horizon (USDA, KST 13ed, Ch 3) Delegates to WRB 'ferralic'.",
      "topics": [
        "oxic_horizon_usda"
      ]
    },
    {
      "page": "oxic_usda",
      "title": "Oxic horizon (USDA Soil Taxonomy)",
      "topics": [
        "oxic_usda"
      ]
    },
    {
      "page": "oxisol_usda",
      "title": "Oxisol (USDA Cap 13): oxic horizon, excluding profiles with an argillic horizon overlying the oxic.",
      "topics": [
        "oxisol_usda"
      ]
    },
    {
      "page": "oxyaquic_subgroup_usda",
      "title": "Oxyaquic Subgroup helper (Spodosols, Mollisols, etc.)",
      "topics": [
        "oxyaquic_subgroup_usda"
      ]
    },
    {
      "page": "pachic_subgroup_usda",
      "title": "Pachic Subgroup helper (Andisols, Mollisols) Pass when mollic OR umbric epipedon is >= 50 cm thick.",
      "topics": [
        "pachic_subgroup_usda"
      ]
    },
    {
      "page": "pale_qualifying_usda",
      "title": "Pale qualifying helper (Paleudults / Paleustults / Palexerults / Palehumults / Paleaquults)",
      "topics": [
        "pale_qualifying_usda"
      ]
    },
    {
      "page": "paleargid_qualifying_usda",
      "title": "Paleargid qualifying helper Pass when argillic horizon has continuous clay films AND clay >> 35% in upper 10 cm (proxy for old, well-developed argillic). v0.8 proxy: argillic + clay_pct >= 35 in upper 30 cm.",
      "topics": [
        "paleargid_qualifying_usda"
      ]
    },
    {
      "page": "panpaic",
      "title": "Panpaic horizon (WRB 2022 Ch 3.1)",
      "topics": [
        "panpaic"
      ]
    },
    {
      "page": "pedon_json_schema",
      "title": "JSON Schema for a soilKey PedonRecord",
      "topics": [
        "pedon_json_schema"
      ]
    },
    {
      "page": "pedon_to_spc",
      "title": "Convert a soilKey PedonRecord to an aqp SoilProfileCollection",
      "topics": [
        "pedon_to_spc"
      ]
    },
    {
      "page": "PedonRecord",
      "title": "PedonRecord: structured representation of a single pedon",
      "topics": [
        "PedonRecord"
      ]
    },
    {
      "page": "permafrost_within_usda",
      "title": "Permafrost (USDA Soil Taxonomy, 13th edition)",
      "topics": [
        "permafrost_within_usda"
      ]
    },
    {
      "page": "petrocalcic",
      "title": "Petrocalcic horizon (WRB 2022)",
      "topics": [
        "petrocalcic"
      ]
    },
    {
      "page": "petrocalcic_subgroup_usda",
      "title": "Petrocalcic Subgroup helper (Aridisols Petrocalcids) Cemented calcic horizon with cementation_class >= \"strongly\".",
      "topics": [
        "petrocalcic_subgroup_usda"
      ]
    },
    {
      "page": "petroduric",
      "title": "Petroduric horizon (WRB 2022): cemented duric.",
      "topics": [
        "petroduric"
      ]
    },
    {
      "page": "petroferric_contact_usda",
      "title": "Petroferric contact helper (USDA, KST 13ed Ch 3, p 48)",
      "topics": [
        "petroferric_contact_usda"
      ]
    },
    {
      "page": "petrogypsic",
      "title": "Petrogypsic horizon (WRB 2022): cemented gypsic.",
      "topics": [
        "petrogypsic"
      ]
    },
    {
      "page": "petrogypsic_horizon_usda",
      "title": "Petrogypsic horizon helper (USDA)",
      "topics": [
        "petrogypsic_horizon_usda"
      ]
    },
    {
      "page": "petrogypsic_subgroup_usda",
      "title": "Petrogypsic Subgroup helper - delegate to petrogypsic_horizon_usda",
      "topics": [
        "petrogypsic_subgroup_usda"
      ]
    },
    {
      "page": "petronodic_subgroup_usda",
      "title": "Petronodic Subgroup helper (Aridisols) Pass when 5%+ rock fragments cemented by carbonates within 100 cm. v0.8 proxy: caco3_pct >= 15 AND coarse_fragments_pct >= 5.",
      "topics": [
        "petronodic_subgroup_usda"
      ]
    },
    {
      "page": "petroplinthic",
      "title": "Petroplinthic horizon (WRB 2022): cemented plinthic.",
      "topics": [
        "petroplinthic"
      ]
    },
    {
      "page": "phaeozem",
      "title": "Phaeozem RSG diagnostic (WRB 2022)",
      "topics": [
        "phaeozem"
      ]
    },
    {
      "page": "pi_to_confidence",
      "title": "Map a 95% prediction interval to a [0, 1] confidence score",
      "topics": [
        "pi_to_confidence"
      ]
    },
    {
      "page": "pick_engine",
      "title": "Choose the best diagnostic engine for a single pedon",
      "topics": [
        "pick_engine"
      ]
    },
    {
      "page": "pick_engine_batch",
      "title": "Per-pedon batch engine recommendation",
      "topics": [
        "pick_engine_batch"
      ]
    },
    {
      "page": "pisoplinthic",
      "title": "Pisoplinthic horizon (WRB 2022): pisolitic plinthic. v0.3.3 detects via designation pattern 'Bspl' / 'Bvpi' or via plinthite \\>= 15% AND structure_type containing 'pisol'.",
      "topics": [
        "pisoplinthic"
      ]
    },
    {
      "page": "placic_horizon_usda",
      "title": "Placic horizon (USDA, KST 13ed Ch 3, pp 47-48)",
      "topics": [
        "placic_horizon_usda"
      ]
    },
    {
      "page": "plaggic",
      "title": "Plaggic horizon (WRB 2022): sod-derived topsoil >= 20 cm with low BD AND independent evidence of human input.",
      "topics": [
        "plaggic"
      ]
    },
    {
      "page": "planic_features",
      "title": "Planic features (WRB 2022)",
      "topics": [
        "planic_features"
      ]
    },
    {
      "page": "planosol",
      "title": "Planosol RSG gate (WRB 2022 Ch 4, p 107)",
      "topics": [
        "planosol"
      ]
    },
    {
      "page": "planossolo",
      "title": "Planossolos (SiBCS Cap 4, p 112; conceito Cap 3, p 101-102)",
      "topics": [
        "planossolo"
      ]
    },
    {
      "page": "planossolo_haplico",
      "title": "Planossolos Haplicos (catch-all).",
      "topics": [
        "planossolo_haplico"
      ]
    },
    {
      "page": "planossolo_natrico",
      "title": "Planossolos Natricos (Cap 15): caracter sodico em \\< 100 cm.",
      "topics": [
        "planossolo_natrico"
      ]
    },
    {
      "page": "plinth_subgroup_usda",
      "title": "Plinth qualifying helper (Plinth*ults) Pass when plinthite >= 5% in 50%+ of layers within 150 cm.",
      "topics": [
        "plinth_subgroup_usda"
      ]
    },
    {
      "page": "plinthaquox_qualifying_usda",
      "title": "Plinthaquox qualifying helper (Aquox: continuous plinthite phase) Pass when plinthite >= 50% in some 10+ cm layer (continuous phase proxy).",
      "topics": [
        "plinthaquox_qualifying_usda"
      ]
    },
    {
      "page": "plinthic",
      "title": "Plinthic horizon (WRB 2022)",
      "topics": [
        "plinthic"
      ]
    },
    {
      "page": "plinthic_subgroup_usda",
      "title": "Plinthic Subgroup helper (Oxisols) Pass when plinthite >= 5% in any horizon within 125 cm.",
      "topics": [
        "plinthic_subgroup_usda"
      ]
    },
    {
      "page": "plintossolo",
      "title": "Plintossolos (SiBCS Cap 4, p 113; conceito Cap 3, p 102-104)",
      "topics": [
        "plintossolo"
      ]
    },
    {
      "page": "plintossolo_argiluvico",
      "title": "Plintossolos Argiluvicos (Cap 16): horizonte plintico + B textural OR carater argiluvico.",
      "topics": [
        "plintossolo_argiluvico"
      ]
    },
    {
      "page": "plintossolo_haplico",
      "title": "Plintossolos Haplicos (catch-all).",
      "topics": [
        "plintossolo_haplico"
      ]
    },
    {
      "page": "plintossolo_petrico",
      "title": "Plintossolos Petricos (Cap 16): horizonte concrecionario OR litoplintico (sem horizonte plintico precedendo).",
      "topics": [
        "plintossolo_petrico"
      ]
    },
    {
      "page": "posterior_classify",
      "title": "Bayesian posterior classifier (optional)",
      "topics": [
        "posterior_classify"
      ]
    },
    {
      "page": "predict_from_spectra",
      "title": "Predict soil properties from spectra",
      "topics": [
        "predict_from_spectra"
      ]
    },
    {
      "page": "predict_lab_from_spectra",
      "title": "Predict CIE Lab from Vis-NIR reflectance spectra",
      "topics": [
        "predict_lab_from_spectra"
      ]
    },
    {
      "page": "predict_munsell_from_spectra",
      "title": "Predict Munsell hue / value / chroma from Vis-NIR reflectance spectra",
      "topics": [
        "predict_munsell_from_spectra"
      ]
    },
    {
      "page": "predict_ossl_mbl",
      "title": "Memory-based learning prediction against the OSSL library",
      "topics": [
        "predict_ossl_mbl"
      ]
    },
    {
      "page": "predict_ossl_plsr_local",
      "title": "Local PLSR prediction against the OSSL library",
      "topics": [
        "predict_ossl_plsr_local"
      ]
    },
    {
      "page": "predict_ossl_pretrained",
      "title": "Pre-trained OSSL prediction",
      "topics": [
        "predict_ossl_pretrained"
      ]
    },
    {
      "page": "predict_xyz_from_spectra",
      "title": "Predict CIE XYZ tristimulus values from Vis-NIR reflectance spectra",
      "topics": [
        "predict_xyz_from_spectra"
      ]
    },
    {
      "page": "predict.soilKey_pls_model",
      "title": "Predict from a soilKey_pls_model",
      "topics": [
        "predict.soilKey_pls_model"
      ]
    },
    {
      "page": "preprocess_spectra",
      "title": "Pre-process Vis-NIR or MIR spectra",
      "topics": [
        "preprocess_spectra"
      ]
    },
    {
      "page": "pretic",
      "title": "Pretic horizon (WRB 2022): \"Amazonian Dark Earth\" (terra preta de indio) horizon - thick anthropogenic surface with high P, SOC, and incorporated charcoal / pottery.",
      "topics": [
        "pretic"
      ]
    },
    {
      "page": "print.soilKey_pls_model",
      "title": "Print method for soilKey_pls_model",
      "topics": [
        "print.soilKey_pls_model"
      ]
    },
    {
      "page": "prior_consistency_check",
      "title": "Check consistency between a deterministic RSG assignment and a spatial prior",
      "topics": [
        "prior_consistency_check"
      ]
    },
    {
      "page": "protocalcic_properties",
      "title": "Protocalcic properties (WRB 2022 Ch 3.2.8)",
      "topics": [
        "protocalcic_properties"
      ]
    },
    {
      "page": "protogypsic_properties",
      "title": "Protogypsic properties (WRB 2022 Ch 3.2.9): visible secondary gypsum \\>= 1% but below the gypsic gate.",
      "topics": [
        "protogypsic_properties"
      ]
    },
    {
      "page": "protovertic",
      "title": "Protovertic horizon (WRB 2022 Ch 3.1)",
      "topics": [
        "protovertic"
      ]
    },
    {
      "page": "psamment_qualifying_usda",
      "title": "Psamment Suborder qualifier (sandy texture: clay + 2*silt < 30 AND no clay films / argillic).",
      "topics": [
        "psamment_qualifying_usda"
      ]
    },
    {
      "page": "psammentic_subgroup_usda",
      "title": "Psammentic Subgroup helper (Aquorthels)",
      "topics": [
        "psammentic_subgroup_usda"
      ]
    },
    {
      "page": "qual_abruptic",
      "title": "Abruptic qualifier (ap): abrupt textural difference within 100 cm.",
      "topics": [
        "qual_abruptic"
      ]
    },
    {
      "page": "qual_aceric",
      "title": "Aceric qualifier (ae): pH (1:1 H2O) <= 5 in some layer within the upper 50 cm. Used for sub-aerially exposed acid-sulfate soils (Solonchaks, Gleysols on former tidal flats). v0.9.1: numeric pH gate only; v0.9.2 adds the cross-check against 'thionic' / sulfidic material to disambiguate from naturally acidic Histosols.",
      "topics": [
        "qual_aceric"
      ]
    },
    {
      "page": "qual_acric",
      "title": "Acric qualifier (ac): argic horizon + low CEC + high Al. v0.9: argic + CEC < 24 cmolc/kg clay + exch Al > Ca+Mg+K+Na.",
      "topics": [
        "qual_acric"
      ]
    },
    {
      "page": "qual_acroxic",
      "title": "Acroxic qualifier (ax): andic + extremely low effective exchange complex (Ca + Mg + K + Na exch + 1 N KCl Al-exch <= 2 cmol+/kg fine earth) in some layer of the andic part within 100 cm.",
      "topics": [
        "qual_acroxic"
      ]
    },
    {
      "page": "qual_activic",
      "title": "Activic supplementary qualifier (av): active aluminium >= 5 cmol/kg WRB 2022 Ch 5: \"KCl-extractable Al ('al_kcl_cmol') >= 5 cmol(c)/kg in any layer in upper 100 cm.\" Proxy via existing 'al_cmol' (exchangeable Al) when al_kcl_cmol absent.",
      "topics": [
        "qual_activic"
      ]
    },
    {
      "page": "qual_albic",
      "title": "Albic qualifier (ab): albic horizon <= 100 cm.",
      "topics": [
        "qual_albic"
      ]
    },
    {
      "page": "qual_alcalic",
      "title": "Alcalic supplementary qualifier (ac): pH (H2O) >= 9.0 WRB 2022 Ch 5: \"Strongly alkaline reaction (pH H2O >= 9 in any layer within 100 cm of the soil surface).\"",
      "topics": [
        "qual_alcalic"
      ]
    },
    {
      "page": "qual_alic",
      "title": "Alic qualifier (al): argic + high CEC + high Al saturation.",
      "topics": [
        "qual_alic"
      ]
    },
    {
      "page": "qual_aluandic",
      "title": "Aluandic qualifier (aa): andic properties + Al-dominant active component (Al / (Al + 0.5 Si) >= 0.5 in mass).",
      "topics": [
        "qual_aluandic"
      ]
    },
    {
      "page": "qual_andic",
      "title": "Andic qualifier (an): andic OR vitric properties combined >= 30 cm. v0.9 simplification: passes if andic_properties or vitric_properties passes within 100 cm.",
      "topics": [
        "qual_andic"
      ]
    },
    {
      "page": "qual_anofluvic",
      "title": "Anofluvic qualifier (af): fluvic material only at depth >= 50 cm",
      "topics": [
        "qual_anofluvic"
      ]
    },
    {
      "page": "qual_anthraquic",
      "title": "Anthraquic qualifier (aq): anthraquic horizon (puddled-rice surface).",
      "topics": [
        "qual_anthraquic"
      ]
    },
    {
      "page": "qual_anthric",
      "title": "Anthric qualifier (ak): anthric properties.",
      "topics": [
        "qual_anthric"
      ]
    },
    {
      "page": "qual_anthromollic",
      "title": "Anthromollic qualifier (am): anthric horizon overlying spodic",
      "topics": [
        "qual_anthromollic"
      ]
    },
    {
      "page": "qual_archaic",
      "title": "Archaic supplementary qualifier (ah): archeological context",
      "topics": [
        "qual_archaic"
      ]
    },
    {
      "page": "qual_arenic",
      "title": "Arenic qualifier (ar): texture sand or loamy sand >= 30 cm in <= 100 cm.",
      "topics": [
        "qual_arenic"
      ]
    },
    {
      "page": "qual_arenicolic",
      "title": "Arenicolic supplementary qualifier (an): faunal sand burrows",
      "topics": [
        "qual_arenicolic"
      ]
    },
    {
      "page": "qual_aric",
      "title": "Aric qualifier (ar): mineral surface horizon homogenised by ploughing - designation pattern 'Ap', 'Apk', 'Apc', etc., starting within the upper 30 cm.",
      "topics": [
        "qual_aric"
      ]
    },
    {
      "page": "qual_bathyspodic",
      "title": "Bathyspodic supplementary qualifier (bs): spodic at 100-200 cm depth",
      "topics": [
        "qual_bathyspodic"
      ]
    },
    {
      "page": "qual_biocrustic",
      "title": "Biocrustic supplementary qualifier (bk): biological soil crust",
      "topics": [
        "qual_biocrustic"
      ]
    },
    {
      "page": "qual_brunic",
      "title": "Brunic qualifier (br): _incipient-only_ subsurface alteration - cambic horizon within the upper 100 cm AND no argic, spodic, ferralic, or nitic horizon present. Used by WRB 2022 Ch 4 for Arenosols that have begun to develop a weak Bw without crossing into Cambisol / Acrisol / Lixisol / Ferralsol territory; in those RSGs the cambic alone is the gating diagnostic and Brunic would be redundant.",
      "topics": [
        "qual_brunic"
      ]
    },
    {
      "page": "qual_bryic",
      "title": "Bryic supplementary qualifier (by): bryophyte cover at surface",
      "topics": [
        "qual_bryic"
      ]
    },
    {
      "page": "qual_calcaric",
      "title": "Calcaric qualifier (cl): calcaric material >= 25 cm in upper 100 cm.",
      "topics": [
        "qual_calcaric"
      ]
    },
    {
      "page": "qual_calcic",
      "title": "Calcic qualifier (cc): calcic horizon <= 100 cm.",
      "topics": [
        "qual_calcic"
      ]
    },
    {
      "page": "qual_cambic",
      "title": "Cambic qualifier (cm): cambic horizon <= 50 cm.",
      "topics": [
        "qual_cambic"
      ]
    },
    {
      "page": "qual_capillaric",
      "title": "Capillaric supplementary qualifier (cp): capillary rise zone WRB 2022 Ch 5: \"Capillary rise from a shallow water table to within 50 cm of the soil surface; flagged via redox concentrations (>=2%) + fine texture (clay+silt > 50%).\"",
      "topics": [
        "qual_capillaric"
      ]
    },
    {
      "page": "qual_carbic",
      "title": "Carbic qualifier (cb): spodic horizon dominated by humus illuviation. v0.9.1: spodic + OC >= 6% in some spodic layer (the WRB threshold for Carbic / \"humus-Podzol\" expression).",
      "topics": [
        "qual_carbic"
      ]
    },
    {
      "page": "qual_carbonatic",
      "title": "Carbonatic supplementary qualifier (cn): >= 50% carbonates",
      "topics": [
        "qual_carbonatic"
      ]
    },
    {
      "page": "qual_carbonic",
      "title": "Carbonic supplementary qualifier (cb): high SOC content (>= 6%)",
      "topics": [
        "qual_carbonic"
      ]
    },
    {
      "page": "qual_chernic",
      "title": "Chernic qualifier (ch): chernic horizon (intensely worm-mixed mollic-like) within 100 cm.",
      "topics": [
        "qual_chernic"
      ]
    },
    {
      "page": "qual_chloridic",
      "title": "Chloridic supplementary qualifier (cl): high chloride WRB 2022 Ch 5: \"Containing >= 4 cmol(c)/kg chloride OR EC >= 8 dS/m within 100 cm.\" Proxy via electrical conductivity field ('ec_ds_m') when chloride is unavailable.",
      "topics": [
        "qual_chloridic"
      ]
    },
    {
      "page": "qual_chromic",
      "title": "Chromic qualifier (cr): hue redder than 7.5YR + chroma > 4 (in upper subsoil 25-150 cm).",
      "topics": [
        "qual_chromic"
      ]
    },
    {
      "page": "qual_clayic",
      "title": "Clayic qualifier (ce): clay >= 60% texture for a layer >= 30 cm in the upper 100 cm.",
      "topics": [
        "qual_clayic"
      ]
    },
    {
      "page": "qual_coarsic",
      "title": "Coarsic qualifier (cr): >= 70% coarse fragments by volume in upper 100 cm",
      "topics": [
        "qual_coarsic"
      ]
    },
    {
      "page": "qual_cohesic",
      "title": "Cohesic supplementary qualifier (co): cohesive horizon (extra-firm dry) WRB 2022 Ch 5: \"Containing layers with extreme dry consistence AND moist consistence very firm.\" Implementation: matches via 'consistence_dry' (\"extremely hard\") OR 'consistence_moist' (\"very firm\"), within 100 cm.",
      "topics": [
        "qual_cohesic"
      ]
    },
    {
      "page": "qual_columnic",
      "title": "Columnic supplementary qualifier (cm): columnar / prismatic structure WRB 2022 Ch 5: \"Columnar or strong prismatic structure (associated with natric horizons).\"",
      "topics": [
        "qual_columnic"
      ]
    },
    {
      "page": "qual_cordic",
      "title": "Cordic supplementary qualifier (cd): cordic horizon",
      "topics": [
        "qual_cordic"
      ]
    },
    {
      "page": "qual_cryic",
      "title": "Cryic qualifier (cy): cryic horizon <= 100 cm.",
      "topics": [
        "qual_cryic"
      ]
    },
    {
      "page": "qual_cumulic",
      "title": "Cumulic qualifier (cu): a layer of recent depositional material added on top of an existing soil. v0.9.3.B proxy: 'layer_origin' is fluvic / aeolic / solimovic at the top of the profile, OR the uppermost mineral horizon's designation matches '^[AC]u?\\d?' (cumulic-style suffix).",
      "topics": [
        "qual_cumulic"
      ]
    },
    {
      "page": "qual_cutanic",
      "title": "Cutanic qualifier (ct): visible illuvial clay coatings on argic- horizon ped surfaces (the \"Cutanic Luvisol\" / \"Cutanic Argissol\" signature). v0.9.1: argic horizon passes AND the schema column 'clay_films_amount' contains \"common\", \"many\", or \"continuous\" (or \"shiny\" - common Brazilian descriptor for nitic surfaces) in some argic layer.",
      "topics": [
        "qual_cutanic"
      ]
    },
    {
      "page": "qual_densic",
      "title": "Densic qualifier (dn): bulk density >= 1.8 g/cm3 in some root- restricting layer within 100 cm.",
      "topics": [
        "qual_densic"
      ]
    },
    {
      "page": "qual_differentic",
      "title": "Differentic supplementary qualifier (df): contrasting layers WRB 2022 Ch 5: \"Strong differences (texture, mineralogy, color) between adjacent layers without abrupt textural transition (mild clay-increase 1.2-1.4x ratio).\"",
      "topics": [
        "qual_differentic"
      ]
    },
    {
      "page": "qual_dolomitic",
      "title": "Dolomitic qualifier (do): dolomitic material in upper 100 cm.",
      "topics": [
        "qual_dolomitic"
      ]
    },
    {
      "page": "qual_dorsic",
      "title": "Dorsic supplementary qualifier (do): dorsal-ridge microrelief",
      "topics": [
        "qual_dorsic"
      ]
    },
    {
      "page": "qual_drainic",
      "title": "Drainic qualifier (dr): artificially drained organic soil. v0.9.1: site$drainage_class or site$land_use carries an explicit _artificial_ drainage marker AND organic_material passes. Natural drainage classes (e.g. \"very poorly drained\", \"well drained\") do NOT trigger Drainic on their own.",
      "topics": [
        "qual_drainic"
      ]
    },
    {
      "page": "qual_duric",
      "title": "Duric qualifier (du): duric horizon <= 100 cm.",
      "topics": [
        "qual_duric"
      ]
    },
    {
      "page": "qual_dystric",
      "title": "Dystric qualifier (dy): low base saturation throughout. v0.9: BS < 50% from 20 to 100 cm in mineral material.",
      "topics": [
        "qual_dystric"
      ]
    },
    {
      "page": "qual_ekranic",
      "title": "Ekranic qualifier (ek): impervious cover (asphalt, concrete) starting within 5 cm of the surface. v0.9.1: technic_hard_material with top depth <= 5 cm.",
      "topics": [
        "qual_ekranic"
      ]
    },
    {
      "page": "qual_endic",
      "title": "Endic supplementary qualifier (ec): generic \"in deep horizon\" marker",
      "topics": [
        "qual_endic"
      ]
    },
    {
      "page": "qual_endoabruptic",
      "title": "Endoabruptic supplementary qualifier (eea): abrupt textural change deep",
      "topics": [
        "qual_endoabruptic"
      ]
    },
    {
      "page": "qual_endocalcaric",
      "title": "Endocalcaric qualifier (cae): calcaric only at depth >= 50 cm",
      "topics": [
        "qual_endocalcaric"
      ]
    },
    {
      "page": "qual_endocalcic",
      "title": "Endocalcic qualifier (cam): calcic horizon between 50 and 100 cm.",
      "topics": [
        "qual_endocalcic"
      ]
    },
    {
      "page": "qual_endodolomitic",
      "title": "Endodolomitic qualifier (dme): dolomitic only at depth >= 50 cm",
      "topics": [
        "qual_endodolomitic"
      ]
    },
    {
      "page": "qual_endoduric",
      "title": "Endoduric supplementary qualifier: duric horizon at depth >= 50 cm",
      "topics": [
        "qual_endoduric"
      ]
    },
    {
      "page": "qual_endodystric",
      "title": "Endodystric supplementary qualifier (eds): dystric only at depth",
      "topics": [
        "qual_endodystric"
      ]
    },
    {
      "page": "qual_endoeutric",
      "title": "Endoeutric supplementary qualifier (eee): eutric only at depth",
      "topics": [
        "qual_endoeutric"
      ]
    },
    {
      "page": "qual_endogleyic",
      "title": "Endogleyic qualifier (eng): gleyic conditions between 50 and 100 cm.",
      "topics": [
        "qual_endogleyic"
      ]
    },
    {
      "page": "qual_endogypsic",
      "title": "Endogypsic supplementary qualifier: gypsic horizon at depth >= 50 cm",
      "topics": [
        "qual_endogypsic"
      ]
    },
    {
      "page": "qual_endoleptic",
      "title": "Endoleptic supplementary qualifier (lle): rock contact 50-100 cm",
      "topics": [
        "qual_endoleptic"
      ]
    },
    {
      "page": "qual_endostagnic",
      "title": "Endostagnic qualifier (ens): stagnic conditions between 50 and 100 cm.",
      "topics": [
        "qual_endostagnic"
      ]
    },
    {
      "page": "qual_endothionic",
      "title": "Endothionic supplementary qualifier (etn): thionic at depth >= 50 cm",
      "topics": [
        "qual_endothionic"
      ]
    },
    {
      "page": "qual_endothyric",
      "title": "Endothyric supplementary qualifier (etc): thyric only at depth >= 50",
      "topics": [
        "qual_endothyric"
      ]
    },
    {
      "page": "qual_entic",
      "title": "Entic qualifier (et): albic horizon AND NOT spodic",
      "topics": [
        "qual_entic"
      ]
    },
    {
      "page": "qual_epic",
      "title": "Epic supplementary qualifier (ep): generic \"in shallow horizon\"",
      "topics": [
        "qual_epic"
      ]
    },
    {
      "page": "qual_epidystric",
      "title": "Epidystric supplementary qualifier (epd): dystric only in upper 50 cm",
      "topics": [
        "qual_epidystric"
      ]
    },
    {
      "page": "qual_epieutric",
      "title": "Epieutric supplementary qualifier (eee): eutric only in upper 50 cm",
      "topics": [
        "qual_epieutric"
      ]
    },
    {
      "page": "qual_escalic",
      "title": "Escalic supplementary qualifier (es): terraced / stepped morphology",
      "topics": [
        "qual_escalic"
      ]
    },
    {
      "page": "qual_eutric",
      "title": "Eutric qualifier (eu): high base saturation. v0.9: BS >= 50% throughout 20-100 cm.",
      "topics": [
        "qual_eutric"
      ]
    },
    {
      "page": "qual_eutrosilic",
      "title": "Eutrosilic qualifier (es): silandic + base saturation >= 50% in some layer of the silandic part within 100 cm.",
      "topics": [
        "qual_eutrosilic"
      ]
    },
    {
      "page": "qual_evapocrustic",
      "title": "Evapocrustic supplementary qualifier (ev): evaporite surface crust",
      "topics": [
        "qual_evapocrustic"
      ]
    },
    {
      "page": "qual_ferralic",
      "title": "Ferralic qualifier (fl): ferralic horizon <= 150 cm.",
      "topics": [
        "qual_ferralic"
      ]
    },
    {
      "page": "qual_ferric",
      "title": "Ferric qualifier (fr): ferric horizon <= 100 cm.",
      "topics": [
        "qual_ferric"
      ]
    },
    {
      "page": "qual_ferritic",
      "title": "Ferritic qualifier (fr): high free-Fe in fine earth",
      "topics": [
        "qual_ferritic"
      ]
    },
    {
      "page": "qual_fibric",
      "title": "Fibric qualifier (fi): organic material whose dominant decomposition class in the upper 100 cm is fibric (>= 2/3 fiber). v0.9.1: thickness-weighted dominance via Oi designation.",
      "topics": [
        "qual_fibric"
      ]
    },
    {
      "page": "qual_floatic",
      "title": "Floatic qualifier (fc): Histosol that floats on water.",
      "topics": [
        "qual_floatic"
      ]
    },
    {
      "page": "qual_fluvic",
      "title": "Fluvic qualifier (fv): fluvic material >= 25 cm thick starting <= 75 cm.",
      "topics": [
        "qual_fluvic"
      ]
    },
    {
      "page": "qual_folic",
      "title": "Folic qualifier (fo): folic horizon at the soil surface. v0.9 delegates to histic_horizon with surface-only filter.",
      "topics": [
        "qual_folic"
      ]
    },
    {
      "page": "qual_fractic",
      "title": "Fractic qualifier (fc): fractures (cracks) within 100 cm",
      "topics": [
        "qual_fractic"
      ]
    },
    {
      "page": "qual_garbic",
      "title": "Garbic qualifier (ga): >= 20% organic-waste artefacts (landfill refuse) in the upper 100 cm. v0.9.1 proxy: designation pattern ('Cgarb|garb|landfill|refuse'). Hard schema column 'artefacts_garbic_pct' scheduled for v0.9.2.",
      "topics": [
        "qual_garbic"
      ]
    },
    {
      "page": "qual_gelic",
      "title": "Gelic supplementary qualifier (gl): permafrost or strong frost activity WRB 2022 Ch 5: \"Permafrost within 200 cm of the soil surface OR gelic materials.\" Modifier of cryic_conditions for non-Cryosols.",
      "topics": [
        "qual_gelic"
      ]
    },
    {
      "page": "qual_gelistagnic",
      "title": "Gelistagnic supplementary qualifier (gst): stagnic in cold conditions WRB 2022 Ch 5: \"Stagnic features (perched water) in cryic regime.\" Compose: stagnic_pattern + cryic_conditions.",
      "topics": [
        "qual_gelistagnic"
      ]
    },
    {
      "page": "qual_geoabruptic",
      "title": "Geoabruptic supplementary qualifier (ga): abrupt change at lithological boundary WRB 2022 Ch 5: \"Abrupt textural / mineralogical change at a lithological discontinuity (e.g., 2C horizon below B).\" Implementation: designation pattern containing \"2C\" or \"3C\" (numeric prefix indicates lithologic discontinuity).",
      "topics": [
        "qual_geoabruptic"
      ]
    },
    {
      "page": "qual_geric",
      "title": "Geric qualifier (gr): in some layer at <= 100 cm, the effective exchange complex (sum of bases + 1 N KCl Al-exchangeable) does not exceed 1.5 cmol+/kg fine earth, OR the soil shows net positive charge (delta pH = pH_KCl - pH_H2O > 0). The \"or\" path makes Geric / Posic overlap by design (per WRB Ch 5).",
      "topics": [
        "qual_geric"
      ]
    },
    {
      "page": "qual_gibbsic",
      "title": "Gibbsic qualifier (gi): high gibbsite (>= 25%) in fine earth",
      "topics": [
        "qual_gibbsic"
      ]
    },
    {
      "page": "qual_gilgaic",
      "title": "Gilgaic supplementary qualifier (gi): gilgai microrelief WRB 2022 Ch 5: \"Gilgai microrelief (associated with vertic shrinking/swelling soils).\" Site-level field detection.",
      "topics": [
        "qual_gilgaic"
      ]
    },
    {
      "page": "qual_glacic",
      "title": "Glacic qualifier (gc): >= 75% ice by volume within 100 cm. v0.9.1 proxy: cryic conditions + designation pattern ('ice|gel|glac'). Schema column 'ice_pct' scheduled for v0.9.2.",
      "topics": [
        "qual_glacic"
      ]
    },
    {
      "page": "qual_gleyic",
      "title": "Gleyic qualifier (gl): gleyic properties throughout a layer >= 25 cm starting <= 75 cm + reducing conditions.",
      "topics": [
        "qual_gleyic"
      ]
    },
    {
      "page": "qual_glossic",
      "title": "Glossic qualifier (gs): mollic horizon penetrated by albeluvic tongues (glossae). Diagnostic of Glossic Chernozems / Phaeozems on the steppe / forest-steppe transition.",
      "topics": [
        "qual_glossic"
      ]
    },
    {
      "page": "qual_greyzemic",
      "title": "Greyzemic qualifier (gz): mollic / umbric overlain by albic-like layer",
      "topics": [
        "qual_greyzemic"
      ]
    },
    {
      "page": "qual_grumic",
      "title": "Grumic qualifier (gr): strong fine granular surface horizon (self-mulching Vertisol).",
      "topics": [
        "qual_grumic"
      ]
    },
    {
      "page": "qual_gypsic",
      "title": "Gypsic qualifier (gy): gypsic horizon <= 100 cm.",
      "topics": [
        "qual_gypsic"
      ]
    },
    {
      "page": "qual_gypsiric",
      "title": "Gypsiric qualifier (gc): gypsiric material >= 25 cm in upper 100 cm.",
      "topics": [
        "qual_gypsiric"
      ]
    },
    {
      "page": "qual_haplic",
      "title": "Haplic qualifier (ha): no other principal qualifier of the RSG applies. Always passes; the qualifier resolution machinery uses it as the default when no other qualifier matched.",
      "topics": [
        "qual_haplic"
      ]
    },
    {
      "page": "qual_hemic",
      "title": "Hemic qualifier (hc): organic material whose dominant decomposition class in the upper 100 cm is hemic (1/6 - 2/3 fiber). v0.9.1: thickness-weighted dominance via Oe designation.",
      "topics": [
        "qual_hemic"
      ]
    },
    {
      "page": "qual_histic",
      "title": "Histic qualifier (hi): histic horizon at or near the surface.",
      "topics": [
        "qual_histic"
      ]
    },
    {
      "page": "qual_hortic",
      "title": "Hortic qualifier (ht): hortic horizon (long-cultivated dark surface).",
      "topics": [
        "qual_hortic"
      ]
    },
    {
      "page": "qual_humic",
      "title": "Humic qualifier (hu): >= 1% SOC in upper 50 cm (weighted average).",
      "topics": [
        "qual_humic"
      ]
    },
    {
      "page": "qual_hydragric",
      "title": "Hydragric qualifier (hg): hydragric horizon (puddled-rice subsurface).",
      "topics": [
        "qual_hydragric"
      ]
    },
    {
      "page": "qual_hydric",
      "title": "Hydric qualifier (hy): water content at 1500 kPa >= 100% (undried fine earth, WRB 2022). v0.9.1 accepts the air-dried equivalent (>= 70%) when the lab protocol pre-dries; the result is flagged as \"potentially over-permissive\" via the 'notes' field when the value falls in the 70-100% band.",
      "topics": [
        "qual_hydric"
      ]
    },
    {
      "page": "qual_hydrophobic",
      "title": "Hydrophobic supplementary qualifier (hf): water-repellent surface",
      "topics": [
        "qual_hydrophobic"
      ]
    },
    {
      "page": "qual_hyperalbic",
      "title": "Hyperalbic qualifier (ha): albic horizon thicker than 100 cm in a _contiguous_ run (extremely deep eluvial bleaching, common in giant Podzols of tropical white-sand systems and the deepest Stagnosol / Planosol profiles). Non-contiguous albic layers separated by an illuvial Bs / Bt do NOT count toward the threshold.",
      "topics": [
        "qual_hyperalbic"
      ]
    },
    {
      "page": "qual_hyperalic",
      "title": "Hyperalic qualifier (yl): argic horizon with Al saturation >= 50% in some layer of the argic part within 100 cm. Stronger version of Alic.",
      "topics": [
        "qual_hyperalic"
      ]
    },
    {
      "page": "qual_hyperartefactic",
      "title": "Hyperartefactic qualifier (yr): >= 80% artefacts (any type) in the upper 100 cm.",
      "topics": [
        "qual_hyperartefactic"
      ]
    },
    {
      "page": "qual_hypercalcic",
      "title": "Hypercalcic qualifier (yc): calcic horizon AND CaCO3 >= 50% in some calcic layer.",
      "topics": [
        "qual_hypercalcic"
      ]
    },
    {
      "page": "qual_hyperdystric",
      "title": "Hyperdystric qualifier (yd): base saturation < 5% throughout the upper 100 cm (mineral soil layers only). Stronger than Dystric (BS < 50%).",
      "topics": [
        "qual_hyperdystric"
      ]
    },
    {
      "page": "qual_hypereutric",
      "title": "Hypereutric qualifier (ye): base saturation >= 80% throughout the upper 100 cm. Stronger than Eutric (BS >= 50%).",
      "topics": [
        "qual_hypereutric"
      ]
    },
    {
      "page": "qual_hypergypsic",
      "title": "Hypergypsic qualifier (yg): gypsic horizon AND gypsum >= 60% in some gypsic layer.",
      "topics": [
        "qual_hypergypsic"
      ]
    },
    {
      "page": "qual_hypernatric",
      "title": "Hypernatric supplementary qualifier (hyna): very high Na (>= 70% ESP)",
      "topics": [
        "qual_hypernatric"
      ]
    },
    {
      "page": "qual_hyperorganic",
      "title": "Hyperorganic supplementary qualifier (hyo): SOC >= 18% (peat-like) WRB 2022 Ch 5: \"Containing organic carbon >= 18% by mass in any layer >= 10 cm thick.\" A stronger version of `Carbonic`.",
      "topics": [
        "qual_hyperorganic"
      ]
    },
    {
      "page": "qual_hypersalic",
      "title": "Hypersalic qualifier (yz): EC (1:5 H2O extract) >= 30 dS/m in some layer within the upper 100 cm. Stronger than the Salic horizon (default >= 15 dS/m).",
      "topics": [
        "qual_hypersalic"
      ]
    },
    {
      "page": "qual_hyperskeletic",
      "title": "Hyperskeletic qualifier (hk): coarse fragments >= 90% throughout the upper 100 cm.",
      "topics": [
        "qual_hyperskeletic"
      ]
    },
    {
      "page": "qual_hypersodic",
      "title": "Hypersodic qualifier (yo): ESP >= 50% in some layer within 100 cm. Stronger than Sodic (default ESP >= 6%).",
      "topics": [
        "qual_hypersodic"
      ]
    },
    {
      "page": "qual_hyperspodic",
      "title": "Hyperspodic qualifier (hp): spodic horizon with very strong active Al + Fe accumulation (Al_ox + 0.5 * Fe_ox >= 1.5%) - twice the minimum spodic threshold per WRB Ch 3.1. v0.9.1 also requires p-retention >= 85% in the same layers when available.",
      "topics": [
        "qual_hyperspodic"
      ]
    },
    {
      "page": "qual_hypocalcic",
      "title": "Hypocalcic qualifier (jc): CaCO3 >= 5% AND < 15% in some layer within 100 cm (between protocalcic 0.5% and the calcic-horizon 15% threshold). Marks the broad \"carbonate-bearing\" middle band that doesn't meet the Calcic horizon.",
      "topics": [
        "qual_hypocalcic"
      ]
    },
    {
      "page": "qual_hypogypsic",
      "title": "Hypogypsic qualifier (jg): gypsum >= 1% AND < 5% in some layer within 100 cm (below the gypsic-horizon threshold but above the protogypsic-properties bare-detection bar).",
      "topics": [
        "qual_hypogypsic"
      ]
    },
    {
      "page": "qual_hyposalic",
      "title": "Hyposalic qualifier (jz): EC (1:5 H2O extract) >= 4 dS/m AND < 15 dS/m in some layer within the upper 100 cm. Used for soils too weak to qualify as Solonchak but still carrying a salinity tag.",
      "topics": [
        "qual_hyposalic"
      ]
    },
    {
      "page": "qual_hyposodic",
      "title": "Hyposodic qualifier (jo): ESP >= 6% AND < 15% in some layer within 100 cm. Marginal sodicity tag.",
      "topics": [
        "qual_hyposodic"
      ]
    },
    {
      "page": "qual_immissic",
      "title": "Immissic supplementary qualifier (im): atmospheric immission",
      "topics": [
        "qual_immissic"
      ]
    },
    {
      "page": "qual_inclinic",
      "title": "Inclinic supplementary qualifier (in): tilted / inclined position WRB 2022 Ch 5: site has a slope >= 10% (relevo declivoso). Implementation: site$slope_pct (when populated) >= 10 OR parent_material / forma_relevo flagging steep terrain.",
      "topics": [
        "qual_inclinic"
      ]
    },
    {
      "page": "qual_irragric",
      "title": "Irragric qualifier (ir): irragric horizon (irrigation-deposited surface).",
      "topics": [
        "qual_irragric"
      ]
    },
    {
      "page": "qual_isolatic",
      "title": "Isolatic qualifier (il): isolated technic material",
      "topics": [
        "qual_isolatic"
      ]
    },
    {
      "page": "qual_isopteric",
      "title": "Isopteric supplementary qualifier (ip): termite / ant biogenesis",
      "topics": [
        "qual_isopteric"
      ]
    },
    {
      "page": "qual_kalaic",
      "title": "Kalaic supplementary qualifier (ka): dry-season puffed surface layer",
      "topics": [
        "qual_kalaic"
      ]
    },
    {
      "page": "qual_lamellic",
      "title": "Lamellic qualifier (ll): thin (< 5 cm) clay-enriched lamellae, typical of sandy Luvisols / Alisols / Acrisols. v0.9.3.B proxy: designation pattern 'lamell' / 'E&Bt' / '&Bt' / 'Bt(t)?\\d?lam' in any subsurface layer.",
      "topics": [
        "qual_lamellic"
      ]
    },
    {
      "page": "qual_lapiadic",
      "title": "Lapiadic supplementary qualifier (lp): karren / lapies bedrock features",
      "topics": [
        "qual_lapiadic"
      ]
    },
    {
      "page": "qual_laxic",
      "title": "Laxic supplementary qualifier (lx): loose / non-cohesive surface WRB 2022 Ch 5: \"Surface horizon with loose dry consistence and single-grain or massive structure.\"",
      "topics": [
        "qual_laxic"
      ]
    },
    {
      "page": "qual_leptic",
      "title": "Leptic qualifier (le): continuous rock <= 100 cm.",
      "topics": [
        "qual_leptic"
      ]
    },
    {
      "page": "qual_lignic",
      "title": "Lignic supplementary qualifier (lg): wood content in organic horizon WRB 2022 Ch 5: \"Containing recognisable wood remains (>= 25% by volume or weight) in organic material.\" Implementation: 'woody_fragments_pct' or layer_origin matching wood.",
      "topics": [
        "qual_lignic"
      ]
    },
    {
      "page": "qual_limnic",
      "title": "Limnic qualifier (lm): limnic material (lacustrine / marine subaquatic deposits) anywhere in the profile.",
      "topics": [
        "qual_limnic"
      ]
    },
    {
      "page": "qual_linic",
      "title": "Linic qualifier (li): continuous artificial geomembrane within 100 cm. v0.9.1 proxy: designation pattern ('linic|geomemb|liner').",
      "topics": [
        "qual_linic"
      ]
    },
    {
      "page": "qual_lithic",
      "title": "Lithic qualifier (lt): continuous rock starting within 10 cm. Tighter depth gate than Leptic (which is <= 100 cm) and Nudilithic (== 0 cm).",
      "topics": [
        "qual_lithic"
      ]
    },
    {
      "page": "qual_litholinic",
      "title": "Litholinic supplementary qualifier (ll): stratified soil on rock",
      "topics": [
        "qual_litholinic"
      ]
    },
    {
      "page": "qual_lixic",
      "title": "Lixic qualifier (lx): argic + low CEC, low Al.",
      "topics": [
        "qual_lixic"
      ]
    },
    {
      "page": "qual_loamic",
      "title": "Loamic qualifier (lo): loam-class texture >= 30 cm in the upper 100 cm.",
      "topics": [
        "qual_loamic"
      ]
    },
    {
      "page": "qual_luvic",
      "title": "Luvic qualifier (lv): argic + high CEC, low Al saturation.",
      "topics": [
        "qual_luvic"
      ]
    },
    {
      "page": "qual_magnesic",
      "title": "Magnesic qualifier (mg): exchangeable Ca/Mg < 1 in upper 100 cm.",
      "topics": [
        "qual_magnesic"
      ]
    },
    {
      "page": "qual_mahic",
      "title": "Mahic supplementary qualifier (mh): manure-derived dark surface WRB 2022 Ch 5: \"Topsoil enriched by long-term manure / compost application; oc_pct >= 4%, base_saturation_pct >= 50%, and p_mehlich >= 100 mg/kg.\"",
      "topics": [
        "qual_mahic"
      ]
    },
    {
      "page": "qual_mawic",
      "title": "Mawic qualifier (mw): moss-fibre-dominant peat",
      "topics": [
        "qual_mawic"
      ]
    },
    {
      "page": "qual_mazic",
      "title": "Mazic qualifier (mz): structureless / massive surface horizon (Vertisol). Diagnostic of slaked, crusted Vertisol surfaces.",
      "topics": [
        "qual_mazic"
      ]
    },
    {
      "page": "qual_melanic",
      "title": "Melanic qualifier (me): andic + dark high-OC surface horizon. v0.9.1: thickness >= 30 cm within upper 50 cm, OC weighted >= 6%, Munsell value <= 2 and chroma <= 2 (moist). Melanic Index >= 1.7 (the canonical UV-OD ratio) is deferred to v0.9.2.",
      "topics": [
        "qual_melanic"
      ]
    },
    {
      "page": "qual_mineralic",
      "title": "Mineralic supplementary qualifier (mn): predominantly mineral WRB 2022 Ch 5: \"Predominantly mineral material in upper 100 cm (oc_pct < 12% averaged over depth).\"",
      "topics": [
        "qual_mineralic"
      ]
    },
    {
      "page": "qual_mochipic",
      "title": "Mochipic supplementary qualifier (mp): mottled mochi-like pattern",
      "topics": [
        "qual_mochipic"
      ]
    },
    {
      "page": "qual_mollic",
      "title": "Mollic qualifier (mo): mollic horizon.",
      "topics": [
        "qual_mollic"
      ]
    },
    {
      "page": "qual_mulmic",
      "title": "Mulmic qualifier (ml): mulmic material in upper 100 cm.",
      "topics": [
        "qual_mulmic"
      ]
    },
    {
      "page": "qual_murshic",
      "title": "Murshic qualifier (mr): partly drained organic with strong decomposition",
      "topics": [
        "qual_murshic"
      ]
    },
    {
      "page": "qual_muusic",
      "title": "Muusic qualifier (mu): high-fibre peat (non-moss-specific)",
      "topics": [
        "qual_muusic"
      ]
    },
    {
      "page": "qual_naramic",
      "title": "Naramic supplementary qualifier (na): salt-crust morphology",
      "topics": [
        "qual_naramic"
      ]
    },
    {
      "page": "qual_natric",
      "title": "Natric qualifier (na): natric horizon <= 100 cm.",
      "topics": [
        "qual_natric"
      ]
    },
    {
      "page": "qual_nechic",
      "title": "Nechic supplementary qualifier (ne): aeolian / loess deposit pattern",
      "topics": [
        "qual_nechic"
      ]
    },
    {
      "page": "qual_neobrunic",
      "title": "Neobrunic qualifier (nb): \"young\" cambic-like horizon",
      "topics": [
        "qual_neobrunic"
      ]
    },
    {
      "page": "qual_neocambic",
      "title": "Neocambic qualifier (nc): \"young\" cambic horizon with weak development",
      "topics": [
        "qual_neocambic"
      ]
    },
    {
      "page": "qual_nitic",
      "title": "Nitic qualifier (ni): nitic horizon <= 100 cm.",
      "topics": [
        "qual_nitic"
      ]
    },
    {
      "page": "qual_nudiargic",
      "title": "Nudiargic qualifier (nu): argic horizon at the surface",
      "topics": [
        "qual_nudiargic"
      ]
    },
    {
      "page": "qual_nudilithic",
      "title": "Nudilithic qualifier (nt): continuous rock at the soil surface (top_cm == 0).",
      "topics": [
        "qual_nudilithic"
      ]
    },
    {
      "page": "qual_nudinatric",
      "title": "Nudinatric qualifier (nn): natric horizon at the surface",
      "topics": [
        "qual_nudinatric"
      ]
    },
    {
      "page": "qual_ochric",
      "title": "Ochric qualifier (oh): SOC >= 0.2% upper 10 cm + no mollic/umbric.",
      "topics": [
        "qual_ochric"
      ]
    },
    {
      "page": "qual_ombric",
      "title": "Ombric qualifier (om): rain-fed Histosol.",
      "topics": [
        "qual_ombric"
      ]
    },
    {
      "page": "qual_organotechnic",
      "title": "Organotechnic qualifier (ot): organotechnic material in upper 100 cm.",
      "topics": [
        "qual_organotechnic"
      ]
    },
    {
      "page": "qual_ornithic",
      "title": "Ornithic qualifier (oc): ornithogenic material (bird-influenced topsoil) in the upper 50 cm.",
      "topics": [
        "qual_ornithic"
      ]
    },
    {
      "page": "qual_orthofluvic",
      "title": "Orthofluvic qualifier (of): fluvic material 50-100 cm",
      "topics": [
        "qual_orthofluvic"
      ]
    },
    {
      "page": "qual_ortsteinic",
      "title": "Ortsteinic qualifier (os): cemented spodic horizon. v0.9.1: spodic horizon + cementation_class strongly OR indurated.",
      "topics": [
        "qual_ortsteinic"
      ]
    },
    {
      "page": "qual_oxyaquic",
      "title": "Oxyaquic qualifier (oa): saturation regime without reduction",
      "topics": [
        "qual_oxyaquic"
      ]
    },
    {
      "page": "qual_oxygleyic",
      "title": "Oxygleyic qualifier (og): gleyic regime with predominant oxidation",
      "topics": [
        "qual_oxygleyic"
      ]
    },
    {
      "page": "qual_pachic",
      "title": "Pachic qualifier (pc): mollic OR umbric horizon >= 50 cm thick.",
      "topics": [
        "qual_pachic"
      ]
    },
    {
      "page": "qual_pantofluvic",
      "title": "Pantofluvic qualifier (pf): fluvic material throughout 0-100 cm",
      "topics": [
        "qual_pantofluvic"
      ]
    },
    {
      "page": "qual_pellic",
      "title": "Pellic qualifier (pe): in the upper 30 cm, Munsell value <= 4 moist AND chroma <= 2 moist. Diagnostic of \"black\" (dark) Vertisols.",
      "topics": [
        "qual_pellic"
      ]
    },
    {
      "page": "qual_pelocrustic",
      "title": "Pelocrustic supplementary qualifier (pc): clayey surface crust",
      "topics": [
        "qual_pelocrustic"
      ]
    },
    {
      "page": "qual_petric",
      "title": "Petric qualifier (pt): any petro-cemented horizon (petrocalcic / petroduric / petrogypsic / petroplinthic) within 100 cm.",
      "topics": [
        "qual_petric"
      ]
    },
    {
      "page": "qual_petrocalcic",
      "title": "Petrocalcic qualifier (pc): petrocalcic horizon <= 100 cm.",
      "topics": [
        "qual_petrocalcic"
      ]
    },
    {
      "page": "qual_petroduric",
      "title": "Petroduric qualifier (pd): petroduric horizon <= 100 cm.",
      "topics": [
        "qual_petroduric"
      ]
    },
    {
      "page": "qual_petrogypsic",
      "title": "Petrogypsic qualifier (pg): petrogypsic horizon <= 100 cm.",
      "topics": [
        "qual_petrogypsic"
      ]
    },
    {
      "page": "qual_petroplinthic",
      "title": "Petroplinthic qualifier (pp): petroplinthic horizon <= 100 cm.",
      "topics": [
        "qual_petroplinthic"
      ]
    },
    {
      "page": "qual_petrosalic",
      "title": "Petrosalic qualifier (ptso): cemented salic horizon",
      "topics": [
        "qual_petrosalic"
      ]
    },
    {
      "page": "qual_pisoplinthic",
      "title": "Pisoplinthic qualifier (px): pisoplinthic horizon within 100 cm.",
      "topics": [
        "qual_pisoplinthic"
      ]
    },
    {
      "page": "qual_placic",
      "title": "Placic qualifier (pi): thin (<= 25 mm = 2.5 cm) cemented Fe pan, typically inside or just above a spodic horizon. v0.9.1: a layer with cementation_class strongly or indurated AND thickness <= 2.5 cm, anywhere in the upper 100 cm.",
      "topics": [
        "qual_placic"
      ]
    },
    {
      "page": "qual_plaggic",
      "title": "Plaggic qualifier (pa): plaggic horizon (sod-amended surface).",
      "topics": [
        "qual_plaggic"
      ]
    },
    {
      "page": "qual_plinthic",
      "title": "Plinthic qualifier (pl): plinthic horizon <= 100 cm.",
      "topics": [
        "qual_plinthic"
      ]
    },
    {
      "page": "qual_posic",
      "title": "Posic qualifier (po): net positive permanent charge (pH_KCl > pH_H2O) in some layer at <= 100 cm. Diagnostic of the most weathered Ferralsols where free Fe / Al oxides dominate the surface charge.",
      "topics": [
        "qual_posic"
      ]
    },
    {
      "page": "qual_pretic",
      "title": "Pretic qualifier (pt): pretic (pre-Columbian Amerindian dark earth) horizon.",
      "topics": [
        "qual_pretic"
      ]
    },
    {
      "page": "qual_profondic",
      "title": "Profondic qualifier (pf): argic horizon that continues, with no clay decrease, down to or below 150 cm. v0.9.3.B: requires 'argic' to pass AND at least one argic layer with 'bottom_cm >= 150'.",
      "topics": [
        "qual_profondic"
      ]
    },
    {
      "page": "qual_profundihumic",
      "title": "Profundihumic qualifier (ph): SOC >= 1.4% to depth >= 100 cm",
      "topics": [
        "qual_profundihumic"
      ]
    },
    {
      "page": "qual_protic",
      "title": "Protic qualifier (pr): Arenosol (or Regosol) with NO incipient subsurface horizon - i.e. an A-over-C profile where no cambic, no argic, no spodic, no ferralic, no nitic horizon is present in the upper 100 cm. v0.9.1 implements as the conjunction of the \"no B horizon\" diagnostics.",
      "topics": [
        "qual_protic"
      ]
    },
    {
      "page": "qual_protoandic",
      "title": "Protoandic supplementary qualifier (pan): early-stage andic WRB 2022 Ch 5: \"Andic-like properties below the strict threshold (oxalate Al+Fe 0.4-2.0%).\"",
      "topics": [
        "qual_protoandic"
      ]
    },
    {
      "page": "qual_protoargic",
      "title": "Protoargic supplementary qualifier (pra): early-stage argic WRB 2022 Ch 5: \"Clay increase 2-6 percentage points (below the canonical argic threshold).\"",
      "topics": [
        "qual_protoargic"
      ]
    },
    {
      "page": "qual_protocalcic",
      "title": "Protocalcic qualifier (qc): protocalcic properties (incipient carbonate accumulation) within the upper 100 cm. Wraps 'protocalcic_properties'.",
      "topics": [
        "qual_protocalcic"
      ]
    },
    {
      "page": "qual_protogypsic",
      "title": "Protogypsic qualifier (qg): protogypsic properties (incipient gypsum accumulation) within the upper 100 cm. Wraps 'protogypsic_properties'.",
      "topics": [
        "qual_protogypsic"
      ]
    },
    {
      "page": "qual_protospodic",
      "title": "Protospodic supplementary qualifier (psp): early-stage spodic WRB 2022 Ch 5: \"Spodic-like horizon meeting weakened criteria (Al+Fe oxalate < 0.5% but pyrophosphate > 0.05%).\" Lacking pyrophosphate field; we proxy via spodic candidate horizons that fail strict spodic.",
      "topics": [
        "qual_protospodic"
      ]
    },
    {
      "page": "qual_protovertic",
      "title": "Protovertic qualifier (qv): protovertic horizon (vertic-spectrum lower bound, no slickensides yet but the clay + structure / shrink-swell signal is already present) within the upper 100 cm. Wraps 'protovertic' and is mutually exclusive with the strict Vertic qualifier.",
      "topics": [
        "qual_protovertic"
      ]
    },
    {
      "page": "qual_puffic",
      "title": "Puffic supplementary qualifier (pf): puffed surface",
      "topics": [
        "qual_puffic"
      ]
    },
    {
      "page": "qual_pyric",
      "title": "Pyric supplementary qualifier (py): fire-affected horizon WRB 2022 Ch 5: \"Containing layers with charcoal / soot / fire-baked material (visual or chemical evidence).\" Implementation: 'layer_origin' or designation matching fire-related text.",
      "topics": [
        "qual_pyric"
      ]
    },
    {
      "page": "qual_raptic",
      "title": "Raptic supplementary qualifier (rp): stratification break",
      "topics": [
        "qual_raptic"
      ]
    },
    {
      "page": "qual_reductaquic",
      "title": "Reductaquic qualifier (ra): aquic + reductive at depth",
      "topics": [
        "qual_reductaquic"
      ]
    },
    {
      "page": "qual_reductic",
      "title": "Reductic qualifier (rd): permanently reducing conditions caused by anthropogenic gas / liquid emissions (typical of Technosols on landfills). v0.9.1: reducing_conditions + Technic context.",
      "topics": [
        "qual_reductic"
      ]
    },
    {
      "page": "qual_reductigleyic",
      "title": "Reductigleyic qualifier (rg): gleyic + reductive",
      "topics": [
        "qual_reductigleyic"
      ]
    },
    {
      "page": "qual_relocatic",
      "title": "Relocatic qualifier (rl): relocated material (Arenosols / Regosols)",
      "topics": [
        "qual_relocatic"
      ]
    },
    {
      "page": "qual_rendzic",
      "title": "Rendzic qualifier (rz): mollic horizon directly over calcaric material (or limestone), shallow. Defined as Mollic + (Calcaric OR continuous rock with carbonate parent material).",
      "topics": [
        "qual_rendzic"
      ]
    },
    {
      "page": "qual_retic",
      "title": "Retic qualifier (rt): retic properties <= 100 cm.",
      "topics": [
        "qual_retic"
      ]
    },
    {
      "page": "qual_rheic",
      "title": "Rheic qualifier (rh): water-fed Histosol.",
      "topics": [
        "qual_rheic"
      ]
    },
    {
      "page": "qual_rhodic",
      "title": "Rhodic qualifier (ro): hue redder than 5YR + value < 4 + dry no more than 1 unit higher than moist (in upper subsoil 25-150 cm).",
      "topics": [
        "qual_rhodic"
      ]
    },
    {
      "page": "qual_rockic",
      "title": "Rockic qualifier (rk): rock-dominated organic horizon",
      "topics": [
        "qual_rockic"
      ]
    },
    {
      "page": "qual_rubic",
      "title": "Rubic qualifier (rb): red Munsell hue <= 5YR AND chroma >= 4 in some layer within the upper 100 cm. Less strict than Rhodic (which requires <= 2.5YR + value < 4); useful as a supplementary tag for tropical soils with reddish colours that don't reach the Rhodic threshold.",
      "topics": [
        "qual_rubic"
      ]
    },
    {
      "page": "qual_rustic",
      "title": "Rustic qualifier (rs): iron-dominated spodic illuviation. v0.9.1: spodic + OC < 1% AND active iron (Fe_ox) >= 0.5% in the same spodic layer (humus-poor, Fe-rich ortstein / Bs).",
      "topics": [
        "qual_rustic"
      ]
    },
    {
      "page": "qual_salic",
      "title": "Salic qualifier (sz): salic horizon <= 100 cm.",
      "topics": [
        "qual_salic"
      ]
    },
    {
      "page": "qual_sapric",
      "title": "Sapric qualifier (sa): organic material whose dominant decomposition class in the upper 100 cm is sapric (rubbed fiber < 1/6). v0.9.1: thickness-weighted dominance via Oa designation.",
      "topics": [
        "qual_sapric"
      ]
    },
    {
      "page": "qual_saprolithic",
      "title": "Saprolithic supplementary qualifier (sp): saprolite parent material",
      "topics": [
        "qual_saprolithic"
      ]
    },
    {
      "page": "qual_silandic",
      "title": "Silandic qualifier (sn): andic properties + Si-dominant active component (Al / (Al + 0.5 Si) < 0.5 in mass; allophane-rich).",
      "topics": [
        "qual_silandic"
      ]
    },
    {
      "page": "qual_siltic",
      "title": "Siltic qualifier (sl): silt or silt-loam texture >= 30 cm in the upper 100 cm.",
      "topics": [
        "qual_siltic"
      ]
    },
    {
      "page": "qual_skeletic",
      "title": "Skeletic qualifier (sk): coarse fragments >= 40% averaged over 100 cm.",
      "topics": [
        "qual_skeletic"
      ]
    },
    {
      "page": "qual_sodic",
      "title": "Sodic qualifier (so): ESP >= 6% (incl. SAR-derived).",
      "topics": [
        "qual_sodic"
      ]
    },
    {
      "page": "qual_solimovic",
      "title": "Solimovic qualifier (sv): solimovic material (mass-movement deposits).",
      "topics": [
        "qual_solimovic"
      ]
    },
    {
      "page": "qual_sombric",
      "title": "Sombric qualifier (sm): sombric horizon (humus-illuviated layer at depth) within 200 cm. WRB excludes layers that simultaneously meet spodic or ferralic criteria from being Sombric - those have specific qualifiers of their own. v0.9.1 enforces both exclusions.",
      "topics": [
        "qual_sombric"
      ]
    },
    {
      "page": "qual_someric",
      "title": "Someric qualifier (sm): anthric epipedon over chernic / mollic",
      "topics": [
        "qual_someric"
      ]
    },
    {
      "page": "qual_spodic",
      "title": "Spodic qualifier (sd): spodic horizon <= 200 cm.",
      "topics": [
        "qual_spodic"
      ]
    },
    {
      "page": "qual_spolic",
      "title": "Spolic qualifier (sp): >= 20% mineral spoil artefacts (mining / industrial-process slag) in the upper 100 cm. v0.9.1 proxy: designation pattern ('Cspol|spoil|slag|mine') or 'rock_origin == \"spoil\"'. Hard schema column 'artefacts_spolic_pct' scheduled for v0.9.2.",
      "topics": [
        "qual_spolic"
      ]
    },
    {
      "page": "qual_stagnic",
      "title": "Stagnic qualifier (st): stagnic properties <= 75 cm.",
      "topics": [
        "qual_stagnic"
      ]
    },
    {
      "page": "qual_subaquatic",
      "title": "Subaquatic qualifier (sq): permanently under water. v0.9.1: site$drainage_class == \"subaquatic\" or \"submerged\".",
      "topics": [
        "qual_subaquatic"
      ]
    },
    {
      "page": "qual_sulfatic",
      "title": "Sulfatic supplementary qualifier (su): high sulfate content WRB 2022 Ch 5: \"Containing >= 25% gypsum or >= 5% sulfate by mass.\"",
      "topics": [
        "qual_sulfatic"
      ]
    },
    {
      "page": "qual_sulfidic",
      "title": "Sulfidic qualifier (sf): hyper- OR hyposulfidic material in upper 100 cm (the WRB Sulfidic qualifier covers either acidification class).",
      "topics": [
        "qual_sulfidic"
      ]
    },
    {
      "page": "qual_takyric",
      "title": "Takyric qualifier (ty): takyric properties in upper 50 cm.",
      "topics": [
        "qual_takyric"
      ]
    },
    {
      "page": "qual_technic",
      "title": "Technic qualifier (tc): >= 20% artefacts in upper 100 cm OR equivalent geomembrane / technic-hard cover.",
      "topics": [
        "qual_technic"
      ]
    },
    {
      "page": "qual_tephric",
      "title": "Tephric qualifier (tf): tephric material >= 30 cm in upper 100 cm.",
      "topics": [
        "qual_tephric"
      ]
    },
    {
      "page": "qual_terric",
      "title": "Terric qualifier (te): terric horizon (anthropogenic added mineral material on top of cultivated land).",
      "topics": [
        "qual_terric"
      ]
    },
    {
      "page": "qual_thionic",
      "title": "Thionic qualifier (tn): thionic horizon within 100 cm.",
      "topics": [
        "qual_thionic"
      ]
    },
    {
      "page": "qual_thixotropic",
      "title": "Thixotropic supplementary qualifier (tx): thixotropic behavior",
      "topics": [
        "qual_thixotropic"
      ]
    },
    {
      "page": "qual_thyric",
      "title": "Thyric qualifier (ty): organic technic material in upper 100 cm",
      "topics": [
        "qual_thyric"
      ]
    },
    {
      "page": "qual_tidalic",
      "title": "Tidalic qualifier (td): subject to tidal flooding. v0.9.1: site$drainage_class contains \"tidal\".",
      "topics": [
        "qual_tidalic"
      ]
    },
    {
      "page": "qual_tonguic",
      "title": "Tonguic qualifier (tg): tongues of A horizon penetrating into B",
      "topics": [
        "qual_tonguic"
      ]
    },
    {
      "page": "qual_toxic",
      "title": "Toxic qualifier (tx): toxic concentration of organic or inorganic constituents.",
      "topics": [
        "qual_toxic"
      ]
    },
    {
      "page": "qual_transportic",
      "title": "Transportic qualifier (tr): transported material (Technosols / Regosols)",
      "topics": [
        "qual_transportic"
      ]
    },
    {
      "page": "qual_turbic",
      "title": "Turbic qualifier (tb): cryoturbation features within 100 cm. v0.9.1 proxy: cryic conditions + designation pattern ('turb|jj|cryot') OR slickensides \"common\"/\"many\" in a cryic profile.",
      "topics": [
        "qual_turbic"
      ]
    },
    {
      "page": "qual_umbric",
      "title": "Umbric qualifier (um): umbric horizon.",
      "topics": [
        "qual_umbric"
      ]
    },
    {
      "page": "qual_urbic",
      "title": "Urbic qualifier (ub): >= 20% urbic artefacts (rubble, refuse) in the upper 100 cm.",
      "topics": [
        "qual_urbic"
      ]
    },
    {
      "page": "qual_uterquic",
      "title": "Uterquic supplementary qualifier (uq): bidirectional water regime",
      "topics": [
        "qual_uterquic"
      ]
    },
    {
      "page": "qual_vermic",
      "title": "Vermic qualifier (vm): >= 50% bioturbation by worm casts / krotovinas in the upper 100 cm. v0.9.1: 'worm_holes_pct >= 50'.",
      "topics": [
        "qual_vermic"
      ]
    },
    {
      "page": "qual_vertic",
      "title": "Vertic qualifier (vr): vertic horizon <= 100 cm.",
      "topics": [
        "qual_vertic"
      ]
    },
    {
      "page": "qual_vetic",
      "title": "Vetic qualifier (vt): CEC (1 N NH4OAc, pH 7) by clay does not exceed 6 cmol+/kg clay in some layer at <= 100 cm. Stronger than the ferralic-CEC threshold (<= 16 cmol+/kg clay).",
      "topics": [
        "qual_vetic"
      ]
    },
    {
      "page": "qual_vitric",
      "title": "Vitric qualifier (vi): vitric properties >= 30 cm within 100 cm.",
      "topics": [
        "qual_vitric"
      ]
    },
    {
      "page": "qual_wapnic",
      "title": "Wapnic qualifier (wp): soft, moist limnic material >= 80% CaCO3",
      "topics": [
        "qual_wapnic"
      ]
    },
    {
      "page": "qual_xanthic",
      "title": "Xanthic qualifier (xa): ferralic + hue 7.5YR or yellower + value >= 4 + chroma >= 5.",
      "topics": [
        "qual_xanthic"
      ]
    },
    {
      "page": "qual_yermic",
      "title": "Yermic qualifier (ye): yermic properties in upper 50 cm.",
      "topics": [
        "qual_yermic"
      ]
    },
    {
      "page": "quartzipsamment_qualifying_usda",
      "title": "Quartzipsamment helper (Quartzipsamments: >= 95% resistant minerals)",
      "topics": [
        "quartzipsamment_qualifying_usda"
      ]
    },
    {
      "page": "read_febr_pedons",
      "title": "Load FEBR datasets as a list of PedonRecord objects",
      "topics": [
        "read_febr_pedons"
      ]
    },
    {
      "page": "reducing_conditions",
      "title": "Reducing conditions (WRB 2022 Ch 3.2.10) - per-pedon test wrapping 'test_reducing_conditions'.",
      "topics": [
        "reducing_conditions"
      ]
    },
    {
      "page": "rendoll_qualifying_usda",
      "title": "Rendolls qualifier: shallow soil over carbonate parent material. Pass when CaCO3 >= 40% in subsurface AND profile depth < 100 cm to a contact.",
      "topics": [
        "rendoll_qualifying_usda"
      ]
    },
    {
      "page": "report",
      "title": "Render a soilKey classification report",
      "topics": [
        "report"
      ]
    },
    {
      "page": "report_html",
      "title": "Render a soilKey classification report as self-contained HTML",
      "topics": [
        "report_html"
      ]
    },
    {
      "page": "report_pdf",
      "title": "Render a soilKey classification report as PDF",
      "topics": [
        "report_pdf"
      ]
    },
    {
      "page": "report_to_qgis",
      "title": "Export a classification result + pedon to a QGIS GeoPackage",
      "topics": [
        "report_to_qgis"
      ]
    },
    {
      "page": "resolve_wrb_qualifiers",
      "title": "Resolve WRB 2022 qualifiers for a Reference Soil Group",
      "topics": [
        "resolve_wrb_qualifiers"
      ]
    },
    {
      "page": "retic_properties",
      "title": "Retic properties (WRB 2022)",
      "topics": [
        "retic_properties"
      ]
    },
    {
      "page": "rhodic_subgroup_usda",
      "title": "Rhodic Subgroup helper (Oxisols, Mollisols, etc.) Pass when 50%+ colors have hue <= 2.5YR AND value <= 3 in B horizons 25-125 cm.",
      "topics": [
        "rhodic_subgroup_usda"
      ]
    },
    {
      "page": "run_classify_app",
      "title": "Launch the soilKey interactive classification Shiny app",
      "topics": [
        "run_classify_app"
      ]
    },
    {
      "page": "run_demo",
      "title": "Launch the soilKey Shiny demo (one-screen GUI)",
      "topics": [
        "run_demo"
      ]
    },
    {
      "page": "run_sibcs_grande_grupo",
      "title": "Resolve o grande grupo (3o nivel) de um pedon classificado em uma subordem SiBCS",
      "topics": [
        "run_sibcs_grande_grupo"
      ]
    },
    {
      "page": "run_sibcs_key",
      "title": "Roda a chave SiBCS 5a edicao sobre um pedon",
      "topics": [
        "run_sibcs_key"
      ]
    },
    {
      "page": "run_sibcs_subgrupo",
      "title": "Resolve o subgrupo (4o nivel) de um pedon classificado em um Grande Grupo SiBCS",
      "topics": [
        "run_sibcs_subgrupo"
      ]
    },
    {
      "page": "run_sibcs_subordem",
      "title": "Resolve a subordem de um pedon ja classificado em uma ordem SiBCS",
      "topics": [
        "run_sibcs_subordem"
      ]
    },
    {
      "page": "run_taxa_list",
      "title": "Iterate a flat taxa list and evaluate tests in canonical order",
      "topics": [
        "run_taxa_list"
      ]
    },
    {
      "page": "run_taxonomic_key",
      "title": "Run a taxonomic key (system-agnostic engine)",
      "topics": [
        "run_taxonomic_key"
      ]
    },
    {
      "page": "run_usda_great_group",
      "title": "Run the USDA Great Group key for a given Suborder",
      "topics": [
        "run_usda_great_group"
      ]
    },
    {
      "page": "run_usda_key",
      "title": "Run the USDA Soil Taxonomy Order key over a pedon",
      "topics": [
        "run_usda_key"
      ]
    },
    {
      "page": "run_usda_subgroup",
      "title": "Run the USDA Subgroup key for a given Great Group",
      "topics": [
        "run_usda_subgroup"
      ]
    },
    {
      "page": "run_usda_suborder",
      "title": "Run the USDA Suborder key for a given Order",
      "topics": [
        "run_usda_suborder"
      ]
    },
    {
      "page": "run_wrb_key",
      "title": "Run the WRB 2022 key over a pedon",
      "topics": [
        "run_wrb_key"
      ]
    },
    {
      "page": "ruptic_histic_subgroup_usda",
      "title": "Ruptic-Histic Subgroup helper",
      "topics": [
        "ruptic_histic_subgroup_usda"
      ]
    },
    {
      "page": "ruptic_subgroup_usda",
      "title": "Ruptic Subgroup helper (Histoturbels / Historthels)",
      "topics": [
        "ruptic_subgroup_usda"
      ]
    },
    {
      "page": "salic",
      "title": "Salic horizon (WRB 2022)",
      "topics": [
        "salic"
      ]
    },
    {
      "page": "salic_horizon_usda",
      "title": "Salic horizon (USDA, delegates to WRB salic).",
      "topics": [
        "salic_horizon_usda"
      ]
    },
    {
      "page": "salic_subgroup_usda",
      "title": "Salic Subgroup helper Wraps salic_horizon_usda. Used for Salaquerts/Salitorrerts/etc.",
      "topics": [
        "salic_subgroup_usda"
      ]
    },
    {
      "page": "sapric_predominant_usda",
      "title": "Sapric_predominant_usda: Saprists Suborder qualifier Pass when thickness of sapric > thickness of fibric+hemic in 0-130 cm.",
      "topics": [
        "sapric_predominant_usda"
      ]
    },
    {
      "page": "sapric_subgroup_usda",
      "title": "Sapric Subgroup helper (Sphagnofibrists)",
      "topics": [
        "sapric_subgroup_usda"
      ]
    },
    {
      "page": "saprico",
      "title": "Material organico saprico (SiBCS Cap 14)",
      "topics": [
        "saprico"
      ]
    },
    {
      "page": "save_ossl_models",
      "title": "Save / load trained OSSL-backed PLSR models",
      "topics": [
        "load_ossl_models",
        "save_ossl_models"
      ]
    },
    {
      "page": "shrink_swell_cracks",
      "title": "Shrink-swell cracks (WRB 2022 Ch 3.2.12) - per-pedon test wrapping 'test_shrink_swell_cracks'.",
      "topics": [
        "shrink_swell_cracks"
      ]
    },
    {
      "page": "sideralic_properties",
      "title": "Sideralic properties (WRB 2022 Ch 3.2.13)",
      "topics": [
        "sideralic_properties"
      ]
    },
    {
      "page": "smr_aridic_usda",
      "title": "Aridic soil moisture regime (USDA)",
      "topics": [
        "smr_aridic_usda"
      ]
    },
    {
      "page": "smr_torric_usda",
      "title": "Torric soil moisture regime (USDA)",
      "topics": [
        "smr_torric_usda"
      ]
    },
    {
      "page": "smr_udic_usda",
      "title": "Udic soil moisture regime (USDA)",
      "topics": [
        "smr_udic_usda"
      ]
    },
    {
      "page": "smr_ustic_usda",
      "title": "Ustic soil moisture regime (USDA)",
      "topics": [
        "smr_ustic_usda"
      ]
    },
    {
      "page": "smr_xeric_usda",
      "title": "Xeric soil moisture regime (USDA)",
      "topics": [
        "smr_xeric_usda"
      ]
    },
    {
      "page": "sodic_subgroup_usda",
      "title": "Sodic Subgroup helper - delegate to natric_horizon (USDA)",
      "topics": [
        "sodic_subgroup_usda"
      ]
    },
    {
      "page": "soil_classes_at_location",
      "title": "Likely soil classes at a geographic location (spatial classification aid)",
      "topics": [
        "soil_classes_at_location"
      ]
    },
    {
      "page": "soil_moisture_regime_usda",
      "title": "Soil moisture regime helper (USDA, KST 13ed Ch 3, pp 50-52)",
      "topics": [
        "soil_moisture_regime_usda"
      ]
    },
    {
      "page": "soil_organic_carbon",
      "title": "Soil organic carbon (WRB 2022 Ch 3.3.16): organic C that does NOT belong to artefacts. v0.3.3: any layer with oc_pct >= 0.1 and artefacts_industrial_pct < 35.",
      "topics": [
        "soil_organic_carbon"
      ]
    },
    {
      "page": "soil_temperature_regime_usda",
      "title": "Soil temperature regime helper (USDA, KST 13ed Ch 3, pp 53-58)",
      "topics": [
        "soil_temperature_regime_usda"
      ]
    },
    {
      "page": "soilgrids_usda_lut",
      "title": "SoilGrids -> USDA Soil Order lookup table (placeholder)",
      "topics": [
        "soilgrids_usda_lut"
      ]
    },
    {
      "page": "soilgrids_wrb_lut",
      "title": "SoilGrids -> WRB code lookup table",
      "topics": [
        "soilgrids_wrb_lut"
      ]
    },
    {
      "page": "solimovic_material",
      "title": "Solimovic material (WRB 2022 Ch 3.3.17): hetero genous mass-movement material on slopes / footslopes (formerly \"colluvic\"). v0.3.3: detects via 'rock_origin == \"colluvial\"' OR 'layer_origin == \"solimovic\"'.",
      "topics": [
        "solimovic_material"
      ]
    },
    {
      "page": "sombric",
      "title": "Sombric horizon (WRB 2022): subsurface accumulation of humus that qualified neither as spodic nor as a true mollic-like horizon (low-base-saturation cool tropical highlands). v0.3.3 detects via designation pattern + OC criteria (BS < 50, OC > 0.6, depth > 25 cm).",
      "topics": [
        "sombric"
      ]
    },
    {
      "page": "sombric_subgroup_usda",
      "title": "Sombric Subgroup helper (Oxisols Sombri-) Pass when sombric horizon (humus illuviation in tropics) is present. v0.8: detects via 'sombric' designation OR a B horizon with V<=4 + V<=4 + chroma<=2 + OC>1 in 50-150 cm.",
      "topics": [
        "sombric_subgroup_usda"
      ]
    },
    {
      "page": "spatial_prior",
      "title": "Spatial prior over RSGs (or Orders) at a pedon's location",
      "topics": [
        "spatial_prior"
      ]
    },
    {
      "page": "spatial_prior_embrapa",
      "title": "Embrapa national soil-class spatial prior (Brazil only)",
      "topics": [
        "spatial_prior_embrapa"
      ]
    },
    {
      "page": "spatial_prior_soilgrids",
      "title": "SoilGrids spatial prior",
      "topics": [
        "spatial_prior_soilgrids"
      ]
    },
    {
      "page": "sphagnic_usda",
      "title": "Sphagnic Subgroup helper (Histels Fibristels)",
      "topics": [
        "sphagnic_usda"
      ]
    },
    {
      "page": "spodic",
      "title": "Spodic horizon (WRB 2022)",
      "topics": [
        "spodic"
      ]
    },
    {
      "page": "spodic_andisol_usda",
      "title": "Spodic-Andisols Subgroup helper Pass when albic horizon overlies a cambic OR spodic horizon, OR when a spodic horizon is present in 50%+ of the pedon.",
      "topics": [
        "spodic_andisol_usda"
      ]
    },
    {
      "page": "spodic_horizon_usda",
      "title": "Spodosols Order qualifier (USDA, KST 13ed)",
      "topics": [
        "spodic_horizon_usda"
      ]
    },
    {
      "page": "spodic_subgroup_usda",
      "title": "Spodic Subgroup helper for Psammorthels/Psammoturbels",
      "topics": [
        "spodic_subgroup_usda"
      ]
    },
    {
      "page": "spodosol_usda",
      "title": "Spodosols (USDA Cap 14): spodic horizon (illuvial Al/Fe/OC).",
      "topics": [
        "spodosol_usda"
      ]
    },
    {
      "page": "st_features_canonical",
      "title": "USDA Soil Taxonomy diagnostic features canonical table",
      "topics": [
        "st_features_canonical"
      ]
    },
    {
      "page": "stagnic_properties",
      "title": "Stagnic properties (WRB 2022)",
      "topics": [
        "stagnic_properties"
      ]
    },
    {
      "page": "str_cryic_usda",
      "title": "Cryic soil temperature regime (USDA)",
      "topics": [
        "str_cryic_usda"
      ]
    },
    {
      "page": "str_gelic_usda",
      "title": "Gelic soil temperature regime (USDA)",
      "topics": [
        "str_gelic_usda"
      ]
    },
    {
      "page": "subgrupo_planossolo_espessos",
      "title": "Subgrupo \"espessos\" de Planossolos (B planico profundo, > 100 cm)",
      "topics": [
        "subgrupo_planossolo_espessos"
      ]
    },
    {
      "page": "subgrupo_planossolo_mesicos",
      "title": "Subgrupo \"mesicos\" de Planossolos (B planico topo em [50, 100] cm)",
      "topics": [
        "subgrupo_planossolo_mesicos"
      ]
    },
    {
      "page": "subgrupo_plintossolo_endico_concrecionario",
      "title": "Subgrupo \"endico\" de Plintossolos Concrecionarios (topo de horizonte concrecionario >= 40 cm)",
      "topics": [
        "subgrupo_plintossolo_endico_concrecionario"
      ]
    },
    {
      "page": "subgrupo_plintossolo_endico_litoplintico",
      "title": "Subgrupo \"endico\" de Plintossolos Litoplinticos (topo de horizonte litoplintico >= 40 cm)",
      "topics": [
        "subgrupo_plintossolo_endico_litoplintico"
      ]
    },
    {
      "page": "subgrupo_plintossolo_espessos",
      "title": "Subgrupo \"espessos\" de Plintossolos (horizonte plintico topo > 100 cm)",
      "topics": [
        "subgrupo_plintossolo_espessos"
      ]
    },
    {
      "page": "sulfic_subgroup_usda",
      "title": "Sulfic Subgroup helper (Haplowassists) Pass when sulfidic materials within 100 cm.",
      "topics": [
        "sulfic_subgroup_usda"
      ]
    },
    {
      "page": "sulfidic_materials_usda",
      "title": "Sulfidic materials helper (USDA, KST 13ed Ch 3, p 49)",
      "topics": [
        "sulfidic_materials_usda"
      ]
    },
    {
      "page": "sulfuric_horizon_usda",
      "title": "Sulfuric horizon helper (USDA, KST 13ed Ch 3)",
      "topics": [
        "sulfuric_horizon_usda"
      ]
    },
    {
      "page": "takyric_properties",
      "title": "Takyric properties (WRB 2022 Ch 3.2.15) - per-pedon test wrapping 'test_takyric_surface'.",
      "topics": [
        "takyric_properties"
      ]
    },
    {
      "page": "technic_features",
      "title": "Technic features (WRB 2022)",
      "topics": [
        "technic_features"
      ]
    },
    {
      "page": "technic_hard_material",
      "title": "Technic hard material (WRB 2022 Ch 3.3.18): consolidated human-made material (asphalt, concrete, worked stones).",
      "topics": [
        "technic_hard_material"
      ]
    },
    {
      "page": "tephric_material",
      "title": "Tephric material (WRB 2022 Ch 3.3.19): \\>= 30% volcanic glass in 0.02-2 mm fraction AND no andic / vitric properties.",
      "topics": [
        "tephric_material"
      ]
    },
    {
      "page": "terric",
      "title": "Terric horizon (WRB 2022): topsoil thickened by long-term application of mineral material (sediment / sand additions). v0.3.3: thickness >= 20 cm + designation Au / Apc.",
      "topics": [
        "terric"
      ]
    },
    {
      "page": "terric_usda",
      "title": "Terric Subgroup helper (Histels)",
      "topics": [
        "terric_usda"
      ]
    },
    {
      "page": "test_abrupt_textural_change",
      "title": "Test for an abrupt textural change between adjacent horizons",
      "topics": [
        "test_abrupt_textural_change"
      ]
    },
    {
      "page": "test_al_saturation_above",
      "title": "Test that aluminium saturation is at or above a threshold",
      "topics": [
        "test_al_saturation_above"
      ]
    },
    {
      "page": "test_al_saturation_below",
      "title": "Test that aluminium saturation is below a threshold",
      "topics": [
        "test_al_saturation_below"
      ]
    },
    {
      "page": "test_andic_alfe",
      "title": "Test the andic Al/Fe oxalate criterion: (al_ox + 0.5*fe_ox) >= 2.0%",
      "topics": [
        "test_andic_alfe"
      ]
    },
    {
      "page": "test_artefacts_concentration",
      "title": "Test that artefacts_pct >= threshold within the upper max_top_cm",
      "topics": [
        "test_artefacts_concentration"
      ]
    },
    {
      "page": "test_bs_above",
      "title": "Test that base saturation is at or above a threshold",
      "topics": [
        "test_bs_above"
      ]
    },
    {
      "page": "test_bs_below",
      "title": "Test that base saturation is below a threshold",
      "topics": [
        "test_bs_below"
      ]
    },
    {
      "page": "test_bulk_density_below",
      "title": "Test that bulk density is at or below a threshold",
      "topics": [
        "test_bulk_density_below"
      ]
    },
    {
      "page": "test_caco3_concentration",
      "title": "Test for CaCO3 concentration above threshold (per layer)",
      "topics": [
        "test_caco3_concentration"
      ]
    },
    {
      "page": "test_carbonates_present",
      "title": "Test for any layer with caco3_pct above a (low) threshold",
      "topics": [
        "test_carbonates_present"
      ]
    },
    {
      "page": "test_caso4_concentration",
      "title": "Test for CaSO4 (gypsum) concentration above threshold (per layer)",
      "topics": [
        "test_caso4_concentration"
      ]
    },
    {
      "page": "test_cec_per_clay",
      "title": "Test CEC (1M NH4OAc, pH 7) per kg clay <= threshold",
      "topics": [
        "test_cec_per_clay"
      ]
    },
    {
      "page": "test_cec_per_clay_above",
      "title": "Test that CEC per kg clay is at or above a threshold",
      "topics": [
        "test_cec_per_clay_above"
      ]
    },
    {
      "page": "test_chernic_color",
      "title": "Test for chroma <= 2 (moist) within the upper part of the profile",
      "topics": [
        "test_chernic_color"
      ]
    },
    {
      "page": "test_clay_above",
      "title": "Test that clay_pct is at or above a threshold",
      "topics": [
        "test_clay_above"
      ]
    },
    {
      "page": "test_clay_increase_argic",
      "title": "Test the argic / argillic clay-increase criterion",
      "topics": [
        "test_clay_increase_argic"
      ]
    },
    {
      "page": "test_coarse_texture_throughout",
      "title": "Test for coarse texture throughout the upper part of the profile",
      "topics": [
        "test_coarse_texture_throughout"
      ]
    },
    {
      "page": "test_designation_pattern",
      "title": "Test that a horizon designation matches a regex pattern",
      "topics": [
        "test_designation_pattern"
      ]
    },
    {
      "page": "test_duripan_concentration",
      "title": "Test that duripan_pct >= threshold (Si-cemented nodules)",
      "topics": [
        "test_duripan_concentration"
      ]
    },
    {
      "page": "test_ec_concentration",
      "title": "Test for electrical conductivity above threshold (per layer)",
      "topics": [
        "test_ec_concentration"
      ]
    },
    {
      "page": "test_ecec_per_clay",
      "title": "Test effective CEC (sum of bases + Al) per kg clay <= threshold",
      "topics": [
        "test_ecec_per_clay"
      ]
    },
    {
      "page": "test_esp_above",
      "title": "Test exchangeable sodium percentage above threshold",
      "topics": [
        "test_esp_above"
      ]
    },
    {
      "page": "test_fe_dcb_above",
      "title": "Test for high free-iron content ('fe_dcb_pct' >= threshold)",
      "topics": [
        "test_fe_dcb_above"
      ]
    },
    {
      "page": "test_ferralic_texture",
      "title": "Ferralic texture: sandy loam or finer (same predicate as argic)",
      "topics": [
        "test_ferralic_texture"
      ]
    },
    {
      "page": "test_ferralic_thickness",
      "title": "Ferralic minimum thickness >= 30 cm (WRB 2022)",
      "topics": [
        "test_ferralic_thickness"
      ]
    },
    {
      "page": "test_fluvic_stratification",
      "title": "Test for fluvic stratification: irregular OC pattern + texture variability across consecutive horizons",
      "topics": [
        "test_fluvic_stratification"
      ]
    },
    {
      "page": "test_gleyic_features",
      "title": "Test for gleyic redoximorphic features within top 50 cm",
      "topics": [
        "test_gleyic_features"
      ]
    },
    {
      "page": "test_minimum_thickness",
      "title": "Test minimum horizon thickness",
      "topics": [
        "test_minimum_thickness"
      ]
    },
    {
      "page": "test_mollic_base_saturation",
      "title": "Mollic base-saturation test (NH4OAc, pH 7, default >= 50%)",
      "topics": [
        "test_mollic_base_saturation"
      ]
    },
    {
      "page": "test_mollic_color",
      "title": "Mollic Munsell color test (WRB 2022)",
      "topics": [
        "test_mollic_color"
      ]
    },
    {
      "page": "test_mollic_organic_carbon",
      "title": "Mollic organic-carbon test (WRB 2022, default >= 0.6%)",
      "topics": [
        "test_mollic_organic_carbon"
      ]
    },
    {
      "page": "test_mollic_structure",
      "title": "Mollic structure test (WRB 2022)",
      "topics": [
        "test_mollic_structure"
      ]
    },
    {
      "page": "test_mollic_thickness",
      "title": "Mollic thickness test (default >= 20 cm in v0.1)",
      "topics": [
        "test_mollic_thickness"
      ]
    },
    {
      "page": "test_oc_above",
      "title": "Test that organic carbon is at or above a threshold",
      "topics": [
        "test_oc_above"
      ]
    },
    {
      "page": "test_ph_below",
      "title": "Test that ph_h2o is at or below a threshold",
      "topics": [
        "test_ph_below"
      ]
    },
    {
      "page": "test_plinthite_concentration",
      "title": "Test for plinthite concentration above threshold (per layer)",
      "topics": [
        "test_plinthite_concentration"
      ]
    },
    {
      "page": "test_salic_product",
      "title": "Test the salic horizon EC * thickness product (WRB 2022)",
      "topics": [
        "test_salic_product"
      ]
    },
    {
      "page": "test_slickensides_present",
      "title": "Test for slickensides at or above a presence level",
      "topics": [
        "test_slickensides_present"
      ]
    },
    {
      "page": "test_spodic_aluminum_iron",
      "title": "Test the spodic Al/Fe oxalate criterion: (al_ox + 0.5*fe_ox) >= threshold",
      "topics": [
        "test_spodic_aluminum_iron"
      ]
    },
    {
      "page": "test_stagnic_pattern",
      "title": "Test for stagnic redox features (perched water signature)",
      "topics": [
        "test_stagnic_pattern"
      ]
    },
    {
      "page": "test_texture_argic",
      "title": "Test sandy-loam-or-finer texture (used by argic, ferralic)",
      "topics": [
        "test_texture_argic"
      ]
    },
    {
      "page": "test_top_at_or_above",
      "title": "Test that a candidate layer starts at or above a top_cm threshold",
      "topics": [
        "test_top_at_or_above"
      ]
    },
    {
      "page": "texture_class_from_pct",
      "title": "NRCS texture-class shorthand from clay / silt / sand percent",
      "topics": [
        "texture_class_from_pct"
      ]
    },
    {
      "page": "thaptic_subgroup_usda",
      "title": "Thaptic Subgroup helper (Andisols) Pass when, between 25 and 100 cm, a 10+ cm layer with OC > 3.0% and mollic colors exists, underlying lighter horizons.",
      "topics": [
        "thaptic_subgroup_usda"
      ]
    },
    {
      "page": "thapto_humic_usda",
      "title": "Thapto-Humic Subgroup helper",
      "topics": [
        "thapto_humic_usda"
      ]
    },
    {
      "page": "thionic",
      "title": "Thionic horizon (WRB 2022): post-oxidation acid sulfate horizon. Requires sulfidic_s_pct >= 0.01 AND pH(H2O) <= 4.",
      "topics": [
        "thionic"
      ]
    },
    {
      "page": "train_pls_from_ossl",
      "title": "Train pre-trained PLSR models from an OSSL library",
      "topics": [
        "train_pls_from_ossl"
      ]
    },
    {
      "page": "tsitelic",
      "title": "Tsitelic horizon (WRB 2022 Ch 3.1)",
      "topics": [
        "tsitelic"
      ]
    },
    {
      "page": "turbic_subgroup_usda",
      "title": "Turbic Subgroup helper (Gelods) Pass when gelic materials are present within 200 cm. Implementation: cryoturbation + permafrost within 200 cm.",
      "topics": [
        "turbic_subgroup_usda"
      ]
    },
    {
      "page": "ultic_subgroup_usda",
      "title": "Ultic Subgroup helper: argillic or kandic (any BS).",
      "topics": [
        "ultic_subgroup_usda"
      ]
    },
    {
      "page": "ultisol_qualifying_usda",
      "title": "Ultisol Order qualifier (USDA, KST 13ed, Ch 2) Pass when argillic OR kandic horizon present + BS < 35% in some part of the upper 200 cm.",
      "topics": [
        "ultisol_qualifying_usda"
      ]
    },
    {
      "page": "ultisol_usda",
      "title": "Ultisols (USDA Cap 15): argillic/kandic horizon + base saturation < 35%.",
      "topics": [
        "ultisol_usda"
      ]
    },
    {
      "page": "umbric_epipedon_usda",
      "title": "Umbric epipedon (USDA Soil Taxonomy, 13th edition)",
      "topics": [
        "umbric_epipedon_usda"
      ]
    },
    {
      "page": "umbric_horizon",
      "title": "Umbric horizon (WRB 2022)",
      "topics": [
        "umbric_horizon"
      ]
    },
    {
      "page": "umbric_subgroup_usda",
      "title": "Umbric Subgroup helper (in Spodosols) Pass when umbric_epipedon_usda passes.",
      "topics": [
        "umbric_subgroup_usda"
      ]
    },
    {
      "page": "usda_to_wrb_rsg",
      "title": "USDA Soil Taxonomy <-> WRB Reference Soil Group correlation table",
      "topics": [
        "usda_to_wrb_rsg"
      ]
    },
    {
      "page": "validate_pedon_json",
      "title": "Validate a PedonRecord against the JSON schema",
      "topics": [
        "validate_pedon_json"
      ]
    },
    {
      "page": "vermic_subgroup_usda",
      "title": "Vermic Subgroup helper (Vermudolls / Vermustolls) Pass when worm_holes_pct >= 50% in some horizon (KST 13ed worm burrow criterion).",
      "topics": [
        "vermic_subgroup_usda"
      ]
    },
    {
      "page": "vertic_aridisol_usda",
      "title": "Vertic Aridisols helper - delegates to vertic_subgroup_usda",
      "topics": [
        "vertic_aridisol_usda"
      ]
    },
    {
      "page": "vertic_horizon",
      "title": "Vertic horizon (WRB 2022 Ch 3.1)",
      "topics": [
        "vertic_horizon"
      ]
    },
    {
      "page": "vertic_properties",
      "title": "Vertic properties (WRB 2022)",
      "topics": [
        "vertic_properties"
      ]
    },
    {
      "page": "vertic_subgroup_usda",
      "title": "Vertic Subgroup helper (USDA, KST 13ed)",
      "topics": [
        "vertic_subgroup_usda"
      ]
    },
    {
      "page": "vertisol",
      "title": "Vertisol RSG gate (WRB 2022 Ch 4, p 101)",
      "topics": [
        "vertisol"
      ]
    },
    {
      "page": "vertisol_qualifying_usda",
      "title": "Vertisol Order qualifier (USDA, KST 13ed, Ch 2 / Ch 3 vertic horizon) Pass when a vertic horizon (clay >= 30, cracks, slickensides, LE) is present. Delegates to WRB 'vertic_horizon'.",
      "topics": [
        "vertisol_qualifying_usda"
      ]
    },
    {
      "page": "vertisol_usda",
      "title": "Vertisols (USDA Cap 16): slickensides + cracks. Delegates to vertic_horizon.",
      "topics": [
        "vertisol_usda"
      ]
    },
    {
      "page": "vertissolo",
      "title": "Vertissolos (SiBCS Cap 4, p 112; conceito Cap 3, p 105-106)",
      "topics": [
        "vertissolo"
      ]
    },
    {
      "page": "vertissolo_ebanico",
      "title": "Vertissolos Ebanicos (Cap 17): caracter ebanico em B (cores escuras dominantes).",
      "topics": [
        "vertissolo_ebanico"
      ]
    },
    {
      "page": "vertissolo_haplico",
      "title": "Vertissolos Haplicos (catch-all).",
      "topics": [
        "vertissolo_haplico"
      ]
    },
    {
      "page": "vertissolo_hidromorfico",
      "title": "Vertissolos Hidromorficos (Cap 17): horizonte glei OR caracter redoxico.",
      "topics": [
        "vertissolo_hidromorfico"
      ]
    },
    {
      "page": "vitrand_qualifying_usda",
      "title": "Vitrands qualifier (Cap 6, pp 117-118) Pass when 1500 kPa water retention < 15% (air-dried) and < 30% (undried) throughout 60%+ of the thickness. v0.8 proxy: uses water_content_1500kpa < 15%.",
      "topics": [
        "vitrand_qualifying_usda"
      ]
    },
    {
      "page": "vitrandic_subgroup_usda",
      "title": "Vitrandic Subgroup helper (USDA, KST 13ed)",
      "topics": [
        "vitrandic_subgroup_usda"
      ]
    },
    {
      "page": "vitric_properties",
      "title": "Vitric properties (WRB 2022 Ch 3.2.16)",
      "topics": [
        "vitric_properties"
      ]
    },
    {
      "page": "vitric_subgroup_usda",
      "title": "Vitric Subgroup helper (Andisols) Pass when volcanic_glass_pct >= 30 in a 25+ cm layer within 100 cm.",
      "topics": [
        "vitric_subgroup_usda"
      ]
    },
    {
      "page": "vlm_pick_provider",
      "title": "Pick the best available VLM provider",
      "topics": [
        "vlm_pick_provider"
      ]
    },
    {
      "page": "vlm_provider",
      "title": "Construct a VLM provider chat object",
      "topics": [
        "vlm_provider"
      ]
    },
    {
      "page": "wassent_qualifying_usda",
      "title": "Wassent Suborder qualifier (subaqueous Entisol). Pass when site$water_table_cm_above_surface > 0 (water column permanently above the surface).",
      "topics": [
        "wassent_qualifying_usda"
      ]
    },
    {
      "page": "wassist_qualifying_usda",
      "title": "Wassists Suborder qualifier (KST 13ed, Ch 10, p 203)",
      "topics": [
        "wassist_qualifying_usda"
      ]
    },
    {
      "page": "wrb06_code_to_rsg",
      "title": "WRB 2006 RSG code -> 2022 RSG name",
      "topics": [
        "wrb06_code_to_rsg"
      ]
    },
    {
      "page": "wrb2022_canonical",
      "title": "WRB 2022 canonical reference (parsed IUSS Working Group WRB 2022)",
      "topics": [
        "wrb2022_canonical"
      ]
    },
    {
      "page": "xanthic_subgroup_usda",
      "title": "Xanthic Subgroup helper (Oxisols) Pass when 50%+ colors have hue >= 7.5YR AND value >= 6 in B horizons.",
      "topics": [
        "xanthic_subgroup_usda"
      ]
    },
    {
      "page": "yermic_properties",
      "title": "Yermic properties (WRB 2022 Ch 3.2.17) - per-pedon test wrapping 'test_yermic_surface'.",
      "topics": [
        "yermic_properties"
      ]
    }
  ],
  "_pkglogo": "https://github.com/cran/soilKey/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/cran/soilKey/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "data.table",
    "R6",
    "rlang",
    "withr",
    "yaml"
  ],
  "_vignettes": [
    {
      "source": "v06_wosis_benchmark.Rmd",
      "filename": "v06_wosis_benchmark.html",
      "title": "Benchmarking soilKey against WoSIS",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Protocol overview",
        "2. Mini-benchmark on the canonical fixtures",
        "3. Confusion at the qualifier level",
        "4. Benchmark protocol against WoSIS (run-once, paper-grade)",
        "5. Reporting standards",
        "6. Offline canonical-fixture run (release-time sanity check)",
        "Summary",
        "7. v0.9.27 -- per-page retry + graceful degradation",
        "8. v0.9.30 -- bundled WoSIS sample for offline / CI testing"
      ],
      "created": "2026-05-19 09:20:21",
      "modified": "2026-05-19 09:20:21",
      "commits": 1
    },
    {
      "source": "v01_getting_started_pt.Rmd",
      "filename": "v01_getting_started_pt.html",
      "title": "Começando com soilKey (PT-BR)",
      "engine": "knitr::rmarkdown",
      "headings": [
        "0. O começo de 30 segundos",
        "A. Interface Shiny (sem código)",
        "B. Uma chamada R, uma fixture",
        "1. Construindo um PedonRecord do zero",
        "2. Classificando nos três sistemas",
        "Atalho: classificar nos três sistemas em uma chamada",
        "3. Inspecionando o key trace",
        "4. Provenance + evidence grade",
        "5. Cross-system: o mesmo perfil em três taxonomias",
        "6. Onde ir a partir daqui",
        "7. Onde reportar bugs / sugerir features / pedir ajuda",
        "Referências canônicas"
      ],
      "created": "2026-05-19 09:20:21",
      "modified": "2026-05-19 09:20:21",
      "commits": 1
    },
    {
      "source": "v03_cross_system_correlation.Rmd",
      "filename": "v03_cross_system_correlation.html",
      "title": "Cross-system classification: WRB 2022, SiBCS 5, USDA Soil Taxonomy",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. The same Ferralsol through three keys",
        "2. Cross-system table on the canonical fixtures",
        "3. Where the systems diverge",
        "4. Recovering the qualifier-level correspondence",
        "5. Validating the SiBCS ↔ WRB alignment",
        "6. Use cases for cross-system classification"
      ],
      "created": "2026-05-19 09:20:21",
      "modified": "2026-05-19 09:20:21",
      "commits": 1
    },
    {
      "source": "v07_end_to_end_pipeline.Rmd",
      "filename": "v07_end_to_end_pipeline.html",
      "title": "End-to-end pipeline: Gemma 4 + spatial + spectral + key + GIS export",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Set the scene",
        "2. Spatial guide -- before any pedon data",
        "3. Multimodal extraction with local Gemma 4",
        "4. Spectral analogy",
        "5. Deterministic classification",
        "6. HTML report",
        "7. GIS export",
        "8. The complete picture",
        "Summary"
      ],
      "created": "2026-05-19 09:20:21",
      "modified": "2026-05-19 09:20:21",
      "commits": 1
    },
    {
      "source": "v02_classify_wrb_end_to_end.Rmd",
      "filename": "v02_classify_wrb_end_to_end.html",
      "title": "End-to-end WRB 2022 classification with Ch 6 names",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Build the pedon",
        "2. Run the WRB key",
        "3. Inspect the principal qualifier resolution",
        "4. Inspect the supplementary qualifier resolution",
        "5. Compose the Ch 6 name",
        "6. Family suppression",
        "7. Evidence grade",
        "6. Render a self-contained pedologist-facing report",
        "Summary"
      ],
      "created": "2026-05-19 09:20:21",
      "modified": "2026-05-19 09:20:21",
      "commits": 1
    },
    {
      "source": "v01_getting_started.Rmd",
      "filename": "v01_getting_started.html",
      "title": "Getting started with soilKey",
      "engine": "knitr::rmarkdown",
      "headings": [
        "0. The 30-second on-ramp",
        "A. Zero-code GUI",
        "B. One R call, one fixture",
        "1. Building a PedonRecord from scratch",
        "2. Canonical fixtures",
        "3. Calling the diagnostics directly",
        "4. Diagnostic matrix across the canonical fixtures",
        "5. RSG-derived diagnostics: argic and mollic families",
        "6. End-to-end WRB classification",
        "7. Provenance and evidence grade",
        "8. Interoperability with aqp",
        "9. Module 4 -- OSSL spectroscopy bridge (gap-filling)",
        "10. Module 3 -- SoilGrids / Embrapa spatial prior (sanity check)",
        "11. Module 2 -- Multimodal extraction via ellmer",
        "12. SiBCS 5ª edição (Embrapa, 2018)",
        "13. v0.7 scope and the v0.3.3+ roadmap"
      ],
      "created": "2026-05-19 09:20:21",
      "modified": "2026-05-19 09:20:21",
      "commits": 1
    },
    {
      "source": "v08_kssl_nasis_multilevel.Rmd",
      "filename": "v08_kssl_nasis_multilevel.html",
      "title": "KSSL + NASIS: multi-level USDA Soil Taxonomy benchmark",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. The KSSL + NASIS join (load_kssl_pedons_with_nasis)",
        "2. The four levels (benchmark_run_classification)",
        "3. Headline numbers (v0.9.31, n=2638, ±1.7 pp CI)",
        "4. Release-by-release trajectory",
        "5. The four levels are independently measurable",
        "6. v0.9.25 -- the KST canonicaliser story",
        "7. What's missing (roadmap)",
        "Summary"
      ],
      "created": "2026-05-19 09:20:21",
      "modified": "2026-05-19 09:20:21",
      "commits": 1
    },
    {
      "source": "v05_spatial_spectra_pipeline.Rmd",
      "filename": "v05_spatial_spectra_pipeline.html",
      "title": "Spatial prior + OSSL spectra pipeline (Modules 3 & 4)",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Start from a partially-described pedon",
        "2. Module 3 -- spatial prior consistency check",
        "3. Module 4 -- OSSL gap-filling",
        "4. Re-classify with the gap-filled pedon",
        "5. Combining priors and posteriors",
        "Summary"
      ],
      "created": "2026-05-19 09:20:21",
      "modified": "2026-05-19 09:20:21",
      "commits": 1
    },
    {
      "source": "v09_perfil_embrapa_pt.Rmd",
      "filename": "v09_perfil_embrapa_pt.html",
      "title": "Um perfil real do A ao Z (estilo Embrapa, em portugues)",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introducao",
        "O perfil: Argissolo Vermelho-Amarelo distrofico tipico",
        "Diagnosticos manuais (sanity check)",
        "Tres classificacoes paralelas",
        "SiBCS 5a edicao",
        "WRB 2022",
        "USDA Soil Taxonomy 13a edicao",
        "Comparacao cross-system",
        "Relatorio HTML",
        "Cruzamento com priore espacial (opcional)",
        "Cruzamento com SoilGrids 250m (global)",
        "Resumo"
      ],
      "created": "2026-05-19 09:20:21",
      "modified": "2026-05-19 09:20:21",
      "commits": 1
    },
    {
      "source": "v04_vlm_extraction.Rmd",
      "filename": "v04_vlm_extraction.html",
      "title": "Vision-language extraction of pedon data (Module 2)",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. The mock provider",
        "2. Schemas and prompts",
        "3. Walking the extraction loop with the mock",
        "4. Merging extraction into a PedonRecord",
        "5. Provenance and evidence grade",
        "6. Production: swap the mock for an ellmer chat",
        "6a. Local-first with Gemma 4 (Ollama)",
        "6b. Cloud providers (Anthropic, OpenAI, Google)",
        "6c. The one-liner: classify_from_documents()"
      ],
      "created": "2026-05-19 09:20:21",
      "modified": "2026-05-19 09:20:21",
      "commits": 1
    }
  ],
  "_score": 4.278753600952829,
  "_indexed": true,
  "_nocasepkg": "soilkey",
  "_universes": [
    "cran",
    "hugomachadorodrigues"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.9.97",
      "date": "2026-05-19T14:20:35.000Z",
      "distro": "noble",
      "commit": "52ec21dd0b9b877640546d1c1d6b9d75ea204c93",
      "fileid": "f4646b3a9e60ab425b47592f2a816ae56163ace4b7c84545552d7b19e91cdc22",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/26102339739"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.9.97",
      "date": "2026-05-19T14:20:26.000Z",
      "distro": "noble",
      "commit": "52ec21dd0b9b877640546d1c1d6b9d75ea204c93",
      "fileid": "2bfb2f05e648811ee3598746a342a4ea10889025faf99021ce9ca25f60ee3213",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/26102339739"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.9.97",
      "date": "2026-06-02T14:22:56.000Z",
      "commit": "52ec21dd0b9b877640546d1c1d6b9d75ea204c93",
      "fileid": "1140c0f1434b046e22cd6af1d9998eb642b0c327a8be8ad2627789114914967b",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/26102339739"
    }
  ]
}