Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, this project adheres to Semantic Versioning, commits follow Conventional Commits, and this changelog is generated by Structured Changelog.
Unreleased¶
v0.1.0 - 2026-10-22¶
Highlights¶
- A Go-first, machine-readable description of a product's pricing and packaging: tiers, plans with prices, features (switches and ordered levels), limits (with periods and fair use), one-time products, a marketplace fee, and the application access each tier grants
- Safe by construction: an unknown plan is the default plan, an unset feature is off, an unset limit is zero, and unlimited is its own field
- Validation with stable error codes (E001 to E013) that reports every error at once, and lint warnings (W001 to W006) for review
- Projections computed from the spec: a pricing view, a tier-to-entitlement map, and a diff that marks what affects existing customers
Added¶
pricingspectypes:Spec,Tier,Feature,Limit,Plan,Price,FeatureValue,LimitValue,Product,MarketplaceandTierGrant, following the static-type profile with no schema composition (6a57f7b)schema/pricing.schema.jsongenerated from the Go types and embedded, with a test that fails when it is out of date (976d42f)LoadandParsedecode strictly, reject unknown fields and unknown format versions, and return a*ValidationErrorlisting every error rule broken (E001 to E013) with a path (1bb1795)Spec.Lintreports the review warnings W001 to W006: unlimited defaults without fair use, a higher tier priced under a lower one, unused features and limits, tiers without grants, level names that read as options, and annual prices that are no saving (811bdb2)- Helpers
PlanOrDefault,Has,Level,AtLeast,Allowance,Check(allowed, warn or refuse),GrantsForandTierRank; an unknown identifier never grants more (deae5dc) PricingVieworders plans by tier and lines features and limits up across them as data for a page;EntitlementMaplists each tier's grants in rank order (8f39a8e)Diffcompares two specs in a stable order and marks price increases, lowered allowances, removed features, lowered levels, removed grants, higher fees and removed plans as affecting existing customers (8ceb1d5)- Examples of a subscription tool and a marketplace, both invented, kept valid and free of warnings by tests (
7d78714)
Documentation¶
SPEC.mdis the normative description of the model, the rule codes, resolution, projections and the mapping from a tier to account entitlements (0b1d170)- The fit of the model to three product shapes is recorded, with the changes it required (
4201e64) - A user guide covers concepts, writing a spec and using a spec, built as an MkDocs site (
07ae1ae)
Tests¶
- A test for every error and warning code, the loader's rejections, the helpers, golden files for the projections and the diff, and schema validation of the examples (
da640d5)
Infrastructure¶
- Module, license, lint configuration and CI workflows (
ea05786)