Specification type should actually be `Specifications::TYPE_INTEGER | Specifications::TYPE_STRING`, as in future NoSQL storage `id` will be a hash (for this reason we always hint ids as `mixed` and not `int`).