{
  "name": "gxp-obs-v2-fixtures",
  "schema_version": 1,
  "suite_version": 1,
  "spec": {
    "name": "GXP-OBS",
    "version": 2,
    "address": "https://gxplex.com/api/v1/schema/gxp-obs-v2.json",
    "sha256": "2419319ab5ba5edacc4b44555a9d31c634da76239a2ab239c331f8ecc3ebac17",
    "sha256_of": "the bytes served at that address"
  },
  "is": "Records that validate against GXP-OBS v2 and are misread by a consumer that reads the shape and not the statements. Each fixture carries a question and its enumerated readings and no answer; the expected readings are a separate document.",
  "readings_at": "https://gxplex.com/api/v1/conformance/gxp-obs-v2-readings.json",
  "hand_written": "Every record below was typed for this suite. Every address is on publisher.example, a name reserved for examples, and every id begins `fixture-`: none is an observation this archive made.",
  "badge": {
    "text": "GXP-OBS v2 consumer suite 1: every fixture read as stated",
    "earned_by": "returning, for every fixture in this document, the reading the readings document gives it, spelled exactly as one of the fixture's enumerated readings",
    "kept_by": "the consumer that ran the suite. This record receives no result, keeps no list of who ran it, and orders no consumer against another.",
    "states": "that a consumer read these records as GXP-OBS v2 states them. It states nothing about the consumer's reading of any other record."
  },
  "fixtures": [
    {
      "id": "no-observation-is-not-nothing-changed",
      "trap": "a day with no observation is not a day on which nothing changed",
      "family": "document observation",
      "records": [
        {
          "instrument_id": "fixture-address-one",
          "sequence": 0,
          "url": "https://publisher.example/documents/one",
          "final_url": "https://publisher.example/documents/one",
          "redirected": false,
          "fetch_method": "direct",
          "content_type": "text/html",
          "schema_version": 1,
          "observed_date": "2026-01-05",
          "http_status": 200,
          "content_hash": "a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1",
          "previous_hash": null,
          "changed": false
        },
        {
          "instrument_id": "fixture-address-one",
          "sequence": 0,
          "url": "https://publisher.example/documents/one",
          "final_url": "https://publisher.example/documents/one",
          "redirected": false,
          "fetch_method": "direct",
          "content_type": "text/html",
          "schema_version": 1,
          "observed_date": "2026-01-09",
          "http_status": 200,
          "content_hash": "a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1",
          "previous_hash": "a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1",
          "changed": false
        }
      ],
      "question": "What do these records establish about the address on 2026-01-07?",
      "readings": [
        "unchanged",
        "changed",
        "unmeasured"
      ]
    },
    {
      "id": "status-200-is-not-the-artifact",
      "trap": "200 is not the artifact",
      "family": "document observation",
      "records": [
        {
          "instrument_id": "fixture-address-one",
          "sequence": 0,
          "url": "https://publisher.example/documents/one",
          "final_url": "https://publisher.example/documents/one",
          "redirected": false,
          "fetch_method": "direct",
          "content_type": "text/html",
          "schema_version": 1,
          "observed_date": "2026-01-05",
          "http_status": 200,
          "content_hash": "a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1",
          "previous_hash": null,
          "changed": false
        }
      ],
      "question": "What does `http_status` 200 on this record establish?",
      "readings": [
        "the document asked for was returned",
        "the transport succeeded",
        "the document is published at this address"
      ]
    },
    {
      "id": "null-digest-is-not-empty",
      "trap": "a null digest is not an empty document",
      "family": "document observation",
      "records": [
        {
          "instrument_id": "fixture-address-one",
          "sequence": 0,
          "url": "https://publisher.example/documents/one",
          "final_url": "https://publisher.example/documents/one",
          "redirected": false,
          "fetch_method": "failed",
          "content_type": "",
          "schema_version": 1,
          "observed_date": "2026-01-05",
          "http_status": null,
          "content_hash": null,
          "previous_hash": null,
          "changed": false,
          "error": "TimeoutError"
        }
      ],
      "question": "What does the null `content_hash` on this record establish about the document?",
      "readings": [
        "the document was empty",
        "the document was unchanged",
        "nothing was retrieved to hash"
      ]
    },
    {
      "id": "differing-digest-is-not-a-revision",
      "trap": "a differing digest is not a revision",
      "family": "document observation",
      "records": [
        {
          "instrument_id": "fixture-address-one",
          "sequence": 0,
          "url": "https://publisher.example/documents/one",
          "final_url": "https://publisher.example/documents/one",
          "redirected": false,
          "fetch_method": "direct",
          "content_type": "text/html",
          "schema_version": 1,
          "observed_date": "2026-01-05",
          "http_status": 200,
          "content_hash": "a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1",
          "previous_hash": null,
          "changed": false
        },
        {
          "instrument_id": "fixture-address-one",
          "sequence": 0,
          "url": "https://publisher.example/documents/one",
          "final_url": "https://publisher.example/documents/one",
          "redirected": false,
          "fetch_method": "direct",
          "content_type": "text/html",
          "schema_version": 1,
          "observed_date": "2026-01-06",
          "http_status": 200,
          "content_hash": "b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2",
          "previous_hash": "a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1",
          "changed": true
        }
      ],
      "question": "What does `changed: true` on the second record establish?",
      "readings": [
        "the publisher revised the document",
        "two normalisations of one address differ",
        "the first record was wrong"
      ]
    },
    {
      "id": "not-stated-is-not-unknown",
      "trap": "not stated is not unknown",
      "family": "evidence state",
      "records": [
        {
          "key": "fixture-state",
          "label": "a state for this fixture",
          "states": "A sentence written for this fixture, describing a holding.",
          "from_the_filed_order": true
        }
      ],
      "context": "An entry this archive tracks publishes the status `unknown`.",
      "question": "Which evidence state does a status of `unknown` place the entry in?",
      "readings": [
        "unstated by the publisher",
        "observed",
        "none: the status does not determine the evidence state"
      ]
    },
    {
      "id": "old-verification-is-not-current",
      "trap": "an old verification is not a current one",
      "family": "document observation",
      "records": [
        {
          "instrument_id": "fixture-address-one",
          "sequence": 0,
          "url": "https://publisher.example/documents/one",
          "final_url": "https://publisher.example/documents/one",
          "redirected": false,
          "fetch_method": "direct",
          "content_type": "text/html",
          "schema_version": 1,
          "observed_date": "2026-03-01",
          "http_status": 200,
          "content_hash": "b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2",
          "previous_hash": "a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1",
          "changed": true
        }
      ],
      "context": "The entry was verified by a person on 2026-01-05, against the text whose digest is the `previous_hash` of this record.",
      "question": "What does that verification establish about the text retrieved on 2026-03-01?",
      "readings": [
        "that it is verified",
        "that it is no longer true",
        "nothing: the act was performed on 2026-01-05"
      ]
    }
  ]
}
