`CostOverride` and `BaseCost` look sort of identical except for the presence of the `account` field and I imagine they'll also have to stay in sync as they evolve. Do you think it would make sense to combine them and just allow `account` to be `null` for the base cost? We should maybe also specify that the `account, tag_pool, message_direction` combination should be unique?