# griddy 0.1.0

Initial CRAN release.

## Workflow

- `classify_dynamics()`, `markov_dynamics()`, `spatial_markov()`, and
  `rank_mobility()` accept long `sf` panels keyed by explicit `id`, `time`, and
  `value` columns.
- `transition_matrix()`, `steady_state()`, `class_intervals()`, and
  `lag_intervals()` provide tidy access to results.
- `plot_transition_matrix()`, `plot_spatial_markov()`, and
  `plot_rank_mobility()` return `ggplot2` objects.

## Spatial weights

- `spatial_markov()` accepts a `geometry` argument: an `sf` tibble with one
  row per spatial unit and `nb` / `wt` list-columns produced by `sfdep`. This
  is the preferred input. `listw` and `nb` arguments remain accepted for
  compatibility with prior workflows and oracle comparisons.

## Data

- Bundled `usjoin`: 48 contiguous US state per-capita personal income,
  1929–2009, mirroring PySAL's reference dataset for spatial Markov examples.

## Validation

- Static fixtures cross-checked against `estdaR::sp.mkv()` and
  `spdyn::spMarkov()`. Optional live cross-checks run when those packages or
  PySAL `giddy` are installed.
