Marketplace Catalog
Audience: marketplace maintainers and system publishers.
Authoritative for:
- the machine-readable marketplace catalog
See also:
- Systems, Composition, and Evolution: system packaging and publication
- Collection Model: collection and system identity
The catalog is a companion distribution contract, not a Core collection artifact. It remains hosted here until a coordinated repository transfer can preserve its schema, fixtures, and published references.
Marketplace Catalog#
A marketplace publishes the systems it knows in a machine-readable catalog, so tools and websites can browse systems, download them, and compose them into collections.
Example marketplace.json:
{
"specification_version": "0.1.0",
"label": "TypedMark Systems Marketplace",
"description": "Community catalog of reusable TypedMark systems.",
"systems": [
{
"name": "@acme/para-system",
"version": "1.2.0",
"label": "PARA System",
"description": "PARA-style organization system.",
"keywords": ["para", "organization"],
"source": {
"path": "systems/para-system"
}
},
{
"name": "dev-team-ai-context",
"version": "0.3.0",
"description": "AI context system for development teams.",
"source": {
"repository": "https://github.com/example/dev-team-ai-context",
"ref": "v0.3.0"
}
}
]
}
Rules:
- SCE-28 A marketplace catalog is a JSON document named
marketplace.jsonat the root of the marketplace repository. - SCE-29 The catalog is machine-facing distribution metadata, not collection content; it is plain JSON rather than a Markdown artifact with frontmatter.
- SCE-30 The catalog MUST contain
specification_versionandsystems, and MAY containlabelanddescriptiondescribing the marketplace itself. - SCE-31
systemsMUST be a list of catalog entries; each entry describes exactly one system release. - SCE-32 Each catalog entry MUST declare
name,version, andsource. - SCE-33 An entry's
namefollows the collection identity rules defined in Collection Model, and itsversionMUST be a Semantic Versioning 2.0.0 string. - SCE-34 The pair of
nameandversionMUST be unique within one catalog. - SCE-35 An entry MAY restate the system's discovery metadata —
label,description,keywords,audiences,publisher, andlicense; when present, these SHOULD equal the values in the system'stypedmark.md, which remains authoritative. - SCE-158 Restated discovery metadata MUST satisfy the corresponding system-field shapes, including a publisher's required name.
- SCE-36
sourcedeclares where the system lives and MUST take exactly one of two forms:- the path form:
pathnames the folder containing the system'stypedmark.md, relative to the catalog's own repository root - the repository form:
repositoryis an absolute URL of the repository hosting the system, with an optionalpathto the system folder inside that repository, defaulting to the repository root, and an optionalrefnaming a tag, branch, or commit
- the path form:
- SCE-37 When
refis omitted, the hosting repository's default state is used; publishers SHOULD pin a tag or commit so resolution stays reproducible. - SCE-38 A
sourceMUST lead to a folder containing atypedmark.mdwhosenameandversionequal the entry'snameandversion. - SCE-39 Composition source resolution MAY use one or more marketplace catalogs to resolve
composition.sourcesentries; a source that resolves through a catalog to a mismatching system is aninvalid_compositionfailure. - SCE-40 A marketplace SHOULD validate every listed system as a valid system definition before listing it.
- SCE-41 The machine-readable JSON Schema for the catalog is published in the specification repository under
schema/json-schema/.