Problem
Adding a new composite property type (like a new multi-value style) requires changes in many places throughout the codebase. Each new type needs its own handling in style differencing, data output, cloning, merging, and variable lookup — all following the same pattern. This makes the codebase harder to maintain and increases the risk of missing a required change.
Solution
Extract a shared interface for composite values so that adding a new composite type requires implementing the interface in one place rather than updating multiple files with repetitive logic.
Acceptance criteria
Implementation details are tracked internally.
Problem
Adding a new composite property type (like a new multi-value style) requires changes in many places throughout the codebase. Each new type needs its own handling in style differencing, data output, cloning, merging, and variable lookup — all following the same pattern. This makes the codebase harder to maintain and increases the risk of missing a required change.
Solution
Extract a shared interface for composite values so that adding a new composite type requires implementing the interface in one place rather than updating multiple files with repetitive logic.
Acceptance criteria