JG Vehicle Keys - all 11 fob shapes

Guide: https://docs.jgscripts.com/vehicle-keys/custom-key-designs

Choose a shape from the guide's silhouette index. Open its matching folder
under shapes/. INDEX.csv lists the folder, design ID and model name.
Each folder is a complete starter. Install only the shapes you use.
Each includes a copied physical model and separate YTYP registration,
editable UI PNGs, matching WebPs, front colour texture, full-mip DDS,
inventory thumbnail and Lua registration entry.

The 3D models, collision and fitting are copied from the supplied runtime
assets. Change colours and artwork without moving buttons or ring openings.
Keep the model scale, origin, normals, specular maps and other textures.
Use the matching physical and UI assets from one shape folder.

PHYSICAL FOB
Edit textures/front-colour.png at 1024 x 2048. Resize a copy to 512 x 1024
and export the folder's named DDS as DXT1/BC1 with all mipmaps.
In CodeWalker RPF Explorer, use File > Open Folder to open physical/.
Open the YDR, show the tools with >>, and open Texture Editor.
Select the colour texture named in that shape's README, then Replace.
Keep the internal texture name. Save the YDR from the model viewer.
Copy that folder's YDR and YTYP to jg-vehiclekeys/stream/.
Do not use global texture replacement or overwrite supplied production models.

ON-SCREEN FOB
Edit ui/key.png and export ui/key.webp with transparency at 1000 x 1500.
Edit ui/mask.png and export ui/mask.webp as lossless WebP at the same size.
Map the whole button faces with exact opaque RGB colours:
  #0000FF Lock
  #00FF00 Unlock (hold to start the engine)
  #FFFF00 Boot
  #FF0000 Panic
  #FF00FF LED (nonclickable)
Keep all other pixels transparent. Include all four controls and one connected
LED area. Use no antialiasing, gradients or partial transparency in the mask.
Keep the ring hole transparent and align the mask with the artwork.

REGISTRATION AND INVENTORY
Use the selected folder's README for its exact destination filenames.
Paste registration.lua inside Config.KeyDesigns in config/config.fobs.lua.
Keep the other designs. Changing model names requires a matching YTYP.
If Config.BrandedKeyItems is true, add the named item using your inventory's
branded key definition, preserving use exports and metadata settings.
Install the supplied 150 x 150 inventory PNG with its item images.
If branded items are false, the existing vehicle_key item is used.

RESTART AND TEST
Restart jg-vehiclekeys after installing.
Default key design is the manufacturer fallback. Existing keys keep their
issued design. Use the documented server giveKeys export with the selected
design ID to choose it explicitly. Check a newly issued key's buttons, LED,
physical fitting, giving, dropping and inspection in FiveM.
