async save(milestone) {
        if (this.#ids[milestone.id.toHexString()]) {
            const existingIndex = this.#store.findIndex((item) => {
                return item.id.equals(milestone.id);
            });
            this.#store.splice(existingIndex, 1, milestone);
        } else {
            this.#store.push(milestone);
            this.#ids[milestone.id.toHexString()] = true;
        }

        for (const event of milestone.events) {
            this.#DomainEvents.dispatch(event);
        }
    }
@param {Milestone} milestone

@returns {Promise<void>}