Service Offer v1¶
Source schema: doc/schemas/service-offer.v1.schema.json
Machine-readable schema for one standing exchange-facing service offer published by a provider-side subject. This artifact is catalog-facing and distinct from transport-facing node advertisements. Host-side pricing remains computable through explicit unit semantics rather than through parsing human-readable labels.
Governing Basis¶
doc/project/30-stories/story-006.mddoc/project/30-stories/story-006-buyer-node-components.mddoc/project/40-proposals/021-service-offers-orders-and-procurement-bridge.mddoc/project/50-requirements/requirements-012.md
Project Lineage¶
Requirements¶
doc/project/50-requirements/requirements-006.mddoc/project/50-requirements/requirements-010.mddoc/project/50-requirements/requirements-011.mddoc/project/50-requirements/requirements-012.md
Stories¶
doc/project/30-stories/story-001.mddoc/project/30-stories/story-004.mddoc/project/30-stories/story-006-buyer-node-components.mddoc/project/30-stories/story-006.md
Fields¶
| Field | Required | Shape | Description |
|---|---|---|---|
schema/v |
yes |
const: 1 |
Schema version. |
offer/id |
yes |
string | Stable identifier of this standing service offer. |
created-at |
yes |
string | Timestamp when the offer record became auditable. |
published-at |
yes |
string | Timestamp when the offer was last published to the exchange-visible channel. |
expires-at |
yes |
string | Timestamp after which the offer should be treated as stale. |
sequence/no |
yes |
integer | Monotonic per-offer sequence number. Higher values supersede lower ones for the same standing offer identity. |
provider/node-id |
yes |
string | Serving node hosting this offer. |
provider/participant-id |
yes |
string | Provider-side accountable subject publishing this offer. |
service/type |
yes |
string | Marketplace-visible service category such as text/redaction, research/topical, or image/generation. |
service/description |
yes |
string | Human-readable summary of the offered service. |
pricing/amount |
yes |
integer | Price in minor units for one billable unit of service. When pricing/currency = ORC, the value uses ORC minor units with fixed scale 2. |
pricing/currency |
yes |
string | Settlement unit or currency symbol, with ORC as the current hard-MVP marketplace unit. |
pricing/unit |
yes |
string | Human-readable billable unit label, for example 1 summary item, 1800 input characters, or 1 illustration. |
pricing/unit-kind |
yes |
enum: per-item, per-character-block, per-request, flat |
Host-computable pricing kind. The host computes total price and hold from explicit order units multiplied by pricing/amount; pricing/unit remains descriptive only. |
delivery/max-duration-sec |
yes |
integer | Maximum provider-side promised duration for one accepted order under this standing offer. |
queue/auto-accept |
yes |
boolean | Whether the provider declares automatic acceptance up to the published queue posture. |
queue/max-depth |
yes |
integer | Maximum queue depth at which the provider still considers the service admissible. |
queue/current-depth |
no |
integer | Current queue depth when the offer was published or refreshed. |
constraints/input |
no |
object | Optional input-side bounded constraints declared by the provider. |
constraints/output |
no |
object | Optional output-side bounded constraints declared by the provider. |
hybrid |
yes |
boolean | Whether this service involves human intervention beyond pure automated model execution. |
model-first |
no |
boolean | Whether model-backed processing is intended to happen before human intervention when hybrid is true. |
confirmation/mode |
no |
enum: arbiter-confirmed, self-confirmed, manual-review-only |
Provider-declared preferred confirmation mode intended to map directly into procurement contract confirmation semantics. |
policy_annotations |
no |
object | Optional marketplace-local or federation-local annotations that do not redefine the core standing-offer semantics. |
signature |
yes |
ref: #/$defs/signature |
Definitions¶
| Definition | Shape | Description |
|---|---|---|
signature |
object |
Conditional Rules¶
Rule 1¶
When:
{
"properties": {
"hybrid": {
"const": false
}
},
"required": [
"hybrid"
]
}
Then:
{
"properties": {
"model-first": {
"const": false
}
}
}
Field Semantics¶
schema/v¶
- Required:
yes - Shape: const:
1
Schema version.
offer/id¶
- Required:
yes - Shape: string
Stable identifier of this standing service offer.
created-at¶
- Required:
yes - Shape: string
Timestamp when the offer record became auditable.
published-at¶
- Required:
yes - Shape: string
Timestamp when the offer was last published to the exchange-visible channel.
expires-at¶
- Required:
yes - Shape: string
Timestamp after which the offer should be treated as stale.
sequence/no¶
- Required:
yes - Shape: integer
Monotonic per-offer sequence number. Higher values supersede lower ones for the same standing offer identity.
provider/node-id¶
- Required:
yes - Shape: string
Serving node hosting this offer.
provider/participant-id¶
- Required:
yes - Shape: string
Provider-side accountable subject publishing this offer.
service/type¶
- Required:
yes - Shape: string
Marketplace-visible service category such as text/redaction, research/topical, or image/generation.
service/description¶
- Required:
yes - Shape: string
Human-readable summary of the offered service.
pricing/amount¶
- Required:
yes - Shape: integer
Price in minor units for one billable unit of service. When pricing/currency = ORC, the value uses ORC minor units with fixed scale 2.
pricing/currency¶
- Required:
yes - Shape: string
Settlement unit or currency symbol, with ORC as the current hard-MVP marketplace unit.
pricing/unit¶
- Required:
yes - Shape: string
Human-readable billable unit label, for example 1 summary item, 1800 input characters, or 1 illustration.
pricing/unit-kind¶
- Required:
yes - Shape: enum:
per-item,per-character-block,per-request,flat
Host-computable pricing kind. The host computes total price and hold from explicit order units multiplied by pricing/amount; pricing/unit remains descriptive only.
delivery/max-duration-sec¶
- Required:
yes - Shape: integer
Maximum provider-side promised duration for one accepted order under this standing offer.
queue/auto-accept¶
- Required:
yes - Shape: boolean
Whether the provider declares automatic acceptance up to the published queue posture.
queue/max-depth¶
- Required:
yes - Shape: integer
Maximum queue depth at which the provider still considers the service admissible.
queue/current-depth¶
- Required:
no - Shape: integer
Current queue depth when the offer was published or refreshed.
constraints/input¶
- Required:
no - Shape: object
Optional input-side bounded constraints declared by the provider.
constraints/output¶
- Required:
no - Shape: object
Optional output-side bounded constraints declared by the provider.
hybrid¶
- Required:
yes - Shape: boolean
Whether this service involves human intervention beyond pure automated model execution.
model-first¶
- Required:
no - Shape: boolean
Whether model-backed processing is intended to happen before human intervention when hybrid is true.
confirmation/mode¶
- Required:
no - Shape: enum:
arbiter-confirmed,self-confirmed,manual-review-only
Provider-declared preferred confirmation mode intended to map directly into procurement contract confirmation semantics.
policy_annotations¶
- Required:
no - Shape: object
Optional marketplace-local or federation-local annotations that do not redefine the core standing-offer semantics.
signature¶
- Required:
yes - Shape: ref:
#/$defs/signature
Definition Semantics¶
$defs.signature¶
- Shape: object