# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.2.0] - 2024/11/17

### Added

- Conversion methods to construct a TileMatcher or TileLayout from any arbitrarily sized data array. This supports
both any-lengthed arrays (Though the methods will fail for non-square lengths), and any internal type that can be
converted to a Tile ID

### Changed

- **[BREAKING]** Swapped parameters of `TileMatcher::single` and `TileMatcher::single_match`, for better semantics
  - `::single` Now expects one pre-configured rule
  - `::single_match` Now expects a tile ID that will be converted to an exact match rule
- **[BREAKING]** `TileLayout` and `TileMatcher` now internally use a 7x7 grid instead of 3x3. This change
is only breaking if you directly accessed the internally stored data grid, or constructed an instance directly
without using one of the constructor methods

### Deprecated

- `TileStatus::from_ldtk_value` - Replaced by a more generic `From<IntoTile>` impl that covers `i64` conversion
- `TileStatus::to_ldtk_value` - Replaced by an impl of `From<TileStatus>` for `i64`