Why does CollectionDifference<ChangeElement>.Change.remove need an element?

When creating a CollectionDifference<Character> explicitly like:

let diff = CollectionDifference<Character>([
    .remove(offset: 10, element: " ", associatedWith: nil),
    .remove(offset: 8, element: " ", associatedWith: nil),
    .remove(offset: 7, element: " ", associatedWith: nil),
    .remove(offset: 6, element: " ", associatedWith: nil),
    .insert(offset: 6, element: "w", associatedWith: nil),
    .insert(offset: 7, element: "o", associatedWith: nil),
    .insert(offset: 9, element: "l", associatedWith: nil),
    .insert(offset: 10, element: "d", associatedWith: nil),
])!
print("Hello there".applying(diff)!) // Prints "Hello world"

The .inserts obviously need an element, but why do the .removes also need an element?

(Note that it doesn't seem to matter what character I set the element of the .removes to, they are all spaces instead of "e", "e", "h" and "t" but it still works as expected.)

Typically you wouldn't construct a collection difference directly like this, you'd recover it from difference(from:), and there the element member of .remove would tell you which character is removed:

print("Hello there".difference(from: "Hello world"))
CollectionDifference<Character>(
  insertions: [
    Swift.CollectionDifference<Swift.Character>.Change.insert(offset: 6, element: "t", associatedWith: nil), 
    Swift.CollectionDifference<Swift.Character>.Change.insert(offset: 7, element: "h", associatedWith: nil), 
    Swift.CollectionDifference<Swift.Character>.Change.insert(offset: 8, element: "e", associatedWith: nil), 
    Swift.CollectionDifference<Swift.Character>.Change.insert(offset: 10, element: "e", associatedWith: nil)
  ], 
  removals: [
    Swift.CollectionDifference<Swift.Character>.Change.remove(offset: 6, element: "w", associatedWith: nil), 
    Swift.CollectionDifference<Swift.Character>.Change.remove(offset: 7, element: "o", associatedWith: nil), 
    Swift.CollectionDifference<Swift.Character>.Change.remove(offset: 9, element: "l", associatedWith: nil), 
    Swift.CollectionDifference<Swift.Character>.Change.remove(offset: 10, element: "d", associatedWith: nil)
  ]
)

Yes. But I want to know why the element cannot be skipped for removals (maybe it could have been optional?) and if it’s ok to just use eg a space when for example implementing functionality for serializing character diffs to and from some compact representation.