Spec 0.1-draftTattoo 0.1.0 · draftEdit on git.cafe ↗
On this page

Core · 0.1-draft

Read the contract. Take the JSON.

These are byte-for-byte copies of the repository’s spec/schemas/*.json, published at build time. They use JSON Schema draft 2020-12. The source files, not these summaries, are authoritative.

Schema browser

Open a source preview or download the raw file. Schema sources describe constraints, not real prices. Any illustrative numeric values are example data. Example data, not real prices.

  • common.json — Reusable identifiers, consent, raw answers, review modes, currencies and expiry definitions.
  • estimate.json — Non-binding computed price range, provenance, assumptions and confidence before artist review.
  • factor-catalog.json — Industry factor catalog: question mappings, status, default switches and provenance.
  • lifecycle.json — Valid state strings and the normative transitions annotation.
  • pricing-model.json — Business-owned factors, rates, minimums, rounding, deposit and expiry.
  • question-catalog.json — Industry intake questions, types, options and provenance.
  • quote-manifest.json — Business-enabled questions, model reference, review mode and currencies.
  • quote-request.json — Raw answers and consent for a selected pack version.
  • quote.json — Binding artist-reviewed offer, required price, provenance, sessions, deposit policies and valid_until.

UQP reusable definitions

Reusable identifiers, consent, raw answers, review modes, currencies and expiry definitions.

View raw common.json · Download common.json

Preview common.json
common.json schema source
Open the preview to load this schema, or use the raw download links above.

Estimate

Non-binding computed price range, provenance, assumptions and confidence before artist review.

View raw estimate.json · Download estimate.json

Preview estimate.json
estimate.json schema source
Open the preview to load this schema, or use the raw download links above.

FactorCatalog

Industry factor catalog: question mappings, status, default switches and provenance.

View raw factor-catalog.json · Download factor-catalog.json

Preview factor-catalog.json
factor-catalog.json schema source
Open the preview to load this schema, or use the raw download links above.

LifecycleState

Valid state strings and the normative transitions annotation.

View raw lifecycle.json · Download lifecycle.json

Preview lifecycle.json
lifecycle.json schema source
Open the preview to load this schema, or use the raw download links above.

PricingModel

Business-owned factors, rates, minimums, rounding, deposit and expiry.

View raw pricing-model.json · Download pricing-model.json

Preview pricing-model.json
pricing-model.json schema source
Open the preview to load this schema, or use the raw download links above.

QuestionCatalog

Industry intake questions, types, options and provenance.

View raw question-catalog.json · Download question-catalog.json

Preview question-catalog.json
question-catalog.json schema source
Open the preview to load this schema, or use the raw download links above.

QuoteManifest

Business-enabled questions, model reference, review mode and currencies.

View raw quote-manifest.json · Download quote-manifest.json

Preview quote-manifest.json
quote-manifest.json schema source
Open the preview to load this schema, or use the raw download links above.

QuoteRequest

Raw answers and consent for a selected pack version.

View raw quote-request.json · Download quote-request.json

Preview quote-request.json
quote-request.json schema source
Open the preview to load this schema, or use the raw download links above.

Quote

Binding artist-reviewed offer, required price, provenance, sessions, deposit policies and valid_until.

View raw quote.json · Download quote.json

Preview quote.json
quote.json schema source
Open the preview to load this schema, or use the raw download links above.

Validate the whole contract

Register every schema by its $id, enable date-time format validation and resolve relative references against https://uqp.dev/spec/schemas/. With strict Ajv, use its 2020 implementation, enable ajv-formats and register transitions as an annotation keyword.

Schema validation cannot execute pricing, enforce lifecycle transitions, compare range bounds or verify cross-document pack-version equality. Implement those checks separately. See review and validation boundaries and the lifecycle diagram.

Try the sample JSON · Explore the Tattoo pack