anchor.diff:  
       function CheckIfDifferentAndAssign(const aValue : Variant) : boolean; virtual; abstract;
       function AsString: String; virtual; abstract;
  -    function AsJson(const aFieldName : String; const aSkipIfNull : boolean): String; virtual;
  +    function AsJson(const aFieldName : String; const aSkipIfNull : boolean; const aMaxLength: integer = 0): String; virtual;
   
       property IsNull: Boolean read GetIsNull write SetIsNull;
       property NotNull: Boolean read GetNotNull;
  
positive.code:   SetTagChanged(false);
  end;
  
  function TAbstractNullable.AsJson(const aFieldName: String; const aSkipIfNull: boolean): String;
  begin
    if Self.IsNull and aSkipIfNull then
      Result := ''
    else
      Result := '"' + aFieldName + '":"' + Self.AsString + '"';
  end;
  
  end.
  
negative.code:   Result := TNullableTime.VariantToString(Self.AsVariant);
  end;
  
  function TNullableTime.AsJson(const aFieldName: String; const aSkipIfNull: boolean; const aMaxLength: integer = 0): String;
  begin
    if Self.IsNull and aSkipIfNull then
      Result := ''
  