{
 "id": "weapon.melee.shield/riot-shield",
 "version": 1,
 "name": "Transparent riot shield",
 "summary": "Transparent riot shield with a POLICE band, 0.57 m wide and 1.04 m tall, carried on the left arm.",
 "tags": [
  "defence",
  "melee",
  "paves",
  "police",
  "riot",
  "shield",
  "sous-les-paves",
  "transparent",
  "weapon"
 ],
 "style": "realistic",
 "status": "approved",
 "frame": {
  "contract": "cast/gear-grip-origin-+Z",
  "up": "+Y",
  "unit": "m",
  "front": "+Z (along the item, grip at the origin)"
 },
 "size": {
  "measured_m": {
   "w": 0.57,
   "l": 0.038,
   "h": 1.04
  },
  "source": "measured",
  "scale_to_class": 1.0
 },
 "bounds": {
  "geometry": {
   "min": [
    -0.285,
    -0.52,
    -0.018
   ],
   "max": [
    0.285,
    0.52,
    0.02
   ]
  },
  "footprint": {
   "kind": "rect",
   "minX": -0.285,
   "maxX": 0.285,
   "minZ": -0.018,
   "maxZ": 0.02,
   "source": "measured"
  },
  "collider": {
   "parts": [
    {
     "type": "box",
     "x": 0.0,
     "y": 0.0,
     "z": 0.001,
     "hx": 0.285,
     "hy": 0.52,
     "hz": 0.019
    }
   ],
   "source": "guessed"
  }
 },
 "placement": {
  "role": "cast-attachment",
  "notes": "Origin at the carry point; flat panel in the XY plane (0.04 m thick along Z), y -0.52 to 0.52 m.",
  "source": "authored"
 },
 "sockets": [
  {
   "name": "attach",
   "role": "attach",
   "parent": "hand_l",
   "pos": [
    0.24,
    0.98,
    0.22
   ],
   "rot": [
    0.0,
    0.174108,
    0.0,
    0.984727
   ],
   "manifest_euler_xyz": [
    0,
    0.35,
    0
   ],
   "skeleton": "ual",
   "source": "authored",
   "note": "SOUS LES PAVES (Paris riot game, genres/riot) cast/manifest.json gear.shield: bone hand_l, offset and Euler XYZ rotation in bone space"
  }
 ],
 "nodes": {
  "all": [
   "shield"
  ]
 },
 "paint": null,
 "render": {
  "tris": 48,
  "verts": 96,
  "materials": 1,
  "draw_calls": 1,
  "textures": [],
  "gpu_mb_decoded": 0.0,
  "bytes": 4980,
  "codec": "none",
  "extensions": []
 },
 "rig": null,
 "animations": [],
 "gameplay": null,
 "techniques": [
  "flat-colour"
 ],
 "provenance": {
  "author": "gemini-4-argon via Antigravity (Blender)",
  "source": "jobs/riot-shield-v1",
  "kit": "riot-kit",
  "job": "riot-shield-v1",
  "feedback": null,
  "imported": "2026-10-19",
  "file_origin": "~/forge-build/forge-assets-paves/jobs/riot-shield-v1/riot-shield.glb",
  "origin": "paves-root/genres/riot/assets/cast/gear/shield.glb",
  "game": "sous-les-paves"
 },
 "licence": {
  "kind": "owned",
  "game_use": true,
  "raw_redistribute": false,
  "evidence": "Original model drawn by Gemini 4 Argon in Blender via the Antigravity CLI on 18 Oct 2026 for SOUS LES PAVES (Paris riot game, genres/riot); owned by Forge. No image textures, no third-party artwork. Source: paves-root/genres/riot/assets/cast/gear/shield.glb."
 },
 "quality": {
  "gates": "pass: 0 MB of 24 MB texture budget, 48 tris",
  "judge": null
 },
 "files": {
  "glb": "sha256:48705dd49961a4069862b55e4fb7e5be8836b7a981daa67482618660dd7fbc18"
 },
 "deps": [],
 "release": "sha256:be20d0b89bf7c5e9fc2f6bee5154d5d33f54cf453b01e440b078fcdbc6225e30",
 "visual": {
  "n": 7,
  "description": "Waist-high barrier or riot shield prop, flat vertical rectangular translucent light-blue glass or plastic panel with dark grey top and bottom frame bars and a wide horizontal dark blue-grey band across the upper middle, low-poly style.",
  "vision_model": "gemini-4 via agy4",
  "vision_batch_usage": {
   "prompt_tokens": 32241,
   "completion_tokens": 1178,
   "cache_read_tokens": 19866,
   "status": "SUCCESS"
  },
  "id": "weapon.melee.shield/riot-shield",
  "release": "sha256:be20d0b89bf7c5e9fc2f6bee5154d5d33f54cf453b01e440b078fcdbc6225e30",
  "thumbnail_sha256": "5c58fdde2136837b6af7628822f366fc321a37f6de7f0504e4da49333ea4dfe4",
  "safety": {
   "model": "jev",
   "probabilities": {
    "person": 0.01,
    "artwork": 0.04
   },
   "blocked": false,
   "threshold": 0.35,
   "source": "authored"
  }
 }
}
