ensure_tibbles() now converts empty lists (from empty JSON arrays) to empty tibbles, so lkup_model(), lkup_beta(), and lkup_beta_var() always return a tibble even when the project has no data for that table (#TBD).
spdgt.core 0.0.6.1
check_id() now accepts character strings that represent whole numbers (e.g., "1") and coerces them to integer. This makes all _id parameters work seamlessly with values returned by shiny::selectInput().
lkup_read_dau_sf() now correctly passes resolved DAU IDs (not the raw id argument) to the GMU query when filtering by name.
lkup_models() renamed to lkup_model() for consistency with the singular convention used by lkup_model_id() and lkup_model_opts(). No deprecated alias; all consumers updated simultaneously.
lkup_surveytype(), lkup_surveytype_id(), and lkup_surveytype_opts() renamed to lkup_survey_type(), lkup_survey_type_id(), and lkup_survey_type_opts() for consistency with other two-word lookup names. No deprecated aliases; all consumers updated simultaneously.
not_found_message() is now internal. Only used by resolve functions within the package.
resolve_ipm_param() (formerly resolve_ipm_parameter()) renamed for consistency with lkup_ipm_param(). No deprecated alias. Now uses structured cli error messages instead of fragile paste0()/paste() assembly.
resolve_models() renamed to resolve_model() for consistency with other singular resolve functions. No deprecated alias.
resolve_species() now uses the correct project_species table (not the raw species table) for fuzzy-match suggestions when a name is not found.
spdgt.core 0.0.5.0
All read_*() and share_*() functions renamed with lkup_ prefix for consistency: read_gmu() → lkup_read_gmu(), share_gmu() → lkup_share_gmu(), etc. No deprecated aliases; all consumers updated simultaneously.
make_dau_filter() now correctly handles vector inputs for version_id.
read_dau_sf() now correctly passes species_id through to the GMU query, preventing cross-species boundary errors.
read_shared() error messages for missing packages (arrow, readr, httr2) now correctly display install instructions.
share_dau() documentation now explains that spatial exports are not supported because DAU geometry is derived client-side by dissolving GMU boundaries.
share_gmu() now includes the srid parameter for spatial exports, consistent with other share functions.
spdgt.core 0.0.3.6
Added “Getting started”, “Working with spatial data”, and “Using spdgt.core with spdgt.sight” vignettes.
Added codecov badge to README.
Added column-level return value documentation for all tibble-returning functions.
Added dev infrastructure: lintr, pkgdown, pre-commit configuration.
Added input validation to all lookup functions; invalid argument types now produce clear error messages.
Added mocked unit tests for all lookup, resolve, filter, and data access functions to enable testing without API credentials.
add_cache_tables() now warns and builds the cache when called with an empty cache, instead of aborting with an error.
All internal code now uses the base pipe (|>) instead of magrittr (%>%).
lkup_dau() now uses the same argument style as lkup_gmu(), with all parameters defaulting to NULL.
lkup_gmu() and lkup_gmu_opts() now accept dau_name and dau_id arguments to filter management units by analysis unit.
read_shared() now uses cli::cli_abort() consistently for all error messages.
read_user() no longer triggers partial matching warnings on user data.
Tibble-returning lookup functions now show a “Lookup” context header when printed interactively. The header is suppressed in non-interactive sessions to keep server logs clean.