Ich hätt ja nen
invokable variant type gebaut dafür. Dann sieht das ganze weniger wie nen Dictionary aus und man kann sogar theoretisch nen Variant durch ein konkretes Objekt ersetzen ohne sonst etwas am Code zu ändern.
Nette Sache aber leider in Delphi absolut grausam, da keinerlei Compiler support.