C# SDK Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.16.0] - 2026-07-31
Section titled “[0.16.0] - 2026-07-31”Changed
Section titled “Changed”- SDK: Renamed the
single/multiplemapping strategies tovariant/manyinatlas.json. - Unity Editor:
ArchmageEditorToolsnow bindsCfgIddrawers to the runtime atlas once it appears instead of loading a separate editor copy.
[0.15.2] - 2026-07-12
Section titled “[0.15.2] - 2026-07-12”- SDK: Added
SampleWithandSampleIndexWithmethods toWeightedPool<T>.
[0.15.0] - 2026-06-11
Section titled “[0.15.0] - 2026-06-11”- SDK: Added
WeightedPool<T>for weighted random sampling, withWeightedPoolExtensions.
Changed
Section titled “Changed”- I18n: Annotated
GetTextout parameter with[NotNullWhen(true)].
[0.14.0] - 2026-05-31
Section titled “[0.14.0] - 2026-05-31”- SDK: Added
MinMax<T>struct for representing a numeric range withMinandMaxvalues. - SDK: Added
MinMaxExtensionscontainingSystem.Random-basedSampleoverloads for all numeric types. - Unity: Added
UnityMinMaxExtensionscontainingSampleoverloads using Unity’s globalRandomgenerator.
Changed
Section titled “Changed”- Unity: Renamed
RgbaExtensionstoUnityRgbaExtensionsandVecExtensionstoUnityVecExtensionsfor consistency.
[0.13.1] - 2026-05-24
Section titled “[0.13.1] - 2026-05-24”Changed
Section titled “Changed”- SDK: Made
Tup1–7mutable by restoring setters ({ get; }→{ get; set; }) to allItemXproperties. - SDK: Removed
IEquatableinterface implementation fromTup1throughTup7classes. - SDK: Deleted custom
Equals,GetHashCode, and equality operator overloads inTup1throughTup7.
[0.13.0] - 2026-05-24
Section titled “[0.13.0] - 2026-05-24”Changed
Section titled “Changed”- SDK: Made
Tup1–7item properties read-only ({ get; set; }→{ get; }). - SDK: Replaced custom Newtonsoft.Json converters for
Vec2/3/4with[JsonProperty]attributes. - Unity: Simplified
UnityVector2/3/4JsonConverterto delegate serialization throughVec2/3/4, removing manual property-by-property read/write logic.
[0.12.0] - 2026-05-07
Section titled “[0.12.0] - 2026-05-07”- Logger: Implement
ARCHMAGE_DISABLE_DEFAULT_LOGGERconditional compilation symbol to allow manual suppression of default console logging (automatically disabled in Unity environments).
Changed
Section titled “Changed”- SDK: Changed vector (
Vec2/3/4) and Unity vector types to use object-based JSON serialization instead of arrays, ensuring null deserializes to zero vectors. - SDK: Added
unmanagedconstraint to vector types and optimized equality comparisons.
[0.11.0] - 2026-04-24
Section titled “[0.11.0] - 2026-04-24”- Unity:
Vec2/3/4extension methods to convert toUnityEngine.Vector2/3/4andVector2/3Intwith zero-allocation support for 10 numeric types. - Docs: Documentation for Unity Inspector dropdowns and
ArchmageEditorTools.csexamples.
[0.10.0] - 2026-04-10
Section titled “[0.10.0] - 2026-04-10”- Unity Editor:
CfgIdDrawer<TValue>abstract base,IntCfgIdDrawer<TId, TValue>,StrCfgIdDrawer<TId>property drawers, andEasyDropdown<TValue>IMGUI dropdown for config ID selection. AtlasLoadEvent.ItemsQueuedstage to report total item count before loading begins.WithOverrideFS: optionalrootPathparameter to resolve override files relative to a subdirectory within a custom filesystem.
Changed
Section titled “Changed”- Unity: flattened SDK files from
Runtime/Sdk/toRuntime/.
[0.9.0] - 2026-04-07
Section titled “[0.9.0] - 2026-04-07”Rgbastruct with hex string parsing (#RRGGBB/#RRGGBBAA), equality,IZerosupport, andRgbaJsonConverterfor Newtonsoft.Json; alpha is omitted from output whenA == 0xFF.- Unity:
RgbaExtensions.ToColor()mapsRgbachannels [0, 255] toUnityEngine.Color[0, 1].
[0.8.0] - 2026-04-06
Section titled “[0.8.0] - 2026-04-06”Changed
Section titled “Changed”- Renamed namespace and assembly from
Shadop.ArchmagetoShadop.Archmage.Sdk.
[0.7.0] - 2026-04-01
Section titled “[0.7.0] - 2026-04-01”- Docs: GitHub Package Manager git URL as primary Unity install method.
Changed
Section titled “Changed”- Renamed
XRef.RawValuetoXRef.CfgId.
[0.6.0] - 2026-03-29
Section titled “[0.6.0] - 2026-03-29”Changed
Section titled “Changed”- Unity: Removed
Samples~directory; integration adapters are now first-class Runtime assemblies. - Config tables now include
Idin JSON serialization output.
[0.5.0] - 2026-03-22
Section titled “[0.5.0] - 2026-03-22”- Added
NullLoggerthat discards all log output.
[0.4.0] - 2026-03-18
Section titled “[0.4.0] - 2026-03-18”- Added
UnityJsonSettingsFactoryfor JSON serialization of Unity types.
Changed
Section titled “Changed”- Refactored JSON settings handling: renamed
CreateJsonSerializerSettings()toCreateJsonDumpSettings().
[0.3.1] - 2026-03-17
Section titled “[0.3.1] - 2026-03-17”- Fixed typo
GetPreferredLangugetoGetPreferredLanguageinL10n.
[0.3.0] - 2026-03-17
Section titled “[0.3.0] - 2026-03-17”- Added
IZerointerface andValueWrapperJsonConverter/ValueWrapperTypeConverterfor better primitive wrapper support. - Added
IFSsupport andMergeL10nFileAsyncvariant toMergeL10nFileinI18n. - New documentation site built with Astro and Starlight.
Changed
Section titled “Changed”- Improved
L10nAPI: replacedText(lang)with aTextproperty that usesGetPreferredLanguage. - Removed
[Archmage]prefix fromUnityAtlasLoggerfor cleaner logs.
[0.2.0] - 2026-03-14
Section titled “[0.2.0] - 2026-03-14”- Unity:
Resources,StreamingAssets, andAddressablesfile system implementations - Unity: Integration samples and
changelogUrladded topackage.json
[0.1.1] - 2026-03-12
Section titled “[0.1.1] - 2026-03-12”- NuGet package publishing support: package metadata, Source Link, and XML documentation generation
Changed
Section titled “Changed”- Clarified override merge rules in documentation
- Updated OpenUPM scoped registry configuration in installation docs
[0.1.0] - 2026-03-11
Section titled “[0.1.0] - 2026-03-11”- Initial release
- Atlas loading system with sync/async support, layered overrides, and whitelist/blacklist filtering
- JSON serialization via Newtonsoft.Json (com.unity.nuget.newtonsoft-json)
- Duration type with nanosecond precision
- Vec2, Vec3, Vec4 typed vectors
- Tup1–Tup7 heterogeneous tuples
- XRef type for cross-table references
- I18n internationalization with language fallback
- DateTimeOffset JSON converter