Necessary to properly namespace these objects. This will also allow for contracts in the future if ever needed since contracts can be built upon schemas.
Milestone: patch
These are not IDs but names so this corrects the mistake that the API makes including providing a safe default (i.e. empty array) when the names are missing.
Milestone: minor
Necessary to provide typed defaults when attributes are missing. This is especially important when the API answers `nil` values since the API doesn't provide safe defaults.
Milestone: minor
Use of `id` (a.k.a. name) and `name` (a.k.a. label) was confusing and not an accurate representation of what these attributes are. This corrects the API design mistakes by having the model transform these keys appropriately.
Milestone: minor
Necessary to supply the firmware version so the firmware can ignore/reject firmware updates that are of the same version as currently used.
Milestone: minor
Use of `sort-by` -- as provied by the API -- is awkward so this simplifies usage so you can use the `sort` key as a symbol which is consistent with existing keys.
Milestone: minor
Necessary to prevent the API design from infecting this implementation by clarifying the difference between data and metadata information (like how a basic JSON Data API response should be structured).
Milestone: minor
Necessary to add clarity to what this model represents as `Entry` was slightly confusing, and now that there is no conflict with native `Data` objects, we can use `Data` for the model name.
Milestone: minor
Necessary to handle API response metadata so we can have distinct models for data and metadata.
RuboCop has been updated to ignore the parameters because RuboCop still doesn't have the ability to distinguish between whole value objects and standard objects (and we need safe defaults in this case).
Milestone: minor
Necessary to ensure we reference native Ruby data objects versus the new data objects own by this gem when dealing with JSON Data APIs.
Milestone: patch
Necessary to ensure each endpoint is properly configured with settings unique to the client instance instead of sharing global settings. This cropped up due to needing to deal with multiple TRMNL API server routes when they should be a single route.
Milestone: minor