Gunnar

nordisk/monetize

crates/monetize-product-guest/Cargo.toml

[package]
name = "monetize-product-guest"
description = "What a monetize product GUEST compiles against: the six-op contract (manifest, facts, plan, the guardian three), the wire types, the host doors, split by guest kind (http, grpc, endpoint, state, hmac; product guests hold none) and the export_product! scaffolding that turns a Guest into a signed .wasm the open server loads behind one ProductFactory"
# 0.1.4 (2026-09-26): first publish, with monetize-product 0.1.4 — gunnar's
# own plugin (gunnar/crates/gunnar-monetize-guest) takes it from the registry.
# 0.2.0 (2026-10-25, v2.0 P2 T13, A28 M2): BREAKING. The product contract is the six ops
# (manifest, lifecycle.facts, lifecycle.lay_plan, guardian.diagnose/plan/observe); the 17
# push ops, op 41 and the merged ops 2, 40, 54, 60 are retired; a product guest has no grants.
# 0.3.0 (2026-10-26, A3): BREAKING, the workspace's crates.io line: since 0.2.0 the core kinds and
# the Facts fields of P3, and GRANTS (owner decision 6): `Host::env` and `grants::ENV` are gone,
# `Host::endpoint` and `grants::of_kind` are new. Requires monetize-product 0.3.0.
version.workspace = true
edition.workspace = true
rust-version.workspace = true
repository = "https://git.gunnar.rs/nordisk/monetize"
license.workspace = true
authors.workspace = true
publish = true

# Compiled for wasm32-unknown-unknown inside every guest AND linked into the
# host, so anything added here is paid twice. serde + serde_json is the whole
# closure; monetize-product is serde-only and crosses to wasm32 unchanged, which
# is why the wire types are ITS types rather than mirrors of them.
# **The test-only flag** (RA2-12): with it, a `[products]` block also loads a TEST-kind guest
# (the toy, which holds the `endpoint` grant a product is denied). Set only on a
# dev-dependency, by the host's own tests; a release build never sets it (the guard test
# `release_builds_never_set_the_test_only_flag`).
[features]
test-guests = []

[dependencies]
monetize-product = { version = "0.3.0", path = "../monetize-product" }
serde.workspace = true
serde_json.workspace = true