Code/TypeCreator.cs
using System;
using System.Linq;
using System.Text.Json.Serialization;

namespace ExtendedEditor;

public sealed class TypeCreator
{
    [JsonConverter(typeof(TypeJsonConverter))]
    public Type Type { get; set; } = null!;

    [JsonInclude]
    private Any<object>[] Arguments { get; set; } = [];


    public T Create<T>(Func<object[], object[]>? argumentsChanger = null)
    {
        var arguments = Arguments.Select(x => x.Value!).ToArray();
        if(argumentsChanger is not null)
            arguments = argumentsChanger.Invoke(arguments);

        return TypeLibrary.Create<T>(Type, arguments)!;
    }


}