Observed-vs-admitted semantic type drift without implicit repair.
@type status() :: :ALIGNED | :ONTOLOGY_AHEAD | :ASH_AHEAD | :AMBIGUOUS | :LOSSY | :REFUSED
@type t() :: %AshR2RML.SemanticType.Diff{ changes: [map()], expected_id: String.t() | nil, observed_id: String.t() | nil, status: status() }