Scope, architecture, and validation

Package structure

The distribution is pystac-ext-osc. Import OSC wrappers from pystac.extensions.osc. The wheel excludes the shared namespace initializer owned by PySTAC.

OscExtension.ext() chooses a Catalog, Collection, or Item wrapper. It writes directly into the object's existing metadata dictionary. It does not register an .ext.osc accessor. OSC_EXTENSION_HOOKS declares the v1.0.0 schema, no previous extension identifiers, and Catalog/Collection/Item types; registration with a migration system is left to callers.

The published OSC v1.0.0 schema and upstream main schema were compared on 2026-10-06 and were identical. The implemented project/product field set matches them. Source: OSC specification.

Validation boundaries

Neither OSC apply methods nor serialization runs JSON Schema validation. Apply methods mutate fields sequentially and clear omitted optional values. They do not provide transactional updates or create related links.

For STAC validation, install pystac[validation] and call the STAC object's validate(). Schema retrieval may require network access or an application-configured schema cache.