{
  "vercy": "1.0-draft",
  "publication": {
    "status": "research-draft",
    "adjudicationStatus": "unreviewed",
    "publishableCanonical": false,
    "generatedAt": "2026-09-12T11:34:15Z",
    "providers": [
      "Codex"
    ],
    "breadth": "recalled by Codex without web access - no source was read",
    "missingProviders": [],
    "pass": 2,
    "cost": {
      "grok": {
        "seconds": 20.9,
        "error": "Reading additional input from stdin...\nOpenAI Codex v0.153.4\n--------\nworkdir: R:\\02_PROJECTS\\02_Meta_Models_Platforms\\Ver.cy\\current\\thing-registry-backlog\nmodel: gpt-6-astra\nprovider: openai\napproval: never\nsandbox: read-only\nreasoning effort: none\nreasoning summaries: none\nsession id: 01a09564-4c39-7f30-98a1-a175105660f5\n--------\nuser\nDescribe what is already known about one registered thing. Answer as JSON only, no prose around it.\n\nThing: Netpbm formats\nSense to describe: (none recorded)\nDomain code: INF.KNW\nAlso known as: (none)\n\n\nContext for this batch of 1001 things:\n# Batch 044: 1001 ",
        "usd": 0.0,
        "recall": true
      },
      "codex": {
        "seconds": 81.9,
        "error": "Reading additional input from stdin...\nOpenAI Codex v0.153.4\n--------\nworkdir: R:\\02_PROJECTS\\02_Meta_Models_Platforms\\Ver.cy\\current\\thing-registry-backlog\nmodel: gpt-6-astra\nprovider: openai\napproval: never\nsandbox: read-only\nreasoning effort: none\nreasoning summaries: none\nsession id: 01a09564-4c35-7482-a1f1-29a4b9dadcab\n--------\nuser\nYou are drafting a Vercy meta-model for one registered thing. Answer as JSON only, no prose around it.\n\nThing: Netpbm formats\nRegistry id: vr.tr.netpbm-formats\nPlane / domain: INF / INF.KNW\nRegistry definition: (none recorded)\nNames folded into this entry: (no"
      }
    },
    "enrichment": {
      "pass": 3,
      "engine": "claude",
      "producedAt": "2026-10-06T12:00:00Z",
      "ingestedAt": "2026-10-06T08:39:39+00:00",
      "fields": [
        "agent_conduct",
        "ethics",
        "failure_modes_and_hazards",
        "owners",
        "visual_identification"
      ]
    },
    "gate": {
      "passed": true,
      "version": "1.0",
      "at": "2026-10-07T10:10:26+00:00",
      "evidence": [
        "completeness 1.00",
        "sense: Wikidata description",
        "2 live sources",
        "review by codex: pass"
      ]
    }
  },
  "metaModel": {
    "id": "THING-Q17154458",
    "registryId": "vr.tr.netpbm-formats",
    "name": "Netpbm formats",
    "version": "0.1.0-research.1",
    "entryKind": "thing",
    "family": "Thing Registry",
    "domain": [
      "INF.KNW"
    ],
    "status": "research-draft"
  },
  "canonicalUrl": "https://ver.cy/models/thing/q17154458/",
  "model": {
    "registry_id": "vr.tr.netpbm-formats",
    "name": "Netpbm formats",
    "purpose": "Enable an agent to recognize Netpbm formats, assess whether their encoded samples are valid and interpretable, and choose conversions that preserve the intended information.",
    "definition": "Netpbm formats are a family of simple raster image file formats, centred on Portable Bitmap (PBM), Portable Graymap (PGM), and Portable Pixmap (PPM), with Portable Arbitrary Map (PAM) extending the family to more general pixel tuples.",
    "scope_statement": "This model owns the format-family identity, representation rules, interpretation evidence and interoperability decisions for vr.tr.netpbm-formats in INF / INF.KNW, covering PBM, PGM, PPM and PAM within one registered thing.",
    "in_scope": [
      "PBM, PGM and PPM, including plain and raw representations",
      "PNM as the collective designation for PBM, PGM and PPM",
      "PAM headers, tuple structures and declared sample meanings",
      "Header-to-raster consistency and image-sequence boundaries",
      "Evidence for sample interpretation and conversion fidelity"
    ],
    "out_of_scope": [
      "The Netpbm software package's installation, release management and command catalogue",
      "The depicted subject, authorship and intellectual-property status of individual images",
      "General image-processing algorithms such as segmentation and resampling",
      "Specifications of neighbouring formats such as PNG, JPEG and TIFF",
      "PFM and other related formats pending evidence that this registry entry includes them"
    ],
    "distinguishing_features": [
      "P1/P4 identify plain/raw PBM, P2/P5 identify plain/raw PGM, and P3/P6 identify plain/raw PPM; identification must continue by checking the corresponding header and raster. [PBM specification](https://netpbm.sourceforge.net/doc/pbm.html), [PGM specification](https://netpbm.sourceforge.net/doc/pgm.html), [PPM specification](https://netpbm.sourceforge.net/doc/ppm.html).",
      "PNM names the PBM/PGM/PPM group rather than an additional wire format. [PAM specification](https://netpbm.sourceforge.net/doc/pam.html).",
      "PAM requires its structured header after P7; P7 alone cannot distinguish it from xv thumbnails. [PAM specification](https://netpbm.sourceforge.net/doc/pam.html).",
      "PBM assigns 1 to black, whereas PAM BLACKANDWHITE assigns 0 to black, so equivalent pictures can require sample inversion. [PBM specification](https://netpbm.sourceforge.net/doc/pbm.html), [PAM specification](https://netpbm.sourceforge.net/doc/pam.html).",
      "A parseable PGM or PPM raster does not establish its transfer function: documented variants use linear or sRGB interpretations. [PGM specification](https://netpbm.sourceforge.net/doc/pgm.html), [PPM specification](https://netpbm.sourceforge.net/doc/ppm.html)."
    ],
    "characteristics": [
      {
        "name": "Family member and encoding",
        "kind": "category",
        "unit_or_values": "PBM plain/raw; PGM plain/raw; PPM plain/raw; PAM; unresolved",
        "why_it_matters": "Selects the decoding rules."
      },
      {
        "name": "Raster dimensions",
        "kind": "measurement",
        "unit_or_values": "Width and height in pixels or tuple positions",
        "why_it_matters": "Supports completeness checks and resource estimates."
      },
      {
        "name": "Samples per position",
        "kind": "measurement",
        "unit_or_values": "Samples per pixel or tuple; declared DEPTH for PAM",
        "why_it_matters": "Prevents confusion between channel count and sample precision."
      },
      {
        "name": "Declared sample maximum",
        "kind": "measurement",
        "unit_or_values": "MAXVAL 1-65535 for PGM, PPM and PAM; absent for PBM",
        "why_it_matters": "Controls valid sample ranges and raw storage width. [PGM specification](https://netpbm.sourceforge.net/doc/pgm.html), [PPM specification](https://netpbm.sourceforge.net/doc/ppm.html), [PAM specification](https://netpbm.sourceforge.net/doc/pam.html)."
      },
      {
        "name": "Sample interpretation",
        "kind": "category",
        "unit_or_values": "Bilevel; grayscale; RGB; opacity; custom tuple semantics; unknown",
        "why_it_matters": "Determines which visual or numerical operations are meaningful."
      },
      {
        "name": "Interpretation evidence",
        "kind": "relation",
        "unit_or_values": "Links to specification revision, producer documentation, tuple convention or external metadata",
        "why_it_matters": "Separates declared semantics from assumptions."
      },
      {
        "name": "Assessment state",
        "kind": "state",
        "unit_or_values": "Unchecked; structurally valid; semantically unresolved; nonconforming; truncated; unsupported by target",
        "why_it_matters": "Distinguishes a damaged file from a valid file that a particular reader cannot handle."
      },
      {
        "name": "Conversion preservation",
        "kind": "state",
        "unit_or_values": "Unassessed; samples preserved; interpretation preserved; quantified loss; unknown loss",
        "why_it_matters": "Makes the consequences of conversion reviewable."
      }
    ],
    "affordances": [
      "Identify the family member from bytes and reconcile it with filename claims.",
      "Validate headers, sample ranges, raster extent and sequence boundaries.",
      "Decode or encode samples under an explicitly recorded interpretation.",
      "Choose a target representation based on required channels, precision and reader support.",
      "Convert representations while checking polarity, opacity and sample scaling.",
      "Report unresolved semantics or unsupported features before performing dependent transformations."
    ],
    "agent_conduct": {
      "may": [
        "Read, write and convert Netpbm images the user is entitled to process.",
        "Explain the differences between the PBM, PGM, PPM and PAM variants."
      ],
      "must_not": [
        "Parse untrusted image files without checking headers and sizes against the data.",
        "Convert or share images that the user has no rights to.",
        "Strip or ignore the declared maximum value and silently change image data.",
        "Claim a file is valid when it breaks the format description."
      ],
      "requires_human": [
        "Running format converters on files from unknown sources inside production systems."
      ]
    },
    "ethics": {
      "considerations": [
        "Images can show people; converting a format does not remove privacy or copyright duties.",
        "Simple formats are often used in teaching and research, where correctness matters."
      ],
      "affected_parties": [
        "People shown in images",
        "Developers and researchers",
        "Users of image tools"
      ]
    },
    "owners": {
      "steward": "Nobody owns the format family; each image belongs to its rights holder.",
      "master_systems": []
    },
    "visual_identification": [
      "Files begin with a magic number from P1 to P7 followed by width and height.",
      "Common extensions are .pbm, .pgm, .ppm, .pnm and .pam."
    ],
    "failure_modes_and_hazards": [
      "Malformed headers can cause buffer overflows in careless image parsers.",
      "Files are uncompressed and can grow very large."
    ],
    "what_it_is_for": [
      "These raster formats are used to exchange bitmap, grayscale and colour images between image processing programs.",
      "Their simple headers and sample layouts make them useful for teaching, debugging and intermediate processing files.",
      "They are useful when straightforward decoding matters more than compact storage or extensive embedded metadata."
    ],
    "facets_not_applicable": {
      "interfaces": "No external formal standard or regulation applies specifically to this format family, whose encodings are defined by its project specifications."
    }
  },
  "sources": [
    {
      "id": "wikidata",
      "title": "Wikidata item Q17154458: Netpbm formats",
      "url": "https://www.wikidata.org/wiki/Q17154458",
      "url_status": "live",
      "what_it_supports": "identity and sense of the item",
      "checked_by": "wikidata-api"
    },
    {
      "id": "wikipedia-en",
      "title": "Wikipedia: Netpbm format",
      "url": "https://en.wikipedia.org/wiki/Netpbm_format",
      "url_status": "live",
      "what_it_supports": "general description of the item",
      "checked_by": "wikidata-api sitelink"
    }
  ],
  "structure": {
    "bundles": [
      {
        "id": "family-recognition",
        "name": "Family recognition",
        "description": "Establish which Netpbm representation is present and what evidence supports that identification.",
        "rationale": "A family label or filename is insufficient to select a decoder.",
        "layers": [
          {
            "id": "member-identification",
            "name": "Member identification",
            "description": "Resolve the family member from its actual representation.",
            "findings": [
              {
                "id": "signature-and-header-agreement",
                "name": "Signature and header agreement",
                "description": "Record whether the initial signature, following header and claimed format agree.",
                "questions": [
                  {
                    "text": "Which family member and encoding do the bytes support?",
                    "kind": "definition",
                    "id": "signature-and-header-agreement-q01"
                  },
                  {
                    "text": "Does the complete header support the initial identification, including any P7 ambiguity?",
                    "kind": "boundary",
                    "id": "signature-and-header-agreement-q02"
                  }
                ]
              }
            ]
          },
          {
            "id": "specification-basis",
            "name": "Specification basis",
            "description": "Anchor recognition to an explicit format contract.",
            "findings": [
              {
                "id": "format-contract",
                "name": "Format contract",
                "description": "Record the specification revision and any producer-specific departures used for assessment.",
                "questions": [
                  {
                    "text": "Which specification document and revision govern the assessment?",
                    "kind": "provenance",
                    "id": "format-contract-q01"
                  },
                  {
                    "text": "Does a claim of PNM support identify the actual members and encodings accepted?",
                    "kind": "boundary",
                    "id": "format-contract-q02"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "header-and-raster-integrity",
        "name": "Header and raster integrity",
        "description": "Determine whether the declared structure accounts for the encoded samples.",
        "rationale": "Small parsing mistakes can shift the raster or silently corrupt pixels.",
        "layers": [
          {
            "id": "raster-entry",
            "name": "Raster entry",
            "description": "Locate the exact transition from header syntax to sample data.",
            "findings": [
              {
                "id": "header-termination",
                "name": "Header termination",
                "description": "Raw PGM and PPM use a single whitespace delimiter before the raster; a decoder must not consume subsequent sample bytes as header whitespace. [PGM specification](https://netpbm.sourceforge.net/doc/pgm.html), [PPM specification](https://netpbm.sourceforge.net/doc/ppm.html).",
                "questions": [
                  {
                    "text": "At which byte offset does the raster begin under this member's rules?",
                    "kind": "measurement",
                    "id": "header-termination-q01"
                  },
                  {
                    "text": "Could comment or whitespace handling consume bytes belonging to the raster?",
                    "kind": "boundary",
                    "id": "header-termination-q02"
                  }
                ]
              }
            ]
          },
          {
            "id": "sample-layout",
            "name": "Sample layout",
            "description": "Check packing, sample width and declared extent.",
            "findings": [
              {
                "id": "packing-and-extent",
                "name": "Packing and extent",
                "description": "Raw PBM packs bits with padding at each row end; raw PGM and PPM use one-byte or two-byte samples, with the most significant byte first. [PBM specification](https://netpbm.sourceforge.net/doc/pbm.html), [PGM specification](https://netpbm.sourceforge.net/doc/pgm.html), [PPM specification](https://netpbm.sourceforge.net/doc/ppm.html).",
                "questions": [
                  {
                    "text": "What raster extent follows from dimensions, sample count and storage width?",
                    "kind": "measurement",
                    "id": "packing-and-extent-q01"
                  },
                  {
                    "text": "Are row padding, sample byte order and values consistent with the selected representation?",
                    "kind": "measurement",
                    "id": "packing-and-extent-q02"
                  },
                  {
                    "text": "Can the declared extent be processed within configured limits without arithmetic overflow?",
                    "kind": "action",
                    "id": "packing-and-extent-q03"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "sample-meaning",
        "name": "Sample meaning",
        "description": "Establish what decoded integers signify before interpreting or changing them.",
        "rationale": "Byte validity does not establish visual or numerical meaning.",
        "layers": [
          {
            "id": "intensity-and-color",
            "name": "Intensity and color",
            "description": "Record the evidence governing brightness and color interpretation.",
            "findings": [
              {
                "id": "transfer-function-evidence",
                "name": "Transfer function evidence",
                "description": "The PGM and PPM specifications distinguish their BT.709-based interpretation from commonly encountered variants. [PGM specification](https://netpbm.sourceforge.net/doc/pgm.html), [PPM specification](https://netpbm.sourceforge.net/doc/ppm.html).",
                "questions": [
                  {
                    "text": "What producer evidence identifies the actual transfer function and, for RGB, color interpretation?",
                    "kind": "provenance",
                    "id": "transfer-function-evidence-q01"
                  },
                  {
                    "text": "Which proposed operations require resolving the difference between linear, sRGB and specification-defined samples?",
                    "kind": "action",
                    "id": "transfer-function-evidence-q02"
                  }
                ]
              }
            ]
          },
          {
            "id": "tuples-and-opacity",
            "name": "Tuples and opacity",
            "description": "Separate channel layout from its asserted meaning.",
            "findings": [
              {
                "id": "tuple-interpretation",
                "name": "Tuple interpretation",
                "description": "PAM DEPTH controls tuple size; optional TUPLTYPE supplies a convention for meaning. PGM may instead represent an opacity mask. [PAM specification](https://netpbm.sourceforge.net/doc/pam.html), [PGM specification](https://netpbm.sourceforge.net/doc/pgm.html).",
                "questions": [
                  {
                    "text": "What convention assigns meaning to each channel, and is it consistent with the declared depth?",
                    "kind": "definition",
                    "id": "tuple-interpretation-q01"
                  },
                  {
                    "text": "Are samples image intensities, opacity values or non-image measurements?",
                    "kind": "boundary",
                    "id": "tuple-interpretation-q02"
                  },
                  {
                    "text": "If channel meaning is unresolved, which transformations must remain undecided?",
                    "kind": "action",
                    "id": "tuple-interpretation-q03"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "sequence-and-reader-compatibility",
        "name": "Sequence and reader compatibility",
        "description": "Assess the entire stream and the actual recipient's capabilities.",
        "rationale": "Successful decoding of the first image does not establish complete interoperability.",
        "layers": [
          {
            "id": "image-boundaries",
            "name": "Image boundaries",
            "description": "Account for individual images and remaining bytes.",
            "findings": [
              {
                "id": "stream-coverage",
                "name": "Stream coverage",
                "description": "Raw PBM, PGM and PPM permit image sequences, while their plain variants specify one image per file. [PBM specification](https://netpbm.sourceforge.net/doc/pbm.html), [PGM specification](https://netpbm.sourceforge.net/doc/pgm.html), [PPM specification](https://netpbm.sourceforge.net/doc/ppm.html).",
                "questions": [
                  {
                    "text": "How many complete images are present, and where does each end?",
                    "kind": "measurement",
                    "id": "stream-coverage-q01"
                  },
                  {
                    "text": "Are remaining bytes another permitted image, tolerated trailing content or evidence of damage?",
                    "kind": "boundary",
                    "id": "stream-coverage-q02"
                  }
                ]
              }
            ]
          },
          {
            "id": "recipient-capabilities",
            "name": "Recipient capabilities",
            "description": "Describe tested support independently of format conformance.",
            "findings": [
              {
                "id": "reader-support-evidence",
                "name": "Reader support evidence",
                "description": "Record observed acceptance of the specific member, encoding, precision, tuple semantics and image count.",
                "questions": [
                  {
                    "text": "Which application version has been tested with this exact combination of features?",
                    "kind": "provenance",
                    "id": "reader-support-evidence-q01"
                  },
                  {
                    "text": "Does the recipient process every image and required channel?",
                    "kind": "measurement",
                    "id": "reader-support-evidence-q02"
                  },
                  {
                    "text": "What adaptation is necessary for the intended recipient?",
                    "kind": "action",
                    "id": "reader-support-evidence-q03"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "conversion-fidelity",
        "name": "Conversion fidelity",
        "description": "Choose and verify transformations against explicit preservation requirements.",
        "rationale": "A conversion can preserve appearance while changing samples, or preserve samples while changing meaning.",
        "layers": [
          {
            "id": "representation-choice",
            "name": "Representation choice",
            "description": "Match the destination's expressive capacity to the intended use.",
            "findings": [
              {
                "id": "destination-fit",
                "name": "Destination fit",
                "description": "Record whether the proposed destination can retain the required distinctions and supporting interpretation.",
                "questions": [
                  {
                    "text": "Must the destination preserve bilevel distinctions, grayscale, RGB, opacity or custom channels?",
                    "kind": "definition",
                    "id": "destination-fit-q01"
                  },
                  {
                    "text": "Would the proposed conversion require thresholding, quantization, channel removal or external metadata?",
                    "kind": "action",
                    "id": "destination-fit-q02"
                  }
                ]
              }
            ]
          },
          {
            "id": "preservation-verification",
            "name": "Preservation verification",
            "description": "Evaluate the converted output against the chosen invariant.",
            "findings": [
              {
                "id": "conversion-evidence",
                "name": "Conversion evidence",
                "description": "Record comparisons that establish whether the promised samples, meanings and image coverage survived.",
                "questions": [
                  {
                    "text": "Is success defined by byte identity, decoded sample equality, numerical meaning or visual equivalence?",
                    "kind": "definition",
                    "id": "conversion-evidence-q01"
                  },
                  {
                    "text": "What measured changes occurred in sample values, polarity, opacity and image count?",
                    "kind": "measurement",
                    "id": "conversion-evidence-q02"
                  },
                  {
                    "text": "Which comparison results and conversion parameters support accepting the output?",
                    "kind": "provenance",
                    "id": "conversion-evidence-q03"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "evidence-and-external-alignment",
        "name": "Evidence and external alignment",
        "description": "What the world already says about this thing, gathered so the model can be checked against it.",
        "rationale": "A model that cannot be lined up against existing standards, identifiers and practice cannot be adopted by anyone who already uses them.",
        "layers": [
          {
            "id": "reported-evidence",
            "name": "Reported evidence",
            "description": "Findings from the breadth pass, kept separate from the structural claims.",
            "findings": [
              {
                "id": "evidence-confidence-notes",
                "name": "Check these first",
                "description": "Recalled without web access and unsourced; every item is a lead to verify.",
                "evidence": [
                  "The registry should clarify whether the intended scope is the classic PBM/PGM/PPM group or the broader family including PAM.",
                  "These details are recalled from established format conventions; no documentation was consulted.",
                  "Researchers should verify exact colour semantics and implementation support for higher sample depths against the Netpbm specifications."
                ],
                "questions": [
                  {
                    "id": "evidence-confidence-notes-q01",
                    "text": "Which of these check these first hold for the sense of Netpbm formats this model covers, and on what evidence?",
                    "kind": "provenance"
                  }
                ]
              },
              {
                "id": "evidence-kinds",
                "name": "Kinds and varieties",
                "description": "Recalled without web access and unsourced; every item is a lead to verify.",
                "evidence": [
                  "PBM: bilevel black-and-white images",
                  "PGM: grayscale images",
                  "PPM: RGB colour images",
                  "PAM: images with explicitly described pixel tuples, including representations with alpha"
                ],
                "questions": [
                  {
                    "id": "evidence-kinds-q01",
                    "text": "Which of these kinds and varieties hold for the sense of Netpbm formats this model covers, and on what evidence?",
                    "kind": "provenance"
                  }
                ]
              },
              {
                "id": "evidence-identifiers",
                "name": "Identifiers and schemes",
                "description": "Recalled without web access and unsourced; every item is a lead to verify.",
                "evidence": [
                  {
                    "scheme": "File signature (magic number)",
                    "value_or_pattern": "P1/P4: PBM; P2/P5: PGM; P3/P6: PPM; P7: PAM",
                    "note": "P1-P3 identify plain textual encodings; P4-P6 identify raw encodings; P7 identifies PAM."
                  },
                  {
                    "scheme": "Filename extension",
                    "value_or_pattern": ".pbm, .pgm, .ppm, .pnm, .pam",
                    "note": "PNM is a collective designation for PBM, PGM, and PPM rather than a separate encoding; the file signature identifies the actual format."
                  }
                ],
                "questions": [
                  {
                    "id": "evidence-identifiers-q01",
                    "text": "Which of these identifiers and schemes hold for the sense of Netpbm formats this model covers, and on what evidence?",
                    "kind": "provenance"
                  }
                ]
              },
              {
                "id": "evidence-standards-and-regulation",
                "name": "Standards and regulation",
                "description": "Recalled without web access and unsourced; every item is a lead to verify.",
                "evidence": [
                  "The Netpbm project maintains the PBM, PGM, PPM, and PAM format specifications."
                ],
                "questions": [
                  {
                    "id": "evidence-standards-and-regulation-q01",
                    "text": "Which of these standards and regulation hold for the sense of Netpbm formats this model covers, and on what evidence?",
                    "kind": "provenance"
                  }
                ]
              },
              {
                "id": "evidence-real-world-use",
                "name": "Real-world use",
                "description": "Recalled without web access and unsourced; every item is a lead to verify.",
                "evidence": [
                  "Intermediate image representation in command-line conversion pipelines",
                  "Simple image input and output for experimental software",
                  "Teaching raster representation and image-processing algorithms",
                  "Exchanging bilevel, grayscale, and RGB images between utilities",
                  "Inspecting small images through their plain textual encodings"
                ],
                "questions": [
                  {
                    "id": "evidence-real-world-use-q01",
                    "text": "Which of these real-world use hold for the sense of Netpbm formats this model covers, and on what evidence?",
                    "kind": "provenance"
                  }
                ]
              },
              {
                "id": "evidence-measurements",
                "name": "Typical measurements",
                "description": "Recalled without web access and unsourced; every item is a lead to verify.",
                "evidence": [
                  {
                    "quantity": "PGM and PPM maximum sample value (Maxval)",
                    "typical_range": "Allowed values: 1-65535; 255 is common",
                    "unit": "dimensionless integer"
                  },
                  {
                    "quantity": "Raw PGM and PPM sample storage",
                    "typical_range": "1 byte when Maxval is below 256; 2 bytes otherwise",
                    "unit": "byte per sample"
                  },
                  {
                    "quantity": "Raw PBM raster storage",
                    "typical_range": "1 bit per pixel, with each row padded to a whole number of bytes",
                    "unit": "bit per pixel"
                  }
                ],
                "questions": [
                  {
                    "id": "evidence-measurements-q01",
                    "text": "Which of these typical measurements hold for the sense of Netpbm formats this model covers, and on what evidence?",
                    "kind": "provenance"
                  }
                ]
              },
              {
                "id": "evidence-failure-modes-and-hazards",
                "name": "Failure modes and hazards",
                "description": "Recalled without web access and unsourced; every item is a lead to verify.",
                "evidence": [
                  "PBM polarity errors: 1 denotes black and 0 denotes white.",
                  "Incorrect byte ordering for two-byte raw PGM or PPM samples, which store the most significant byte first.",
                  "Header parsers mishandling comments, whitespace, or the transition to binary raster data.",
                  "Colour or brightness errors when implementations disagree about sample transfer functions or treat encoded values as linear light.",
                  "Large uncompressed files and excessive memory allocation when dimensions in untrusted files are not validated."
                ],
                "questions": [
                  {
                    "id": "evidence-failure-modes-and-hazards-q01",
                    "text": "Which of these failure modes and hazards hold for the sense of Netpbm formats this model covers, and on what evidence?",
                    "kind": "provenance"
                  }
                ]
              },
              {
                "id": "evidence-neighbours",
                "name": "Neighbouring kinds and how to tell them apart",
                "description": "Recalled without web access and unsourced; every item is a lead to verify.",
                "evidence": [
                  {
                    "name": "Netpbm software",
                    "difference": "The software is a collection of image-processing utilities; the formats specify how image data is represented in files."
                  },
                  {
                    "name": "PNG",
                    "difference": "PNG uses lossless compression and a chunk-based structure supporting metadata; the core Netpbm formats use simple headers and uncompressed rasters."
                  },
                  {
                    "name": "JPEG",
                    "difference": "Common JPEG image files use lossy compression; PBM, PGM, and PPM directly represent raster samples without that compression."
                  },
                  {
                    "name": "BMP",
                    "difference": "BMP has a distinct bitmap file structure with its own headers and storage conventions; PBM specifically represents bilevel images within the Netpbm family."
                  }
                ],
                "questions": [
                  {
                    "id": "evidence-neighbours-q01",
                    "text": "Which of these neighbouring kinds and how to tell them apart hold for the sense of Netpbm formats this model covers, and on what evidence?",
                    "kind": "provenance"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  "openQuestions": [
    "Does the registry intend the PBM/PGM/PPM/PAM family only, or also related formats such as PFM and historical extensions?",
    "Which reader implementations and versions must the catalogue's interoperability claims cover?",
    "What producer evidence is available to resolve transfer functions and custom channel semantics in representative files?",
    "Which historical specification revisions and tolerated deviations must validation distinguish?",
    "What preservation requirements should govern conversions when comments or external interpretation metadata cannot accompany the output?"
  ],
  "statistics": {
    "bundles": 6,
    "layers": 11,
    "findings": 18,
    "questions": 32
  }
}
