<?xml version="1.0"?>
<doc>
    <assembly>
        <name>SMAPI.Toolkit</name>
    </assembly>
    <members>
        <member name="T:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.INexusExportApiClient">
            <summary>An HTTP client for fetching the mod export from the Nexus Mods export API.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.INexusExportApiClient.FetchExportAsync">
            <summary>Fetch the latest export file from the Nexus Mods export API.</summary>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.NexusExportApiClient">
            <inheritdoc cref="T:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.INexusExportApiClient" />
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.NexusExportApiClient.Client">
            <summary>The underlying HTTP client.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.NexusExportApiClient.#ctor(System.String,System.String)">
            <summary>Construct an instance.</summary>
            <param name="userAgent">The user agent for the Nexus export API.</param>
            <param name="baseUrl">The base URL for the Nexus export API.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.NexusExportApiClient.FetchExportAsync">
            <inheritdoc />
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.NexusExportApiClient.Dispose">
            <inheritdoc />
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusFileExport">
            <summary>The metadata for an uploaded file for a mod from the Nexus Mods export API.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusFileExport.Uid">
            <summary>The unique internal file identifier.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusFileExport.Name">
            <summary>The file's display name.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusFileExport.Description">
            <summary>The file's display description.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusFileExport.FileName">
            <summary>The file name that will be downloaded.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusFileExport.Version">
            <summary>The file's semantic version.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusFileExport.CategoryId">
            <summary>The file category ID.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusFileExport.Primary">
            <summary>Whether this is the main Vortex file.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusFileExport.SizeInBytes">
            <summary>The file's size in bytes.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusFileExport.UploadedAt">
            <summary>When the file was uploaded.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusFileExport.OtherFields">
            <summary>The extra fields returned by the export API, if any.</summary>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusFullExport">
            <summary>The metadata for all Stardew Valley from the Nexus Mods export API.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusFullExport.Data">
            <summary>The mod data indexed by public mod ID.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusFullExport.LastUpdated">
            <summary>When this export was last updated.</summary>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusModExport">
            <summary>The metadata for a mod from the Nexus Mods export API.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusModExport.Uid">
            <summary>The unique internal mod identifier (not the public mod ID).</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusModExport.Name">
            <summary>The mod's display name.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusModExport.Author">
            <summary>The author display name set for the mod.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusModExport.Uploader">
            <summary>The username for the user who uploaded the mod.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusModExport.UploaderId">
            <summary>The ID for the user who uploaded the mod.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusModExport.Version">
            <summary>The mod's semantic version.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusModExport.CategoryId">
            <summary>The category ID.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusModExport.Published">
            <summary>Whether the mod is published by the author.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusModExport.Moderated">
            <summary>Whether the mod is hidden by moderators.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusModExport.AllowView">
            <summary>Whether the mod page is visible to users.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusModExport.Adult">
            <summary>Whether the mod is marked as containing adult content.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusModExport.Files">
            <summary>The files uploaded for the mod.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.Clients.NexusExport.ResponseModels.NexusModExport.OtherFields">
            <summary>The extra fields returned by the export API, if any.</summary>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModEntryModel">
            <summary>Metadata about a mod.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModEntryModel.ID">
            <summary>The mod's unique ID (if known).</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModEntryModel.SuggestedUpdate">
            <summary>The update version recommended by the web API based on its version update and mapping rules.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModEntryModel.Metadata">
            <summary>Optional extended data which isn't needed for update checks.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModEntryModel.Errors">
            <summary>The errors that occurred while fetching update data.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModEntryModel.#ctor(System.String)">
            <summary>Construct an instance.</summary>
            <param name="id">The mod's unique ID (if known).</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModEntryVersionModel">
            <summary>Metadata about a version.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModEntryVersionModel.Version">
            <summary>The version number.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModEntryVersionModel.Url">
            <summary>The mod page URL.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModEntryVersionModel.#ctor(StardewModdingAPI.ISemanticVersion,System.String)">
            <summary>Construct an instance.</summary>
            <param name="version">The version number.</param>
            <param name="url">The mod page URL.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel">
            <summary>Extended metadata about a mod.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.ID">
            <summary>The mod's unique ID. A mod may have multiple current IDs in rare cases (e.g. due to parallel releases or unofficial updates).</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.Name">
            <summary>The mod's display name.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.NexusID">
            <summary>The mod ID on Nexus.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.ChucklefishID">
            <summary>The mod ID in the Chucklefish mod repo.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.CurseForgeID">
            <summary>The mod ID in the CurseForge mod repo.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.CurseForgeKey">
            <summary>The mod key in the CurseForge mod repo (used in mod page URLs).</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.ModDropID">
            <summary>The mod ID in the ModDrop mod repo.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.GitHubRepo">
            <summary>The GitHub repository in the form 'owner/repo'.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.CustomSourceUrl">
            <summary>The URL to a non-GitHub source repo.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.CustomUrl">
            <summary>The custom mod page URL (if applicable).</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.Main">
            <summary>The main version.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.Optional">
            <summary>The latest optional version, if newer than <see cref="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.Main"/>.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.Unofficial">
            <summary>The latest unofficial version, if newer than <see cref="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.Main"/> and <see cref="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.Optional"/>.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.UnofficialForBeta">
            <summary>The latest unofficial version for the current Stardew Valley or SMAPI beta, if any.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.CompatibilityStatus">
            <summary>The compatibility status.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.CompatibilitySummary">
            <summary>The human-readable summary of the compatibility status or workaround, without HTML formatting.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.BrokeIn">
            <summary>The game or SMAPI version which broke this mod, if applicable.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.BetaCompatibilityStatus">
            <summary>The compatibility status for the Stardew Valley beta (if any).</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.BetaCompatibilitySummary">
            <summary>The human-readable summary of the compatibility status or workaround for the Stardew Valley beta (if any), without HTML formatting.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.BetaBrokeIn">
            <summary>The beta game or SMAPI version which broke this mod, if applicable.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.ChangeLocalVersions">
            <summary>A serialized change descriptor to apply to the local version during update checks (see <see cref="T:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.ChangeDescriptor"/>).</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.ChangeRemoteVersions">
            <summary>A serialized change descriptor to apply to the remote version during update checks (see <see cref="T:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.ChangeDescriptor"/>).</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.ChangeUpdateKeys">
            <summary>A serialized change descriptor to apply to the update keys during update checks (see <see cref="T:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.ChangeDescriptor"/>).</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.#ctor">
            <summary>Construct an instance.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.#ctor(StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry,StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecord,StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModEntryVersionModel,StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModEntryVersionModel,StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModEntryVersionModel,StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModEntryVersionModel)">
            <summary>Construct an instance.</summary>
            <param name="wiki">The mod metadata from the wiki (if available).</param>
            <param name="db">The mod metadata from SMAPI's internal DB (if available).</param>
            <param name="main">The main version.</param>
            <param name="optional">The latest optional version, if newer than <paramref name="main"/>.</param>
            <param name="unofficial">The latest unofficial version, if newer than <paramref name="main"/> and <paramref name="optional"/>.</param>
            <param name="unofficialForBeta">The latest unofficial version for the current Stardew Valley or SMAPI beta, if any.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModExtendedMetadataModel.GetUpdateKeys">
            <summary>Get update keys based on the metadata.</summary>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModSearchEntryModel">
            <summary>Specifies the identifiers for a mod to match.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModSearchEntryModel.ID">
            <summary>The unique mod ID.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModSearchEntryModel.UpdateKeys">
            <summary>The namespaced mod update keys (if available).</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModSearchEntryModel.InstalledVersion">
            <summary>The mod version installed by the local player. This is used for version mapping in some cases.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModSearchEntryModel.IsBroken">
            <summary>Whether the installed version is broken or could not be loaded.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModSearchEntryModel.#ctor(System.String,StardewModdingAPI.ISemanticVersion,System.String[],System.Boolean)">
            <summary>Construct an instance.</summary>
            <param name="id">The unique mod ID.</param>
            <param name="installedVersion">The version installed by the local player. This is used for version mapping in some cases.</param>
            <param name="updateKeys">The namespaced mod update keys (if available).</param>
            <param name="isBroken">Whether the installed version is broken or could not be loaded.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModSearchEntryModel.AddUpdateKeys(System.String[])">
            <summary>Add update keys for the mod.</summary>
            <param name="updateKeys">The update keys to add.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModSearchModel">
            <summary>Specifies mods whose update-check info to fetch.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModSearchModel.Mods">
            <summary>The mods for which to find data.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModSearchModel.IncludeExtendedMetadata">
            <summary>Whether to include extended metadata for each mod.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModSearchModel.ApiVersion">
            <summary>The SMAPI version installed by the player. This is used for version mapping in some cases.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModSearchModel.GameVersion">
            <summary>The Stardew Valley version installed by the player.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModSearchModel.Platform">
            <summary>The OS on which the player plays.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModSearchModel.#ctor">
            <summary>Construct an empty instance.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModSearchModel.#ctor(StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModSearchEntryModel[],StardewModdingAPI.ISemanticVersion,StardewModdingAPI.ISemanticVersion,StardewModdingAPI.Toolkit.Utilities.Platform,System.Boolean)">
            <summary>Construct an instance.</summary>
            <param name="mods">The mods to search.</param>
            <param name="apiVersion">The SMAPI version installed by the player. If this is null, the API won't provide a recommended update.</param>
            <param name="gameVersion">The Stardew Valley version installed by the player.</param>
            <param name="platform">The OS on which the player plays.</param>
            <param name="includeExtendedMetadata">Whether to include extended metadata for each mod.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.WebApiClient">
            <summary>Provides methods for interacting with the SMAPI web API.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.WebApiClient.Version">
            <summary>The API version number.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.WebApiClient.Client">
            <summary>The underlying HTTP client.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.WebApiClient.#ctor(System.String,StardewModdingAPI.ISemanticVersion)">
            <summary>Construct an instance.</summary>
            <param name="baseUrl">The base URL for the web API.</param>
            <param name="version">The web API version.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.WebApiClient.GetModInfoAsync(StardewModdingAPI.Toolkit.Framework.Clients.WebApi.ModSearchEntryModel[],StardewModdingAPI.ISemanticVersion,StardewModdingAPI.ISemanticVersion,StardewModdingAPI.Toolkit.Utilities.Platform,System.Boolean)">
            <summary>Get metadata about a set of mods from the web API.</summary>
            <param name="mods">The mod keys for which to fetch the latest version.</param>
            <param name="apiVersion">The SMAPI version installed by the player. If this is null, the API won't provide a recommended update.</param>
            <param name="gameVersion">The Stardew Valley version installed by the player.</param>
            <param name="platform">The OS on which the player plays.</param>
            <param name="includeExtendedMetadata">Whether to include extended metadata for each mod.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.WebApi.WebApiClient.Dispose">
            <inheritdoc />
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.ChangeDescriptor">
            <summary>A set of changes which can be applied to a mod data field.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.ChangeDescriptor.Add">
            <summary>The values to add to the field.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.ChangeDescriptor.Remove">
            <summary>The values to remove from the field.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.ChangeDescriptor.Replace">
            <summary>The values to replace in the field, if matched.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.ChangeDescriptor.HasChanges">
            <summary>Whether the change descriptor would make any changes.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.ChangeDescriptor.FormatValue">
            <summary>Format a raw value into a normalized form.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.ChangeDescriptor.#ctor(System.Collections.Generic.ISet{System.String},System.Collections.Generic.ISet{System.String},System.Collections.Generic.IReadOnlyDictionary{System.String,System.String},System.Func{System.String,System.String})">
            <summary>Construct an instance.</summary>
            <param name="add">The values to add to the field.</param>
            <param name="remove">The values to remove from the field.</param>
            <param name="replace">The values to replace in the field, if matched.</param>
            <param name="formatValue">Format a raw value into a normalized form.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.ChangeDescriptor.ApplyToCopy(System.String)">
            <summary>Apply the change descriptors to a comma-delimited field.</summary>
            <param name="rawField">The raw field text.</param>
            <returns>Returns the modified field.</returns>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.ChangeDescriptor.Apply(System.Collections.Generic.List{System.String})">
            <summary>Apply the change descriptors to the given field values.</summary>
            <param name="values">The field values.</param>
            <returns>Returns the modified field values.</returns>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.ChangeDescriptor.ToString">
            <inheritdoc />
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.ChangeDescriptor.Parse(System.String,System.String[]@,System.Func{System.String,System.String})">
            <summary>Parse a raw change descriptor string into a <see cref="T:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.ChangeDescriptor"/> model.</summary>
            <param name="descriptor">The raw change descriptor.</param>
            <param name="errors">The human-readable error message describing any invalid values that were ignored.</param>
            <param name="formatValue">Format a raw value into a normalized form if needed.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiClient">
            <summary>An HTTP client for fetching mod metadata from the wiki.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiClient.Client">
            <summary>The underlying HTTP client.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiClient.#ctor(System.String,System.String)">
            <summary>Construct an instance.</summary>
            <param name="userAgent">The user agent for the wiki API.</param>
            <param name="baseUrl">The base URL for the wiki API.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiClient.FetchModsAsync">
            <summary>Fetch mods from the compatibility list.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiClient.Dispose">
            <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiClient.ParseModEntries(System.Collections.Generic.IEnumerable{HtmlAgilityPack.HtmlNode},System.Collections.Generic.IDictionary{System.String,StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiDataOverrideEntry})">
            <summary>Parse valid mod compatibility entries.</summary>
            <param name="nodes">The HTML compatibility entries.</param>
            <param name="overridesById">The mod data overrides to apply, if any.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiClient.ParseOverrideEntries(System.Collections.Generic.IEnumerable{HtmlAgilityPack.HtmlNode})">
            <summary>Parse valid mod data override entries.</summary>
            <param name="nodes">The HTML mod data override entries.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiClient.GetAttribute(HtmlAgilityPack.HtmlNode,System.String)">
            <summary>Get an attribute value.</summary>
            <param name="element">The element whose attributes to read.</param>
            <param name="name">The attribute name.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiClient.GetAttributeAsChangeDescriptor(HtmlAgilityPack.HtmlNode,System.String,System.Func{System.String,System.String})">
            <summary>Get an attribute value and parse it as a change descriptor.</summary>
            <param name="element">The element whose attributes to read.</param>
            <param name="name">The attribute name.</param>
            <param name="formatValue">Format an raw entry value when applying changes.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiClient.GetAttributeAsCsv(HtmlAgilityPack.HtmlNode,System.String)">
            <summary>Get an attribute value and parse it as a comma-delimited list of strings.</summary>
            <param name="element">The element whose attributes to read.</param>
            <param name="name">The attribute name.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiClient.GetAttributeAsEnum``1(HtmlAgilityPack.HtmlNode,System.String)">
            <summary>Get an attribute value and parse it as an enum value.</summary>
            <typeparam name="TEnum">The enum type.</typeparam>
            <param name="element">The element whose attributes to read.</param>
            <param name="name">The attribute name.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiClient.GetAttributeAsSemanticVersion(HtmlAgilityPack.HtmlNode,System.String)">
            <summary>Get an attribute value and parse it as a semantic version.</summary>
            <param name="element">The element whose attributes to read.</param>
            <param name="name">The attribute name.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiClient.GetAttributeAsNullableInt(HtmlAgilityPack.HtmlNode,System.String)">
            <summary>Get an attribute value and parse it as a nullable int.</summary>
            <param name="element">The element whose attributes to read.</param>
            <param name="name">The attribute name.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiClient.GetInnerHtml(HtmlAgilityPack.HtmlNode,System.String)">
            <summary>Get the text of an element with the given class name.</summary>
            <param name="container">The metadata container.</param>
            <param name="className">The field name.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiClient.ResponseModel">
            <summary>The response model for the MediaWiki parse API.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiClient.ResponseModel.Parse">
            <summary>The parse API results.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiClient.ResponseModel.#ctor(StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiClient.ResponseParseModel)">
            <summary>Construct an instance.</summary>
            <param name="parse">The parse API results.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiClient.ResponseParseModel">
            <summary>The inner response model for the MediaWiki parse API.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiClient.ResponseParseModel.Text">
            <summary>The parsed text.</summary>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiCompatibilityInfo">
            <summary>Compatibility info for a mod.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiCompatibilityInfo.Status">
            <summary>The compatibility status.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiCompatibilityInfo.Summary">
            <summary>The human-readable summary of the compatibility status or workaround, without HTML formatting.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiCompatibilityInfo.BrokeIn">
            <summary>The game or SMAPI version which broke this mod, if applicable.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiCompatibilityInfo.UnofficialVersion">
            <summary>The version of the latest unofficial update, if applicable.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiCompatibilityInfo.UnofficialUrl">
            <summary>The URL to the latest unofficial update, if applicable.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiCompatibilityInfo.#ctor(StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiCompatibilityStatus,System.String,System.String,StardewModdingAPI.ISemanticVersion,System.String)">
            <summary>Construct an instance.</summary>
            <param name="status">The compatibility status.</param>
            <param name="summary">The human-readable summary of the compatibility status or workaround, without HTML formatting.</param>
            <param name="brokeIn">The game or SMAPI version which broke this mod, if applicable.</param>
            <param name="unofficialVersion">The version of the latest unofficial update, if applicable.</param>
            <param name="unofficialUrl">The URL to the latest unofficial update, if applicable.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiCompatibilityStatus">
            <summary>The compatibility status for a mod.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiCompatibilityStatus.Unknown">
            <summary>The status is unknown.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiCompatibilityStatus.Ok">
            <summary>The mod is compatible.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiCompatibilityStatus.Optional">
            <summary>The mod is compatible if you use an optional official download.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiCompatibilityStatus.Unofficial">
            <summary>The mod is compatible if you use an unofficial update.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiCompatibilityStatus.Workaround">
            <summary>The mod isn't compatible, but the player can fix it or there's a good alternative.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiCompatibilityStatus.Broken">
            <summary>The mod isn't compatible.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiCompatibilityStatus.Abandoned">
            <summary>The mod is no longer maintained by the author, and an unofficial update or continuation is unlikely.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiCompatibilityStatus.Obsolete">
            <summary>The mod is no longer needed and should be removed.</summary>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiDataOverrideEntry">
            <summary>The data overrides to apply to matching mods.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiDataOverrideEntry.Ids">
            <summary>The unique mod IDs for the mods to override.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiDataOverrideEntry.ChangeLocalVersions">
            <summary>Maps local versions to a semantic version for update checks.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiDataOverrideEntry.ChangeRemoteVersions">
            <summary>Maps remote versions to a semantic version for update checks.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiDataOverrideEntry.ChangeUpdateKeys">
            <summary>Update keys to add (optionally prefixed by '+'), remove (prefixed by '-'), or replace.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiDataOverrideEntry.HasChanges">
            <summary>Whether the entry has any changes.</summary>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry">
            <summary>A mod entry in the wiki list.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.ID">
            <summary>The mod's unique ID. If the mod has alternate/old IDs, they're listed in latest to oldest order.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.Name">
            <summary>The mod's display name. If the mod has multiple names, the first one is the most canonical name.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.Author">
            <summary>The mod's author name. If the author has multiple names, the first one is the most canonical name.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.NexusID">
            <summary>The mod ID on Nexus.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.ChucklefishID">
            <summary>The mod ID in the Chucklefish mod repo.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.CurseForgeID">
            <summary>The mod ID in the CurseForge mod repo.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.CurseForgeKey">
            <summary>The mod key in the CurseForge mod repo (used in mod page URLs).</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.ModDropID">
            <summary>The mod ID in the ModDrop mod repo.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.GitHubRepo">
            <summary>The GitHub repository in the form 'owner/repo'.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.CustomSourceUrl">
            <summary>The URL to a non-GitHub source repo.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.CustomUrl">
            <summary>The custom mod page URL (if applicable).</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.ContentPackFor">
            <summary>The name of the mod which loads this content pack, if applicable.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.Compatibility">
            <summary>The mod's compatibility with the latest stable version of the game.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.BetaCompatibility">
            <summary>The mod's compatibility with the latest beta version of the game (if any).</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.HasBetaInfo">
            <summary>Whether a Stardew Valley or SMAPI beta which affects mod compatibility is in progress. If this is true, <see cref="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.BetaCompatibility"/> should be used for beta versions of SMAPI instead of <see cref="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.Compatibility"/>.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.Warnings">
            <summary>The human-readable warnings for players about this mod.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.PullRequestUrl">
            <summary>The URL of the pull request which submits changes for an unofficial update to the author, if any.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.DevNote">
            <summary>Special notes intended for developers who maintain unofficial updates or submit pull requests.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.Overrides">
            <summary>The data overrides to apply to the mod's manifest or remote mod page data, if any.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.Anchor">
            <summary>The link anchor for the mod entry in the wiki compatibility list.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry.#ctor(System.String[],System.String[],System.String[],System.Nullable{System.Int32},System.Nullable{System.Int32},System.Nullable{System.Int32},System.String,System.Nullable{System.Int32},System.String,System.String,System.String,System.String,StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiCompatibilityInfo,StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiCompatibilityInfo,System.String[],System.String,System.String,StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiDataOverrideEntry,System.String)">
            <summary>Construct an instance.</summary>
            <param name="id">The mod's unique ID. If the mod has alternate/old IDs, they're listed in latest to oldest order.</param>
            <param name="name">The mod's display name. If the mod has multiple names, the first one is the most canonical name.</param>
            <param name="author">The mod's author name. If the author has multiple names, the first one is the most canonical name.</param>
            <param name="nexusId">The mod ID on Nexus.</param>
            <param name="chucklefishId">The mod ID in the Chucklefish mod repo.</param>
            <param name="curseForgeId">The mod ID in the CurseForge mod repo.</param>
            <param name="curseForgeKey">The mod ID in the CurseForge mod repo.</param>
            <param name="modDropId">The mod ID in the ModDrop mod repo.</param>
            <param name="githubRepo">The GitHub repository in the form 'owner/repo'.</param>
            <param name="customSourceUrl">The URL to a non-GitHub source repo.</param>
            <param name="customUrl">The custom mod page URL (if applicable).</param>
            <param name="contentPackFor">The name of the mod which loads this content pack, if applicable.</param>
            <param name="compatibility">The mod's compatibility with the latest stable version of the game.</param>
            <param name="betaCompatibility">The mod's compatibility with the latest beta version of the game (if any).</param>
            <param name="warnings">The human-readable warnings for players about this mod.</param>
            <param name="pullRequestUrl">The URL of the pull request which submits changes for an unofficial update to the author, if any.</param>
            <param name="devNote">Special notes intended for developers who maintain unofficial updates or submit pull requests.</param>
            <param name="overrides">The data overrides to apply to the mod's manifest or remote mod page data, if any.</param>
            <param name="anchor">The link anchor for the mod entry in the wiki compatibility list.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModList">
            <summary>Metadata from the wiki's mod compatibility list.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModList.StableVersion">
            <summary>The stable game version.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModList.BetaVersion">
            <summary>The beta game version (if any).</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModList.Mods">
            <summary>The mods on the wiki.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModList.#ctor(System.String,System.String,StardewModdingAPI.Toolkit.Framework.Clients.Wiki.WikiModEntry[])">
            <summary>Construct an instance.</summary>
            <param name="stableVersion">The stable game version.</param>
            <param name="betaVersion">The beta game version (if any).</param>
            <param name="mods">The mods on the wiki.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.Constants">
            <summary>Contains the SMAPI installer's constants and assumptions.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.Constants.GameDllName">
            <summary>The name of the game's main DLL, used to detect game folders.</summary>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.GameScanning.GameFolderType">
            <summary>The detected validity for a Stardew Valley game folder based on file structure heuristics.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.GameScanning.GameFolderType.Valid">
            <summary>The folder seems to contain a valid Stardew Valley 1.5.5+ install.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.GameScanning.GameFolderType.NoGameFound">
            <summary>The folder doesn't contain Stardew Valley.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.GameScanning.GameFolderType.LegacyVersion">
            <summary>The folder contains Stardew Valley 1.5.6 or earlier, which isn't compatible with current versions of SMAPI.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.GameScanning.GameFolderType.LegacyCompatibilityBranch">
            <summary>The folder contains Stardew Valley from the game's legacy compatibility branch, which backports newer changes to the <see cref="F:StardewModdingAPI.Toolkit.Framework.GameScanning.GameFolderType.LegacyVersion"/> format.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.GameScanning.GameFolderType.InvalidUnknown">
            <summary>The folder seems to contain Stardew Valley files, but they failed to load for unknown reasons (e.g. corrupted executable).</summary>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.GameScanning.GameScanner">
            <summary>Finds installed game folders.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.GameScanning.GameScanner.Platform">
            <summary>The current OS.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.GameScanning.GameScanner.SteamAppId">
            <summary>The Steam app ID for Stardew Valley.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.GameScanning.GameScanner.#ctor">
            <summary>Construct an instance.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.GameScanning.GameScanner.Scan">
            <summary>Find all valid Stardew Valley install folders.</summary>
            <remarks>This checks default game locations, and on Windows checks the Windows registry for GOG/Steam install data. A folder is considered 'valid' if it contains the Stardew Valley executable for the current OS.</remarks>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.GameScanning.GameScanner.ScanIncludingInvalid">
            <summary>Find all valid Stardew Valley install folders.</summary>
            <remarks>This checks default game locations, and on Windows checks the Windows registry for GOG/Steam install data. A folder is considered 'valid' if it contains the Stardew Valley executable for the current OS.</remarks>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.GameScanning.GameScanner.GetGameFolderType(System.IO.DirectoryInfo)">
            <summary>Detect the validity of a game folder based on file structure heuristics.</summary>
            <param name="dir">The folder to check.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.GameScanning.GameScanner.GetDefaultInstallPaths">
            <summary>The default file paths where Stardew Valley can be installed.</summary>
            <remarks>Derived from the <a href="https://github.com/Pathoschild/Stardew.ModBuildConfig">crossplatform mod config</a>.</remarks>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.GameScanning.GameScanner.GetCustomInstallPaths">
            <summary>Get the custom install path from the <c>stardewvalley.targets</c> file in the home directory, if any.</summary>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.LowLevelEnvironmentUtility">
            <summary>Provides low-level methods for fetching environment information.</summary>
            <remarks>This is used by the SMAPI core before the toolkit DLL is available; most code should use <see cref="T:StardewModdingAPI.Toolkit.Utilities.EnvironmentUtility"/> instead.</remarks>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.LowLevelEnvironmentUtility.uname(System.IntPtr)">
            <summary>Get the OS name from the system uname command.</summary>
            <param name="buffer">The buffer to fill with the resulting string.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.LowLevelEnvironmentUtility.DetectPlatform">
            <summary>Detect the current OS.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.LowLevelEnvironmentUtility.GetFriendlyPlatformName(System.String)">
            <summary>Get the human-readable OS name and version.</summary>
            <param name="platform">The current platform.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.LowLevelEnvironmentUtility.Is64BitAssembly(System.String)">
            <summary>Get whether an executable is 64-bit.</summary>
            <param name="path">The absolute path to the assembly file.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.LowLevelEnvironmentUtility.IsRunningAndroid">
            <summary>Detect whether the code is running on Android.</summary>
            <remarks>
            This code is derived from https://stackoverflow.com/a/47521647/262123. It detects Android by calling the
            <c>getprop</c> system command to check for an Android-specific property.
            </remarks>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.LowLevelEnvironmentUtility.IsRunningMac">
            <summary>Detect whether the code is running on macOS.</summary>
            <remarks>
            This code is derived from the Mono project (see System.Windows.Forms/System.Windows.Forms/XplatUI.cs). It detects macOS by calling the
            <c>uname</c> system command and checking the response, which is always 'Darwin' for macOS.
            </remarks>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.ManifestValidator">
            <summary>Validates manifest fields.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ManifestValidator.TryValidateFields(StardewModdingAPI.IManifest,System.String@)">
            <summary>Validate a manifest's fields.</summary>
            <param name="manifest">The manifest to validate.</param>
            <param name="error">The error message indicating why validation failed, if applicable.</param>
            <returns>Returns whether all manifest fields validated successfully.</returns>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.ModData.MetadataModel">
            <summary>The SMAPI predefined metadata.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.MetadataModel.ModData">
            <summary>Extra metadata about mods.</summary>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.ModData.ModDatabase">
            <summary>Handles access to SMAPI's internal mod metadata list.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModData.ModDatabase.Records">
            <summary>The underlying mod data records indexed by default display name.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModData.ModDatabase.GetUpdateUrl">
            <summary>Get an update URL for an update key (if valid).</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModData.ModDatabase.#ctor">
            <summary>Construct an empty instance.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModData.ModDatabase.#ctor(System.Collections.Generic.IEnumerable{StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecord},System.Func{System.String,System.String})">
            <summary>Construct an instance.</summary>
            <param name="records">The underlying mod data records indexed by default display name.</param>
            <param name="getUpdateUrl">Get an update URL for an update key (if valid).</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModData.ModDatabase.GetAll">
            <summary>Get all mod data records.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModData.ModDatabase.Get(System.String)">
            <summary>Get a mod data record.</summary>
            <param name="modID">The unique mod ID.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModData.ModDatabase.GetModPageUrlFor(System.String)">
            <summary>Get the mod page URL for a mod (if available).</summary>
            <param name="id">The unique mod ID.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.ModData.ModDataField">
            <summary>A versioned mod metadata field.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataField.Key">
            <summary>The field key.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataField.Value">
            <summary>The field value.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataField.IsDefault">
            <summary>Whether this field should only be applied if it's not already set.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataField.LowerVersion">
            <summary>The lowest version in the range, or <c>null</c> for all past versions.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataField.UpperVersion">
            <summary>The highest version in the range, or <c>null</c> for all future versions.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModData.ModDataField.#ctor(StardewModdingAPI.Toolkit.Framework.ModData.ModDataFieldKey,System.String,System.Boolean,StardewModdingAPI.ISemanticVersion,StardewModdingAPI.ISemanticVersion)">
            <summary>Construct an instance.</summary>
            <param name="key">The field key.</param>
            <param name="value">The field value.</param>
            <param name="isDefault">Whether this field should only be applied if it's not already set.</param>
            <param name="lowerVersion">The lowest version in the range, or <c>null</c> for all past versions.</param>
            <param name="upperVersion">The highest version in the range, or <c>null</c> for all future versions.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModData.ModDataField.IsMatch(StardewModdingAPI.IManifest)">
            <summary>Get whether this data field applies for the given manifest.</summary>
            <param name="manifest">The mod manifest.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModData.ModDataField.HasFieldValue(StardewModdingAPI.IManifest,StardewModdingAPI.Toolkit.Framework.ModData.ModDataFieldKey)">
            <summary>Get whether a manifest field has a meaningful value for the purposes of enforcing <see cref="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataField.IsDefault"/>.</summary>
            <param name="manifest">The mod manifest.</param>
            <param name="key">The field key matching <see cref="T:StardewModdingAPI.Toolkit.Framework.ModData.ModDataFieldKey"/>.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.ModData.ModDataFieldKey">
            <summary>The valid field keys.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModData.ModDataFieldKey.UpdateKey">
            <summary>A manifest update key.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModData.ModDataFieldKey.Status">
            <summary>The mod's predefined compatibility status.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModData.ModDataFieldKey.StatusReasonPhrase">
            <summary>A reason phrase for the <see cref="F:StardewModdingAPI.Toolkit.Framework.ModData.ModDataFieldKey.Status"/>, or <c>null</c> to use the default reason.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModData.ModDataFieldKey.StatusReasonDetails">
            <summary>Technical details shown in TRACE logs for the <see cref="F:StardewModdingAPI.Toolkit.Framework.ModData.ModDataFieldKey.Status"/>, or <c>null</c> to omit it.</summary>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.ModData.ModDataModel">
            <summary>The raw mod metadata from SMAPI's internal mod list.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataModel.ID">
            <summary>The mod's current unique ID.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataModel.FormerIDs">
            <summary>The former mod IDs (if any).</summary>
            <remarks>
            This uses a custom format which uniquely identifies a mod across multiple versions and
            supports matching other fields if no ID was specified. This doesn't include the latest
            ID, if any. If the mod's ID changed over time, multiple variants can be separated by the
            <c>|</c> character.
            </remarks>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataModel.SuppressWarnings">
            <summary>The mod warnings to suppress, even if they'd normally be shown.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataModel.IgnoreDependencies">
            <summary>Whether to ignore dependencies on this mod ID when it's not loaded.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataModel.ExtensionData">
            <summary>This field stores properties that aren't mapped to another field before they're parsed into <see cref="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataModel.Fields"/>.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataModel.Fields">
            <summary>The versioned field data.</summary>
            <remarks>
            This maps field names to values. This should be accessed via <see cref="M:StardewModdingAPI.Toolkit.Framework.ModData.ModDataModel.GetFields"/>.
            Format notes:
              - Each key consists of a field name prefixed with any combination of version range
                and <c>Default</c>, separated by pipes (whitespace trimmed). For example, <c>Name</c>
                will always override the name, <c>Default | Name</c> will only override a blank
                name, and <c>~1.1 | Default | Name</c> will override blank names up to version 1.1.
              - The version format is <c>min~max</c> (where either side can be blank for unbounded), or
                a single version number.
              - The field name itself corresponds to a <see cref="T:StardewModdingAPI.Toolkit.Framework.ModData.ModDataFieldKey"/> value.
            </remarks>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModData.ModDataModel.#ctor(System.String,System.String,StardewModdingAPI.Toolkit.Framework.ModData.ModWarning,System.Boolean)">
            <summary>Construct an instance.</summary>
            <param name="id">The mod's current unique ID.</param>
            <param name="formerIds">The former mod IDs (if any).</param>
            <param name="suppressWarnings">The mod warnings to suppress, even if they'd normally be shown.</param>
            <param name="ignoreDependencies">Whether to ignore dependencies on this mod ID when it's not loaded.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModData.ModDataModel.GetFields">
            <summary>Get a parsed representation of the <see cref="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataModel.Fields"/>.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModData.ModDataModel.GetFormerIDs">
            <summary>Get the former mod IDs.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModData.ModDataModel.OnDeserialized(System.Runtime.Serialization.StreamingContext)">
            <summary>The method invoked after JSON deserialization.</summary>
            <param name="context">The deserialization context.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecord">
            <summary>The parsed mod metadata from SMAPI's internal mod list.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecord.DisplayName">
            <summary>The mod's default display name.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecord.ID">
            <summary>The mod's current unique ID.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecord.FormerIDs">
            <summary>The former mod IDs (if any).</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecord.SuppressWarnings">
            <summary>The mod warnings to suppress, even if they'd normally be shown.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecord.IgnoreDependencies">
            <summary>Whether to ignore dependencies on this mod ID when it's not loaded.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecord.Fields">
            <summary>The versioned field data.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecord.#ctor(System.String,StardewModdingAPI.Toolkit.Framework.ModData.ModDataModel)">
            <summary>Construct an instance.</summary>
            <param name="displayName">The mod's default display name.</param>
            <param name="model">The raw data model.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecord.HasID(System.String)">
            <summary>Get whether the mod has (or previously had) the given ID.</summary>
            <param name="id">The mod ID.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecord.GetIDs">
            <summary>Get the possible mod IDs.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecord.GetDefaultUpdateKey">
            <summary>Get the default update key for this mod, if any.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecord.GetVersionedFields(StardewModdingAPI.IManifest)">
            <summary>Get a parsed representation of the <see cref="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecord.Fields"/> which match a given manifest.</summary>
            <param name="manifest">The manifest to match.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecordVersionedFields">
            <summary>The versioned fields from a <see cref="T:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecord"/> for a specific manifest.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecordVersionedFields.DataRecord">
            <summary>The underlying data record.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecordVersionedFields.UpdateKey">
            <summary>The update key to apply (if any).</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecordVersionedFields.Status">
            <summary>The predefined compatibility status.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecordVersionedFields.StatusReasonPhrase">
            <summary>A reason phrase for the <see cref="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecordVersionedFields.Status"/>, or <c>null</c> to use the default reason.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecordVersionedFields.StatusReasonDetails">
            <summary>Technical details shown in TRACE logs for the <see cref="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecordVersionedFields.Status"/>, or <c>null</c> to omit it.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecordVersionedFields.StatusUpperVersion">
            <summary>The upper version for which the <see cref="P:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecordVersionedFields.Status"/> applies (if any).</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecordVersionedFields.#ctor(StardewModdingAPI.Toolkit.Framework.ModData.ModDataRecord)">
            <summary>Construct an instance.</summary>
            <param name="dataRecord">The underlying data record.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.ModData.ModStatus">
            <summary>Indicates how SMAPI should treat a mod.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModData.ModStatus.None">
            <summary>Don't override the status.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModData.ModStatus.Obsolete">
            <summary>The mod is obsolete and shouldn't be used, regardless of version.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModData.ModStatus.AssumeBroken">
            <summary>Assume the mod is not compatible, even if SMAPI doesn't detect any incompatible code.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModData.ModStatus.AssumeCompatible">
            <summary>Assume the mod is compatible, even if SMAPI detects incompatible code.</summary>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.ModData.ModWarning">
            <summary>Indicates a detected non-error mod issue.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModData.ModWarning.None">
            <summary>No issues detected.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModData.ModWarning.BrokenCodeLoaded">
            <summary>SMAPI detected incompatible code in the mod, but was configured to load it anyway.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModData.ModWarning.ChangesSaveSerializer">
            <summary>The mod affects the save serializer in a way that may make saves unloadable without the mod.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModData.ModWarning.PatchesGame">
            <summary>The mod patches the game in a way that may impact stability.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModData.ModWarning.UsesUnvalidatedUpdateTick">
            <summary>The mod references specialized 'unvalidated update tick' events which may impact stability.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModData.ModWarning.NoUpdateKeys">
            <summary>The mod has no update keys set.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModData.ModWarning.AccessesConsole">
            <summary>Uses .NET APIs for reading and writing to the console.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModData.ModWarning.AccessesFilesystem">
            <summary>Uses .NET APIs for filesystem access.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModData.ModWarning.AccessesShell">
            <summary>Uses .NET APIs for shell or process access.</summary>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.ModScanning.ModFolder">
            <summary>The info about a mod read from its folder.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModScanning.ModFolder.DirectoryImpl">
            <summary>The backing field for <see cref="P:StardewModdingAPI.Toolkit.Framework.ModScanning.ModFolder.Directory"/>.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModScanning.ModFolder.DisplayName">
            <summary>A suggested display name for the mod folder.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModScanning.ModFolder.DirectoryPath">
            <summary>The folder path containing the mod's manifest.json.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModScanning.ModFolder.Directory">
            <summary>The folder containing the mod's manifest.json.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModScanning.ModFolder.Type">
            <summary>The mod type.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModScanning.ModFolder.Manifest">
            <summary>The mod manifest.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModScanning.ModFolder.ManifestParseError">
            <summary>The error which occurred parsing the manifest, if any.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.ModScanning.ModFolder.ManifestParseErrorText">
            <summary>A human-readable message for the <see cref="P:StardewModdingAPI.Toolkit.Framework.ModScanning.ModFolder.ManifestParseError"/>, if any.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModScanning.ModFolder.#ctor(System.IO.DirectoryInfo,System.IO.DirectoryInfo,StardewModdingAPI.Toolkit.Framework.ModScanning.ModType,StardewModdingAPI.Toolkit.Serialization.Models.Manifest)">
            <summary>Construct an instance.</summary>
            <param name="root">The root folder containing mods.</param>
            <param name="directory">The folder containing the mod's manifest.json.</param>
            <param name="type">The mod type.</param>
            <param name="manifest">The mod manifest.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModScanning.ModFolder.#ctor(System.IO.DirectoryInfo,System.IO.DirectoryInfo,StardewModdingAPI.Toolkit.Framework.ModScanning.ModType,StardewModdingAPI.Toolkit.Serialization.Models.Manifest,StardewModdingAPI.Toolkit.Framework.ModScanning.ModParseError,System.String)">
            <summary>Construct an instance.</summary>
            <param name="root">The root folder containing mods.</param>
            <param name="directory">The folder containing the mod's manifest.json.</param>
            <param name="type">The mod type.</param>
            <param name="manifest">The mod manifest.</param>
            <param name="manifestParseError">The error which occurred parsing the manifest, if any.</param>
            <param name="manifestParseErrorText">A human-readable message for the <paramref name="manifestParseError"/>, if any.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModScanning.ModFolder.#ctor(System.String,System.String,StardewModdingAPI.Toolkit.Framework.ModScanning.ModType,StardewModdingAPI.Toolkit.Serialization.Models.Manifest,StardewModdingAPI.Toolkit.Framework.ModScanning.ModParseError,System.String)">
            <summary>Construct an instance.</summary>
            <param name="displayName">A suggested display name for the mod folder.</param>
            <param name="directoryPath">The folder path containing the mod's manifest.json.</param>
            <param name="type">The mod type.</param>
            <param name="manifest">The mod manifest.</param>
            <param name="manifestParseError">The error which occurred parsing the manifest, if any.</param>
            <param name="manifestParseErrorText">A human-readable message for the <paramref name="manifestParseError"/>, if any.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModScanning.ModFolder.GetUpdateKeys(StardewModdingAPI.Toolkit.Serialization.Models.Manifest)">
            <summary>Get the update keys for a mod.</summary>
            <param name="manifest">The mod manifest.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.ModScanning.ModParseError">
            <summary>Indicates why a mod could not be parsed.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModScanning.ModParseError.None">
            <summary>No parse error.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModScanning.ModParseError.EmptyFolder">
            <summary>The folder is empty or contains only ignored files.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModScanning.ModParseError.EmptyVortexFolder">
            <summary>The folder is an empty folder managed by Vortex.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModScanning.ModParseError.IgnoredFolder">
            <summary>The folder is ignored by convention.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModScanning.ModParseError.ManifestInvalid">
            <summary>The mod's <c>manifest.json</c> could not be parsed.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModScanning.ModParseError.ManifestMissing">
            <summary>The folder contains non-ignored and non-XNB files, but none of them are <c>manifest.json</c>.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModScanning.ModParseError.XnbMod">
            <summary>The folder is an XNB mod, which can't be loaded through SMAPI.</summary>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.ModScanning.ModScanner">
            <summary>Scans folders for mod data.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModScanning.ModScanner.JsonHelper">
            <summary>The JSON helper with which to read manifests.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModScanning.ModScanner.IgnoreFilesystemNames">
            <summary>A list of filesystem entry names to ignore when checking whether a folder should be treated as a mod.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModScanning.ModScanner.IgnoreFileExtensions">
            <summary>A list of file extensions to ignore when searching for mod files.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModScanning.ModScanner.StrictXnbModExtensions">
            <summary>The extensions for packed content files.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModScanning.ModScanner.PotentialXnbModExtensions">
            <summary>The extensions for files which an XNB mod may contain, in addition to <see cref="F:StardewModdingAPI.Toolkit.Framework.ModScanning.ModScanner.StrictXnbModExtensions"/>.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModScanning.ModScanner.VortexMarkerFileName">
            <summary>The name of the marker file added by Vortex to indicate it's managing the folder.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModScanning.ModScanner.ConfigFileName">
            <summary>The name for a mod's configuration JSON file.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModScanning.ModScanner.#ctor(StardewModdingAPI.Toolkit.Serialization.JsonHelper)">
            <summary>Construct an instance.</summary>
            <param name="jsonHelper">The JSON helper with which to read manifests.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModScanning.ModScanner.GetModFolders(System.String,System.Boolean)">
            <summary>Extract information about all mods in the given folder.</summary>
            <param name="rootPath">The root folder containing mods.</param>
            <param name="useCaseInsensitiveFilePaths">Whether to match file paths case-insensitively, even on Linux.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModScanning.ModScanner.GetModFolders(System.String,System.String,System.Boolean)">
            <summary>Extract information about all mods in the given folder.</summary>
            <param name="rootPath">The root folder containing mods. Only the <paramref name="modPath"/> will be searched, but this field allows it to be treated as a potential mod folder of its own.</param>
            <param name="modPath">The mod path to search.</param>
            <param name="useCaseInsensitiveFilePaths">Whether to match file paths case-insensitively, even on Linux.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModScanning.ModScanner.ReadFolder(System.IO.DirectoryInfo,System.IO.DirectoryInfo,System.Boolean)">
            <summary>Extract information from a mod folder.</summary>
            <param name="root">The root folder containing mods.</param>
            <param name="searchFolder">The folder to search for a mod.</param>
            <param name="useCaseInsensitiveFilePaths">Whether to match file paths case-insensitively, even on Linux.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModScanning.ModScanner.GetModFolders(System.IO.DirectoryInfo,System.IO.DirectoryInfo,System.Boolean)">
            <summary>Recursively extract information about all mods in the given folder.</summary>
            <param name="root">The root mod folder.</param>
            <param name="folder">The folder to search for mods.</param>
            <param name="useCaseInsensitiveFilePaths">Whether to match file paths case-insensitively, even on Linux.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModScanning.ModScanner.TryConsolidate(System.IO.DirectoryInfo,System.IO.DirectoryInfo,StardewModdingAPI.Toolkit.Framework.ModScanning.ModFolder[])">
            <summary>Consolidate adjacent folders into one mod folder, if possible.</summary>
            <param name="root">The folder containing both parent and subfolders.</param>
            <param name="parentFolder">The parent folder to consolidate, if possible.</param>
            <param name="subfolders">The subfolders to consolidate, if possible.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModScanning.ModScanner.FindManifest(System.IO.DirectoryInfo,System.Boolean)">
            <summary>Find the manifest for a mod folder.</summary>
            <param name="folder">The folder to search.</param>
            <param name="useCaseInsensitiveFilePaths">Whether to match file paths case-insensitively, even on Linux.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModScanning.ModScanner.IsModSearchFolder(System.IO.DirectoryInfo,System.IO.DirectoryInfo)">
            <summary>Get whether a given folder should be treated as a search folder (i.e. look for subfolders containing mods).</summary>
            <param name="root">The root mod folder.</param>
            <param name="folder">The folder to search for mods.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModScanning.ModScanner.RecursivelyGetFiles(System.IO.DirectoryInfo)">
            <summary>Recursively get all files in a folder.</summary>
            <param name="folder">The root folder to search.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModScanning.ModScanner.IsRelevant(System.IO.FileSystemInfo)">
            <summary>Get whether a file or folder is relevant when deciding how to process a mod folder.</summary>
            <param name="entry">The file or folder.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModScanning.ModScanner.IsXnbMod(System.Collections.Generic.IEnumerable{System.IO.FileInfo})">
            <summary>Get whether a set of files looks like an XNB mod.</summary>
            <param name="files">The files in the mod.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.ModScanning.ModScanner.IsEmptyVortexFolder(System.Collections.Generic.IEnumerable{System.IO.FileInfo})">
            <summary>Get whether a set of files looks like an XNB mod.</summary>
            <param name="files">The files in the mod.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.ModScanning.ModType">
            <summary>A general mod type.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModScanning.ModType.Invalid">
            <summary>The mod is invalid and its type could not be determined.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModScanning.ModType.Ignored">
            <summary>The folder is ignored by convention.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModScanning.ModType.Smapi">
            <summary>A mod which uses SMAPI directly.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModScanning.ModType.ContentPack">
            <summary>A mod which contains files loaded by a SMAPI mod.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.ModScanning.ModType.Xnb">
            <summary>A legacy mod which replaces game files directly.</summary>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.SemanticVersionReader">
            <summary>Reads strings into a semantic version.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.SemanticVersionReader.TryParse(System.String,System.Boolean,System.Int32@,System.Int32@,System.Int32@,System.Int32@,System.String@,System.String@)">
            <summary>Parse a semantic version string.</summary>
            <param name="versionStr">The version string to parse.</param>
            <param name="allowNonStandard">Whether to recognize non-standard semver extensions.</param>
            <param name="major">The major version incremented for major API changes.</param>
            <param name="minor">The minor version incremented for backwards-compatible changes.</param>
            <param name="patch">The patch version for backwards-compatible fixes.</param>
            <param name="platformRelease">The platform-specific version (if applicable).</param>
            <param name="prereleaseTag">An optional prerelease tag.</param>
            <param name="buildMetadata">Optional build metadata. This is ignored when determining version precedence.</param>
            <returns>Returns whether the version was successfully parsed.</returns>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.SemanticVersionReader.TryParseVersionPart(System.Char[],System.Int32@,System.Int32@)">
            <summary>Try to parse the next characters in a queue as a numeric part.</summary>
            <param name="raw">The raw characters to parse.</param>
            <param name="index">The index of the next character to read.</param>
            <param name="part">The parsed part.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.SemanticVersionReader.TryParseLiteral(System.Char[],System.Int32@,System.Char)">
            <summary>Try to parse a literal character.</summary>
            <param name="raw">The raw characters to parse.</param>
            <param name="index">The index of the next character to read.</param>
            <param name="ch">The expected character.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.SemanticVersionReader.TryParseTag(System.Char[],System.Int32@,System.String@)">
            <summary>Try to parse a tag.</summary>
            <param name="raw">The raw characters to parse.</param>
            <param name="index">The index of the next character to read.</param>
            <param name="tag">The parsed tag.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.UpdateData.ModSiteKey">
            <summary>A mod site which SMAPI can check for updates.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.UpdateData.ModSiteKey.Unknown">
            <summary>An unknown or invalid mod repository.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.UpdateData.ModSiteKey.Chucklefish">
            <summary>The Chucklefish mod repository.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.UpdateData.ModSiteKey.CurseForge">
            <summary>The CurseForge mod repository.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.UpdateData.ModSiteKey.GitHub">
            <summary>A GitHub project containing releases.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.UpdateData.ModSiteKey.ModDrop">
            <summary>The ModDrop mod repository.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.UpdateData.ModSiteKey.Nexus">
            <summary>The Nexus Mods mod repository.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Framework.UpdateData.ModSiteKey.UpdateManifest">
            <summary>An arbitrary URL to a JSON file containing update data.</summary>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Framework.UpdateData.UpdateKey">
            <summary>A namespaced mod ID which uniquely identifies a mod within a mod repository.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.UpdateData.UpdateKey.RawText">
            <summary>The raw update key text.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.UpdateData.UpdateKey.Site">
            <summary>The mod site containing the mod.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.UpdateData.UpdateKey.ID">
            <summary>The mod ID within the repository.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.UpdateData.UpdateKey.Subkey">
            <summary>If specified, a substring in download names/descriptions to match.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Framework.UpdateData.UpdateKey.LooksValid">
            <summary>Whether the update key seems to be valid.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.UpdateData.UpdateKey.#ctor(System.String,StardewModdingAPI.Toolkit.Framework.UpdateData.ModSiteKey,System.String,System.String)">
            <summary>Construct an instance.</summary>
            <param name="rawText">The raw update key text.</param>
            <param name="site">The mod site containing the mod.</param>
            <param name="id">The mod ID within the site.</param>
            <param name="subkey">If specified, a substring in download names/descriptions to match.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.UpdateData.UpdateKey.#ctor(StardewModdingAPI.Toolkit.Framework.UpdateData.ModSiteKey,System.String,System.String)">
            <summary>Construct an instance.</summary>
            <param name="site">The mod site containing the mod.</param>
            <param name="id">The mod ID within the site.</param>
            <param name="subkey">If specified, a substring in download names/descriptions to match.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.UpdateData.UpdateKey.Parse(System.String)">
            <summary>Parse a raw update key.</summary>
            <param name="raw">The raw update key to parse.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.UpdateData.UpdateKey.TryParse(System.String,StardewModdingAPI.Toolkit.Framework.UpdateData.UpdateKey@)">
            <summary>Parse a raw update key if it's valid.</summary>
            <param name="raw">The raw update key to parse.</param>
            <param name="parsed">The parsed update key, if valid.</param>
            <returns>Returns whether the update key was successfully parsed.</returns>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.UpdateData.UpdateKey.ToString">
            <summary>Get a string that represents the current object.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.UpdateData.UpdateKey.Equals(StardewModdingAPI.Toolkit.Framework.UpdateData.UpdateKey)">
            <summary>Indicates whether the current object is equal to another object of the same type.</summary>
            <param name="other">An object to compare with this object.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.UpdateData.UpdateKey.Equals(System.Object)">
            <summary>Determines whether the specified object is equal to the current object.</summary>
            <param name="obj">The object to compare with the current object.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.UpdateData.UpdateKey.GetHashCode">
            <summary>Serves as the default hash function. </summary>
            <returns>A hash code for the current object.</returns>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.UpdateData.UpdateKey.GetString(StardewModdingAPI.Toolkit.Framework.UpdateData.ModSiteKey,System.String,System.String)">
            <summary>Get the string representation of an update key.</summary>
            <param name="site">The mod site containing the mod.</param>
            <param name="id">The mod ID within the repository.</param>
            <param name="subkey">If specified, a substring in download names/descriptions to match.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Framework.UpdateData.UpdateKey.SplitTwoParts(System.String,System.Char,System.Boolean)">
            <summary>Split a string into two parts at a delimiter and trim whitespace.</summary>
            <param name="str">The string to split.</param>
            <param name="delimiter">The character on which to split.</param>
            <param name="keepDelimiter">Whether to include the delimiter in the second string.</param>
            <returns>Returns a tuple containing the two strings, with the second value <c>null</c> if the delimiter wasn't found.</returns>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.ModToolkit">
            <summary>A convenience wrapper for the various tools.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.ModToolkit.UserAgent">
            <summary>The default HTTP user agent for the toolkit.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.ModToolkit.VendorModUrls">
            <summary>Maps vendor keys (like <c>Nexus</c>) to their mod URL template (where <c>{0}</c> is the mod ID). This doesn't affect update checks, which defer to the remote web API.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.ModToolkit.JsonHelper">
            <summary>Encapsulates SMAPI's JSON parsing.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.ModToolkit.#ctor">
            <summary>Construct an instance.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.ModToolkit.GetGameFolders">
            <summary>Find valid Stardew Valley install folders.</summary>
            <remarks>This checks default game locations, and on Windows checks the Windows registry for GOG/Steam install data. A folder is considered 'valid' if it contains the Stardew Valley executable for the current OS.</remarks>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.ModToolkit.GetGameFoldersIncludingInvalid">
            <summary>Find all default Stardew Valley install folders which exist, regardless of whether they're valid.</summary>
            <remarks>This checks default game locations, and on Windows checks the Windows registry for GOG/Steam install data.</remarks>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.ModToolkit.GetWikiCompatibilityListAsync">
            <summary>Extract mod metadata from the wiki compatibility list.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.ModToolkit.GetModDatabase(System.String)">
            <summary>Get SMAPI's internal mod database.</summary>
            <param name="metadataPath">The file path for the SMAPI metadata file.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.ModToolkit.GetModFolders(System.String,System.Boolean)">
            <summary>Extract information about all mods in the given folder.</summary>
            <param name="rootPath">The root folder containing mods.</param>
            <param name="useCaseInsensitiveFilePaths">Whether to match file paths case-insensitively, even on Linux.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.ModToolkit.GetModFolders(System.String,System.String,System.Boolean)">
            <summary>Extract information about all mods in the given folder.</summary>
            <param name="rootPath">The root folder containing mods. Only the <paramref name="modPath"/> will be searched, but this field allows it to be treated as a potential mod folder of its own.</param>
            <param name="modPath">The mod path to search.</param>
            <param name="useCaseInsensitiveFilePaths">Whether to match file paths case-insensitively, even on Linux.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.ModToolkit.GetUpdateUrl(System.String)">
            <summary>Get an update URL for an update key (if valid).</summary>
            <param name="updateKey">The update key.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.SemanticVersion">
             <summary>A semantic version with an optional release tag.</summary>
             <remarks>
             The implementation is defined by Semantic Version 2.0 (https://semver.org/), with a few deviations:
             - short-form "x.y" versions are supported (equivalent to "x.y.0");
             - hyphens are synonymous with dots in prerelease tags and build metadata (like "-unofficial.3-pathoschild");
             - and "-unofficial" in prerelease tags is always lower-precedence (e.g. "1.0-beta" is newer than "1.0-unofficial").
            
             This optionally also supports four-part versions, a non-standard extension used by Stardew Valley on ported platforms to represent platform-specific patches to a ported version, represented as a fourth number in the version string.
             </remarks>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.SemanticVersion.TagPattern">
            <summary>A regex pattern matching a valid prerelease or build metadata tag.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.SemanticVersion.MajorVersion">
            <inheritdoc />
        </member>
        <member name="P:StardewModdingAPI.Toolkit.SemanticVersion.MinorVersion">
            <inheritdoc />
        </member>
        <member name="P:StardewModdingAPI.Toolkit.SemanticVersion.PatchVersion">
            <inheritdoc />
        </member>
        <member name="P:StardewModdingAPI.Toolkit.SemanticVersion.PlatformRelease">
            <summary>The platform release. This is a non-standard semver extension used by Stardew Valley on ported platforms to represent platform-specific patches to a ported version, represented as a fourth number in the version string.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.SemanticVersion.PrereleaseTag">
            <inheritdoc />
        </member>
        <member name="P:StardewModdingAPI.Toolkit.SemanticVersion.BuildMetadata">
            <inheritdoc />
        </member>
        <member name="M:StardewModdingAPI.Toolkit.SemanticVersion.#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.String,System.String)">
            <summary>Construct an instance.</summary>
            <param name="major">The major version incremented for major API changes.</param>
            <param name="minor">The minor version incremented for backwards-compatible changes.</param>
            <param name="patch">The patch version for backwards-compatible fixes.</param>
            <param name="platformRelease">The platform-specific version (if applicable).</param>
            <param name="prereleaseTag">An optional prerelease tag.</param>
            <param name="buildMetadata">Optional build metadata. This is ignored when determining version precedence.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.SemanticVersion.#ctor(System.Version)">
            <summary>Construct an instance.</summary>
            <param name="version">The assembly version.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="version"/> is null.</exception>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.SemanticVersion.#ctor(System.String,System.Boolean)">
            <summary>Construct an instance.</summary>
            <param name="version">The semantic version string.</param>
            <param name="allowNonStandard">Whether to recognize non-standard semver extensions.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="version"/> is null.</exception>
            <exception cref="T:System.FormatException">The <paramref name="version"/> is not a valid semantic version.</exception>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.SemanticVersion.CompareTo(StardewModdingAPI.ISemanticVersion)">
            <inheritdoc />
        </member>
        <member name="M:StardewModdingAPI.Toolkit.SemanticVersion.Equals(StardewModdingAPI.ISemanticVersion)">
            <inheritdoc />
        </member>
        <member name="M:StardewModdingAPI.Toolkit.SemanticVersion.IsPrerelease">
            <inheritdoc />
        </member>
        <member name="M:StardewModdingAPI.Toolkit.SemanticVersion.IsOlderThan(StardewModdingAPI.ISemanticVersion)">
            <inheritdoc />
        </member>
        <member name="M:StardewModdingAPI.Toolkit.SemanticVersion.IsOlderThan(System.String)">
            <inheritdoc />
        </member>
        <member name="M:StardewModdingAPI.Toolkit.SemanticVersion.IsNewerThan(StardewModdingAPI.ISemanticVersion)">
            <inheritdoc />
        </member>
        <member name="M:StardewModdingAPI.Toolkit.SemanticVersion.IsNewerThan(System.String)">
            <inheritdoc />
        </member>
        <member name="M:StardewModdingAPI.Toolkit.SemanticVersion.IsBetween(StardewModdingAPI.ISemanticVersion,StardewModdingAPI.ISemanticVersion)">
            <inheritdoc />
        </member>
        <member name="M:StardewModdingAPI.Toolkit.SemanticVersion.IsBetween(System.String,System.String)">
            <inheritdoc />
        </member>
        <member name="M:StardewModdingAPI.Toolkit.SemanticVersion.ToString">
            <inheritdoc cref="M:StardewModdingAPI.ISemanticVersion.ToString" />
        </member>
        <member name="M:StardewModdingAPI.Toolkit.SemanticVersion.IsNonStandard">
            <inheritdoc />
        </member>
        <member name="M:StardewModdingAPI.Toolkit.SemanticVersion.TryParse(System.String,StardewModdingAPI.ISemanticVersion@)">
            <summary>Parse a version string without throwing an exception if it fails.</summary>
            <param name="version">The version string.</param>
            <param name="parsed">The parsed representation.</param>
            <returns>Returns whether parsing the version succeeded.</returns>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.SemanticVersion.TryParse(System.String,System.Boolean,StardewModdingAPI.ISemanticVersion@)">
            <summary>Parse a version string without throwing an exception if it fails.</summary>
            <param name="version">The version string.</param>
            <param name="allowNonStandard">Whether to allow non-standard extensions to semantic versioning.</param>
            <param name="parsed">The parsed representation.</param>
            <returns>Returns whether parsing the version succeeded.</returns>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.SemanticVersion.GetNormalizedTag(System.String)">
            <summary>Get a normalized prerelease or build tag.</summary>
            <param name="tag">The tag to normalize.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.SemanticVersion.CompareTo(System.Int32,System.Int32,System.Int32,System.Int32,System.String)">
            <summary>Get an integer indicating whether this version precedes (less than 0), supersedes (more than 0), or is equivalent to (0) the specified version.</summary>
            <param name="otherMajor">The major version to compare with this instance.</param>
            <param name="otherMinor">The minor version to compare with this instance.</param>
            <param name="otherPatch">The patch version to compare with this instance.</param>
            <param name="otherPlatformRelease">The non-standard platform release to compare with this instance.</param>
            <param name="otherTag">The prerelease tag to compare with this instance.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.SemanticVersion.AssertValid">
            <summary>Assert that the current version is valid.</summary>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.SemanticVersionComparer">
            <summary>A comparer for semantic versions based on the <see cref="M:StardewModdingAPI.Toolkit.SemanticVersion.CompareTo(StardewModdingAPI.ISemanticVersion)"/> field.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.SemanticVersionComparer.Instance">
            <summary>A singleton instance of the comparer.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.SemanticVersionComparer.Compare(StardewModdingAPI.ISemanticVersion,StardewModdingAPI.ISemanticVersion)">
            <inheritdoc />
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Serialization.Converters.ManifestContentPackForConverter">
            <summary>Handles deserialization of <see cref="T:StardewModdingAPI.Toolkit.Serialization.Models.ManifestContentPackFor"/> arrays.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Converters.ManifestContentPackForConverter.CanWrite">
            <summary>Whether this converter can write JSON.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Converters.ManifestContentPackForConverter.CanConvert(System.Type)">
            <summary>Get whether this instance can convert the specified object type.</summary>
            <param name="objectType">The object type.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Converters.ManifestContentPackForConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)">
            <summary>Read the JSON representation of the object.</summary>
            <param name="reader">The JSON reader.</param>
            <param name="objectType">The object type.</param>
            <param name="existingValue">The object being read.</param>
            <param name="serializer">The calling serializer.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Converters.ManifestContentPackForConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)">
            <summary>Writes the JSON representation of the object.</summary>
            <param name="writer">The JSON writer.</param>
            <param name="value">The value.</param>
            <param name="serializer">The calling serializer.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Serialization.Converters.ManifestDependencyArrayConverter">
            <summary>Handles deserialization of <see cref="T:StardewModdingAPI.Toolkit.Serialization.Models.ManifestDependency"/> arrays.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Converters.ManifestDependencyArrayConverter.CanWrite">
            <summary>Whether this converter can write JSON.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Converters.ManifestDependencyArrayConverter.CanConvert(System.Type)">
            <summary>Get whether this instance can convert the specified object type.</summary>
            <param name="objectType">The object type.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Converters.ManifestDependencyArrayConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)">
            <summary>Read the JSON representation of the object.</summary>
            <param name="reader">The JSON reader.</param>
            <param name="objectType">The object type.</param>
            <param name="existingValue">The object being read.</param>
            <param name="serializer">The calling serializer.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Converters.ManifestDependencyArrayConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)">
            <summary>Writes the JSON representation of the object.</summary>
            <param name="writer">The JSON writer.</param>
            <param name="value">The value.</param>
            <param name="serializer">The calling serializer.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Serialization.Converters.NonStandardSemanticVersionConverter">
            <summary>Handles deserialization of <see cref="T:StardewModdingAPI.ISemanticVersion"/>, allowing for non-standard extensions.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Converters.NonStandardSemanticVersionConverter.#ctor">
            <summary>Construct an instance.</summary>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Serialization.Converters.SemanticVersionConverter">
            <summary>Handles deserialization of <see cref="T:StardewModdingAPI.ISemanticVersion"/>.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Converters.SemanticVersionConverter.AllowNonStandard">
            <summary>Whether to allow non-standard extensions to semantic versioning.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Converters.SemanticVersionConverter.CanRead">
            <summary>Get whether this converter can read JSON.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Converters.SemanticVersionConverter.CanWrite">
            <summary>Get whether this converter can write JSON.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Converters.SemanticVersionConverter.CanConvert(System.Type)">
            <summary>Get whether this instance can convert the specified object type.</summary>
            <param name="objectType">The object type.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Converters.SemanticVersionConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)">
            <summary>Reads the JSON representation of the object.</summary>
            <param name="reader">The JSON reader.</param>
            <param name="objectType">The object type.</param>
            <param name="existingValue">The object being read.</param>
            <param name="serializer">The calling serializer.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Converters.SemanticVersionConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)">
            <summary>Writes the JSON representation of the object.</summary>
            <param name="writer">The JSON writer.</param>
            <param name="value">The value.</param>
            <param name="serializer">The calling serializer.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Converters.SemanticVersionConverter.ReadObject(Newtonsoft.Json.Linq.JObject)">
            <summary>Read a JSON object.</summary>
            <param name="obj">The JSON object to read.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Converters.SemanticVersionConverter.ReadString(System.String,System.String)">
            <summary>Read a JSON string.</summary>
            <param name="str">The JSON string value.</param>
            <param name="path">The path to the current JSON node.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Serialization.Converters.SimpleReadOnlyConverter`1">
            <summary>The base implementation for simplified converters which deserialize <typeparamref name="T"/> without overriding serialization.</summary>
            <typeparam name="T">The type to deserialize.</typeparam>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Converters.SimpleReadOnlyConverter`1.CanWrite">
            <summary>Whether this converter can write JSON.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Converters.SimpleReadOnlyConverter`1.CanConvert(System.Type)">
            <summary>Get whether this instance can convert the specified object type.</summary>
            <param name="objectType">The object type.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Converters.SimpleReadOnlyConverter`1.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)">
            <summary>Reads the JSON representation of the object.</summary>
            <param name="reader">The JSON reader.</param>
            <param name="objectType">The object type.</param>
            <param name="existingValue">The object being read.</param>
            <param name="serializer">The calling serializer.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Converters.SimpleReadOnlyConverter`1.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)">
            <summary>Writes the JSON representation of the object.</summary>
            <param name="writer">The JSON writer.</param>
            <param name="value">The value.</param>
            <param name="serializer">The calling serializer.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Converters.SimpleReadOnlyConverter`1.ReadObject(Newtonsoft.Json.Linq.JObject,System.String)">
            <summary>Read a JSON object.</summary>
            <param name="obj">The JSON object to read.</param>
            <param name="path">The path to the current JSON node.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Converters.SimpleReadOnlyConverter`1.ReadString(System.String,System.String)">
            <summary>Read a JSON string.</summary>
            <param name="str">The JSON string value.</param>
            <param name="path">The path to the current JSON node.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Serialization.JsonExtensions">
            <summary>Provides extension methods for parsing JSON.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.JsonExtensions.ValueIgnoreCase``1(Newtonsoft.Json.Linq.JObject,System.String)">
            <summary>Get a JSON field value from a case-insensitive field name. This will check for an exact match first, then search without case sensitivity.</summary>
            <typeparam name="T">The value type.</typeparam>
            <param name="obj">The JSON object to search.</param>
            <param name="fieldName">The field name.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Serialization.JsonHelper">
            <summary>Encapsulates SMAPI's JSON file parsing.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.JsonHelper.JsonSettings">
            <summary>The JSON settings to use when serializing and deserializing files.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.JsonHelper.CreateDefaultSettings">
            <summary>Create an instance of the default JSON serializer settings.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.JsonHelper.ReadJsonFileIfExists``1(System.String,``0@)">
            <summary>Read a JSON file.</summary>
            <typeparam name="TModel">The model type.</typeparam>
            <param name="fullPath">The absolute file path.</param>
            <param name="result">The parsed content model.</param>
            <returns>Returns false if the file doesn't exist, else true.</returns>
            <exception cref="T:System.ArgumentException">The given <paramref name="fullPath"/> is empty or invalid.</exception>
            <exception cref="T:Newtonsoft.Json.JsonReaderException">The file contains invalid JSON.</exception>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.JsonHelper.WriteJsonFile``1(System.String,``0)">
            <summary>Save to a JSON file.</summary>
            <typeparam name="TModel">The model type.</typeparam>
            <param name="fullPath">The absolute file path.</param>
            <param name="model">The model to save.</param>
            <exception cref="T:System.InvalidOperationException">The given path is empty or invalid.</exception>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.JsonHelper.Deserialize``1(System.String)">
            <summary>Deserialize JSON text if possible.</summary>
            <typeparam name="TModel">The model type.</typeparam>
            <param name="json">The raw JSON text.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.JsonHelper.Serialize``1(``0,Newtonsoft.Json.Formatting)">
            <summary>Serialize a model to JSON text.</summary>
            <typeparam name="TModel">The model type.</typeparam>
            <param name="model">The model to serialize.</param>
            <param name="formatting">The formatting to apply.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.JsonHelper.GetSerializer">
            <summary>Get a low-level JSON serializer matching the <see cref="P:StardewModdingAPI.Toolkit.Serialization.JsonHelper.JsonSettings"/>.</summary>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Serialization.Models.Manifest">
            <inheritdoc cref="T:StardewModdingAPI.IManifest" />
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Models.Manifest.Name">
            <inheritdoc />
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Models.Manifest.Description">
            <inheritdoc />
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Models.Manifest.Author">
            <inheritdoc />
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Models.Manifest.Version">
            <inheritdoc />
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Models.Manifest.MinimumApiVersion">
            <inheritdoc />
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Models.Manifest.MinimumGameVersion">
            <inheritdoc />
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Models.Manifest.EntryDll">
            <inheritdoc />
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Models.Manifest.ContentPackFor">
            <inheritdoc />
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Models.Manifest.Dependencies">
            <inheritdoc />
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Models.Manifest.UpdateKeys">
            <inheritdoc />
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Models.Manifest.UniqueID">
            <inheritdoc />
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Models.Manifest.ExtraFields">
            <inheritdoc />
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Models.Manifest.#ctor(System.String,System.String,System.String,System.String,StardewModdingAPI.ISemanticVersion,System.String)">
            <summary>Construct an instance for a transitional content pack.</summary>
            <param name="uniqueID">The unique mod ID.</param>
            <param name="name">The mod name.</param>
            <param name="author">The mod author's name.</param>
            <param name="description">A brief description of the mod.</param>
            <param name="version">The mod version.</param>
            <param name="contentPackFor">The modID which will read this as a content pack.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Models.Manifest.#ctor(System.String,System.String,System.String,System.String,StardewModdingAPI.ISemanticVersion,StardewModdingAPI.ISemanticVersion,StardewModdingAPI.ISemanticVersion,System.String,StardewModdingAPI.IManifestContentPackFor,StardewModdingAPI.IManifestDependency[],System.String[])">
            <summary>Construct an instance for a transitional content pack.</summary>
            <param name="uniqueId">The unique mod ID.</param>
            <param name="name">The mod name.</param>
            <param name="author">The mod author's name.</param>
            <param name="description">A brief description of the mod.</param>
            <param name="version">The mod version.</param>
            <param name="minimumApiVersion">The minimum SMAPI version required by this mod, if any.</param>
            <param name="minimumGameVersion">The minimum Stardew Valley version required by this mod, if any.</param>
            <param name="entryDll">The name of the DLL in the directory that has the <c>Entry</c> method. Mutually exclusive with <see cref="P:StardewModdingAPI.Toolkit.Serialization.Models.Manifest.ContentPackFor"/>.</param>
            <param name="contentPackFor">The modID which will read this as a content pack.</param>
            <param name="dependencies">The other mods that must be loaded before this mod.</param>
            <param name="updateKeys">The namespaced mod IDs to query for updates (like <c>Nexus:541</c>).</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Models.Manifest.OverrideUpdateKeys(System.String[])">
            <summary>Override the update keys loaded from the mod info.</summary>
            <param name="updateKeys">The new update keys to set.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Models.Manifest.NormalizeField(System.String,System.Boolean)">
            <summary>Normalize a manifest field to strip newlines, trim whitespace, and optionally strip square brackets.</summary>
            <param name="input">The input to strip.</param>
            <param name="replaceSquareBrackets">Whether to replace square brackets with round ones. This is used in the mod name to avoid breaking the log format.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Serialization.Models.ManifestContentPackFor">
            <summary>Indicates which mod can read the content pack represented by the containing manifest.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Models.ManifestContentPackFor.UniqueID">
            <summary>The unique ID of the mod which can read this content pack.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Models.ManifestContentPackFor.MinimumVersion">
            <summary>The minimum required version (if any).</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Models.ManifestContentPackFor.#ctor(System.String,StardewModdingAPI.ISemanticVersion)">
            <summary>Construct an instance.</summary>
            <param name="uniqueId">The unique ID of the mod which can read this content pack.</param>
            <param name="minimumVersion">The minimum required version (if any).</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Models.ManifestContentPackFor.NormalizeWhitespace(System.String)">
            <summary>Normalize whitespace in a raw string.</summary>
            <param name="input">The input to strip.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Serialization.Models.ManifestDependency">
            <summary>A mod dependency listed in a mod manifest.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Models.ManifestDependency.UniqueID">
            <summary>The unique mod ID to require.</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Models.ManifestDependency.MinimumVersion">
            <summary>The minimum required version (if any).</summary>
        </member>
        <member name="P:StardewModdingAPI.Toolkit.Serialization.Models.ManifestDependency.IsRequired">
            <summary>Whether the dependency must be installed to use the mod.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Models.ManifestDependency.#ctor(System.String,System.String,System.Boolean)">
            <summary>Construct an instance.</summary>
            <param name="uniqueID">The unique mod ID to require.</param>
            <param name="minimumVersion">The minimum required version (if any).</param>
            <param name="required">Whether the dependency must be installed to use the mod.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Models.ManifestDependency.#ctor(System.String,StardewModdingAPI.ISemanticVersion,System.Boolean)">
            <summary>Construct an instance.</summary>
            <param name="uniqueID">The unique mod ID to require.</param>
            <param name="minimumVersion">The minimum required version (if any).</param>
            <param name="required">Whether the dependency must be installed to use the mod.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.Models.ManifestDependency.NormalizeWhitespace(System.String)">
            <summary>Normalize whitespace in a raw string.</summary>
            <param name="input">The input to strip.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Serialization.SParseException">
            <summary>A format exception which provides a user-facing error message.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Serialization.SParseException.#ctor(System.String,System.Exception)">
            <summary>Construct an instance.</summary>
            <param name="message">The error message.</param>
            <param name="ex">The underlying exception, if any.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Utilities.EnvironmentUtility">
            <summary>Provides methods for fetching environment information.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Utilities.EnvironmentUtility.CachedPlatform">
            <summary>The cached platform.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Utilities.EnvironmentUtility.DetectPlatform">
            <summary>Detect the current OS.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Utilities.EnvironmentUtility.GetFriendlyPlatformName(StardewModdingAPI.Toolkit.Utilities.Platform)">
            <summary>Get the human-readable OS name and version.</summary>
            <param name="platform">The current platform.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Utilities.EnvironmentUtility.Is64BitAssembly(System.String)">
            <summary>Get whether an executable is 64-bit.</summary>
            <param name="path">The absolute path to the assembly file.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Utilities.FileUtilities">
            <summary>Provides utilities for dealing with files.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Utilities.FileUtilities.ForceDelete(System.IO.FileSystemInfo)">
            <summary>Delete a file or folder regardless of file permissions, and block until deletion completes.</summary>
            <param name="entry">The file or folder to reset.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Utilities.FileUtilities.GetFileHash(System.String)">
            <summary>Get the MD5 hash for a file.</summary>
            <param name="absolutePath">The absolute file path.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Utilities.PathLookups.CaseInsensitiveFileLookup">
            <summary>An API for case-insensitive file lookups within a root directory.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Utilities.PathLookups.CaseInsensitiveFileLookup.RootPath">
            <summary>The root directory path for relative paths.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Utilities.PathLookups.CaseInsensitiveFileLookup.RelativePathCache">
            <summary>A case-insensitive lookup of file paths within the <see cref="F:StardewModdingAPI.Toolkit.Utilities.PathLookups.CaseInsensitiveFileLookup.RootPath"/>. Each path is listed in both file path and asset name format, so it's usable in both contexts without needing to re-parse paths.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Utilities.PathLookups.CaseInsensitiveFileLookup.CachedRoots">
            <summary>The case-insensitive file lookups by root path.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Utilities.PathLookups.CaseInsensitiveFileLookup.#ctor(System.String,System.IO.SearchOption)">
            <summary>Construct an instance.</summary>
            <param name="rootPath">The root directory path for relative paths.</param>
            <param name="searchOption">Which directories to scan from the root.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Utilities.PathLookups.CaseInsensitiveFileLookup.GetFile(System.String)">
            <inheritdoc />
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Utilities.PathLookups.CaseInsensitiveFileLookup.Add(System.String)">
            <inheritdoc />
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Utilities.PathLookups.CaseInsensitiveFileLookup.GetCachedFor(System.String)">
            <summary>Get a cached dictionary of relative paths within a root path, for case-insensitive file lookups.</summary>
            <param name="rootPath">The root path to scan.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Utilities.PathLookups.CaseInsensitiveFileLookup.GetRelativePathCache(System.IO.SearchOption)">
            <summary>Get a case-insensitive lookup of file paths (see <see cref="F:StardewModdingAPI.Toolkit.Utilities.PathLookups.CaseInsensitiveFileLookup.RelativePathCache"/>).</summary>
            <param name="searchOption">Which directories to scan from the root.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Utilities.PathLookups.IFileLookup">
            <summary>An API for file lookups within a root directory.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Utilities.PathLookups.IFileLookup.GetFile(System.String)">
            <summary>Get the file for a given relative file path, if it exists.</summary>
            <param name="relativePath">The relative path.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Utilities.PathLookups.IFileLookup.Add(System.String)">
            <summary>Add a relative path that was just created by a SMAPI API.</summary>
            <param name="relativePath">The relative path.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Utilities.PathLookups.MinimalFileLookup">
            <summary>An API for file lookups within a root directory with minimal preprocessing.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Utilities.PathLookups.MinimalFileLookup.CachedRoots">
            <summary>The file lookups by root path.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Utilities.PathLookups.MinimalFileLookup.RootPath">
            <summary>The root directory path for relative paths.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Utilities.PathLookups.MinimalFileLookup.#ctor(System.String)">
            <summary>Construct an instance.</summary>
            <param name="rootPath">The root directory path for relative paths.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Utilities.PathLookups.MinimalFileLookup.GetFile(System.String)">
            <inheritdoc />
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Utilities.PathLookups.MinimalFileLookup.Add(System.String)">
            <inheritdoc />
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Utilities.PathLookups.MinimalFileLookup.GetCachedFor(System.String)">
            <summary>Get a cached dictionary of relative paths within a root path, for case-insensitive file lookups.</summary>
            <param name="rootPath">The root path to scan.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Utilities.PathUtilities">
            <summary>Provides utilities for normalizing file paths.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Utilities.PathUtilities.WindowsUncRoot">
            <summary>The root prefix for a Windows UNC path.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Utilities.PathUtilities.PossiblePathSeparators">
            <summary>The possible directory separator characters in a file path.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Utilities.PathUtilities.PreferredPathSeparator">
            <summary>The preferred directory separator character in a file path.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Utilities.PathUtilities.PreferredAssetSeparator">
            <summary>The preferred directory separator character in an asset key.</summary>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Utilities.PathUtilities.GetSegments(System.String,System.Nullable{System.Int32})">
            <summary>Get the segments from a path (e.g. <c>/usr/bin/example</c> => <c>usr</c>, <c>bin</c>, and <c>example</c>).</summary>
            <param name="path">The path to split.</param>
            <param name="limit">The number of segments to match. Any additional segments will be merged into the last returned part.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Utilities.PathUtilities.NormalizeAssetName(System.String)">
            <summary>Normalize an asset name to match how MonoGame's content APIs would normalize and cache it.</summary>
            <param name="assetName">The asset name to normalize.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Utilities.PathUtilities.NormalizePath(System.String)">
            <summary>Normalize separators in a file path for the current platform.</summary>
            <param name="path">The file path to normalize.</param>
            <remarks>This should only be used for file paths. For asset names, use <see cref="M:StardewModdingAPI.Toolkit.Utilities.PathUtilities.NormalizeAssetName(System.String)"/> instead.</remarks>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Utilities.PathUtilities.GetRelativePath(System.String,System.String)">
            <summary>Get a directory or file path relative to a given source path. If no relative path is possible (e.g. the paths are on different drives), an absolute path is returned.</summary>
            <param name="sourceDir">The source folder path.</param>
            <param name="targetPath">The target folder or file path.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Utilities.PathUtilities.IsSafeRelativePath(System.String)">
            <summary>Get whether a path is relative and doesn't try to climb out of its containing folder (e.g. doesn't contain <c>../</c>).</summary>
            <param name="path">The path to check.</param>
        </member>
        <member name="M:StardewModdingAPI.Toolkit.Utilities.PathUtilities.IsSlug(System.String)">
            <summary>Get whether a string is a valid 'slug', containing only basic characters that are safe in all contexts (e.g. filenames, URLs, etc).</summary>
            <param name="str">The string to check.</param>
        </member>
        <member name="T:StardewModdingAPI.Toolkit.Utilities.Platform">
            <summary>The game's platform version.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Utilities.Platform.Android">
            <summary>The Android version of the game.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Utilities.Platform.Linux">
            <summary>The Linux version of the game.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Utilities.Platform.Mac">
            <summary>The macOS version of the game.</summary>
        </member>
        <member name="F:StardewModdingAPI.Toolkit.Utilities.Platform.Windows">
            <summary>The Windows version of the game.</summary>
        </member>
    </members>
</doc>
