{
  "theme": "jurassic",
  "instance": "steggosaurus-vex",
  "title": "Steggosaurus Vex",
  "briefing": "The genetics lab recovered a series of corrupted park images from prior incident archives. Pull the bundle, inspect each artifact, and recover every embedded clearance code.",
  "publicURL": "https://steggosaurus-vex.jurassicpark.io",
  "bundle": "steggosaurus-vex-evidence.zip",
  "stages": [
    {
      "id": "tour-banner",
      "title": "Tour Banner",
      "description": "A visitor-center banner carries the original Steggosaurus-style clue in its image structure.",
      "difficulty": "warmup",
      "artifact": "tour-banner.png",
      "contentType": "image/png",
      "technique": "png-text",
      "parameters": {
        "chunkKeyword": "steggosaurus"
      }
    },
    {
      "id": "incubator-rgb",
      "title": "Incubator RGB",
      "description": "A lab still hides a byte stream across ordered RGB noise.",
      "difficulty": "hard",
      "artifact": "incubator-rgb.png",
      "contentType": "image/png",
      "technique": "rgb-lsb",
      "parameters": {
        "bitOffset": 37,
        "bitStride": 2,
        "channels": "bgr",
        "payload": "uint32 length prefix followed by UTF-8 bytes, MSB-first"
      }
    },
    {
      "id": "amber-alpha",
      "title": "Amber Alpha",
      "description": "The amber sample is visually solid, but the transparency plane is not quiet.",
      "difficulty": "hard",
      "artifact": "amber-alpha.png",
      "contentType": "image/png",
      "technique": "alpha-lsb",
      "parameters": {
        "bitOffset": 29,
        "bitStride": 1,
        "channels": "alpha",
        "payload": "uint32 length prefix followed by UTF-8 bytes, MSB-first"
      }
    },
    {
      "id": "supply-crate",
      "title": "Supply Crate",
      "description": "The supply photo renders normally even though a second file format is attached to it.",
      "difficulty": "expert",
      "artifact": "supply-crate.png",
      "contentType": "image/png",
      "technique": "zip-polyglot",
      "parameters": {
        "zipEntry": "restricted/field-journal.txt"
      }
    },
    {
      "id": "fence-key",
      "title": "Fence Key",
      "description": "The hardest artifact hides key material; its fingerprint opens the live paddock vault.",
      "difficulty": "extreme",
      "artifact": "fence-key.png",
      "contentType": "image/png",
      "technique": "key-vault-lsb",
      "parameters": {
        "bitOffset": 113,
        "bitStride": 3,
        "channels": "bgr",
        "payload": "uint32 length prefix followed by key bytes, MSB-first",
        "vaultHeader": "X-Stego-Key",
        "vaultPath": "/vault/fence-key"
      }
    }
  ]
}
