Table of Contents

Class ProjectDetail

Namespace
McServerLauncher.Models.Modrinth
Assembly
McServerLauncher.dll

Full project as returned by GET /v2/project/{id|slug}. It is the search hit plus everything the details page shows: the long description, the gallery, the external links and the licence. Every field is optional on purpose — Modrinth omits what an author never filled in, and the UI must simply not show it rather than invent a value.

public class ProjectDetail
Inheritance
ProjectDetail
Inherited Members

Properties

AdditionalCategories

[JsonPropertyName("additional_categories")]
public List<string> AdditionalCategories { get; set; }

Property Value

List<string>

Body

Long description, in Markdown (often with raw HTML mixed in).

[JsonPropertyName("body")]
public string? Body { get; set; }

Property Value

string

Categories

[JsonPropertyName("categories")]
public List<string> Categories { get; set; }

Property Value

List<string>

ClientSide

[JsonPropertyName("client_side")]
public string? ClientSide { get; set; }

Property Value

string

Description

One-line summary written by the author.

[JsonPropertyName("description")]
public string Description { get; set; }

Property Value

string

DiscordUrl

[JsonPropertyName("discord_url")]
public string? DiscordUrl { get; set; }

Property Value

string

DonationUrls

[JsonPropertyName("donation_urls")]
public List<DonationUrl> DonationUrls { get; set; }

Property Value

List<DonationUrl>

Downloads

[JsonPropertyName("downloads")]
public long Downloads { get; set; }

Property Value

long

Followers

Followers. The search endpoint calls the same number "follows".

[JsonPropertyName("followers")]
public int Followers { get; set; }

Property Value

int
[JsonPropertyName("gallery")]
public List<GalleryImage> Gallery { get; set; }

Property Value

List<GalleryImage>

GameVersions

[JsonPropertyName("game_versions")]
public List<string> GameVersions { get; set; }

Property Value

List<string>

IconUrl

[JsonPropertyName("icon_url")]
public string? IconUrl { get; set; }

Property Value

string

Id

[JsonPropertyName("id")]
public string Id { get; set; }

Property Value

string

IssuesUrl

[JsonPropertyName("issues_url")]
public string? IssuesUrl { get; set; }

Property Value

string

License

[JsonPropertyName("license")]
public ProjectLicense? License { get; set; }

Property Value

ProjectLicense

Loaders

[JsonPropertyName("loaders")]
public List<string> Loaders { get; set; }

Property Value

List<string>

ProjectType

[JsonPropertyName("project_type")]
public string? ProjectType { get; set; }

Property Value

string

Published

[JsonPropertyName("published")]
public DateTimeOffset? Published { get; set; }

Property Value

DateTimeOffset?

ServerSide

[JsonPropertyName("server_side")]
public string? ServerSide { get; set; }

Property Value

string

Slug

[JsonPropertyName("slug")]
public string Slug { get; set; }

Property Value

string

SourceUrl

[JsonPropertyName("source_url")]
public string? SourceUrl { get; set; }

Property Value

string

Team

Team id, used to look up the authors (the project endpoint has no author name).

[JsonPropertyName("team")]
public string? Team { get; set; }

Property Value

string

Title

[JsonPropertyName("title")]
public string Title { get; set; }

Property Value

string

Updated

[JsonPropertyName("updated")]
public DateTimeOffset? Updated { get; set; }

Property Value

DateTimeOffset?

WikiUrl

[JsonPropertyName("wiki_url")]
public string? WikiUrl { get; set; }

Property Value

string