For tables, we have a property
This is documented in the javadoc and in the developer guide to be in milliseconds.
However, when creating (or updating) a table through the REST API, the ttl is interpreted as seconds, and the DatasetInstanceHandler converts it to milliseconds; and when querying the properties of a dataset, it converts it back to seconds before returning it as JSON.
This means that the two APIs to create a dataset (REST and Java) assign a different meaning to this property: If creating the dataset through REST, it has to be in seconds; if creating it in the application's configure method using createDataset(), it must be in milliseconds.
That is inconsistent and counter-intuitive.
It gets more complicated when a custom dataset has its own property that it uses to set the TTL for an embedded table. If that property does not have the exact same name (`dataset.table.ttl`), then it will not undergo the same translation in the HTTP handler.