Editor/sandmod.libraryplus/Library/LibraryConfig.cs
#nullable enable

using System;
using System.Collections.Generic;
using System.Text.Json.Serialization;
using Sandbox.DataModel;

namespace LibraryPlus;

public sealed class LibraryConfig : ProjectConfig
{
	public Dictionary<string, ReferenceVersion> LibraryReferences { get; set; } = new();
}

public class ReferenceVersion
{
	public Version Min { get; set; } = new(0, 0, 1);
	public Version? Max { get; set; }
}

public class Reference : ReferenceVersion
{
	public Reference( string ident, Version min, Version? max = null )
	{
		Ident = ident;
		Min = min;
		Max = max;
	}

	[JsonIgnore] public string Ident { get; set; }
}