anchor.diff:      {Get, Set}.
   
   general_settings_lens_props() ->
  -    [{indexerThreads, indexer_threads_lens(), 4},
  -     {memorySnapshotInterval, id_lens(<<"indexer.settings.inmemory_snapshot.interval">>), 200},
  -     {stableSnapshotInterval, id_lens(<<"indexer.settings.persisted_snapshot.interval">>), 5000},
  -     {maxRollbackPoints, id_lens(<<"indexer.settings.recovery.max_rollbacks">>), 5},
  -     {logLevel, id_lens(<<"indexer.settings.log_level">>), <<"debug">>}].
  +    [{indexerThreads, indexer_threads_lens()},
  +     {memorySnapshotInterval, id_lens(<<"indexer.settings.inmemory_snapshot.interval">>)},
  +     {stableSnapshotInterval, id_lens(<<"indexer.settings.persisted_snapshot.interval">>)},
  +     {maxRollbackPoints, id_lens(<<"indexer.settings.recovery.max_rollbacks">>)},
  +     {logLevel, id_lens(<<"indexer.settings.log_level">>)}].
  +
  +general_settings_defaults() ->
  +    [{indexerThreads, 4},
  +     {memorySnapshotInterval, 200},
  +     {stableSnapshotInterval, 5000},
  +     {maxRollbackPoints, 5},
  +     {logLevel, <<"debug">>}].
   
   general_settings_lens_get(Dict) ->
       lens_get_many(general_settings_lens_props(), Dict).
  
positive.code:     end.
  
  do_get_from_json(Key, JSON) ->
      {_, Lens, _} = lists:keyfind(Key, 1, known_settings()),
      Settings = decode_settings_json(JSON),
      lens_get(Lens, Settings).
  
  
negative.code: 
  general_settings_lens() ->
      {fun general_settings_lens_get/1, fun general_settings_lens_set/2}.
  
  compaction_interval_default() ->
      [{from_hour, 0},
  