Interface SourceDescriptor<TProtocol>

Canonical descriptor for one protocol-backed data source. Carries everything required to construct a Source, negotiate capabilities, and project the source onto a server SourceBinding.

Generic over TProtocol (defaulting to the built-in Protocol union) so a third-party ProtocolModule<TKind> (src/contract/protocol-module.ts, issue #671) can type a descriptor carrying its own custom protocol id — e.g. SourceDescriptor<"cloud-tiles"> — without widening every built-in call site that still expects descriptor.protocol to be a Protocol.

interface SourceDescriptor<TProtocol> {
    analytics?: SourceAnalyticsCapabilities;
    attribution?: string;
    capabilities: Capabilities;
    capabilityProfile?: CapabilityProfile;
    id: string;
    locator: SourceLocator;
    protocol: TProtocol;
    schema?: SourceSchema;
    schemaV2?: SourceSchemaV2Envelope;
    schemaV2State?: SchemaIdentity;
}

Type Parameters

Properties

attribution?: string
capabilities: Capabilities
capabilityProfile?: CapabilityProfile

Evaluated, immutable capability truth for this source. When present it is authoritative over the legacy capabilities set; the set is retained as a derived compatibility view for built-in capability identifiers.

Profiles must be produced or parsed by @honua/sdk-js/source-capabilities and match both this descriptor's schemaV2 fingerprint and its canonical protocol endpoint identity. Protocol discovery attaches them in the focused capability-aware connection path.

id: string
locator: SourceLocator
protocol: TProtocol
schema?: SourceSchema

Identity envelope for an experimental vendor-neutral schema projected alongside legacy schema. Use @honua/sdk-js/source-schema to validate and inspect the complete schema value.

schemaV2State?: SchemaIdentity

Explicit schema truth; unavailable states must not be represented by a fabricated schemaV2.