anchor.diff:  {$ELSE}
           p := TValueData(Value).FValueData.GetReferenceToRawData;
   {$ENDIF}
  -        if GetFieldDisabled(f) then
  +        if GetFieldIgnore(f) then
             continue;
           Result := FromJson(f.FieldType.Handle, GetFieldDefault(f, obj.AsObject[GetFieldName(f)]), v);
           if Result then
  
positive.code:   Result := r.Name;
  end;
  
  class function TSuperRttiContext.GetFieldDisabled(r: TRttiField): boolean;
  var
    o: TCustomAttribute;
  begin
    for o in r.GetAttributes do
      if o is SOIgnore then
        Exit(True);
    Result := false;
  end;
  
negative.code:   SOName = class(TSuperAttribute);
    SODefault = class(TSuperAttribute);
    SOIgnore = class(TCustomAttribute);
    SOIgnoreSerialize = class(TCustomAttribute);
  
    TSuperRttiContext = class
    private
      class function GetFieldName(r: TRttiField): string;
      class function GetFieldDefault(r: TRttiField; const obj: ISuperObject): ISuperObject;
      class function GetFieldIgnore(r: TRttiField): boolean;
      class function GetFieldIgnoreSerialize(r: TRttiField): boolean;
    public
      Context: TRttiContext;
      SerialFromJson: TDictionary<PTypeInfo, TSerialFromJson>;
  