wasm-capability-contract 0.3.0

Generic, domain-agnostic capability pattern: CapabilityEngine/CapabilityRegistry/CapabilityDispatcher trait shapes + component/capability types. Trait definitions only -- see wasm-capability-core for this pattern's own default implementation, extracted from agent-runtime's ADR-001 (agent-runtime#31, ADR-011).
Documentation
//! [`ArtifactProvenance`] — where a component's `.wasm` bytes came from and how to verify them.

use serde::{Deserialize, Serialize};

/// Identifies and verifies the `.wasm` artifact a [`crate::ComponentManifest`] describes.
///
/// A real `ComponentValidator` implementor is expected to check
/// `checksum_sha256` against the actual component bytes before ever
/// loading them — this type only carries the claim, it does not verify it
/// itself (verification is an adapter concern, per ADR-001's port/adapter
/// split).
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct ArtifactProvenance {
    /// Where this artifact was built (a CI run id, a build system name, ...).
    pub source: String,
    /// Lowercase hex SHA-256 of the component's raw `.wasm` bytes.
    pub checksum_sha256: String,
    /// ISO 8601 timestamp of when the artifact was built.
    pub built_at: String,
}