SemanticChange.java
package com.taxonomy.dto;
/**
* A single semantic change between two architecture versions.
*
* <p>Represents one addition, removal, or modification of an element
* or relation, together with before/after values where applicable.
*
* @param changeType ADD, REMOVE, or MODIFY
* @param category ELEMENT or RELATION
* @param id the element ID or relation key
* @param description human-readable summary (e.g. "Element CP-1023 title changed")
* @param beforeValue the value before the change (null for additions)
* @param afterValue the value after the change (null for removals)
*/
public record SemanticChange(
String changeType,
String category,
String id,
String description,
String beforeValue,
String afterValue
) {}