anchor.diff:      fProjectDescription: string;
       fMaxNearestObjectDistanceInMeters: Integer;
       fTiler: TTiler;
  -    //fTilerEvent: TEventEntry;
       fDBConnection: TCustomConnection; // owns
       fProjectEvent: TEventEntry;
       fClients: TGroup; // owns, lock with TMonitor
  
positive.code:   fMaxNearestObjectDistanceInMeters := aMaxNearestObjectDistanceInMeters;
    fTiler := TTiler.Create(aConnection, aTilerFQDN, aTilerStatusURL);
    fTiler.onTilerStartup := handleTilerStartup;
  //  fTilerEvent := aConnection.publish(aTilerEventName, False);
    fDBConnection := aDBConnection;
    fProjectCurrentScenario := nil;
    fProjectRefScenario := nil;
    fMeasures := TObjectDictionary<string, TMeasure>.Create([doOwnsValues]);
    // projection
    // imb init
  
negative.code:     property ProjectDescription: string read fProjectDescription write setProjectDescription;
      property ProjectEvent: TEventEntry read fProjectEvent;
      property maxNearestObjectDistanceInMeters: Integer read fMaxNearestObjectDistanceInMeters;
      property tiler: TTiler read fTiler;
      property Timers: TTimerPool read fTimers;
      property scenarios: TObjectDictionary<string, TScenario> read fScenarios; // owns, lock with TMonitor
  