NEWS.md
Preparing for CRAN submission.
grout() is now the definitive user constructor; removed internal .groutfrom() wrapper and dead dimXY compatibility branch.
.tilescheme() simplified: tile counts now computed with ceiling() for clarity; removed duplicate “hack” comment logic.
print.grout_tiles() output uses x format for dimensions and now returns x invisibly (not NULL).
plot.grout_tiles() rewritten to iterate individual tile rectangles rather than relying on an unexported as_rect S3 method.
as_rect_grout() is now an internal helper (not an S3 generic); .p2s() (unused) removed.
extent.grout_tilescheme() replaced by internal .tilescheme_extent().
tile_spec() and tile_zoom() cleaned up: explicit as.integer() coercions, removed Remotes: dependency on dev vaster, informational messages improved.
Comprehensive test suite added covering dangle trimming, contiguous offsets, input validation, and tile_spec()/tile_zoom() output.
DESCRIPTION bumped to R (>= 3.5.0), added Config/testthat/edition: 3, removed Remotes: field, added wk to Suggests.
New function tile_spec() to generate tile specification from input extent and dimension at a given zoom. New function tile_zoom() returns the natural maximum zoom value.
Removed all spatial input coercions; just use dimension + extent.
Added extent columns to tile_index().
Removed raster dependency; uses vaster for basic grid/cell logic.