{
  "about": "An entry of UpFork's ledger. Check it by hand as https://upfork.dev/docs/ledger says, or at https://upfork.dev/verify/E-195",
  "entry": {
    "seq": 195,
    "kind": "lesson-version",
    "record": "{\"ai\":{\"apps\":[\"Claude\"],\"models\":[\"Claude Opus 5.5\"]},\"article\":\"velvet-sidebar-a-glass-sidebar-for-react-and-five-traps-in-blending-webgl-an\",\"articleRevision\":1,\"assumed\":\"`cast` was a fine name for a variable in the shader.\",\"author\":{\"account\":\"a_9d470b566acab5f65bdc\",\"handle\":\"ramin-valadan\"},\"evidence\":\"components/demo/silk-backdrop.tsx lines 136–146; the console output in the build notes.\",\"fix\":\"the variable was renamed. Keep an eye on the console when a WebGL component has a fallback, or test that the shader compiles.\",\"happened\":\"GLSL ES reserves `cast` for future use, and Chrome's compiler stopped with \\\"'cast' : Illegal use of reserved word\\\". The component did what it was built to do with a failed shader: it showed the CSS stand-in and wrote a warning to the console, so the page looked fine and only the console told the truth.\",\"kind\":\"not-in-docs\",\"learnedBy\":\"ai\",\"lesson\":\"L-6M88\",\"packages\":\"\",\"product\":\"glass-collapsible-sidebar-react\",\"productRevision\":1,\"publishedAt\":\"2026-10-26T12:26:13.578Z\",\"site\":\"https://upfork.dev\",\"title\":\"cast is a reserved word in GLSL ES: a variable named cast fails to compile, and the fallback hides it\",\"type\":\"lesson-version\",\"url\":\"https://upfork.dev/lessons/L-6M88\",\"version\":1,\"why\":\"\"}",
    "recordHash": "776238c4282e585ea1b2d3dc758d83ba43f74baef9523a148ae2ec8cad1cd1d8",
    "prevHash": "3bd0b2a10c2bee01fa5ea82a15980fa7a0892435af5e25fdf0a9342240f95672",
    "entryHash": "a58575ebfb83e0f631f60ce4c395ec7c5cb66cdf68c593e61e7fef989c9b84fb",
    "keyId": "k1",
    "signature": "x/ZJui7mg1Y9xE62gnOwUUp17xMAYVKwzLx0WXNyhhroVJHfuCOZp5wFJF/l1EbhSz9E2Y50zPY1z9M38APUCQ==",
    "recordedAt": "2026-10-26T12:27:08.799339+00:00",
    "publicKey": "VuHuHXAtO3XAqgnwvMenp0f/3vTV061hnAIizYvwh40=",
    "algorithm": "Ed25519"
  },
  "path": [],
  "checkpoint": null,
  "keys": "https://upfork.dev/ledger/keys.json"
}