We've discussed this informally before, but just wanted to formalize it here. The question is whether this is an issue -- I am raising it so I think so :p, but basically while masks look like maps and behave like them in code, they are abstractly different things. In practice, people make lots of mask versions -- often more than one mask for a given map product, and often the same mask applied to many different map-like products including derived maps. So unless it's difficult to implement, I'd push for masks being their own product (and they can inherit whatever low-level code from some base maps thing if needed for functionality).
Said another way: only from the point of view of client code are masks like maps. From a data management perspective, they are not maps.
We've discussed this informally before, but just wanted to formalize it here. The question is whether this is an issue -- I am raising it so I think so :p, but basically while masks look like maps and behave like them in code, they are abstractly different things. In practice, people make lots of mask versions -- often more than one mask for a given map product, and often the same mask applied to many different map-like products including derived maps. So unless it's difficult to implement, I'd push for masks being their own product (and they can inherit whatever low-level code from some base maps thing if needed for functionality).
Said another way: only from the point of view of client code are masks like maps. From a data management perspective, they are not maps.