anchor.diff:  
    if (Self.fproperties.Trat <> -1) then
     begin
  -   json['trat'] := Self.fproperties.Trat;
  -   json['tratSmer'] := Integer(Self.fproperties.TratSmer);
  +   json['railway'] := Self.fproperties.Trat;
  +   json['railwayDir'] := Integer(Self.fproperties.TratSmer);
     end;
   
    json['speedGo'] := Self.fproperties.speedGo;
    json['speedStop'] := Self.fproperties.speedStop;
  - json['odbocka'] := Self.fproperties.odbocka;
  + json['turn'] := Self.fproperties.odbocka;
   
    if (includeStaveni) then
  -   Self.GetPtStaveni(json['staveni']);
  -end;
  -
  -procedure TJC.GetPtStaveni(json: TJsonObject);
  -begin
  - json['staveni'] := Self.staveni;
  - json['postaveno'] := Self.postaveno;
  - json['krok'] := Self.fstaveni.krok;
  - json['rozpadBlok'] := Self.fstaveni.rozpadBlok;
  - json['rozpadRuseniBlok'] := Self.fstaveni.rozpadRuseniBlok;
  +   Self.GetPtState(json['state']);
  +end;
  +
  +procedure TJC.GetPtState(json: TJsonObject);
  +begin
  + json['activating'] := Self.staveni;
  + json['active'] := Self.postaveno;
  + json['step'] := Self.fstaveni.krok;
  + json['destroyBlock'] := Self.fstaveni.rozpadBlok;
  + json['destroyEndBlock'] := Self.fstaveni.rozpadRuseniBlok;
    json['ab'] := Self.AB;
   end;
   
  
positive.code:       procedure ClientDisconnect(AContext: TIDContext);
  
        procedure GetPtData(json: TJsonObject; includeStaveni: Boolean);
        procedure GetPtStaveni(json: TJsonObject);
        procedure PostPtStav(reqJson: TJsonObject; respJson: TJsonObject);
  
        property data: TJCprop read fproperties write SetProperties;
  
negative.code: begin
   json['name'] := Self.fproperties.name;
   json['id'] := Self.fproperties.id;
   json['signalId'] := Self.fproperties.navestidloBlok;
   case (Self.typ) of
    TJCType.vlak: json['type'] := 'VC';
    TJCType.posun: json['type'] := 'PC';
   end;
   case (Self.fproperties.dalsiNavaznost) of
    TJCNextNavType.zadna: json['nextSignal'] := '-';
    TJCNextNavType.trat: json['nextSignal'] := 'trat';
    TJCNextNavType.blok: begin
      json['nextSignal'] := 'block';
      json['nextSignalId'] := Self.fproperties.dalsiNavestidlo;
    end;
   end;
  
   for vyhZaver in Self.fproperties.vyhybky do
    begin
     newObj := json.A['turnouts'].AddObject();
     newObj['block'] := vyhZaver.Blok;
     case (vyhZaver.Poloha) of
      TTurnoutPosition.plus: newObj['position'] := '+';
      TTurnoutPosition.minus: newObj['position'] := '-';
     end;
    end;
  
   for usek in Self.fproperties.useky do
     json.A['tracks'].Add(usek);
  
   for odvratZaver in Self.fproperties.odvraty do
    begin
     newObj := json.A['refuges'].AddObject();
     newObj['block'] := odvratZaver.Blok;
     case (odvratZaver.Poloha) of
      TTurnoutPosition.plus: newObj['position'] := '+';
      TTurnoutPosition.minus: newObj['position'] := '-';
     end;
     newObj['refBlock'] := odvratZaver.ref_blk;
    end;
  
   for prjZaver in Self.fproperties.prejezdy do
    begin
     newObj := json.A['crossings'].AddObject();
     newObj['crossing'] := prjZaver.Prejezd;
     newObj['open'] := prjZaver.oteviraci;
     for usek in prjZaver.uzaviraci do
       newObj.A['close'].Add(usek);
    end;
  
   for refZaver in Self.fproperties.zamky do
    begin
     newObj := json.A['locks'].AddObject();
     newObj['lock'] := refZaver.Blok;
     newObj['refTrack'] := refZaver.ref_blk;
    end;
  
   for usek in Self.fproperties.vb do
  