{
    "AppSettings": {
        "Debug": false,                                                 // Enables extra debug logging, slows down the program by alot
        "SilentMode": true                                              // The tool will stop and prompt you to continue on every remapping if disable   
    },
    "Remapper": {
        "AssemblyPath": "./Data/Managed/Assembly-CSharp.dll",           // Path to the assembly we want to remap
        "OutputPath": "./Data/Assembly-CSharp-Remapped.dll",            // Path including the filename and extension we want to write the changes to
        "MappingPath": "./Data/Mappings.jsonc",                         // Path to the mapping file 
        "UseProjectMappings": true,                                     // Use the active cross compiler projects mappings     
        "MappingSettings": {
            "RenameFields": true,                                       // Names of fields of the matched type will be renamed to the type name with approproiate convention
            "RenameProperties": true,                                   // Names of properties of the matched type will be renamed to the type name with approproiate convention
            "Publicize": true,                                          // Publicize all types, methods, and properties : NOTE: Not run until after the remap has completed
            "Unseal": true                                              // Unseal all types : NOTE: Not run until after the remap has completed
        }
    },
    "AutoMapper": {
        "AssemblyPath": "./Data/Managed/Assembly-CSharp.dll",           // Path to the assembly we want to remap
        "OutputPath": "./Data/Assembly-CSharp-Remapped.dll",            // Path including the filename and extension we want to write the changes to
        "RequiredMatches": 5,                                           // Minimum number of times a member must have this name in the assembly before considering it for remapping
        "MinLengthToMatch": 7,                                          // Minimum length of the field/property name in code before it will be considered for a rename
        "SearchMethods": true,                                          // Will attempt to map types from method meta data and parameters
        "MappingSettings": {
            "RenameFields": true,                                       // Names of fields of the matched type will be renamed to the type name with approproiate convention
            "RenameProperties": true,                                   // Names of properties of the matched type will be renamed to the type name with approproiate convention
            "Publicize": true,                                          // Publicize all types, methods, and properties : NOTE: Not run until after the remap has completed
            "Unseal": true                                              // Unseal all types : NOTE: Not run until after the remap has completed
        },
        "TypesToIgnore": [                                              // Any member name you want to ignore while iterating through the assembly
            "Boolean",
            "List",
            "Dictionary",
            "Byte",
            "Int16",
            "Int32",
            "Func",
            "Action",
            "Object",
            "String",
            "Vector2",
            "Vector3",
            "Vector4",
            "Stream",
            "HashSet",
            "Double",
            "IEnumerator"
        ],
        "TokensToMatch": [                                              // The auto mapper will look for these tokens in class names and prioritize those
            "Class",
            "GClass",
            "GStruct",
            "Interface",
            "GInterface"
        ],
        "PropertyFieldBlackList": [                                     // Property or fields names to ignore in the automap, these are case sanitized so case does not matter
            "Columns",
            "mColumns",
            "Template",
            "Condition",
            "Conditions",
            "Counter",
            "Instance",
            "Command",
            "_template"
        ],
        "MethodParamaterBlackList": [                                   // method parameter names to ignore in the automap, these are case sanitized so case does not matter
        ]
    },
    "CrossCompiler": {
        "AutoLoadLastActiveProject": true,                              // Autoload last active project
        "LastLoadedProject": "G:\\development\\SPT-MODS\\StashSearch\\ReCodeItProj.json"                                         // Last loaded project path
    }
}