Skip to content

Operator Task Offer Publication v1

Source schema: doc/schemas/operator-task-offer-publication.v1.schema.json

Owner projection of exact draft publication and withdrawal. Current dispatch admission is separate from past publication. A BDO handle is never proof of publication or withdrawal completion.

Governing Basis

Project Lineage

Fields

Field Required Shape Description
schema yes const: operator-task-offer-publication.v1
schema/v yes const: 1
draft yes ref: operator-task-offer-draft.v1.schema.json
state yes enum: unpublished, pending, published, withdrawal-pending, withdrawn, failed
admissible yes boolean
local-binding/current-digest no ref: operator-task-common.v1.schema.json#/$defs/digest Current host-observed binding revision shown for an explicit action. The retained draft still binds its original revision; inspection never silently rewrites it.
operation/ref no ref: operator-task-common.v1.schema.json#/$defs/ref
operation/status no enum: pending, running, completed, failed, cancelled, unknown
fenced/reason no ref: operator-task-common.v1.schema.json#/$defs/refusalCode
withdrawal/reason no unspecified Original host-observed fence that queued automatic withdrawal, not the current fence. Null means a historical automatic intent did not retain its trigger; inspection must not infer it from current readiness.

Conditional Rules

Rule 1

When:

{
  "required": [
    "withdrawal/reason"
  ]
}

Then:

{
  "properties": {
    "state": {
      "enum": [
        "withdrawal-pending",
        "withdrawn",
        "failed"
      ]
    },
    "admissible": {
      "const": false
    }
  }
}

Rule 2

When:

{
  "required": [
    "admissible"
  ],
  "properties": {
    "admissible": {
      "const": true
    }
  }
}

Then:

{
  "required": [
    "operation/ref",
    "operation/status",
    "local-binding/current-digest"
  ],
  "properties": {
    "state": {
      "const": "published"
    },
    "operation/status": {
      "const": "completed"
    }
  },
  "not": {
    "required": [
      "fenced/reason"
    ]
  }
}

Rule 3

When:

{
  "required": [
    "state"
  ],
  "properties": {
    "state": {
      "const": "unpublished"
    }
  }
}

Then:

{
  "properties": {
    "admissible": {
      "const": false
    }
  },
  "not": {
    "anyOf": [
      {
        "required": [
          "operation/ref"
        ]
      },
      {
        "required": [
          "operation/status"
        ]
      }
    ]
  }
}

Rule 4

When:

{
  "required": [
    "state"
  ],
  "properties": {
    "state": {
      "enum": [
        "pending",
        "published",
        "withdrawal-pending",
        "withdrawn",
        "failed"
      ]
    }
  }
}

Then:

{
  "required": [
    "operation/ref",
    "operation/status"
  ]
}

Rule 5

When:

{
  "required": [
    "state"
  ],
  "properties": {
    "state": {
      "enum": [
        "published",
        "withdrawn"
      ]
    }
  }
}

Then:

{
  "properties": {
    "operation/status": {
      "const": "completed"
    }
  }
}

Rule 6

When:

{
  "required": [
    "state"
  ],
  "properties": {
    "state": {
      "const": "failed"
    }
  }
}

Then:

{
  "properties": {
    "operation/status": {
      "const": "failed"
    },
    "admissible": {
      "const": false
    }
  }
}

Rule 7

When:

{
  "required": [
    "state"
  ],
  "properties": {
    "state": {
      "enum": [
        "pending",
        "withdrawal-pending"
      ]
    }
  }
}

Then:

{
  "properties": {
    "operation/status": {
      "enum": [
        "pending",
        "running",
        "unknown"
      ]
    },
    "admissible": {
      "const": false
    }
  }
}

Rule 8

When:

{
  "required": [
    "state"
  ],
  "properties": {
    "state": {
      "const": "withdrawn"
    }
  }
}

Then:

{
  "properties": {
    "admissible": {
      "const": false
    }
  }
}

Field Semantics

schema

  • Required: yes
  • Shape: const: operator-task-offer-publication.v1

schema/v

  • Required: yes
  • Shape: const: 1

draft

  • Required: yes
  • Shape: ref: operator-task-offer-draft.v1.schema.json

state

  • Required: yes
  • Shape: enum: unpublished, pending, published, withdrawal-pending, withdrawn, failed

admissible

  • Required: yes
  • Shape: boolean

local-binding/current-digest

  • Required: no
  • Shape: ref: operator-task-common.v1.schema.json#/$defs/digest

Current host-observed binding revision shown for an explicit action. The retained draft still binds its original revision; inspection never silently rewrites it.

operation/ref

  • Required: no
  • Shape: ref: operator-task-common.v1.schema.json#/$defs/ref

operation/status

  • Required: no
  • Shape: enum: pending, running, completed, failed, cancelled, unknown

fenced/reason

  • Required: no
  • Shape: ref: operator-task-common.v1.schema.json#/$defs/refusalCode

withdrawal/reason

  • Required: no
  • Shape: unspecified

Original host-observed fence that queued automatic withdrawal, not the current fence. Null means a historical automatic intent did not retain its trigger; inspection must not infer it from current readiness.