Review replicated shopping-cart conflicts

src/replicated-cart-types.tsTypeScript
@@ -0,0 +1,25 @@
1+export type VersionVector = Readonly<Record<string, number>>;
2+
3+export interface CartOperation {
4+ operationId: string;
5+ replicaId: string;
6+ sequence: number;
7+ productId: string;
8+ kind: "add" | "remove";
9+ quantityDelta: number;
10+ observed: VersionVector;
11+ clientPriceCents: number;
12+}
13+
14+export interface CartItem {
15+ productId: string;
16+ quantity: number;
17+ unitPriceCents: number;
18+ updatedAtMs: number;
19+}
20+
21+export interface CartState {
22+ cartId: string;
23+ items: CartItem[];
24+ vector: VersionVector;
25+}