Table of Contents

Class StoreTagDefinition

Namespace
McServerLauncher.Models.Store
Assembly
McServerLauncher.dll

One tag and the rules that give it to a project. Every rule list is optional; a tag with no rules simply never matches, which is a harmless way to stage a tag before filling it in.

public class StoreTagDefinition
Inheritance
StoreTagDefinition
Inherited Members

Properties

Browse

Whether the tag is offered as a filter chip in the browser.

[JsonPropertyName("browse")]
public bool Browse { get; set; }

Property Value

bool

Categories

Modrinth category slugs that imply this tag.

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

Property Value

List<string>

ClientSide

Matches the project's client_side: required / optional / unsupported.

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

Property Value

List<string>

Color

Chip colour as "#RRGGBB". Falls back to a neutral grey when absent or invalid.

[JsonPropertyName("color")]
public string? Color { get; set; }

Property Value

string

Dominant

When this tag applies it goes first and leaves room for one more topic at most. A library's other categories are the author's habit more than a description of what it does, and "library" is the one thing a server owner needs to know about it.

[JsonPropertyName("dominant")]
public bool Dominant { get; set; }

Property Value

bool

Facets

Ready-made Modrinth facet groups, e.g. ["categories:optimization"].

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

Property Value

List<string>

Fallback

A tag only worth showing when nothing better matched ("utility" is on nearly everything, so next to a real topic it says nothing).

[JsonPropertyName("fallback")]
public bool Fallback { get; set; }

Property Value

bool

Id

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

Property Value

string

Keywords

Whole words (or phrases) looked for in the title and the short description. A trailing accepts any ending, so optimiz covers "optimization" while map does not cover "bitmap". See the header of store-tags.json for the scoring.

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

Property Value

List<string>

Kind

What the tag is about: "topic" (the default) is what the project does, "install" is how it has to be installed. The interface shows only topic tags as chips, because the install side is already spelled out in words next to the compatibility, and repeating it as a chip both crowds the row and pushes a real category out of it.

[JsonPropertyName("kind")]
public string Kind { get; set; }

Property Value

string

Labels

Display name per language code ("es", "en", "de", "fr", "pt").

[JsonPropertyName("labels")]
public Dictionary<string, string> Labels { get; set; }

Property Value

Dictionary<string, string>

Priority

Ordering. Lower wins when a card only has room for a few tags.

[JsonPropertyName("priority")]
public int Priority { get; set; }

Property Value

int

ProjectTypes

Restricts the chip to "mod" or "plugin" servers. Empty means both.

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

Property Value

List<string>

Query

Search text used to browse this tag when Modrinth has no facet for it.

[JsonPropertyName("query")]
public string? Query { get; set; }

Property Value

string

ServerSide

Matches the project's server_side.

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

Property Value

List<string>