{
  "record": "AffVector Operating Record",
  "version": "2.1.0",
  "date": "2026-09-04",
  "status": "Released",
  "specification": "https://ocom.uno",
  "vocabulary": "https://ocom.uno/vocabulary",
  "vocabulary_version": "0.1",
  "conformance": {
    "claim": "none",
    "evidence_level": "Owner declaration",
    "method": "Each object declares the OCOM core terms it carries. Every declared term was checked field by field against the Core Characteristics that term requires in its own record on ocom.uno, by a checker published with this record. That is a self-check, not a certification.",
    "checker": "tools/ocom_conformance.py in the source repository",
    "last_checked": "2026-09-04",
    "independent_review": "An independent review on 2026-09-04 found the first self-check had been scored too leniently: a record type had been counted as a Classification, one summary had satisfied both Purpose and Description, and an Agreement had been counted as a Related Policy. The checker was tightened and the 74 gaps it then reported were closed.",
    "known_divergence": "A superseded copy of the Trust Center at version 1.0 is still served at https://terms.affvector.com/ and is due to be redirected here. See the supersedes block on AV-REG-0001."
  },
  "changelog": [
    {
      "date": "2026-08-03",
      "version": "0.1",
      "notes": [
        "affvector.com launched: home, Become a Partner, Brand Book and a Trust Center with seven documents (v1.1)."
      ]
    },
    {
      "date": "2026-08-04",
      "version": "0.2",
      "notes": [
        "Ukrainian, Romanian, Spanish and French projections of home, Become a Partner, Brand Book and the Trust Center hub."
      ]
    },
    {
      "date": "2026-08-11",
      "version": "0.3",
      "notes": [
        "Russian projection added; the language switcher became slug-aware on every page."
      ]
    },
    {
      "date": "2026-08-12",
      "version": "0.4",
      "notes": [
        "All seven Trust Center documents published in all six languages."
      ]
    },
    {
      "date": "2026-09-04",
      "version": "1.0.0",
      "notes": [
        "Operating record v1.0: 36 governed objects with stable identifiers, registries, graph, resolver, API index and manifest.",
        "Payments Policy 1.2: the statement that payouts are weekly by default was removed; the schedule is set per account.",
        "Weekly payout claims removed from every page and from llms.txt.",
        "Brand BetLungo declared in the Brands registry (alias LungoBet).",
        "Legal identity and the official contact channel recorded as pending."
      ]
    },
    {
      "date": "2026-09-04",
      "version": "1.1.0",
      "notes": [
        "Every object now names a primary domain of operational responsibility, and /ocom/domains.json indexes them.",
        "The graph carries all six languages per object instead of English only, plus the language page URLs.",
        "AffVector types moved out of the OCOM vocabulary namespace into https://affvector.com/ns#, published at /ns/index.json. Only the 13 core terms are cited, never extended.",
        "The JSON-LD context now defines every property used, so nothing is dropped on expansion.",
        "Each object resolves to a real page in six languages; the identifier resolver points at the object itself.",
        "Records declare only the core terms they carry: the Program is no longer typed as a Contract, the partner lifecycle no longer as a Policy.",
        "The Compliance Policy no longer claims to define the service-availability constraint, which is an operational control.",
        "The organization record no longer states that applications are being received; the form is not connected.",
        "The service-availability constraint no longer publishes the edge stack or an HTTP status code.",
        "Localized pages declare their own URL in structured data instead of the English one.",
        "Corrections in Ukrainian and Russian wording, and the Payments Policy structured data now matches version 1.2."
      ]
    },
    {
      "date": "2026-09-04",
      "version": "1.2.0",
      "notes": [
        "The site moved off the bare system font stack onto Onest, self-hosted, with IBM Plex Mono for technical labels. Latin, Latin Extended and Cyrillic are all covered, so the six language versions render in the same face.",
        "Heading tracking was retuned for the new face and the footer was rebuilt: asymmetric columns, headings at reading size in the text face, a left-aligned legal line and a wordmark closing the composition.",
        "The Brand Book and this record now name the typeface actually in use."
      ]
    },
    {
      "date": "2026-09-04",
      "version": "1.3.0",
      "notes": [
        "The homepage and the internal pages were recomposed. The simulated dashboard, the duplicate metric strip and the repeated heading-plus-grid rhythm are gone.",
        "The Trust Center index now lists each document with its version and effective date, read from the documents themselves.",
        "Each policy document gained a contents column.",
        "Every Trust Center link on a translated page now points at that language, so following one no longer drops the reader into English.",
        "The Brand Book type specimens were restated to match the typeface actually in use and translated in all six languages."
      ]
    },
    {
      "date": "2026-09-04",
      "version": "2.0.0",
      "notes": [
        "Checked against the published Core Vocabulary rather than against a general impression of it: each of the 13 term records lists Core Characteristics the term requires, and 253 of them were missing from objects that declared those terms.",
        "All 253 are now carried. Where a value exists it is stated; where the owner has not decided one it is recorded as not set with the reason. No review schedule, service level, expiry date or delegation was invented to fill a field.",
        "Every object gained a Governance block naming the document that governs its change and where its version is recorded, and a Lifecycle with real states rather than a bare current state.",
        "The Program no longer declares itself a Capability and a Classification; it is an Object that provides capabilities and is classified, both expressed as relationships."
      ]
    },
    {
      "date": "2026-09-04",
      "version": "2.1.0",
      "notes": [
        "An independent review found the previous self-check too lenient and the note that claimed completion untrue for half the objects. Both are corrected here.",
        "The checker now reads each requirement strictly: a type is not a Classification, one summary cannot serve as both Purpose and Description, an Agreement is not a Related Policy, and terms are not Obligations. It then reported 74 gaps, all now closed.",
        "Purpose is stated separately from Description on every policy, constraint, capability, contract and registry. Classification is carried by every object. The three roles state their responsibility scope. Metadata carries all six attribute groups.",
        "The Agreement now lists the constraints that name it as their source, instead of only the one that does not.",
        "The affiliate domain model is no longer cited as though it were published on ocom.uno; it is named as this owner's own specification repository.",
        "The extension namespace now defines each of its 13 types and gives each one a fragment target.",
        "The manifest now reaches the namespace and the domain index; the homepage structured data reads the record version from the release record instead of a frozen copy; llms.txt no longer publishes an HTTP status code the record had removed."
      ]
    }
  ]
}
