Drop the external com.alexeytaranov.serializereferencedropdown dependency and replace [SerializeReferenceDropdown] with Aspid.FastTools [TypeSelector], now that FastTools draws [SerializeReference] fields natively.
Why now
|
|
| FastTools is already embedded |
tech.aspid.fasttools ships with the StarterKit (since #26) |
[TypeSelector] now covers [SerializeReference] |
VPDPersonal/Aspid.FastTools#49 |
| Removes an external git dependency |
one less third-party package to track / pin |
| Free upgrades |
repair, reference graph, open generics, favorites & recents, multi-object edit |
The current setup is a versionDefines gate: a local no-op SerializeReferenceDropdownAttribute shim compiles only while the third-party package is absent, otherwise its real attribute + drawer take over. [SerializeReferenceDropdown] is used in ~76 sites across the StarterKit (binders, converters, commands).
Migration steps
| # |
Change |
| 1 |
Packages/manifest.json — remove com.alexeytaranov.serializereferencedropdown |
| 2 |
Aspid.MVVM.StarterKit.asmdef — drop the SerializeReferenceDropdownRuntime reference + the versionDefines entry; reference the FastTools assembly hosting [TypeSelector] instead |
| 3 |
Replace [SerializeReferenceDropdown] → [TypeSelector] across the ~76 sites |
| 4 |
Delete the local shim StarterKit/Runtime/Utilities/SerializeReferenceDropdown.cs |
| 5 |
Regenerate packages-lock.json; update CHANGELOG / MIGRATION (EN + RU) |
Risks to verify
- Data round-trips — both attributes sit on plain
[SerializeReference] fields, so stored managed-reference data should carry over unchanged; confirm no asset breakage on existing serialized fields.
- Candidate-set parity — FastTools filters Object-derived types, open generics, etc.; check each field still offers the expected implementations, narrowing with
[TypeSelector(typeof(Base))] where the old dropdown was broader.
- Graceful absence — the shim used to no-op when the package was missing; after migration
[TypeSelector] is always present via the embedded FastTools, so the gate is no longer needed.
Refs
Drop the external
com.alexeytaranov.serializereferencedropdowndependency and replace[SerializeReferenceDropdown]with Aspid.FastTools[TypeSelector], now that FastTools draws[SerializeReference]fields natively.Why now
tech.aspid.fasttoolsships with the StarterKit (since #26)[TypeSelector]now covers[SerializeReference]The current setup is a
versionDefinesgate: a local no-opSerializeReferenceDropdownAttributeshim compiles only while the third-party package is absent, otherwise its real attribute + drawer take over.[SerializeReferenceDropdown]is used in ~76 sites across the StarterKit (binders, converters, commands).Migration steps
Packages/manifest.json— removecom.alexeytaranov.serializereferencedropdownAspid.MVVM.StarterKit.asmdef— drop theSerializeReferenceDropdownRuntimereference + theversionDefinesentry; reference the FastTools assembly hosting[TypeSelector]instead[SerializeReferenceDropdown]→[TypeSelector]across the ~76 sitesStarterKit/Runtime/Utilities/SerializeReferenceDropdown.cspackages-lock.json; updateCHANGELOG/MIGRATION(EN + RU)Risks to verify
[SerializeReference]fields, so stored managed-reference data should carry over unchanged; confirm no asset breakage on existing serialized fields.[TypeSelector(typeof(Base))]where the old dropdown was broader.[TypeSelector]is always present via the embedded FastTools, so the gate is no longer needed.Refs