namespace CursorLang.Core.Models;
///
/// A file attached to a release.
///
/// The name the file is saved to disk under.
/// A direct link to the content.
/// The size in bytes; zero when the hosting did not report it.
public sealed record ReleaseAsset(string FileName, Uri Url, long Size);
///
/// A release found in the repository.
///
/// The version parsed from the tag.
/// The tag as is — that is what the interface shows.
/// The release page: the release notes live there too.
/// The MSIX package the application updates itself with.
public sealed record ReleaseInfo(Version Version, string Tag, Uri? PageUrl, ReleaseAsset Package);