anchor.diff:  -type ct_config() :: proplists:proplist().
   -type perms_test_spec() :: #perms_test_spec{}.
   
  +-type perms_per_file() :: #{file_id:file_guid() => [FilePerm :: binary()]}.
  +
   -record(scenario_ctx, {
       meta_spec :: perms_test_spec(),
       scenario_name :: binary(),
       scenario_root_dir_path :: file_meta:path(),
       required_space_privs = [] :: owner | [privileges:space_privilege()],
  -    required_perms_per_file = #{} :: #{file_id:file_guid() => [FilePerm :: binary()]},
  +    required_perms_per_file = #{} :: perms_per_file(),
       extra_data :: map()
   }).
   -type scenario_ctx() :: #scenario_ctx{}.
  
positive.code:     ),
      ?assertMatchWithPerms(
          ok,
          Operation(SessId, TestCaseRootDirPath, ExtraData),
          ScenarioName,
          ComplementaryPermsPerFile
      ),
      run_final_ownership_check(
          FileOwnerSessId, SessId, TestCaseRootDirPath, TestSpec
      ).
  
  
  get_complementary_perms(Node, PermsPerFile)->
      maps:fold(fun(FileGuid, FileRequiredPerms, {BasePermsPerFileAcc, RequiredPermsAcc}) ->
          {
  
negative.code:     SpaceUserSessId = ?config({session_id, {SpaceUser, ?GET_DOMAIN(Node)}}, Config),
  
      lists:foreach(fun({SessId, ScenarioType, ScenarioName, AceWho, AceFlags}) ->
          ScenarioRootDirPath = ?SCENARIO_DIR(ScenariosRootDirPath, ScenarioName),
  
          % Create necessary file hierarchy
          {PermsPerFile, ExtraData} = create_files(
  