# dml-bucket A bucket represents a real category of spending, like beer or holidays. | Field | Type | Description | | ----------------- | ------- | --------------------------------------------------------- | | id | string | A unique identifier for the bucket. | | name | string | A short description of the real category of spending. | | balance | number | The amount of money the user intends to be free to spend. | | balance_cache_key | string | A cache key for the balance. See notes. | | group | string | The name of a group of buckets to which this belongs. | | is_hidden | boolean | Whether this bucket should be hidden in the UI. | | is_favourite | boolean | Whether this bucket should be given priority in the UI. | Constraints: - `name` must be unique. - `id` must be equal to `name`, that is, `id` is an alias of the property, `name`. - `is_hidden` should never be true when `balance` is non-zero. Notes: - `balance_cache_key` must be of the format: `:`. - `is_hidden` is used as an equivalent of soft-deletion. Buckets should never be actually deleted. Sources: req-027, req-098, req-110, req-111, task-028, ui-designs/desktop-views