// AllowNull indicates that a null value is permitted when setting/passing a value.
// Although the type of this property is string (and not string?) we will allow people to 'set' a null value,
// which will actually be replaced with a non-null fallback value. Hence we [AllowNull].
[AllowNull]
public string NonNullableProperty {
get => _nonNullableField;
set => _nonNullableField = value ?? "fallback";
}