Table of Contents

Class CatalogEntry

Namespace
SpecWorks.AiCatalog.Models
Assembly
SpecWorks.AiCatalog.dll

A single catalog entry describing an AI artifact. Must have exactly one of Url or Data.

public sealed class CatalogEntry
Inheritance
object
CatalogEntry
Extension Methods

Properties

Data

Embedded artifact content (opaque JSON value). Mutually exclusive with Url.

[JsonPropertyName("data")]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public JsonElement? Data { get; set; }

Property Value

JsonElement?

Description

Optional human-readable description of the artifact.

[JsonPropertyName("description")]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public string? Description { get; set; }

Property Value

string

DisplayName

The human-readable display name.

[JsonPropertyName("displayName")]
public string DisplayName { get; set; }

Property Value

string

ExtensionData

Unknown properties preserved for forward compatibility (MUST ignore per VH-2).

[JsonExtensionData]
public Dictionary<string, JsonElement>? ExtensionData { get; set; }

Property Value

Dictionary<string, JsonElement>

Identifier

The unique identifier for this entry.

[JsonPropertyName("identifier")]
public string Identifier { get; set; }

Property Value

string

MediaType

The IANA media type describing the artifact format.

[JsonPropertyName("mediaType")]
public string MediaType { get; set; }

Property Value

string

Metadata

Optional open metadata map for extension data.

[JsonPropertyName("metadata")]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public JsonElement? Metadata { get; set; }

Property Value

JsonElement?

Publisher

Optional publisher information.

[JsonPropertyName("publisher")]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public Publisher? Publisher { get; set; }

Property Value

Publisher

Tags

Optional string tags for categorization.

[JsonPropertyName("tags")]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public List<string>? Tags { get; set; }

Property Value

List<string>

TrustManifest

Optional trust manifest for this entry.

[JsonPropertyName("trustManifest")]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public TrustManifest? TrustManifest { get; set; }

Property Value

TrustManifest

UpdatedAt

Optional RFC 3339 datetime when the entry was last updated.

[JsonPropertyName("updatedAt")]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public string? UpdatedAt { get; set; }

Property Value

string

Url

URL to the artifact. Mutually exclusive with Data.

[JsonPropertyName("url")]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public string? Url { get; set; }

Property Value

string

Version

Optional version string for multi-version entries.

[JsonPropertyName("version")]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public string? Version { get; set; }

Property Value

string