{
 "about": "Lawnquake (029) sprites. w/h = draw size in px at the 1280x720 reference (PNG is 2x). pivot = anchor in 0..1 of the image (props: ground contact; chain/rig parts: the joint to their parent). joints = child anchors in the same 0..1 space. Child world pos = parent pos + rotate(parent angle, (joint - parent pivot) * parent size * scale). first = needed on the first screen (load these up front, the rest lazily). load = lazy set: first, common (after the first screen), ch1/ch2/ch3 (with that chapter), hub, cards (story cards), twop (two-player); load_groups lists each set. Rebuild: python3 art/tools/build.py",
 "first": [
  "belly_ring_0",
  "belly_ring_1",
  "belly_ring_2",
  "belly_ring_3",
  "belly_ring_4",
  "belly_ring_5",
  "boater",
  "btn_burp",
  "btn_burp_lit",
  "btn_burp_pressed",
  "btn_round",
  "btn_round_brass",
  "btn_wide",
  "btn_wide_brass",
  "btn_wide_green",
  "bunting",
  "burp_puff",
  "burp_ring",
  "cake_stand",
  "crest",
  "croquet_ball_red",
  "croquet_hoop",
  "deckchair",
  "delve_belly_1",
  "delve_head_breach",
  "delve_head_calm",
  "delve_head_gulp",
  "delve_hips",
  "delve_shoulders",
  "delve_specs",
  "drag_glyph",
  "food_cupcake",
  "food_sandwich",
  "guest_gent_stand",
  "guest_granny_stand",
  "guest_kid_stand",
  "guest_lady_stand",
  "holly_hedge",
  "icon_language",
  "icon_music",
  "icon_music_off",
  "icon_pause",
  "icon_sound",
  "icon_sound_off",
  "king_aubrey_stand",
  "lawn_1",
  "lost_specs",
  "marquee_base",
  "marquee_roof",
  "molehill",
  "old_coin",
  "p_crumb",
  "p_icing",
  "p_soil",
  "p_soil_dark",
  "p_turf",
  "panel",
  "primsby_shout",
  "primsby_stand",
  "rake_stuck",
  "rosette",
  "scoreboard",
  "star_empty",
  "star_full",
  "strata_1",
  "tag_label",
  "tea_table",
  "teacup",
  "topiary_peacock"
 ],
 "load_groups": {
  "first": [
   "belly_ring_0",
   "belly_ring_1",
   "belly_ring_2",
   "belly_ring_3",
   "belly_ring_4",
   "belly_ring_5",
   "boater",
   "btn_burp",
   "btn_burp_lit",
   "btn_burp_pressed",
   "btn_round",
   "btn_round_brass",
   "btn_wide",
   "btn_wide_brass",
   "btn_wide_green",
   "bunting",
   "burp_puff",
   "burp_ring",
   "cake_stand",
   "crest",
   "croquet_ball_red",
   "croquet_hoop",
   "deckchair",
   "delve_belly_1",
   "delve_head_breach",
   "delve_head_calm",
   "delve_head_gulp",
   "delve_hips",
   "delve_shoulders",
   "delve_specs",
   "drag_glyph",
   "food_cupcake",
   "food_sandwich",
   "guest_gent_stand",
   "guest_granny_stand",
   "guest_kid_stand",
   "guest_lady_stand",
   "holly_hedge",
   "icon_language",
   "icon_music",
   "icon_music_off",
   "icon_pause",
   "icon_sound",
   "icon_sound_off",
   "king_aubrey_stand",
   "lawn_1",
   "lost_specs",
   "marquee_base",
   "marquee_roof",
   "molehill",
   "old_coin",
   "p_crumb",
   "p_icing",
   "p_soil",
   "p_soil_dark",
   "p_turf",
   "panel",
   "primsby_shout",
   "primsby_stand",
   "rake_stuck",
   "rosette",
   "scoreboard",
   "star_empty",
   "star_full",
   "strata_1",
   "tag_label",
   "tea_table",
   "teacup",
   "topiary_peacock"
  ],
  "common": [
   "badge_01",
   "badge_02",
   "badge_03",
   "badge_04",
   "badge_05",
   "badge_06",
   "badge_07",
   "badge_08",
   "badge_09",
   "badge_10",
   "badge_11",
   "badge_12",
   "badge_13",
   "badge_14",
   "badge_15",
   "badge_16",
   "badge_locked",
   "band_cornet_catch",
   "band_cornet_cheer",
   "band_cornet_duck",
   "band_cornet_hop",
   "band_cornet_march_a",
   "band_cornet_march_b",
   "band_cornet_play",
   "band_drum_catch",
   "band_drum_cheer",
   "band_drum_duck",
   "band_drum_hop",
   "band_drum_march_a",
   "band_drum_march_b",
   "band_drum_play",
   "band_master_catch",
   "band_master_cheer",
   "band_master_duck",
   "band_master_hop",
   "band_master_march_a",
   "band_master_march_b",
   "band_master_play",
   "band_trombone_catch",
   "band_trombone_cheer",
   "band_trombone_duck",
   "band_trombone_hop",
   "band_trombone_march_a",
   "band_trombone_march_b",
   "band_trombone_play",
   "band_tuba_catch",
   "band_tuba_cheer",
   "band_tuba_duck",
   "band_tuba_hop",
   "band_tuba_march_a",
   "band_tuba_march_b",
   "band_tuba_play",
   "bryony_kneel",
   "bryony_plant",
   "bryony_wave",
   "buried_teacup",
   "croquet_ball_brass",
   "croquet_ball_green",
   "croquet_green_cheer",
   "croquet_green_hop",
   "croquet_green_stand",
   "croquet_green_swing",
   "croquet_mallet",
   "croquet_peg",
   "croquet_red_cheer",
   "croquet_red_hop",
   "croquet_red_stand",
   "croquet_red_swing",
   "deckchair_folded",
   "delve_belly_2",
   "delve_belly_3",
   "delve_belly_4",
   "delve_belly_5",
   "delve_belly_pop",
   "delve_foot",
   "delve_foot_far",
   "delve_head_blink",
   "delve_head_burp",
   "delve_head_burp_huge",
   "delve_head_burp_small",
   "delve_head_cheer",
   "delve_head_dizzy",
   "delve_head_giggle",
   "delve_head_happy",
   "delve_head_pop",
   "delve_head_sad",
   "delve_head_sniff",
   "delve_head_sulk",
   "delve_head_wave",
   "delve_paw",
   "delve_paw_far",
   "delve_paw_scoop",
   "delve_paw_spread",
   "delve_paw_spread_far",
   "delve_paw_wave",
   "delve_pose_armchair",
   "delve_pose_breach",
   "delve_pose_cheer",
   "delve_pose_giggle",
   "delve_pose_sad",
   "delve_pose_wave",
   "delve_specs_askew",
   "delve_specs_slip",
   "delve_tail",
   "far_1",
   "food_bun",
   "food_cake_slice",
   "food_jelly",
   "food_scone",
   "food_strawberry",
   "frame_gold_wire",
   "frame_golden",
   "frame_half_moons",
   "frame_pince_nez",
   "frame_round_brass",
   "frame_star",
   "frame_tortoiseshell",
   "gnome",
   "guest_gent_applaud",
   "guest_gent_cheer",
   "guest_gent_clutch",
   "guest_gent_duck",
   "guest_gent_hop",
   "guest_gent_poke",
   "guest_gent_shock",
   "guest_girl_applaud",
   "guest_girl_cheer",
   "guest_girl_clutch",
   "guest_girl_duck",
   "guest_girl_hop",
   "guest_girl_poke",
   "guest_girl_shock",
   "guest_girl_stand",
   "guest_granny_applaud",
   "guest_granny_cheer",
   "guest_granny_clutch",
   "guest_granny_duck",
   "guest_granny_hop",
   "guest_granny_poke",
   "guest_granny_shock",
   "guest_kid_applaud",
   "guest_kid_cheer",
   "guest_kid_clutch",
   "guest_kid_duck",
   "guest_kid_hop",
   "guest_kid_poke",
   "guest_kid_shock",
   "guest_lady_applaud",
   "guest_lady_cheer",
   "guest_lady_clutch",
   "guest_lady_duck",
   "guest_lady_hop",
   "guest_lady_poke",
   "guest_lady_shock",
   "guest_uncle_applaud",
   "guest_uncle_cheer",
   "guest_uncle_clutch",
   "guest_uncle_duck",
   "guest_uncle_hop",
   "guest_uncle_poke",
   "guest_uncle_shock",
   "guest_uncle_stand",
   "hat_boater",
   "hat_bonnet",
   "hat_bryony_straw",
   "hat_flowerpot",
   "hat_marquee_top",
   "hat_napkin",
   "hat_paper_crown",
   "hat_pennant_cap",
   "hat_teacosy",
   "holly_hedge_tall",
   "icon_drag",
   "icon_home",
   "icon_lock",
   "icon_long_summer",
   "icon_map",
   "icon_next",
   "icon_retry",
   "icon_teaspoon",
   "icon_video",
   "king_aubrey_cheer",
   "king_aubrey_eat",
   "king_aubrey_napkin",
   "king_aubrey_point",
   "king_aubrey_proclaim",
   "king_aubrey_shock",
   "king_aubrey_sit",
   "king_aubrey_squeezed",
   "king_aubrey_sulk",
   "lemonade_jug",
   "lindenmere_flag",
   "lindenmere_flag_small",
   "lost_ball",
   "lost_specs_01",
   "lost_specs_02",
   "lost_specs_03",
   "lost_specs_04",
   "lost_specs_05",
   "lost_specs_06",
   "lost_specs_07",
   "lost_specs_08",
   "lost_specs_09",
   "lost_specs_10",
   "lost_specs_11",
   "lost_specs_12",
   "lost_specs_13",
   "lost_specs_14",
   "lost_specs_15",
   "lost_specs_16",
   "lost_specs_17",
   "lost_specs_18",
   "lost_specs_19",
   "lost_specs_20",
   "lost_specs_21",
   "lost_specs_22",
   "lost_specs_23",
   "lost_specs_24",
   "lost_specs_locked",
   "mod_bakeoff",
   "mod_rainy",
   "mod_rounds",
   "mod_sprinkler",
   "mod_windy",
   "molehill_big",
   "old_key",
   "p_drop",
   "p_holly",
   "p_leaf",
   "p_pennant_brass",
   "p_pennant_cream",
   "p_pennant_green",
   "p_pennant_red",
   "parasol",
   "pipe",
   "pipe_elbow",
   "pk_door",
   "pk_wall",
   "pk_win_arch",
   "pk_win_small",
   "pk_win_tall",
   "pop_hiccup",
   "primsby_capfly",
   "primsby_cheer",
   "primsby_duck",
   "primsby_measure",
   "primsby_point",
   "primsby_push",
   "primsby_push_a",
   "primsby_push_b",
   "primsby_push_c",
   "primsby_push_d",
   "primsby_run_a",
   "primsby_run_b",
   "primsby_shake",
   "primsby_shock",
   "primsby_sit_tea",
   "primsby_tangled",
   "primsby_whistle",
   "root_a",
   "root_b",
   "root_c",
   "royal_hill",
   "sprinkler",
   "sprinkler_spray",
   "stone_a",
   "stone_b",
   "stone_c",
   "teapot",
   "tool_big_lungs",
   "tool_claws",
   "tool_locked",
   "tool_rubber_belly",
   "tool_wide_nose",
   "topiary_tiers",
   "worm"
  ],
  "ch1": [
   "bandstand_base",
   "bandstand_roof",
   "bunting_snapped",
   "buried_teapot",
   "cake_flag",
   "cake_plate",
   "cake_tier_1",
   "cake_tier_2",
   "cake_tier_3",
   "cake_tier_4",
   "cake_tier_5",
   "cake_tier_6",
   "cake_tier_7",
   "food_crumbs",
   "food_icecream",
   "food_lemon_tart",
   "food_pie",
   "food_spill",
   "food_strawberry_bowl",
   "glint",
   "holly_hedge_short",
   "lawn_roller",
   "marquee_fallen",
   "marquee_on_head",
   "molehill_small",
   "music_stand",
   "picnic_rug",
   "rake_lying",
   "show_bandstand_awning",
   "show_bell",
   "show_gnome_pyramid",
   "show_lemonade_fountain",
   "show_seven_tier_cake",
   "show_silver_cup_stand",
   "show_strawberry_tower",
   "show_tea_tent_cake",
   "show_topiary_peacocks",
   "skim_ridge",
   "sun_bonnet",
   "teaspoon",
   "tremor_ripple"
  ],
  "ch2": [
   "bean_row",
   "clay_lump",
   "cold_frame_closed",
   "cold_frame_open",
   "compost_heap",
   "compost_heap_squash",
   "far_2",
   "flowerpot",
   "flowerpot_old",
   "food_carrots",
   "food_jam_jar",
   "food_marrow",
   "glass_flash",
   "gooseberry_bush",
   "greenhouse",
   "greenhouse_front",
   "judges_table",
   "kitchen_bed",
   "lawn_2",
   "lawnmower",
   "mower_shed",
   "onion_row",
   "pane_shard_1",
   "pane_shard_2",
   "pane_shard_3",
   "primsby_sit_barrow",
   "pumpkin",
   "pumpkin_giant",
   "pumpkin_small",
   "rhubarb",
   "seed_tray",
   "show_bean_cane_wigwam",
   "show_carrot_cart",
   "show_jam_jar_pyramid",
   "show_marrow_ladder",
   "show_pumpkin_pyramid",
   "show_pumpkin_trestle",
   "show_rhubarb_arch",
   "show_seed_tray_tower",
   "show_tomato_tower",
   "show_watering_can_fountain",
   "strata_2",
   "tomato_plant",
   "watering_can",
   "wheelbarrow"
  ],
  "ch3": [
   "balustrade",
   "far_3",
   "fountain",
   "fountain_jet",
   "garden_bench",
   "gravel_bed",
   "gravel_path",
   "king_chair",
   "lawn_3",
   "lily_pond",
   "maze_arch",
   "maze_wall",
   "maze_wall_low",
   "paving_flag",
   "picnic_hamper",
   "pond_splash",
   "rose_arch",
   "rose_bush",
   "show_band_tea_table",
   "show_crown_jelly",
   "show_great_roller",
   "show_ice_cream_cart",
   "show_lemon_tart_steps",
   "show_linden_fountain",
   "show_maze_gazebo",
   "show_name_day_cake",
   "show_parasol_stand",
   "show_roller_wedge",
   "show_rose_bower",
   "show_teacup_tower",
   "strata_3",
   "terrace_steps",
   "topiary_crown",
   "urn",
   "well_arch"
  ],
  "hub": [
   "armchair",
   "garden_map",
   "gramophone",
   "guestbook",
   "guestbook_open",
   "hamper_closed",
   "hamper_day_1",
   "hamper_day_2",
   "hamper_day_3",
   "hamper_day_4",
   "hamper_day_5",
   "hamper_day_6",
   "hamper_day_7",
   "hamper_shelf",
   "hat_stand",
   "hub_parlour",
   "map_pin_empty",
   "map_pin_hill",
   "map_pin_hill_flag",
   "map_pin_next",
   "mirror",
   "slate_board",
   "sorrel_door",
   "souvenir_marquee_flag",
   "souvenir_napkin",
   "souvenir_pennant",
   "souvenir_rosette",
   "spectacle_shelf",
   "sundial"
  ],
  "cards": [
   "card_ch1",
   "card_ch2",
   "card_ch3",
   "card_end_1",
   "card_end_2",
   "card_end_3",
   "card_end_4",
   "card_intro_1",
   "card_intro_2",
   "card_intro_3"
  ],
  "twop": [
   "p1_marker",
   "p2_marker",
   "sorrel_belly_1",
   "sorrel_belly_2",
   "sorrel_belly_3",
   "sorrel_belly_4",
   "sorrel_belly_5",
   "sorrel_belly_pop",
   "sorrel_foot",
   "sorrel_foot_far",
   "sorrel_head_blink",
   "sorrel_head_breach",
   "sorrel_head_burp",
   "sorrel_head_burp_huge",
   "sorrel_head_burp_small",
   "sorrel_head_calm",
   "sorrel_head_cheer",
   "sorrel_head_dizzy",
   "sorrel_head_giggle",
   "sorrel_head_gulp",
   "sorrel_head_happy",
   "sorrel_head_pop",
   "sorrel_head_sad",
   "sorrel_head_sniff",
   "sorrel_head_sulk",
   "sorrel_head_wave",
   "sorrel_hips",
   "sorrel_paw",
   "sorrel_paw_far",
   "sorrel_paw_scoop",
   "sorrel_paw_spread",
   "sorrel_paw_spread_far",
   "sorrel_paw_wave",
   "sorrel_pose_wave",
   "sorrel_scarf",
   "sorrel_shoulders",
   "sorrel_tail",
   "twop_divider",
   "twop_zone_p1",
   "twop_zone_p2"
  ]
 },
 "sprites": {
  "armchair": {
   "file": "sprites/armchair.png",
   "w": 130.0,
   "h": 117.0,
   "pivot": [
    0.5,
    0.986
   ],
   "group": "hub",
   "load": "hub",
   "note": "Delve's armchair (tap = map/play); delve_pose_armchair is him sitting in it"
  },
  "badge_01": {
   "file": "sprites/badge_01.png",
   "w": 90.0,
   "h": 115.0,
   "pivot": [
    0.4889,
    0.3826
   ],
   "group": "ui2",
   "load": "common",
   "note": "guestbook badge 1 (strings badges[0]): a pressed card, picture only, name in live text"
  },
  "badge_02": {
   "file": "sprites/badge_02.png",
   "w": 90.0,
   "h": 115.0,
   "pivot": [
    0.4889,
    0.3826
   ],
   "group": "ui2",
   "load": "common",
   "note": "guestbook badge 2 (strings badges[1]): a pressed card, picture only, name in live text"
  },
  "badge_03": {
   "file": "sprites/badge_03.png",
   "w": 90.0,
   "h": 115.0,
   "pivot": [
    0.4889,
    0.3826
   ],
   "group": "ui2",
   "load": "common",
   "note": "guestbook badge 3 (strings badges[2]): a pressed card, picture only, name in live text"
  },
  "badge_04": {
   "file": "sprites/badge_04.png",
   "w": 90.0,
   "h": 115.0,
   "pivot": [
    0.4889,
    0.3826
   ],
   "group": "ui2",
   "load": "common",
   "note": "guestbook badge 4 (strings badges[3]): a pressed card, picture only, name in live text"
  },
  "badge_05": {
   "file": "sprites/badge_05.png",
   "w": 90.0,
   "h": 115.0,
   "pivot": [
    0.4889,
    0.3826
   ],
   "group": "ui2",
   "load": "common",
   "note": "guestbook badge 5 (strings badges[4]): a pressed card, picture only, name in live text"
  },
  "badge_06": {
   "file": "sprites/badge_06.png",
   "w": 90.0,
   "h": 115.0,
   "pivot": [
    0.4889,
    0.3826
   ],
   "group": "ui2",
   "load": "common",
   "note": "guestbook badge 6 (strings badges[5]): a pressed card, picture only, name in live text"
  },
  "badge_07": {
   "file": "sprites/badge_07.png",
   "w": 90.0,
   "h": 115.0,
   "pivot": [
    0.4889,
    0.3826
   ],
   "group": "ui2",
   "load": "common",
   "note": "guestbook badge 7 (strings badges[6]): a pressed card, picture only, name in live text"
  },
  "badge_08": {
   "file": "sprites/badge_08.png",
   "w": 90.0,
   "h": 115.0,
   "pivot": [
    0.4889,
    0.3826
   ],
   "group": "ui2",
   "load": "common",
   "note": "guestbook badge 8 (strings badges[7]): a pressed card, picture only, name in live text"
  },
  "badge_09": {
   "file": "sprites/badge_09.png",
   "w": 90.0,
   "h": 115.0,
   "pivot": [
    0.4889,
    0.3826
   ],
   "group": "ui2",
   "load": "common",
   "note": "guestbook badge 9 (strings badges[8]): a pressed card, picture only, name in live text"
  },
  "badge_10": {
   "file": "sprites/badge_10.png",
   "w": 90.0,
   "h": 115.0,
   "pivot": [
    0.4889,
    0.3826
   ],
   "group": "ui2",
   "load": "common",
   "note": "guestbook badge 10 (strings badges[9]): a pressed card, picture only, name in live text"
  },
  "badge_11": {
   "file": "sprites/badge_11.png",
   "w": 90.0,
   "h": 115.0,
   "pivot": [
    0.4889,
    0.3826
   ],
   "group": "ui2",
   "load": "common",
   "note": "guestbook badge 11 (strings badges[10]): a pressed card, picture only, name in live text"
  },
  "badge_12": {
   "file": "sprites/badge_12.png",
   "w": 90.0,
   "h": 115.0,
   "pivot": [
    0.4889,
    0.3826
   ],
   "group": "ui2",
   "load": "common",
   "note": "guestbook badge 12 (strings badges[11]): a pressed card, picture only, name in live text"
  },
  "badge_13": {
   "file": "sprites/badge_13.png",
   "w": 90.0,
   "h": 115.0,
   "pivot": [
    0.4889,
    0.3826
   ],
   "group": "ui2",
   "load": "common",
   "note": "guestbook badge 13 (strings badges[12]): a pressed card, picture only, name in live text"
  },
  "badge_14": {
   "file": "sprites/badge_14.png",
   "w": 90.0,
   "h": 115.0,
   "pivot": [
    0.4889,
    0.3826
   ],
   "group": "ui2",
   "load": "common",
   "note": "guestbook badge 14 (strings badges[13]): a pressed card, picture only, name in live text"
  },
  "badge_15": {
   "file": "sprites/badge_15.png",
   "w": 90.0,
   "h": 115.0,
   "pivot": [
    0.4889,
    0.3826
   ],
   "group": "ui2",
   "load": "common",
   "note": "guestbook badge 15 (strings badges[14]): a pressed card, picture only, name in live text"
  },
  "badge_16": {
   "file": "sprites/badge_16.png",
   "w": 90.0,
   "h": 115.0,
   "pivot": [
    0.4889,
    0.3826
   ],
   "group": "ui2",
   "load": "common",
   "note": "guestbook badge 16 (strings badges[15]): a pressed card, picture only, name in live text"
  },
  "badge_locked": {
   "file": "sprites/badge_locked.png",
   "w": 90.0,
   "h": 91.0,
   "pivot": [
    0.4889,
    0.4835
   ],
   "group": "ui2",
   "load": "common",
   "note": "badge not yet earned (empty card + padlock; its goal in live text)"
  },
  "balustrade": {
   "file": "sprites/balustrade.png",
   "w": 150.0,
   "h": 70.0,
   "pivot": [
    0.0,
    0.98
   ],
   "group": "scene",
   "load": "ch3",
   "note": "stone balustrade (tileable 300 px), palace terrace backdrop"
  },
  "band_cornet_catch": {
   "file": "sprites/band_cornet_catch.png",
   "w": 77.0,
   "h": 103.0,
   "pivot": [
    0.2208,
    0.9709
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band cornet: catch"
  },
  "band_cornet_cheer": {
   "file": "sprites/band_cornet_cheer.png",
   "w": 75.0,
   "h": 111.0,
   "pivot": [
    0.3467,
    0.973
   ],
   "group": "cast",
   "load": "common",
   "note": "the kingdom brass band (own uniform)"
  },
  "band_cornet_duck": {
   "file": "sprites/band_cornet_duck.png",
   "w": 58.0,
   "h": 76.5,
   "pivot": [
    0.2931,
    0.9608
   ],
   "group": "cast",
   "load": "common",
   "note": "the kingdom brass band (own uniform)"
  },
  "band_cornet_hop": {
   "file": "sprites/band_cornet_hop.png",
   "w": 87.0,
   "h": 104.5,
   "pivot": [
    0.4195,
    1.1818
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band cornet: hop"
  },
  "band_cornet_march_a": {
   "file": "sprites/band_cornet_march_a.png",
   "w": 74.5,
   "h": 102.5,
   "pivot": [
    0.2752,
    0.9707
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band cornet: march_a (march cycle a,b at 4 fps)"
  },
  "band_cornet_march_b": {
   "file": "sprites/band_cornet_march_b.png",
   "w": 74.5,
   "h": 102.5,
   "pivot": [
    0.2752,
    0.9707
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band cornet: march_b (march cycle a,b at 4 fps)"
  },
  "band_cornet_play": {
   "file": "sprites/band_cornet_play.png",
   "w": 70.5,
   "h": 102.5,
   "pivot": [
    0.2908,
    0.9707
   ],
   "group": "cast",
   "load": "common",
   "note": "the kingdom brass band (own uniform)"
  },
  "band_drum_catch": {
   "file": "sprites/band_drum_catch.png",
   "w": 73.5,
   "h": 103.0,
   "pivot": [
    0.2313,
    0.9709
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band drum: catch"
  },
  "band_drum_cheer": {
   "file": "sprites/band_drum_cheer.png",
   "w": 62.0,
   "h": 102.5,
   "pivot": [
    0.4194,
    0.9707
   ],
   "group": "cast",
   "load": "common",
   "note": "the kingdom brass band (own uniform)"
  },
  "band_drum_duck": {
   "file": "sprites/band_drum_duck.png",
   "w": 58.0,
   "h": 76.5,
   "pivot": [
    0.2931,
    0.9608
   ],
   "group": "cast",
   "load": "common",
   "note": "the kingdom brass band (own uniform)"
  },
  "band_drum_hop": {
   "file": "sprites/band_drum_hop.png",
   "w": 77.0,
   "h": 96.5,
   "pivot": [
    0.474,
    1.1969
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band drum: hop"
  },
  "band_drum_march_a": {
   "file": "sprites/band_drum_march_a.png",
   "w": 61.5,
   "h": 102.5,
   "pivot": [
    0.3333,
    0.9707
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band drum: march_a (march cycle a,b at 4 fps)"
  },
  "band_drum_march_b": {
   "file": "sprites/band_drum_march_b.png",
   "w": 61.5,
   "h": 102.5,
   "pivot": [
    0.3333,
    0.9707
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band drum: march_b (march cycle a,b at 4 fps)"
  },
  "band_drum_play": {
   "file": "sprites/band_drum_play.png",
   "w": 61.5,
   "h": 102.5,
   "pivot": [
    0.3333,
    0.9707
   ],
   "group": "cast",
   "load": "common",
   "note": "the kingdom brass band (own uniform)"
  },
  "band_master_catch": {
   "file": "sprites/band_master_catch.png",
   "w": 73.5,
   "h": 103.0,
   "pivot": [
    0.2313,
    0.9709
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band master: catch"
  },
  "band_master_cheer": {
   "file": "sprites/band_master_cheer.png",
   "w": 64.0,
   "h": 107.0,
   "pivot": [
    0.4062,
    0.972
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band master: cheer"
  },
  "band_master_duck": {
   "file": "sprites/band_master_duck.png",
   "w": 58.0,
   "h": 77.0,
   "pivot": [
    0.2931,
    0.961
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band master: duck"
  },
  "band_master_hop": {
   "file": "sprites/band_master_hop.png",
   "w": 67.0,
   "h": 96.5,
   "pivot": [
    0.5448,
    1.1969
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band master: hop"
  },
  "band_master_march_a": {
   "file": "sprites/band_master_march_a.png",
   "w": 63.5,
   "h": 102.5,
   "pivot": [
    0.3228,
    0.9707
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band master: march_a (march cycle a,b at 4 fps)"
  },
  "band_master_march_b": {
   "file": "sprites/band_master_march_b.png",
   "w": 63.5,
   "h": 102.5,
   "pivot": [
    0.3228,
    0.9707
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band master: march_b (march cycle a,b at 4 fps)"
  },
  "band_master_play": {
   "file": "sprites/band_master_play.png",
   "w": 67.5,
   "h": 103.0,
   "pivot": [
    0.363,
    0.9709
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band master: play"
  },
  "band_trombone_catch": {
   "file": "sprites/band_trombone_catch.png",
   "w": 77.0,
   "h": 103.0,
   "pivot": [
    0.2208,
    0.9709
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band trombone: catch"
  },
  "band_trombone_cheer": {
   "file": "sprites/band_trombone_cheer.png",
   "w": 86.0,
   "h": 112.0,
   "pivot": [
    0.3023,
    0.9732
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band trombone: cheer"
  },
  "band_trombone_duck": {
   "file": "sprites/band_trombone_duck.png",
   "w": 58.0,
   "h": 76.5,
   "pivot": [
    0.2931,
    0.9608
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band trombone: duck"
  },
  "band_trombone_hop": {
   "file": "sprites/band_trombone_hop.png",
   "w": 96.5,
   "h": 106.0,
   "pivot": [
    0.3782,
    1.1792
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band trombone: hop"
  },
  "band_trombone_march_a": {
   "file": "sprites/band_trombone_march_a.png",
   "w": 80.5,
   "h": 102.5,
   "pivot": [
    0.2547,
    0.9707
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band trombone: march_a (march cycle a,b at 4 fps)"
  },
  "band_trombone_march_b": {
   "file": "sprites/band_trombone_march_b.png",
   "w": 80.5,
   "h": 102.5,
   "pivot": [
    0.2547,
    0.9707
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band trombone: march_b (march cycle a,b at 4 fps)"
  },
  "band_trombone_play": {
   "file": "sprites/band_trombone_play.png",
   "w": 80.5,
   "h": 102.5,
   "pivot": [
    0.2547,
    0.9707
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band trombone: play"
  },
  "band_tuba_catch": {
   "file": "sprites/band_tuba_catch.png",
   "w": 74.5,
   "h": 128.5,
   "pivot": [
    0.2282,
    0.9767
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band tuba: catch"
  },
  "band_tuba_cheer": {
   "file": "sprites/band_tuba_cheer.png",
   "w": 60.5,
   "h": 135.0,
   "pivot": [
    0.4298,
    0.9778
   ],
   "group": "cast",
   "load": "common",
   "note": "the kingdom brass band (own uniform)"
  },
  "band_tuba_duck": {
   "file": "sprites/band_tuba_duck.png",
   "w": 58.0,
   "h": 76.5,
   "pivot": [
    0.2931,
    0.9608
   ],
   "group": "cast",
   "load": "common",
   "note": "the kingdom brass band (own uniform)"
  },
  "band_tuba_hop": {
   "file": "sprites/band_tuba_hop.png",
   "w": 72.5,
   "h": 143.5,
   "pivot": [
    0.5034,
    1.1324
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band tuba: hop"
  },
  "band_tuba_march_a": {
   "file": "sprites/band_tuba_march_a.png",
   "w": 64.5,
   "h": 126.5,
   "pivot": [
    0.3178,
    0.9763
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band tuba: march_a (march cycle a,b at 4 fps)"
  },
  "band_tuba_march_b": {
   "file": "sprites/band_tuba_march_b.png",
   "w": 64.5,
   "h": 126.5,
   "pivot": [
    0.3178,
    0.9763
   ],
   "group": "cast2",
   "load": "common",
   "note": "Linden Band tuba: march_b (march cycle a,b at 4 fps)"
  },
  "band_tuba_play": {
   "file": "sprites/band_tuba_play.png",
   "w": 64.5,
   "h": 126.5,
   "pivot": [
    0.3178,
    0.9763
   ],
   "group": "cast",
   "load": "common",
   "note": "the kingdom brass band (own uniform)"
  },
  "bandstand_base": {
   "file": "sprites/bandstand_base.png",
   "w": 272.0,
   "h": 162.0,
   "pivot": [
    0.5,
    0.9938
   ],
   "joints": {
    "roof": [
     0.5,
     0.0123
    ],
    "floor": [
     0.5,
     0.679
    ]
   },
   "group": "bandstand",
   "load": "ch1",
   "note": "bandstand: stone plinth, cream rail, brass posts; band stands on \"floor\"; roof sprite on \"roof\""
  },
  "bandstand_roof": {
   "file": "sprites/bandstand_roof.png",
   "w": 272.0,
   "h": 82.5,
   "pivot": [
    0.5,
    0.9091
   ],
   "group": "bandstand",
   "load": "ch1",
   "note": "bandstand roof (falls off as one body)"
  },
  "bean_row": {
   "file": "sprites/bean_row.png",
   "w": 92.5,
   "h": 116.0,
   "pivot": [
    0.5405,
    0.9797
   ],
   "group": "props",
   "load": "ch2",
   "note": "runner beans on canes (soft: he passes through, leaves fly)"
  },
  "belly_ring_0": {
   "file": "sprites/belly_ring_0.png",
   "w": 130.0,
   "h": 130.0,
   "pivot": [
    0.5,
    0.5
   ],
   "first": true,
   "group": "ui",
   "load": "first",
   "note": "empty belly ring"
  },
  "belly_ring_1": {
   "file": "sprites/belly_ring_1.png",
   "w": 130.0,
   "h": 130.0,
   "pivot": [
    0.5,
    0.5
   ],
   "first": true,
   "group": "ui",
   "load": "first",
   "note": "belly ring round the BURP bell: 1 of 5 segments filled (x1); same centre as btn_burp"
  },
  "belly_ring_2": {
   "file": "sprites/belly_ring_2.png",
   "w": 130.0,
   "h": 130.0,
   "pivot": [
    0.5,
    0.5
   ],
   "first": true,
   "group": "ui",
   "load": "first",
   "note": "belly ring round the BURP bell: 2 of 5 segments filled (x2); same centre as btn_burp"
  },
  "belly_ring_3": {
   "file": "sprites/belly_ring_3.png",
   "w": 130.0,
   "h": 130.0,
   "pivot": [
    0.5,
    0.5
   ],
   "first": true,
   "group": "ui",
   "load": "first",
   "note": "belly ring round the BURP bell: 3 of 5 segments filled (x3); same centre as btn_burp"
  },
  "belly_ring_4": {
   "file": "sprites/belly_ring_4.png",
   "w": 130.0,
   "h": 130.0,
   "pivot": [
    0.5,
    0.5
   ],
   "first": true,
   "group": "ui",
   "load": "first",
   "note": "belly ring round the BURP bell: 4 of 5 segments filled (x4); same centre as btn_burp"
  },
  "belly_ring_5": {
   "file": "sprites/belly_ring_5.png",
   "w": 130.0,
   "h": 130.0,
   "pivot": [
    0.5,
    0.5
   ],
   "first": true,
   "group": "ui",
   "load": "first",
   "note": "belly ring round the BURP bell: 5 of 5 segments filled (x5); same centre as btn_burp"
  },
  "boater": {
   "file": "sprites/boater.png",
   "w": 48.0,
   "h": 20.0,
   "pivot": [
    0.5,
    0.725
   ],
   "first": true,
   "group": "props",
   "load": "first",
   "note": "straw boater (guests' hats rain down)"
  },
  "bryony_kneel": {
   "file": "sprites/bryony_kneel.png",
   "w": 57.0,
   "h": 75.0,
   "pivot": [
    0.2982,
    0.96
   ],
   "group": "cast",
   "load": "common",
   "note": "Bryony the under-gardener (Delve's friend): wave, plant the flag, kneel with trowel"
  },
  "bryony_plant": {
   "file": "sprites/bryony_plant.png",
   "w": 61.0,
   "h": 118.5,
   "pivot": [
    0.3033,
    0.9747
   ],
   "group": "cast",
   "load": "common",
   "note": "Bryony the under-gardener (Delve's friend): wave, plant the flag, kneel with trowel"
  },
  "bryony_wave": {
   "file": "sprites/bryony_wave.png",
   "w": 54.0,
   "h": 103.0,
   "pivot": [
    0.4815,
    0.9709
   ],
   "group": "cast",
   "load": "common",
   "note": "Bryony the under-gardener (Delve's friend): wave, plant the flag, kneel with trowel"
  },
  "btn_burp": {
   "file": "sprites/btn_burp.png",
   "w": 102.0,
   "h": 106.0,
   "pivot": [
    0.5,
    0.4906
   ],
   "first": true,
   "group": "ui",
   "load": "first",
   "note": "BURP button: brass bell-mouth (idle, belly empty)"
  },
  "btn_burp_lit": {
   "file": "sprites/btn_burp_lit.png",
   "w": 102.0,
   "h": 106.0,
   "pivot": [
    0.5,
    0.4906
   ],
   "first": true,
   "group": "ui",
   "load": "first",
   "note": "BURP ready (belly x2+): red throat; pulse scale 1 -> 1.06"
  },
  "btn_burp_pressed": {
   "file": "sprites/btn_burp_pressed.png",
   "w": 102.0,
   "h": 102.0,
   "pivot": [
    0.5,
    0.4804
   ],
   "first": true,
   "group": "ui",
   "load": "first",
   "note": "BURP pressed"
  },
  "btn_round": {
   "file": "sprites/btn_round.png",
   "w": 56.0,
   "h": 60.0,
   "pivot": [
    0.5,
    0.469
   ],
   "first": true,
   "group": "ui",
   "load": "first",
   "note": "round button base; icons go on top"
  },
  "btn_round_brass": {
   "file": "sprites/btn_round_brass.png",
   "w": 56.0,
   "h": 60.0,
   "pivot": [
    0.5,
    0.469
   ],
   "first": true,
   "group": "ui",
   "load": "first",
   "note": "round button base; icons go on top"
  },
  "btn_wide": {
   "file": "sprites/btn_wide.png",
   "w": 158.0,
   "h": 53.0,
   "pivot": [
    0.5,
    0.5472
   ],
   "first": true,
   "slice": [
    28,
    28,
    28,
    36
   ],
   "group": "ui",
   "load": "first",
   "note": "wide button (label = live font text, body font 700, velvet on cream). 9-slice with \"slice\" (l, t, r, b px in the PNG). Pressed: draw +6 px down, without the lip"
  },
  "btn_wide_brass": {
   "file": "sprites/btn_wide_brass.png",
   "w": 158.0,
   "h": 53.0,
   "pivot": [
    0.5,
    0.5472
   ],
   "first": true,
   "slice": [
    28,
    28,
    28,
    36
   ],
   "group": "ui",
   "load": "first",
   "note": "wide button (label = live font text, body font 700, velvet on cream). 9-slice with \"slice\" (l, t, r, b px in the PNG). Pressed: draw +6 px down, without the lip"
  },
  "btn_wide_green": {
   "file": "sprites/btn_wide_green.png",
   "w": 158.0,
   "h": 53.0,
   "pivot": [
    0.5,
    0.5472
   ],
   "first": true,
   "slice": [
    28,
    28,
    28,
    36
   ],
   "group": "ui",
   "load": "first",
   "note": "wide button (label = live font text, body font 700, velvet on cream). 9-slice with \"slice\" (l, t, r, b px in the PNG). Pressed: draw +6 px down, without the lip"
  },
  "bunting": {
   "file": "sprites/bunting.png",
   "w": 200.0,
   "h": 35.0,
   "pivot": [
    0.0,
    0.1429
   ],
   "joints": {
    "end": [
     1.0,
     0.1429
    ]
   },
   "first": true,
   "group": "props",
   "load": "first",
   "note": "bunting span 200 px (kingdom colours: red, cream, green, brass); chain spans end-to-end; snaps into p_pennant pieces"
  },
  "bunting_snapped": {
   "file": "sprites/bunting_snapped.png",
   "w": 147.0,
   "h": 40.0,
   "pivot": [
    0.0,
    0.05
   ],
   "group": "ch1",
   "load": "ch1",
   "note": "bunting string snapped by a breach (left half hanging; pivot = left fixing)"
  },
  "buried_teacup": {
   "file": "sprites/buried_teacup.png",
   "w": 36.5,
   "h": 27.0,
   "pivot": [
    0.4795,
    0.4444
   ],
   "group": "underground",
   "load": "common",
   "note": "buried teacup (find: +points, clinks)"
  },
  "buried_teapot": {
   "file": "sprites/buried_teapot.png",
   "w": 58.0,
   "h": 50.5,
   "pivot": [
    0.5603,
    0.6436
   ],
   "group": "ch1",
   "load": "ch1",
   "note": "buried teapot, tipped (1-3 spectacles are inside; solid dressing)"
  },
  "burp_puff": {
   "file": "sprites/burp_puff.png",
   "w": 33.0,
   "h": 25.0,
   "pivot": [
    0.5,
    0.48
   ],
   "first": true,
   "group": "particles",
   "load": "first",
   "note": "burp puff cloud"
  },
  "burp_ring": {
   "file": "sprites/burp_ring.png",
   "w": 103.0,
   "h": 98.0,
   "pivot": [
    0.5097,
    0.5102
   ],
   "first": true,
   "group": "particles",
   "load": "first",
   "note": "BURP BLAST shock ring (one puffed-air shape; scale 0.3 -> 2.2 in 0.35 s, then alpha out)"
  },
  "cake_flag": {
   "file": "sprites/cake_flag.png",
   "w": 27.5,
   "h": 33.5,
   "pivot": [
    0.0909,
    1.0
   ],
   "group": "cake",
   "load": "ch1",
   "note": "the kingdom flag on the top tier"
  },
  "cake_plate": {
   "file": "sprites/cake_plate.png",
   "w": 123.0,
   "h": 11.0,
   "pivot": [
    0.5,
    1.0455
   ],
   "joints": {
    "top": [
     0.5,
     0.0909
    ]
   },
   "group": "cake",
   "load": "ch1",
   "note": "brass cake board under tier 1"
  },
  "cake_stand": {
   "file": "sprites/cake_stand.png",
   "w": 58.0,
   "h": 90.5,
   "pivot": [
    0.5,
    0.9903
   ],
   "first": true,
   "group": "props",
   "load": "first",
   "note": "three-tier cake stand (gulp-able, knocked flying)"
  },
  "cake_tier_1": {
   "file": "sprites/cake_tier_1.png",
   "w": 102.0,
   "h": 36.0,
   "pivot": [
    0.5,
    1.0139
   ],
   "joints": {
    "top": [
     0.5,
     0.1806
    ]
   },
   "group": "cake",
   "load": "ch1",
   "note": "seven-tier cake, tier 1 (1 = bottom). Stack: tier n+1 pivot on tier n \"top\". Each tier is its own physics body for the topple"
  },
  "cake_tier_2": {
   "file": "sprites/cake_tier_2.png",
   "w": 88.0,
   "h": 34.0,
   "pivot": [
    0.5,
    1.0147
   ],
   "joints": {
    "top": [
     0.5,
     0.1912
    ]
   },
   "group": "cake",
   "load": "ch1",
   "note": "seven-tier cake, tier 2 (1 = bottom). Stack: tier n+1 pivot on tier n \"top\". Each tier is its own physics body for the topple"
  },
  "cake_tier_3": {
   "file": "sprites/cake_tier_3.png",
   "w": 75.0,
   "h": 33.0,
   "pivot": [
    0.5,
    1.0152
   ],
   "joints": {
    "top": [
     0.5,
     0.197
    ]
   },
   "group": "cake",
   "load": "ch1",
   "note": "seven-tier cake, tier 3 (1 = bottom). Stack: tier n+1 pivot on tier n \"top\". Each tier is its own physics body for the topple"
  },
  "cake_tier_4": {
   "file": "sprites/cake_tier_4.png",
   "w": 62.0,
   "h": 31.0,
   "pivot": [
    0.5,
    1.0161
   ],
   "joints": {
    "top": [
     0.5,
     0.2097
    ]
   },
   "group": "cake",
   "load": "ch1",
   "note": "seven-tier cake, tier 4 (1 = bottom). Stack: tier n+1 pivot on tier n \"top\". Each tier is its own physics body for the topple"
  },
  "cake_tier_5": {
   "file": "sprites/cake_tier_5.png",
   "w": 50.0,
   "h": 30.0,
   "pivot": [
    0.5,
    1.0167
   ],
   "joints": {
    "top": [
     0.5,
     0.2167
    ]
   },
   "group": "cake",
   "load": "ch1",
   "note": "seven-tier cake, tier 5 (1 = bottom). Stack: tier n+1 pivot on tier n \"top\". Each tier is its own physics body for the topple"
  },
  "cake_tier_6": {
   "file": "sprites/cake_tier_6.png",
   "w": 39.0,
   "h": 29.0,
   "pivot": [
    0.5,
    1.0172
   ],
   "joints": {
    "top": [
     0.5,
     0.2241
    ]
   },
   "group": "cake",
   "load": "ch1",
   "note": "seven-tier cake, tier 6 (1 = bottom). Stack: tier n+1 pivot on tier n \"top\". Each tier is its own physics body for the topple"
  },
  "cake_tier_7": {
   "file": "sprites/cake_tier_7.png",
   "w": 29.5,
   "h": 28.0,
   "pivot": [
    0.5085,
    1.0179
   ],
   "joints": {
    "top": [
     0.5085,
     0.2321
    ]
   },
   "group": "cake",
   "load": "ch1",
   "note": "seven-tier cake, tier 7 (1 = bottom). Stack: tier n+1 pivot on tier n \"top\". Each tier is its own physics body for the topple"
  },
  "card_ch1": {
   "file": "sprites/card_ch1.png",
   "w": 640.0,
   "h": 360.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "cards",
   "load": "cards",
   "note": "chapter 1 The Croquet Lawn: Primsby neat and proud on his lawn (picture only; the card text is live, strings)"
  },
  "card_ch2": {
   "file": "sprites/card_ch2.png",
   "w": 640.0,
   "h": 360.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "cards",
   "load": "cards",
   "note": "chapter 2 The Kitchen Garden: Primsby with his cap askew and his tape tangled (picture only; the card text is live, strings)"
  },
  "card_ch3": {
   "file": "sprites/card_ch3.png",
   "w": 640.0,
   "h": 360.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "cards",
   "load": "cards",
   "note": "chapter 3 The Linden Terrace: Primsby sitting on his wheelbarrow, boots full of soil (picture only; the card text is live, strings)"
  },
  "card_end_1": {
   "file": "sprites/card_end_1.png",
   "w": 640.0,
   "h": 360.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "cards",
   "load": "cards",
   "note": "ending 1: the Great Roller splashes into the lily pond; where it stood the lawn heaves up into a round hill (picture only; the card text is live, strings)"
  },
  "card_end_2": {
   "file": "sprites/card_end_2.png",
   "w": 640.0,
   "h": 360.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "cards",
   "load": "cards",
   "note": "ending 2: the King, cake on his napkin, declares the hill a royal hill (picture only; the card text is live, strings)"
  },
  "card_end_3": {
   "file": "sprites/card_end_3.png",
   "w": 640.0,
   "h": 360.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "cards",
   "load": "cards",
   "note": "ending 3: Bryony plants the little flag on the hill; Primsby, for once, sits down with a cup of tea (picture only; the card text is live, strings)"
  },
  "card_end_4": {
   "file": "sprites/card_end_4.png",
   "w": 640.0,
   "h": 360.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "cards",
   "load": "cards",
   "note": "ending 4: Delve hosts his own party in the restored hill: the King squeezed in a tunnel, Bryony, Sorrel, the band playing very quietly (picture only; the card text is live, strings)"
  },
  "card_intro_1": {
   "file": "sprites/card_intro_1.png",
   "w": 640.0,
   "h": 360.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "cards",
   "load": "cards",
   "note": "intro 1: the croquet lawn rolled flat right over an old molehill (the King points, Primsby pushes the roller) (picture only; the card text is live, strings)"
  },
  "card_intro_2": {
   "file": "sprites/card_intro_2.png",
   "w": 640.0,
   "h": 360.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "cards",
   "load": "cards",
   "note": "intro 2: Delve under the turf holding the crumpled family portrait (three generations of moles) (picture only; the card text is live, strings)"
  },
  "card_intro_3": {
   "file": "sprites/card_intro_3.png",
   "w": 640.0,
   "h": 360.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "cards",
   "load": "cards",
   "note": "intro 3: Primsby measuring a molehill with his tape (picture only; the card text is live, strings)"
  },
  "clay_lump": {
   "file": "sprites/clay_lump.png",
   "w": 56.0,
   "h": 25.0,
   "pivot": [
    0.5089,
    0.52
   ],
   "group": "ch2",
   "load": "ch2",
   "note": "clay lump in the clay layer (slow soil marker; dressing)"
  },
  "cold_frame_closed": {
   "file": "sprites/cold_frame_closed.png",
   "w": 109.0,
   "h": 46.0,
   "pivot": [
    0.5,
    1.0054
   ],
   "group": "ch2",
   "load": "ch2",
   "note": "cold frame, lid closed (no-breach zone: he bumps under it; the glass never breaks)"
  },
  "cold_frame_open": {
   "file": "sprites/cold_frame_open.png",
   "w": 105.5,
   "h": 62.5,
   "pivot": [
    0.4834,
    0.94
   ],
   "group": "ch2",
   "load": "ch2",
   "note": "cold frame, lid open (no-breach zone: he bumps under it; the glass never breaks)"
  },
  "compost_heap": {
   "file": "sprites/compost_heap.png",
   "w": 123.0,
   "h": 58.5,
   "pivot": [
    0.5,
    0.9737
   ],
   "group": "props",
   "load": "ch2",
   "note": "compost heap (springy: bounces the mole)"
  },
  "compost_heap_squash": {
   "file": "sprites/compost_heap_squash.png",
   "w": 123.0,
   "h": 36.5,
   "pivot": [
    0.5,
    0.9682
   ],
   "group": "ch2",
   "load": "ch2",
   "note": "compost heap squashed (2 frames: compost_heap -> squash 0.08 s -> back with overshoot, as it bounces him)"
  },
  "crest": {
   "file": "sprites/crest.png",
   "w": 57.0,
   "h": 64.0,
   "pivot": [
    0.5,
    0.5156
   ],
   "first": true,
   "group": "ui",
   "load": "first",
   "note": "the Lindenmere crest (poppy-red shield, cream field, linden leaf)"
  },
  "croquet_ball_brass": {
   "file": "sprites/croquet_ball_brass.png",
   "w": 22.0,
   "h": 22.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "props",
   "load": "common"
  },
  "croquet_ball_green": {
   "file": "sprites/croquet_ball_green.png",
   "w": 22.0,
   "h": 22.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "props",
   "load": "common"
  },
  "croquet_ball_red": {
   "file": "sprites/croquet_ball_red.png",
   "w": 22.0,
   "h": 22.0,
   "pivot": [
    0.5,
    0.5
   ],
   "first": true,
   "group": "props",
   "load": "first"
  },
  "croquet_green_cheer": {
   "file": "sprites/croquet_green_cheer.png",
   "w": 54.5,
   "h": 102.0,
   "pivot": [
    0.4771,
    0.9804
   ],
   "group": "cast2",
   "load": "common",
   "note": "croquet player (whites, green sash): stand / swing the mallet / hop clear / cheer"
  },
  "croquet_green_hop": {
   "file": "sprites/croquet_green_hop.png",
   "w": 67.0,
   "h": 94.5,
   "pivot": [
    0.5448,
    1.2169
   ],
   "group": "cast2",
   "load": "common",
   "note": "croquet player (whites, green sash): stand / swing the mallet / hop clear / cheer"
  },
  "croquet_green_stand": {
   "file": "sprites/croquet_green_stand.png",
   "w": 59.0,
   "h": 102.0,
   "pivot": [
    0.5,
    0.9804
   ],
   "group": "cast2",
   "load": "common",
   "note": "croquet player (whites, green sash): stand / swing the mallet / hop clear / cheer"
  },
  "croquet_green_swing": {
   "file": "sprites/croquet_green_swing.png",
   "w": 76.5,
   "h": 101.5,
   "pivot": [
    0.6405,
    0.9803
   ],
   "group": "cast2",
   "load": "common",
   "note": "croquet player (whites, green sash): stand / swing the mallet / hop clear / cheer"
  },
  "croquet_hoop": {
   "file": "sprites/croquet_hoop.png",
   "w": 37.0,
   "h": 58.0,
   "pivot": [
    0.5,
    0.95
   ],
   "first": true,
   "group": "props",
   "load": "first",
   "note": "croquet hoop (iron wire, painted white); sunk in the lawn to the pivot"
  },
  "croquet_mallet": {
   "file": "sprites/croquet_mallet.png",
   "w": 36.0,
   "h": 82.0,
   "pivot": [
    0.2778,
    0.0274
   ],
   "group": "props",
   "load": "common",
   "note": "mallet, pivot = handle top (it spins when knocked)"
  },
  "croquet_peg": {
   "file": "sprites/croquet_peg.png",
   "w": 11.0,
   "h": 56.0,
   "pivot": [
    0.5,
    0.95
   ],
   "group": "props",
   "load": "common",
   "note": "striped winning peg"
  },
  "croquet_red_cheer": {
   "file": "sprites/croquet_red_cheer.png",
   "w": 54.5,
   "h": 103.0,
   "pivot": [
    0.4771,
    0.9709
   ],
   "group": "cast2",
   "load": "common",
   "note": "croquet player (whites, red sash): stand / swing the mallet / hop clear / cheer"
  },
  "croquet_red_hop": {
   "file": "sprites/croquet_red_hop.png",
   "w": 67.0,
   "h": 96.0,
   "pivot": [
    0.5448,
    1.1979
   ],
   "group": "cast2",
   "load": "common",
   "note": "croquet player (whites, red sash): stand / swing the mallet / hop clear / cheer"
  },
  "croquet_red_stand": {
   "file": "sprites/croquet_red_stand.png",
   "w": 59.0,
   "h": 103.0,
   "pivot": [
    0.5,
    0.9709
   ],
   "group": "cast2",
   "load": "common",
   "note": "croquet player (whites, red sash): stand / swing the mallet / hop clear / cheer"
  },
  "croquet_red_swing": {
   "file": "sprites/croquet_red_swing.png",
   "w": 70.0,
   "h": 102.5,
   "pivot": [
    0.7,
    0.9707
   ],
   "group": "cast2",
   "load": "common",
   "note": "croquet player (whites, red sash): stand / swing the mallet / hop clear / cheer"
  },
  "deckchair": {
   "file": "sprites/deckchair.png",
   "w": 72.0,
   "h": 81.5,
   "pivot": [
    0.4653,
    0.9676
   ],
   "first": true,
   "group": "props",
   "load": "first",
   "note": "striped deckchair (knocked flying)"
  },
  "deckchair_folded": {
   "file": "sprites/deckchair_folded.png",
   "w": 77.0,
   "h": 19.0,
   "pivot": [
    0.5,
    0.4474
   ],
   "group": "props",
   "load": "common",
   "note": "deckchair snapped shut, flying"
  },
  "delve_belly_1": {
   "file": "sprites/delve_belly_1.png",
   "w": 91.0,
   "h": 86.0,
   "pivot": [
    0.7492,
    0.5
   ],
   "joints": {
    "back": [
     0.2508,
     0.5
    ]
   },
   "first": true,
   "seg_len": 45.4,
   "group": "delve",
   "load": "first",
   "note": "belly x1 (score multiplier x1); pivot = front joint on shoulders \"back\"; hips go on its \"back\""
  },
  "delve_belly_2": {
   "file": "sprites/delve_belly_2.png",
   "w": 107.5,
   "h": 101.0,
   "pivot": [
    0.7487,
    0.5
   ],
   "joints": {
    "back": [
     0.2513,
     0.5
    ]
   },
   "seg_len": 53.5,
   "group": "delve",
   "load": "common",
   "note": "belly x2 (score multiplier x2); pivot = front joint on shoulders \"back\"; hips go on its \"back\""
  },
  "delve_belly_3": {
   "file": "sprites/delve_belly_3.png",
   "w": 126.0,
   "h": 119.0,
   "pivot": [
    0.7507,
    0.5
   ],
   "joints": {
    "back": [
     0.2493,
     0.5
    ]
   },
   "seg_len": 63.2,
   "group": "delve",
   "load": "common",
   "note": "belly x3 (score multiplier x3); pivot = front joint on shoulders \"back\"; hips go on its \"back\""
  },
  "delve_belly_4": {
   "file": "sprites/delve_belly_4.png",
   "w": 147.0,
   "h": 138.0,
   "pivot": [
    0.7498,
    0.5
   ],
   "joints": {
    "back": [
     0.2502,
     0.5
    ]
   },
   "seg_len": 73.4,
   "group": "delve",
   "load": "common",
   "note": "belly x4 (score multiplier x4); pivot = front joint on shoulders \"back\"; hips go on its \"back\""
  },
  "delve_belly_5": {
   "file": "sprites/delve_belly_5.png",
   "w": 168.0,
   "h": 158.0,
   "pivot": [
    0.7507,
    0.5
   ],
   "joints": {
    "back": [
     0.2493,
     0.5
    ]
   },
   "seg_len": 84.2,
   "group": "delve",
   "load": "common",
   "note": "belly x5 (score multiplier x5); pivot = front joint on shoulders \"back\"; hips go on its \"back\""
  },
  "delve_belly_pop": {
   "file": "sprites/delve_belly_pop.png",
   "w": 98.0,
   "h": 68.0,
   "pivot": [
    0.7347,
    0.5
   ],
   "joints": {
    "back": [
     0.2653,
     0.5
    ]
   },
   "seg_len": 46.0,
   "group": "delve",
   "load": "common",
   "note": "belly right after a rake/holly pop (deflated, wrinkles), then back to belly_1"
  },
  "delve_foot": {
   "file": "sprites/delve_foot.png",
   "w": 36.5,
   "h": 28.0,
   "pivot": [
    0.3151,
    0.1071
   ],
   "group": "delve",
   "load": "common",
   "note": "hind foot, pivot = ankle"
  },
  "delve_foot_far": {
   "file": "sprites/delve_foot_far.png",
   "w": 36.5,
   "h": 28.0,
   "pivot": [
    0.3151,
    0.1071
   ],
   "group": "delve",
   "load": "common",
   "note": "hind foot, pivot = ankle (far side)"
  },
  "delve_head_blink": {
   "file": "sprites/delve_head_blink.png",
   "w": 120.0,
   "h": 82.5,
   "pivot": [
    0.0375,
    0.5576
   ],
   "joints": {
    "back": [
     0.0375,
     0.5576
    ],
    "nose": [
     0.8708,
     0.5091
    ],
    "specs": [
     0.5625,
     0.3273
    ],
    "mouth": [
     0.7375,
     0.8
    ],
    "hat": [
     0.3375,
     0.0364
    ]
   },
   "group": "delve",
   "load": "common",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "delve_head_breach": {
   "file": "sprites/delve_head_breach.png",
   "w": 119.5,
   "h": 82.5,
   "pivot": [
    0.0377,
    0.5576
   ],
   "joints": {
    "back": [
     0.0377,
     0.5576
    ],
    "nose": [
     0.8745,
     0.5091
    ],
    "specs": [
     0.5649,
     0.3273
    ],
    "mouth": [
     0.7406,
     0.8
    ],
    "hat": [
     0.3389,
     0.0364
    ]
   },
   "first": true,
   "group": "delve",
   "load": "first",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "delve_head_burp": {
   "file": "sprites/delve_head_burp.png",
   "w": 121.0,
   "h": 85.0,
   "pivot": [
    0.0372,
    0.5412
   ],
   "joints": {
    "back": [
     0.0372,
     0.5412
    ],
    "nose": [
     0.8636,
     0.4941
    ],
    "specs": [
     0.5579,
     0.3176
    ],
    "mouth": [
     0.7314,
     0.7765
    ],
    "hat": [
     0.3347,
     0.0353
    ]
   },
   "group": "delve",
   "load": "common",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "delve_head_burp_huge": {
   "file": "sprites/delve_head_burp_huge.png",
   "w": 122.5,
   "h": 89.0,
   "pivot": [
    0.0367,
    0.5169
   ],
   "joints": {
    "back": [
     0.0367,
     0.5169
    ],
    "nose": [
     0.8531,
     0.4719
    ],
    "specs": [
     0.551,
     0.3034
    ],
    "mouth": [
     0.7224,
     0.7416
    ],
    "hat": [
     0.3306,
     0.0337
    ]
   },
   "group": "delve2",
   "load": "common",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "delve_head_burp_small": {
   "file": "sprites/delve_head_burp_small.png",
   "w": 120.0,
   "h": 82.5,
   "pivot": [
    0.0375,
    0.5576
   ],
   "joints": {
    "back": [
     0.0375,
     0.5576
    ],
    "nose": [
     0.8708,
     0.5091
    ],
    "specs": [
     0.5625,
     0.3273
    ],
    "mouth": [
     0.7375,
     0.8
    ],
    "hat": [
     0.3375,
     0.0364
    ]
   },
   "group": "delve2",
   "load": "common",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "delve_head_calm": {
   "file": "sprites/delve_head_calm.png",
   "w": 120.0,
   "h": 82.5,
   "pivot": [
    0.0375,
    0.5576
   ],
   "joints": {
    "back": [
     0.0375,
     0.5576
    ],
    "nose": [
     0.8708,
     0.5091
    ],
    "specs": [
     0.5625,
     0.3273
    ],
    "mouth": [
     0.7375,
     0.8
    ],
    "hat": [
     0.3375,
     0.0364
    ]
   },
   "first": true,
   "group": "delve",
   "load": "first",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "delve_head_cheer": {
   "file": "sprites/delve_head_cheer.png",
   "w": 120.0,
   "h": 82.5,
   "pivot": [
    0.0375,
    0.5576
   ],
   "joints": {
    "back": [
     0.0375,
     0.5576
    ],
    "nose": [
     0.8708,
     0.5091
    ],
    "specs": [
     0.5625,
     0.3273
    ],
    "mouth": [
     0.7375,
     0.8
    ],
    "hat": [
     0.3375,
     0.0364
    ]
   },
   "group": "delve2",
   "load": "common",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "delve_head_dizzy": {
   "file": "sprites/delve_head_dizzy.png",
   "w": 120.0,
   "h": 82.5,
   "pivot": [
    0.0375,
    0.5576
   ],
   "joints": {
    "back": [
     0.0375,
     0.5576
    ],
    "nose": [
     0.8708,
     0.5091
    ],
    "specs": [
     0.5625,
     0.3273
    ],
    "mouth": [
     0.7375,
     0.8
    ],
    "hat": [
     0.3375,
     0.0364
    ]
   },
   "group": "delve",
   "load": "common",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "delve_head_giggle": {
   "file": "sprites/delve_head_giggle.png",
   "w": 120.0,
   "h": 82.5,
   "pivot": [
    0.0375,
    0.5576
   ],
   "joints": {
    "back": [
     0.0375,
     0.5576
    ],
    "nose": [
     0.8708,
     0.5091
    ],
    "specs": [
     0.5625,
     0.3273
    ],
    "mouth": [
     0.7375,
     0.8
    ],
    "hat": [
     0.3375,
     0.0364
    ]
   },
   "group": "delve2",
   "load": "common",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "delve_head_gulp": {
   "file": "sprites/delve_head_gulp.png",
   "w": 119.5,
   "h": 90.0,
   "pivot": [
    0.0377,
    0.5111
   ],
   "joints": {
    "back": [
     0.0377,
     0.5111
    ],
    "nose": [
     0.8745,
     0.4667
    ],
    "specs": [
     0.5649,
     0.3
    ],
    "mouth": [
     0.7406,
     0.7333
    ],
    "hat": [
     0.3389,
     0.0333
    ]
   },
   "first": true,
   "group": "delve",
   "load": "first",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "delve_head_happy": {
   "file": "sprites/delve_head_happy.png",
   "w": 120.0,
   "h": 82.5,
   "pivot": [
    0.0375,
    0.5576
   ],
   "joints": {
    "back": [
     0.0375,
     0.5576
    ],
    "nose": [
     0.8708,
     0.5091
    ],
    "specs": [
     0.5625,
     0.3273
    ],
    "mouth": [
     0.7375,
     0.8
    ],
    "hat": [
     0.3375,
     0.0364
    ]
   },
   "group": "delve",
   "load": "common",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "delve_head_pop": {
   "file": "sprites/delve_head_pop.png",
   "w": 120.0,
   "h": 82.5,
   "pivot": [
    0.0375,
    0.5576
   ],
   "joints": {
    "back": [
     0.0375,
     0.5576
    ],
    "nose": [
     0.8708,
     0.5091
    ],
    "specs": [
     0.5625,
     0.3273
    ],
    "mouth": [
     0.7375,
     0.8
    ],
    "hat": [
     0.3375,
     0.0364
    ]
   },
   "group": "delve",
   "load": "common",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "delve_head_sad": {
   "file": "sprites/delve_head_sad.png",
   "w": 120.0,
   "h": 82.5,
   "pivot": [
    0.0375,
    0.5576
   ],
   "joints": {
    "back": [
     0.0375,
     0.5576
    ],
    "nose": [
     0.8708,
     0.5091
    ],
    "specs": [
     0.5625,
     0.3273
    ],
    "mouth": [
     0.7375,
     0.8
    ],
    "hat": [
     0.3375,
     0.0364
    ]
   },
   "group": "delve2",
   "load": "common",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "delve_head_sniff": {
   "file": "sprites/delve_head_sniff.png",
   "w": 120.0,
   "h": 82.5,
   "pivot": [
    0.0375,
    0.5576
   ],
   "joints": {
    "back": [
     0.0375,
     0.5576
    ],
    "nose": [
     0.8708,
     0.5091
    ],
    "specs": [
     0.5625,
     0.3273
    ],
    "mouth": [
     0.7375,
     0.8
    ],
    "hat": [
     0.3375,
     0.0364
    ]
   },
   "group": "delve",
   "load": "common",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "delve_head_sulk": {
   "file": "sprites/delve_head_sulk.png",
   "w": 120.0,
   "h": 82.5,
   "pivot": [
    0.0375,
    0.5576
   ],
   "joints": {
    "back": [
     0.0375,
     0.5576
    ],
    "nose": [
     0.8708,
     0.5091
    ],
    "specs": [
     0.5625,
     0.3273
    ],
    "mouth": [
     0.7375,
     0.8
    ],
    "hat": [
     0.3375,
     0.0364
    ]
   },
   "group": "delve",
   "load": "common",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "delve_head_wave": {
   "file": "sprites/delve_head_wave.png",
   "w": 120.0,
   "h": 82.5,
   "pivot": [
    0.0375,
    0.5576
   ],
   "joints": {
    "back": [
     0.0375,
     0.5576
    ],
    "nose": [
     0.8708,
     0.5091
    ],
    "specs": [
     0.5625,
     0.3273
    ],
    "mouth": [
     0.7375,
     0.8
    ],
    "hat": [
     0.3375,
     0.0364
    ]
   },
   "group": "delve2",
   "load": "common",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "delve_hips": {
   "file": "sprites/delve_hips.png",
   "w": 82.0,
   "h": 76.0,
   "pivot": [
    0.7683,
    0.5
   ],
   "joints": {
    "back": [
     0.2317,
     0.5
    ],
    "tail": [
     0.0732,
     0.4079
    ],
    "foot_near": [
     0.3902,
     0.8684
    ],
    "foot_far": [
     0.4878,
     0.8026
    ]
   },
   "first": true,
   "seg_len": 44.0,
   "group": "delve",
   "load": "first",
   "note": "hip segment, pivot = front joint on the belly \"back\"; tail + feet joints"
  },
  "delve_paw": {
   "file": "sprites/delve_paw.png",
   "w": 40.5,
   "h": 59.0,
   "pivot": [
    0.4568,
    0.1017
   ],
   "group": "delve",
   "load": "common",
   "note": "front paw (spade hand), pivot = wrist; hangs down at angle 0; rotate to dig"
  },
  "delve_paw_far": {
   "file": "sprites/delve_paw_far.png",
   "w": 40.5,
   "h": 59.0,
   "pivot": [
    0.4568,
    0.1017
   ],
   "group": "delve",
   "load": "common",
   "note": "front paw (spade hand), pivot = wrist; hangs down at angle 0; rotate to dig (far side, darker)"
  },
  "delve_paw_scoop": {
   "file": "sprites/delve_paw_scoop.png",
   "w": 46.0,
   "h": 53.5,
   "pivot": [
    0.3804,
    0.1121
   ],
   "swim": "swim cycle, 6 frames at 12 fps (near paw; far paw = the same sequence 3 frames later, drawn under the body): 1 paw_spread -40 deg, 2 paw_spread 0, 3 paw_scoop 35, 4 paw_scoop 70, 5 paw 40, 6 paw -5; hind feet swing +-20 deg in counter-phase; chain bends +-4 deg per segment with the stroke",
   "group": "delve2",
   "load": "common",
   "note": "front paw cupped (the stroke that pulls soil back). swim cycle, 6 frames at 12 fps (near paw; far paw = the same sequence 3 frames later, drawn under the body): 1 paw_spread -40 deg, 2 paw_spread 0, 3 paw_scoop 35, 4 paw_scoop 70, 5 paw 40, 6 paw -5; hind feet swing +-20 deg in counter-phase; chain bends +-4 deg per segment with the stroke"
  },
  "delve_paw_spread": {
   "file": "sprites/delve_paw_spread.png",
   "w": 51.5,
   "h": 62.0,
   "pivot": [
    0.4272,
    0.0968
   ],
   "group": "delve",
   "load": "common",
   "note": "front paw (spade hand), pivot = wrist; hangs down at angle 0; rotate to dig"
  },
  "delve_paw_spread_far": {
   "file": "sprites/delve_paw_spread_far.png",
   "w": 51.5,
   "h": 62.0,
   "pivot": [
    0.4272,
    0.0968
   ],
   "group": "delve",
   "load": "common",
   "note": "front paw (spade hand), pivot = wrist; hangs down at angle 0; rotate to dig (far side, darker)"
  },
  "delve_paw_wave": {
   "file": "sprites/delve_paw_wave.png",
   "w": 52.5,
   "h": 62.0,
   "pivot": [
    0.4476,
    0.9032
   ],
   "group": "delve2",
   "load": "common",
   "note": "front paw raised open, fingers up (wave: rock +-15 deg at 4 Hz about the wrist pivot)"
  },
  "delve_pose_armchair": {
   "file": "sprites/delve_pose_armchair.png",
   "w": 147.0,
   "h": 226.5,
   "pivot": [
    0.449,
    0.9779
   ],
   "group": "poses",
   "load": "common",
   "note": "Delve in his armchair with a cup of tea (hub home; replaces armchair while he sits)"
  },
  "delve_pose_breach": {
   "file": "sprites/delve_pose_breach.png",
   "w": 157.0,
   "h": 311.0,
   "pivot": [
    0.4936,
    0.8369
   ],
   "group": "poses",
   "load": "common",
   "note": "breach stretch, whole body (cards; in play it is the chain)"
  },
  "delve_pose_cheer": {
   "file": "sprites/delve_pose_cheer.png",
   "w": 138.0,
   "h": 314.5,
   "pivot": [
    0.6377,
    0.8419
   ],
   "group": "poses",
   "load": "common",
   "note": "Delve cheering (both paws up) (whole body, one sprite: cards, hub, result card; pivot = between the feet)"
  },
  "delve_pose_giggle": {
   "file": "sprites/delve_pose_giggle.png",
   "w": 123.5,
   "h": 314.5,
   "pivot": [
    0.7126,
    0.8419
   ],
   "group": "poses",
   "load": "common",
   "note": "Delve giggling after a tickle spill (whole body, one sprite: cards, hub, result card; pivot = between the feet)"
  },
  "delve_pose_sad": {
   "file": "sprites/delve_pose_sad.png",
   "w": 104.0,
   "h": 296.5,
   "pivot": [
    0.6779,
    0.8333
   ],
   "group": "poses",
   "load": "common",
   "note": "Delve sad (result card on a fail; never hurt) (whole body, one sprite: cards, hub, result card; pivot = between the feet)"
  },
  "delve_pose_wave": {
   "file": "sprites/delve_pose_wave.png",
   "w": 112.5,
   "h": 305.0,
   "pivot": [
    0.6978,
    0.8365
   ],
   "group": "poses",
   "load": "common",
   "note": "Delve standing, waving (whole body, one sprite: cards, hub, result card; pivot = between the feet)"
  },
  "delve_shoulders": {
   "file": "sprites/delve_shoulders.png",
   "w": 94.0,
   "h": 86.0,
   "pivot": [
    0.766,
    0.5
   ],
   "joints": {
    "back": [
     0.2553,
     0.5
    ],
    "paw_near": [
     0.6277,
     0.8372
    ],
    "paw_far": [
     0.734,
     0.7674
    ]
   },
   "first": true,
   "seg_len": 48.0,
   "group": "delve",
   "load": "first",
   "note": "shoulder segment, pivot = front joint (goes on the head \"back\"); paws hang from paw_near / paw_far"
  },
  "delve_specs": {
   "file": "sprites/delve_specs.png",
   "w": 49.5,
   "h": 30.0,
   "pivot": [
    0.6061,
    0.4667
   ],
   "first": true,
   "group": "delve",
   "load": "first",
   "note": "brass spectacles; pivot = bridge; sit on head joint \"specs\"; \"slip\" = slid down the nose (offset +14,+10 px), \"askew\" = after a pop; flying = rotate freely"
  },
  "delve_specs_askew": {
   "file": "sprites/delve_specs_askew.png",
   "w": 49.0,
   "h": 36.0,
   "pivot": [
    0.6122,
    0.5278
   ],
   "group": "delve",
   "load": "common",
   "note": "brass spectacles; pivot = bridge; sit on head joint \"specs\"; \"slip\" = slid down the nose (offset +14,+10 px), \"askew\" = after a pop; flying = rotate freely"
  },
  "delve_specs_slip": {
   "file": "sprites/delve_specs_slip.png",
   "w": 49.5,
   "h": 29.5,
   "pivot": [
    0.6061,
    0.4915
   ],
   "group": "delve",
   "load": "common",
   "note": "brass spectacles; pivot = bridge; sit on head joint \"specs\"; \"slip\" = slid down the nose (offset +14,+10 px), \"askew\" = after a pop; flying = rotate freely"
  },
  "delve_tail": {
   "file": "sprites/delve_tail.png",
   "w": 38.5,
   "h": 13.5,
   "pivot": [
    0.9091,
    0.5926
   ],
   "group": "delve",
   "load": "common",
   "note": "stub tail, pivot = root (right end); attach at hips \"tail\""
  },
  "drag_glyph": {
   "file": "sprites/drag_glyph.png",
   "w": 51.0,
   "h": 49.5,
   "pivot": [
    0.5098,
    0.4646
   ],
   "first": true,
   "group": "ui",
   "load": "first",
   "note": "first-10-s hint: a pink paw + arrow (drag to dig)"
  },
  "far_1": {
   "file": "sprites/far_1.png",
   "w": 1024.0,
   "h": 320.0,
   "pivot": [
    0.0,
    0.9688
   ],
   "group": "scene",
   "load": "common",
   "note": "far backdrop chapter 1 (2048x640 PNG = 1024x320 at 1280; ground line = pivot; parallax ~0.4; tile horizontally)"
  },
  "far_2": {
   "file": "sprites/far_2.png",
   "w": 1024.0,
   "h": 320.0,
   "pivot": [
    0.0,
    0.9688
   ],
   "group": "scene",
   "load": "ch2",
   "note": "far backdrop chapter 2 (2048x640 PNG = 1024x320 at 1280; ground line = pivot; parallax ~0.4; tile horizontally)"
  },
  "far_3": {
   "file": "sprites/far_3.png",
   "w": 1024.0,
   "h": 320.0,
   "pivot": [
    0.0,
    0.9688
   ],
   "group": "scene",
   "load": "ch3",
   "note": "far backdrop chapter 3 (2048x640 PNG = 1024x320 at 1280; ground line = pivot; parallax ~0.4; tile horizontally)"
  },
  "flowerpot": {
   "file": "sprites/flowerpot.png",
   "w": 38.0,
   "h": 34.0,
   "pivot": [
    0.5,
    1.0253
   ],
   "group": "ch2",
   "load": "ch2",
   "note": "terracotta flowerpot (knocked flying)"
  },
  "flowerpot_old": {
   "file": "sprites/flowerpot_old.png",
   "w": 38.0,
   "h": 37.0,
   "pivot": [
    0.4737,
    0.4595
   ],
   "group": "ch2",
   "load": "ch2",
   "note": "old flowerpot buried on its side (2-2 spectacles inside)"
  },
  "food_bun": {
   "file": "sprites/food_bun.png",
   "w": 45.0,
   "h": 28.5,
   "pivot": [
    0.5,
    0.5877
   ],
   "group": "food",
   "load": "common",
   "note": "gulp item (iced bun)"
  },
  "food_cake_slice": {
   "file": "sprites/food_cake_slice.png",
   "w": 46.0,
   "h": 29.0,
   "pivot": [
    0.5,
    0.4828
   ],
   "group": "food",
   "load": "common",
   "note": "gulp item"
  },
  "food_carrots": {
   "file": "sprites/food_carrots.png",
   "w": 30.0,
   "h": 41.5,
   "pivot": [
    0.5,
    0.312
   ],
   "group": "ch2",
   "load": "ch2",
   "note": "food: carrot bunch"
  },
  "food_crumbs": {
   "file": "sprites/food_crumbs.png",
   "w": 28.5,
   "h": 11.5,
   "pivot": [
    0.5088,
    0.9739
   ],
   "group": "ch1",
   "load": "ch1",
   "note": "gulped: crumbs left where a food item was (fade 0.4 s)"
  },
  "food_cupcake": {
   "file": "sprites/food_cupcake.png",
   "w": 40.0,
   "h": 43.5,
   "pivot": [
    0.5,
    0.5471
   ],
   "first": true,
   "group": "food",
   "load": "first",
   "note": "gulp item"
  },
  "food_icecream": {
   "file": "sprites/food_icecream.png",
   "w": 34.0,
   "h": 45.5,
   "pivot": [
    0.5,
    0.9903
   ],
   "group": "ch1",
   "load": "ch1",
   "note": "food: ice-cream tub with three scoops + a wafer"
  },
  "food_jam_jar": {
   "file": "sprites/food_jam_jar.png",
   "w": 31.0,
   "h": 36.0,
   "pivot": [
    0.5,
    1.0222
   ],
   "group": "ch2",
   "load": "ch2",
   "note": "food: jam jar (label = a fruit drawing, no text)"
  },
  "food_jelly": {
   "file": "sprites/food_jelly.png",
   "w": 48.0,
   "h": 41.0,
   "pivot": [
    0.5,
    0.5512
   ],
   "group": "food",
   "load": "common",
   "note": "gulp item (wobbles: scaleY spring)"
  },
  "food_lemon_tart": {
   "file": "sprites/food_lemon_tart.png",
   "w": 46.0,
   "h": 21.5,
   "pivot": [
    0.5,
    0.9767
   ],
   "group": "ch1",
   "load": "ch1",
   "note": "food: lemon tart"
  },
  "food_marrow": {
   "file": "sprites/food_marrow.png",
   "w": 68.5,
   "h": 25.0,
   "pivot": [
    0.4818,
    0.948
   ],
   "group": "ch2",
   "load": "ch2",
   "note": "food: marrow (big gulp)"
  },
  "food_pie": {
   "file": "sprites/food_pie.png",
   "w": 50.0,
   "h": 24.0,
   "pivot": [
    0.5,
    0.9729
   ],
   "group": "ch1",
   "load": "ch1",
   "note": "food: pie (lattice cuts)"
  },
  "food_sandwich": {
   "file": "sprites/food_sandwich.png",
   "w": 46.0,
   "h": 25.0,
   "pivot": [
    0.5,
    0.584
   ],
   "first": true,
   "group": "food",
   "load": "first",
   "note": "gulp item (cucumber + ham triangle)"
  },
  "food_scone": {
   "file": "sprites/food_scone.png",
   "w": 41.5,
   "h": 29.0,
   "pivot": [
    0.494,
    0.5
   ],
   "group": "food",
   "load": "common",
   "note": "gulp item"
  },
  "food_spill": {
   "file": "sprites/food_spill.png",
   "w": 37.0,
   "h": 14.5,
   "pivot": [
    0.5135,
    0.8552
   ],
   "group": "ch1",
   "load": "ch1",
   "note": "spilled-on-lawn splat after a tickle spill (blink 3x then gulp-able for 2 s)"
  },
  "food_strawberry": {
   "file": "sprites/food_strawberry.png",
   "w": 26.0,
   "h": 31.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "food",
   "load": "common",
   "note": "gulp item"
  },
  "food_strawberry_bowl": {
   "file": "sprites/food_strawberry_bowl.png",
   "w": 48.0,
   "h": 38.0,
   "pivot": [
    0.5,
    0.9605
   ],
   "group": "ch1",
   "load": "ch1",
   "note": "food: bowl of strawberries (gulp-able)"
  },
  "fountain": {
   "file": "sprites/fountain.png",
   "w": 152.0,
   "h": 134.5,
   "pivot": [
    0.5,
    0.9929
   ],
   "group": "props",
   "load": "ch3",
   "note": "palace-terrace fountain (bounces the mole up a little)"
  },
  "fountain_jet": {
   "file": "sprites/fountain_jet.png",
   "w": 30.0,
   "h": 101.0,
   "pivot": [
    0.5,
    1.0
   ],
   "group": "props",
   "load": "ch3",
   "note": "fountain jet (scaleY pulse)"
  },
  "frame_gold_wire": {
   "file": "sprites/frame_gold_wire.png",
   "w": 50.0,
   "h": 22.0,
   "pivot": [
    0.6,
    0.4545
   ],
   "group": "wear",
   "load": "common",
   "note": "wardrobe frame: Gold Wire (thin); pivot = bridge, put on head joint \"specs\" (replaces delve_specs)"
  },
  "frame_golden": {
   "file": "sprites/frame_golden.png",
   "w": 50.5,
   "h": 32.0,
   "pivot": [
    0.5941,
    0.4688
   ],
   "group": "wear",
   "load": "common",
   "note": "wardrobe frame: Golden Frames (all 24 found); pivot = bridge, put on head joint \"specs\" (replaces delve_specs)"
  },
  "frame_half_moons": {
   "file": "sprites/frame_half_moons.png",
   "w": 50.0,
   "h": 21.5,
   "pivot": [
    0.6,
    0.3953
   ],
   "group": "wear",
   "load": "common",
   "note": "wardrobe frame: Half-Moons; pivot = bridge, put on head joint \"specs\" (replaces delve_specs)"
  },
  "frame_pince_nez": {
   "file": "sprites/frame_pince_nez.png",
   "w": 54.0,
   "h": 32.0,
   "pivot": [
    0.3889,
    0.2812
   ],
   "group": "wear",
   "load": "common",
   "note": "wardrobe frame: Pince-Nez (no arms, clip bridge, chain); pivot = bridge, put on head joint \"specs\" (replaces delve_specs)"
  },
  "frame_round_brass": {
   "file": "sprites/frame_round_brass.png",
   "w": 49.0,
   "h": 29.0,
   "pivot": [
    0.6122,
    0.4655
   ],
   "group": "wear",
   "load": "common",
   "note": "wardrobe frame: Round Brass (start; same drawing as delve_specs); pivot = bridge, put on head joint \"specs\" (replaces delve_specs)"
  },
  "frame_star": {
   "file": "sprites/frame_star.png",
   "w": 50.0,
   "h": 29.5,
   "pivot": [
    0.6,
    0.5085
   ],
   "group": "wear",
   "load": "common",
   "note": "wardrobe frame: Star Frames; pivot = bridge, put on head joint \"specs\" (replaces delve_specs)"
  },
  "frame_tortoiseshell": {
   "file": "sprites/frame_tortoiseshell.png",
   "w": 49.5,
   "h": 22.5,
   "pivot": [
    0.6061,
    0.4667
   ],
   "group": "wear",
   "load": "common",
   "note": "wardrobe frame: Tortoiseshell (thick loam rims with brass-tint flecks); pivot = bridge, put on head joint \"specs\" (replaces delve_specs)"
  },
  "garden_bench": {
   "file": "sprites/garden_bench.png",
   "w": 102.0,
   "h": 49.0,
   "pivot": [
    0.5,
    0.9694
   ],
   "group": "ch3",
   "load": "ch3",
   "note": "garden bench (terrace dressing)"
  },
  "garden_map": {
   "file": "sprites/garden_map.png",
   "w": 360.0,
   "h": 220.0,
   "pivot": [
    0.5,
    0.5
   ],
   "joints": {
    "p1_1": [
     0.125,
     0.2045
    ],
    "p1_2": [
     0.2083,
     0.2364
    ],
    "p1_3": [
     0.2917,
     0.2682
    ],
    "p1_4": [
     0.1528,
     0.4773
    ],
    "p1_5": [
     0.2361,
     0.5091
    ],
    "p1_6": [
     0.3194,
     0.5409
    ],
    "p1_7": [
     0.125,
     0.75
    ],
    "p1_8": [
     0.2083,
     0.7818
    ],
    "p2_1": [
     0.4306,
     0.2045
    ],
    "p2_2": [
     0.5139,
     0.2364
    ],
    "p2_3": [
     0.5972,
     0.2682
    ],
    "p2_4": [
     0.4583,
     0.4773
    ],
    "p2_5": [
     0.5417,
     0.5091
    ],
    "p2_6": [
     0.625,
     0.5409
    ],
    "p2_7": [
     0.4306,
     0.75
    ],
    "p2_8": [
     0.5139,
     0.7818
    ],
    "p3_1": [
     0.7361,
     0.2045
    ],
    "p3_2": [
     0.8194,
     0.2364
    ],
    "p3_3": [
     0.9028,
     0.2682
    ],
    "p3_4": [
     0.7639,
     0.4773
    ],
    "p3_5": [
     0.8472,
     0.5091
    ],
    "p3_6": [
     0.9306,
     0.5409
    ],
    "p3_7": [
     0.7361,
     0.75
    ],
    "p3_8": [
     0.8194,
     0.7818
    ]
   },
   "group": "hub",
   "load": "hub",
   "note": "the garden map (story screen + hub wall): 3 gardens left to right; joints p<chapter>_<party> = pin spots for map_pin_* (dotted path between them)"
  },
  "glass_flash": {
   "file": "sprites/glass_flash.png",
   "w": 32.0,
   "h": 32.0,
   "pivot": [
    0.5156,
    0.5156
   ],
   "group": "ch2",
   "load": "ch2",
   "note": "glass bump flash on a pane (0.15 s): the glass never breaks"
  },
  "glint": {
   "file": "sprites/glint.png",
   "w": 24.0,
   "h": 24.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "ch1",
   "load": "ch1",
   "note": "hazard/spectacle glint: a cut-paper cross-star in cream, scale 0 -> 1 -> 0 over 0.3 s every 1.5 s (rakes, holly, buried spectacles)"
  },
  "gnome": {
   "file": "sprites/gnome.png",
   "w": 35.0,
   "h": 75.0,
   "pivot": [
    0.5,
    0.9825
   ],
   "group": "props",
   "load": "common",
   "note": "garden gnome (knocked flying, spins)"
  },
  "gooseberry_bush": {
   "file": "sprites/gooseberry_bush.png",
   "w": 100.0,
   "h": 64.0,
   "pivot": [
    0.5,
    0.9658
   ],
   "group": "ch2",
   "load": "ch2",
   "note": "gooseberry bush (hazard, ch 2: thorns read as pale spikes + dark base line, like the holly)"
  },
  "gramophone": {
   "file": "sprites/gramophone.png",
   "w": 107.5,
   "h": 110.0,
   "pivot": [
    0.3814,
    0.97
   ],
   "group": "hub",
   "load": "hub",
   "note": "gramophone (Settings)"
  },
  "gravel_bed": {
   "file": "sprites/gravel_bed.png",
   "w": 150.0,
   "h": 35.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "ch3",
   "load": "ch3",
   "note": "underground gravel bed (slow zone, 3-1)"
  },
  "gravel_path": {
   "file": "sprites/gravel_path.png",
   "w": 256.0,
   "h": 20.0,
   "pivot": [
    0.0,
    0.0
   ],
   "group": "scene",
   "load": "ch3",
   "note": "gravel path strip on the lawn line (tileable horizontally; slows the mole)"
  },
  "greenhouse": {
   "file": "sprites/greenhouse.png",
   "w": 257.0,
   "h": 179.5,
   "pivot": [
    0.5,
    1.0011
   ],
   "group": "props",
   "load": "ch2",
   "note": "palace greenhouse (glass shatters into pane_shard_* when breached; harmless)"
  },
  "greenhouse_front": {
   "file": "sprites/greenhouse_front.png",
   "w": 210.0,
   "h": 161.5,
   "pivot": [
    0.5,
    0.992
   ],
   "group": "ch2",
   "load": "ch2",
   "note": "kitchen-garden greenhouse (DESIGN: the glass NEVER breaks; a bump only flashes glass_flash; pane_shard_* stay unused)"
  },
  "guest_gent_applaud": {
   "file": "sprites/guest_gent_applaud.png",
   "w": 52.5,
   "h": 104.0,
   "pivot": [
    0.3714,
    0.9712
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: applaud"
  },
  "guest_gent_cheer": {
   "file": "sprites/guest_gent_cheer.png",
   "w": 54.0,
   "h": 104.0,
   "pivot": [
    0.4815,
    0.9712
   ],
   "group": "cast",
   "load": "common",
   "note": "guest (never hurt: they duck, cheer, gasp; hats/parasols fly)"
  },
  "guest_gent_clutch": {
   "file": "sprites/guest_gent_clutch.png",
   "w": 50.0,
   "h": 104.0,
   "pivot": [
    0.39,
    0.9712
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: clutch"
  },
  "guest_gent_duck": {
   "file": "sprites/guest_gent_duck.png",
   "w": 57.0,
   "h": 90.0,
   "pivot": [
    0.2982,
    0.9667
   ],
   "group": "cast",
   "load": "common",
   "note": "guest (never hurt: they duck, cheer, gasp; hats/parasols fly)"
  },
  "guest_gent_hop": {
   "file": "sprites/guest_gent_hop.png",
   "w": 67.0,
   "h": 98.0,
   "pivot": [
    0.5448,
    1.1939
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: hop"
  },
  "guest_gent_poke": {
   "file": "sprites/guest_gent_poke.png",
   "w": 73.5,
   "h": 104.5,
   "pivot": [
    0.381,
    0.9713
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: poke"
  },
  "guest_gent_shock": {
   "file": "sprites/guest_gent_shock.png",
   "w": 66.0,
   "h": 104.0,
   "pivot": [
    0.5,
    0.9712
   ],
   "group": "cast",
   "load": "common",
   "note": "guest (never hurt: they duck, cheer, gasp; hats/parasols fly)"
  },
  "guest_gent_stand": {
   "file": "sprites/guest_gent_stand.png",
   "w": 59.0,
   "h": 104.0,
   "pivot": [
    0.5,
    0.9712
   ],
   "first": true,
   "group": "cast",
   "load": "first",
   "note": "guest (never hurt: they duck, cheer, gasp; hats/parasols fly)"
  },
  "guest_girl_applaud": {
   "file": "sprites/guest_girl_applaud.png",
   "w": 57.5,
   "h": 101.0,
   "pivot": [
    0.4261,
    0.9802
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: applaud; first set:  (new guest type)"
  },
  "guest_girl_cheer": {
   "file": "sprites/guest_girl_cheer.png",
   "w": 54.0,
   "h": 101.0,
   "pivot": [
    0.4815,
    0.9802
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: cheer; first set:  (new guest type)"
  },
  "guest_girl_clutch": {
   "file": "sprites/guest_girl_clutch.png",
   "w": 55.0,
   "h": 101.0,
   "pivot": [
    0.4455,
    0.9802
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: clutch; first set:  (new guest type)"
  },
  "guest_girl_duck": {
   "file": "sprites/guest_girl_duck.png",
   "w": 70.0,
   "h": 84.5,
   "pivot": [
    0.4,
    0.9763
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: duck; first set:  (new guest type)"
  },
  "guest_girl_hop": {
   "file": "sprites/guest_girl_hop.png",
   "w": 67.0,
   "h": 93.5,
   "pivot": [
    0.5448,
    1.2193
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: hop; first set:  (new guest type)"
  },
  "guest_girl_poke": {
   "file": "sprites/guest_girl_poke.png",
   "w": 70.5,
   "h": 100.0,
   "pivot": [
    0.3972,
    0.98
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: poke; first set:  (new guest type)"
  },
  "guest_girl_shock": {
   "file": "sprites/guest_girl_shock.png",
   "w": 66.0,
   "h": 101.0,
   "pivot": [
    0.5,
    0.9802
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: shock; first set:  (new guest type)"
  },
  "guest_girl_stand": {
   "file": "sprites/guest_girl_stand.png",
   "w": 59.0,
   "h": 101.0,
   "pivot": [
    0.5,
    0.9802
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: stand; first set:  (new guest type)"
  },
  "guest_granny_applaud": {
   "file": "sprites/guest_granny_applaud.png",
   "w": 81.5,
   "h": 122.5,
   "pivot": [
    0.3558,
    0.9837
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: applaud"
  },
  "guest_granny_cheer": {
   "file": "sprites/guest_granny_cheer.png",
   "w": 58.5,
   "h": 119.0,
   "pivot": [
    0.4957,
    0.9832
   ],
   "group": "cast",
   "load": "common",
   "note": "guest (never hurt: they duck, cheer, gasp; hats/parasols fly)"
  },
  "guest_granny_clutch": {
   "file": "sprites/guest_granny_clutch.png",
   "w": 81.5,
   "h": 119.0,
   "pivot": [
    0.3558,
    0.9832
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: clutch"
  },
  "guest_granny_duck": {
   "file": "sprites/guest_granny_duck.png",
   "w": 72.5,
   "h": 80.0,
   "pivot": [
    0.4483,
    0.9688
   ],
   "group": "cast",
   "load": "common",
   "note": "guest (never hurt: they duck, cheer, gasp; hats/parasols fly)"
  },
  "guest_granny_hop": {
   "file": "sprites/guest_granny_hop.png",
   "w": 91.0,
   "h": 131.5,
   "pivot": [
    0.4231,
    1.1559
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: hop"
  },
  "guest_granny_poke": {
   "file": "sprites/guest_granny_poke.png",
   "w": 85.0,
   "h": 105.5,
   "pivot": [
    0.3824,
    0.981
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: poke"
  },
  "guest_granny_shock": {
   "file": "sprites/guest_granny_shock.png",
   "w": 69.0,
   "h": 119.0,
   "pivot": [
    0.5,
    0.9832
   ],
   "group": "cast",
   "load": "common",
   "note": "guest (never hurt: they duck, cheer, gasp; hats/parasols fly)"
  },
  "guest_granny_stand": {
   "file": "sprites/guest_granny_stand.png",
   "w": 73.5,
   "h": 104.5,
   "pivot": [
    0.4218,
    0.9809
   ],
   "first": true,
   "group": "cast",
   "load": "first",
   "note": "guest (never hurt: they duck, cheer, gasp; hats/parasols fly)"
  },
  "guest_kid_applaud": {
   "file": "sprites/guest_kid_applaud.png",
   "w": 50.5,
   "h": 99.0,
   "pivot": [
    0.3465,
    0.9697
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: applaud"
  },
  "guest_kid_cheer": {
   "file": "sprites/guest_kid_cheer.png",
   "w": 54.0,
   "h": 98.0,
   "pivot": [
    0.4815,
    0.9694
   ],
   "group": "cast",
   "load": "common",
   "note": "guest (never hurt: they duck, cheer, gasp; hats/parasols fly)"
  },
  "guest_kid_clutch": {
   "file": "sprites/guest_kid_clutch.png",
   "w": 48.0,
   "h": 99.0,
   "pivot": [
    0.3646,
    0.9697
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: clutch"
  },
  "guest_kid_duck": {
   "file": "sprites/guest_kid_duck.png",
   "w": 49.5,
   "h": 72.0,
   "pivot": [
    0.3434,
    0.9583
   ],
   "group": "cast",
   "load": "common",
   "note": "guest (never hurt: they duck, cheer, gasp; hats/parasols fly)"
  },
  "guest_kid_hop": {
   "file": "sprites/guest_kid_hop.png",
   "w": 67.0,
   "h": 92.0,
   "pivot": [
    0.5448,
    1.2065
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: hop"
  },
  "guest_kid_poke": {
   "file": "sprites/guest_kid_poke.png",
   "w": 70.5,
   "h": 98.5,
   "pivot": [
    0.3972,
    0.9695
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: poke"
  },
  "guest_kid_shock": {
   "file": "sprites/guest_kid_shock.png",
   "w": 65.0,
   "h": 98.0,
   "pivot": [
    0.5,
    0.9694
   ],
   "group": "cast",
   "load": "common",
   "note": "guest (never hurt: they duck, cheer, gasp; hats/parasols fly)"
  },
  "guest_kid_stand": {
   "file": "sprites/guest_kid_stand.png",
   "w": 59.0,
   "h": 98.0,
   "pivot": [
    0.5,
    0.9694
   ],
   "first": true,
   "group": "cast",
   "load": "first",
   "note": "guest (never hurt: they duck, cheer, gasp; hats/parasols fly)"
  },
  "guest_lady_applaud": {
   "file": "sprites/guest_lady_applaud.png",
   "w": 60.0,
   "h": 107.0,
   "pivot": [
    0.4417,
    0.9813
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: applaud"
  },
  "guest_lady_cheer": {
   "file": "sprites/guest_lady_cheer.png",
   "w": 56.5,
   "h": 107.0,
   "pivot": [
    0.4779,
    0.9813
   ],
   "group": "cast",
   "load": "common",
   "note": "guest (never hurt: they duck, cheer, gasp; hats/parasols fly)"
  },
  "guest_lady_clutch": {
   "file": "sprites/guest_lady_clutch.png",
   "w": 59.5,
   "h": 107.0,
   "pivot": [
    0.4454,
    0.9813
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: clutch"
  },
  "guest_lady_duck": {
   "file": "sprites/guest_lady_duck.png",
   "w": 73.0,
   "h": 78.5,
   "pivot": [
    0.4178,
    0.9745
   ],
   "group": "cast",
   "load": "common",
   "note": "guest (never hurt: they duck, cheer, gasp; hats/parasols fly)"
  },
  "guest_lady_hop": {
   "file": "sprites/guest_lady_hop.png",
   "w": 68.5,
   "h": 99.5,
   "pivot": [
    0.5474,
    1.206
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: hop"
  },
  "guest_lady_poke": {
   "file": "sprites/guest_lady_poke.png",
   "w": 79.5,
   "h": 105.5,
   "pivot": [
    0.3836,
    0.981
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: poke"
  },
  "guest_lady_shock": {
   "file": "sprites/guest_lady_shock.png",
   "w": 67.0,
   "h": 107.0,
   "pivot": [
    0.5,
    0.9813
   ],
   "group": "cast",
   "load": "common",
   "note": "guest (never hurt: they duck, cheer, gasp; hats/parasols fly)"
  },
  "guest_lady_stand": {
   "file": "sprites/guest_lady_stand.png",
   "w": 62.5,
   "h": 107.0,
   "pivot": [
    0.488,
    0.9813
   ],
   "first": true,
   "group": "cast",
   "load": "first",
   "note": "guest (never hurt: they duck, cheer, gasp; hats/parasols fly)"
  },
  "guest_uncle_applaud": {
   "file": "sprites/guest_uncle_applaud.png",
   "w": 61.0,
   "h": 102.5,
   "pivot": [
    0.4016,
    0.9707
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: applaud; first set:  (new guest type)"
  },
  "guest_uncle_cheer": {
   "file": "sprites/guest_uncle_cheer.png",
   "w": 61.5,
   "h": 102.5,
   "pivot": [
    0.4878,
    0.9707
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: cheer; first set:  (new guest type)"
  },
  "guest_uncle_clutch": {
   "file": "sprites/guest_uncle_clutch.png",
   "w": 58.5,
   "h": 102.5,
   "pivot": [
    0.4188,
    0.9707
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: clutch; first set:  (new guest type)"
  },
  "guest_uncle_duck": {
   "file": "sprites/guest_uncle_duck.png",
   "w": 68.0,
   "h": 88.5,
   "pivot": [
    0.3456,
    0.9661
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: duck; first set:  (new guest type)"
  },
  "guest_uncle_hop": {
   "file": "sprites/guest_uncle_hop.png",
   "w": 74.5,
   "h": 95.5,
   "pivot": [
    0.5369,
    1.199
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: hop; first set:  (new guest type)"
  },
  "guest_uncle_poke": {
   "file": "sprites/guest_uncle_poke.png",
   "w": 81.5,
   "h": 102.0,
   "pivot": [
    0.3988,
    0.9706
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: poke; first set:  (new guest type)"
  },
  "guest_uncle_shock": {
   "file": "sprites/guest_uncle_shock.png",
   "w": 73.0,
   "h": 102.5,
   "pivot": [
    0.5,
    0.9707
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: shock; first set:  (new guest type)"
  },
  "guest_uncle_stand": {
   "file": "sprites/guest_uncle_stand.png",
   "w": 67.0,
   "h": 102.5,
   "pivot": [
    0.5,
    0.9707
   ],
   "group": "cast2",
   "load": "common",
   "note": "guest: stand; first set:  (new guest type)"
  },
  "guestbook": {
   "file": "sprites/guestbook.png",
   "w": 105.0,
   "h": 72.0,
   "pivot": [
    0.5,
    1.0201
   ],
   "group": "hub",
   "load": "hub",
   "note": "the guestbook (badges) on its lectern top"
  },
  "guestbook_open": {
   "file": "sprites/guestbook_open.png",
   "w": 180.0,
   "h": 120.5,
   "pivot": [
    0.5,
    0.4523
   ],
   "joints": {
    "badge_1": [
     0.25,
     0.2988
    ],
    "badge_2": [
     0.75,
     0.2988
    ],
    "badge_3": [
     0.25,
     0.6722
    ],
    "badge_4": [
     0.75,
     0.6722
    ]
   },
   "group": "hub",
   "load": "hub",
   "note": "the guestbook open: a spread with 4 framed spots (badge_1..4) per page; flip pages for 16 badges"
  },
  "hamper_closed": {
   "file": "sprites/hamper_closed.png",
   "w": 108.0,
   "h": 79.0,
   "pivot": [
    0.5,
    1.0266
   ],
   "group": "hub",
   "load": "hub",
   "note": "Bryony's hamper, closed (the 7 of the week stand in a row; contents shown on hamper_day_N)"
  },
  "hamper_day_1": {
   "file": "sprites/hamper_day_1.png",
   "w": 110.5,
   "h": 100.0,
   "pivot": [
    0.5204,
    1.017
   ],
   "group": "hub",
   "load": "hub",
   "note": "Bryony's hamper day 1, open, with its fixed contents drawn (20 teaspoons = 4 spoons) + her folded note; never random"
  },
  "hamper_day_2": {
   "file": "sprites/hamper_day_2.png",
   "w": 110.5,
   "h": 100.0,
   "pivot": [
    0.5204,
    1.017
   ],
   "group": "hub",
   "load": "hub",
   "note": "Bryony's hamper day 2, open, with its fixed contents drawn (25 = 5) + her folded note; never random"
  },
  "hamper_day_3": {
   "file": "sprites/hamper_day_3.png",
   "w": 110.5,
   "h": 100.0,
   "pivot": [
    0.5204,
    1.017
   ],
   "group": "hub",
   "load": "hub",
   "note": "Bryony's hamper day 3, open, with its fixed contents drawn (30 = 6) + her folded note; never random"
  },
  "hamper_day_4": {
   "file": "sprites/hamper_day_4.png",
   "w": 110.5,
   "h": 100.0,
   "pivot": [
    0.5204,
    1.017
   ],
   "group": "hub",
   "load": "hub",
   "note": "Bryony's hamper day 4, open, with its fixed contents drawn (35 = 7) + her folded note; never random"
  },
  "hamper_day_5": {
   "file": "sprites/hamper_day_5.png",
   "w": 110.5,
   "h": 100.0,
   "pivot": [
    0.5204,
    1.017
   ],
   "group": "hub",
   "load": "hub",
   "note": "Bryony's hamper day 5, open, with its fixed contents drawn (40 = 8) + her folded note; never random"
  },
  "hamper_day_6": {
   "file": "sprites/hamper_day_6.png",
   "w": 110.5,
   "h": 100.0,
   "pivot": [
    0.5204,
    1.017
   ],
   "group": "hub",
   "load": "hub",
   "note": "Bryony's hamper day 6, open, with its fixed contents drawn (50 = 10) + her folded note; never random"
  },
  "hamper_day_7": {
   "file": "sprites/hamper_day_7.png",
   "w": 110.5,
   "h": 100.0,
   "pivot": [
    0.5204,
    1.017
   ],
   "group": "hub",
   "load": "hub",
   "note": "Bryony's hamper day 7, open, with its fixed contents drawn (Bryony's Straw Hat (first week)) + her folded note; never random"
  },
  "hamper_shelf": {
   "file": "sprites/hamper_shelf.png",
   "w": 260.0,
   "h": 19.0,
   "pivot": [
    0.5,
    0.3158
   ],
   "group": "hub",
   "load": "hub",
   "note": "the hamper shelf by the stairs (a second one appears after 2-8)"
  },
  "hat_boater": {
   "file": "sprites/hat_boater.png",
   "w": 78.0,
   "h": 28.5,
   "pivot": [
    0.5,
    0.8421
   ],
   "group": "wear",
   "load": "common",
   "note": "hat overlay (wardrobe, strings hatNames); pivot = where it sits; put on head joint \"hat\", rotate with the head; draw after the head and specs"
  },
  "hat_bonnet": {
   "file": "sprites/hat_bonnet.png",
   "w": 70.0,
   "h": 43.5,
   "pivot": [
    0.4714,
    0.7701
   ],
   "group": "wear",
   "load": "common",
   "note": "hat overlay (wardrobe, strings hatNames); pivot = where it sits; put on head joint \"hat\", rotate with the head; draw after the head and specs"
  },
  "hat_bryony_straw": {
   "file": "sprites/hat_bryony_straw.png",
   "w": 85.0,
   "h": 39.5,
   "pivot": [
    0.5,
    0.8354
   ],
   "group": "wear",
   "load": "common",
   "note": "hat overlay (wardrobe, strings hatNames); pivot = where it sits; put on head joint \"hat\", rotate with the head; draw after the head and specs"
  },
  "hat_flowerpot": {
   "file": "sprites/hat_flowerpot.png",
   "w": 58.0,
   "h": 36.5,
   "pivot": [
    0.5,
    0.9452
   ],
   "group": "wear",
   "load": "common",
   "note": "hat overlay (wardrobe, strings hatNames); pivot = where it sits; put on head joint \"hat\", rotate with the head; draw after the head and specs"
  },
  "hat_marquee_top": {
   "file": "sprites/hat_marquee_top.png",
   "w": 72.0,
   "h": 64.5,
   "pivot": [
    0.4722,
    0.9225
   ],
   "group": "wear",
   "load": "common",
   "note": "hat overlay (wardrobe, strings hatNames); pivot = where it sits; put on head joint \"hat\", rotate with the head; draw after the head and specs"
  },
  "hat_napkin": {
   "file": "sprites/hat_napkin.png",
   "w": 72.0,
   "h": 41.0,
   "pivot": [
    0.5,
    0.9024
   ],
   "group": "wear",
   "load": "common",
   "note": "hat overlay (wardrobe, strings hatNames); pivot = where it sits; put on head joint \"hat\", rotate with the head; draw after the head and specs"
  },
  "hat_paper_crown": {
   "file": "sprites/hat_paper_crown.png",
   "w": 56.0,
   "h": 33.0,
   "pivot": [
    0.5,
    0.9697
   ],
   "group": "wear",
   "load": "common",
   "note": "hat overlay (wardrobe, strings hatNames); pivot = where it sits; put on head joint \"hat\", rotate with the head; draw after the head and specs"
  },
  "hat_pennant_cap": {
   "file": "sprites/hat_pennant_cap.png",
   "w": 75.5,
   "h": 34.0,
   "pivot": [
    0.4371,
    0.8824
   ],
   "group": "wear",
   "load": "common",
   "note": "hat overlay (wardrobe, strings hatNames); pivot = where it sits; put on head joint \"hat\", rotate with the head; draw after the head and specs"
  },
  "hat_stand": {
   "file": "sprites/hat_stand.png",
   "w": 47.0,
   "h": 116.5,
   "pivot": [
    0.5,
    0.978
   ],
   "joints": {
    "hook_1": [
     0.1383,
     0.0472
    ],
    "hook_2": [
     0.8617,
     0.0472
    ],
    "hook_3": [
     0.1809,
     0.2189
    ],
    "hook_4": [
     0.8191,
     0.2189
    ]
   },
   "group": "hub",
   "load": "hub",
   "note": "hat stand (Wardrobe); hang owned hat_* sprites on hook_1..4"
  },
  "hat_teacosy": {
   "file": "sprites/hat_teacosy.png",
   "w": 69.0,
   "h": 47.0,
   "pivot": [
    0.5,
    0.9043
   ],
   "group": "wear",
   "load": "common",
   "note": "hat overlay (wardrobe, strings hatNames); pivot = where it sits; put on head joint \"hat\", rotate with the head; draw after the head and specs"
  },
  "holly_hedge": {
   "file": "sprites/holly_hedge.png",
   "w": 120.0,
   "h": 76.0,
   "pivot": [
    0.5,
    0.9828
   ],
   "first": true,
   "group": "hazard",
   "load": "first",
   "note": "HAZARD clipped holly hedge (pops a full belly on contact, prickly leaves + red berries)"
  },
  "holly_hedge_short": {
   "file": "sprites/holly_hedge_short.png",
   "w": 63.0,
   "h": 46.0,
   "pivot": [
    0.5159,
    1.0096
   ],
   "group": "ch1",
   "load": "ch1",
   "note": "holly hedge, short length (third length; hazard: prickly leaves + red berries + dark base line)"
  },
  "holly_hedge_tall": {
   "file": "sprites/holly_hedge_tall.png",
   "w": 80.0,
   "h": 115.5,
   "pivot": [
    0.5,
    0.9826
   ],
   "group": "hazard",
   "load": "common",
   "note": "HAZARD clipped holly hedge (pops a full belly on contact, prickly leaves + red berries)"
  },
  "hub_parlour": {
   "file": "sprites/hub_parlour.png",
   "w": 1280.0,
   "h": 720.0,
   "pivot": [
    0.0,
    0.0
   ],
   "joints": {
    "armchair": [
     0.4219,
     0.8542
    ],
    "map": [
     0.5,
     0.4444
    ],
    "hatstand": [
     0.2734,
     0.8542
    ],
    "mirror": [
     0.2188,
     0.5278
    ],
    "shelf": [
     0.7344,
     0.3611
    ],
    "guestbook": [
     0.6641,
     0.8542
    ],
    "sorrel_door": [
     0.9336,
     0.8194
    ],
    "stairs_hamper": [
     0.1641,
     0.8542
    ],
    "slate": [
     0.1172,
     0.625
    ],
    "sundial": [
     0.5,
     0.8611
    ],
    "gramophone": [
     0.8008,
     0.8542
    ],
    "souvenir_1": [
     0.3438,
     0.3889
    ],
    "souvenir_2": [
     0.6484,
     0.4444
    ],
    "souvenir_3": [
     0.375,
     0.5694
    ],
    "souvenir_4": [
     0.625,
     0.5972
    ],
    "king_chair": [
     0.5859,
     0.8542
    ],
    "streak_row": [
     0.5,
     0.2292
    ]
   },
   "group": "hub",
   "load": "hub",
   "note": "hub backdrop 2560x1440 (= 1280x720): Delve's burrow parlour. joints = where each hub object's pivot goes (armchair, map, hatstand, mirror, shelf, guestbook, sorrel_door, stairs_hamper, slate, sundial, gramophone, souvenir_1..4, king_chair, streak_row)"
  },
  "icon_drag": {
   "file": "sprites/icon_drag.png",
   "w": 51.0,
   "h": 49.5,
   "pivot": [
    0.5098,
    0.4646
   ],
   "group": "ui",
   "load": "common",
   "note": "icon (drawn object) for btn_round; icon_video = the \"watch an ad\" glyph: a garden puppet-theatre booth with a molehill on its stage (never a red play button, never a casino look)"
  },
  "icon_home": {
   "file": "sprites/icon_home.png",
   "w": 56.0,
   "h": 42.5,
   "pivot": [
    0.5,
    0.4
   ],
   "group": "ui",
   "load": "common",
   "note": "icon (drawn object) for btn_round; icon_video = the \"watch an ad\" glyph: a garden puppet-theatre booth with a molehill on its stage (never a red play button, never a casino look)"
  },
  "icon_language": {
   "file": "sprites/icon_language.png",
   "w": 46.0,
   "h": 53.0,
   "pivot": [
    0.4565,
    0.4906
   ],
   "first": true,
   "group": "ui",
   "load": "first",
   "note": "icon (drawn object) for btn_round; icon_video = the \"watch an ad\" glyph: a garden puppet-theatre booth with a molehill on its stage (never a red play button, never a casino look)"
  },
  "icon_lock": {
   "file": "sprites/icon_lock.png",
   "w": 34.0,
   "h": 49.5,
   "pivot": [
    0.5,
    0.5152
   ],
   "group": "ui",
   "load": "common",
   "note": "icon (drawn object) for btn_round; icon_video = the \"watch an ad\" glyph: a garden puppet-theatre booth with a molehill on its stage (never a red play button, never a casino look)"
  },
  "icon_long_summer": {
   "file": "sprites/icon_long_summer.png",
   "w": 98.0,
   "h": 99.0,
   "pivot": [
    0.4898,
    0.4949
   ],
   "group": "ui2",
   "load": "common",
   "note": "the Long Summer (sundial menu, map button)"
  },
  "icon_map": {
   "file": "sprites/icon_map.png",
   "w": 48.0,
   "h": 42.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "ui",
   "load": "common",
   "note": "icon (drawn object) for btn_round; icon_video = the \"watch an ad\" glyph: a garden puppet-theatre booth with a molehill on its stage (never a red play button, never a casino look)"
  },
  "icon_music": {
   "file": "sprites/icon_music.png",
   "w": 43.0,
   "h": 49.0,
   "pivot": [
    0.4884,
    0.6327
   ],
   "first": true,
   "group": "ui",
   "load": "first",
   "note": "icon (drawn object) for btn_round; icon_video = the \"watch an ad\" glyph: a garden puppet-theatre booth with a molehill on its stage (never a red play button, never a casino look)"
  },
  "icon_music_off": {
   "file": "sprites/icon_music_off.png",
   "w": 50.0,
   "h": 56.5,
   "pivot": [
    0.49,
    0.5487
   ],
   "first": true,
   "group": "ui",
   "load": "first",
   "note": "icon (drawn object) for btn_round; icon_video = the \"watch an ad\" glyph: a garden puppet-theatre booth with a molehill on its stage (never a red play button, never a casino look)"
  },
  "icon_next": {
   "file": "sprites/icon_next.png",
   "w": 36.0,
   "h": 42.0,
   "pivot": [
    0.4444,
    0.5
   ],
   "group": "ui",
   "load": "common",
   "note": "icon (drawn object) for btn_round; icon_video = the \"watch an ad\" glyph: a garden puppet-theatre booth with a molehill on its stage (never a red play button, never a casino look)"
  },
  "icon_pause": {
   "file": "sprites/icon_pause.png",
   "w": 24.0,
   "h": 55.5,
   "pivot": [
    0.5,
    0.4955
   ],
   "first": true,
   "group": "ui",
   "load": "first",
   "note": "icon (drawn object) for btn_round; icon_video = the \"watch an ad\" glyph: a garden puppet-theatre booth with a molehill on its stage (never a red play button, never a casino look)"
  },
  "icon_retry": {
   "file": "sprites/icon_retry.png",
   "w": 41.5,
   "h": 38.5,
   "pivot": [
    0.4458,
    0.4805
   ],
   "group": "ui",
   "load": "common",
   "note": "icon (drawn object) for btn_round; icon_video = the \"watch an ad\" glyph: a garden puppet-theatre booth with a molehill on its stage (never a red play button, never a casino look)"
  },
  "icon_sound": {
   "file": "sprites/icon_sound.png",
   "w": 51.0,
   "h": 30.0,
   "pivot": [
    0.5196,
    0.4667
   ],
   "first": true,
   "group": "ui",
   "load": "first",
   "note": "icon (drawn object) for btn_round; icon_video = the \"watch an ad\" glyph: a garden puppet-theatre booth with a molehill on its stage (never a red play button, never a casino look)"
  },
  "icon_sound_off": {
   "file": "sprites/icon_sound_off.png",
   "w": 52.0,
   "h": 49.0,
   "pivot": [
    0.5096,
    0.4796
   ],
   "first": true,
   "group": "ui",
   "load": "first",
   "note": "icon (drawn object) for btn_round; icon_video = the \"watch an ad\" glyph: a garden puppet-theatre booth with a molehill on its stage (never a red play button, never a casino look)"
  },
  "icon_teaspoon": {
   "file": "sprites/icon_teaspoon.png",
   "w": 48.5,
   "h": 52.5,
   "pivot": [
    0.4845,
    0.5714
   ],
   "group": "ui",
   "load": "common",
   "note": "icon (drawn object) for btn_round; icon_video = the \"watch an ad\" glyph: a garden puppet-theatre booth with a molehill on its stage (never a red play button, never a casino look)"
  },
  "icon_video": {
   "file": "sprites/icon_video.png",
   "w": 54.0,
   "h": 49.0,
   "pivot": [
    0.5,
    0.5102
   ],
   "group": "ui",
   "load": "common",
   "note": "icon (drawn object) for btn_round; icon_video = the \"watch an ad\" glyph: a garden puppet-theatre booth with a molehill on its stage (never a red play button, never a casino look)"
  },
  "judges_table": {
   "file": "sprites/judges_table.png",
   "w": 180.0,
   "h": 44.0,
   "pivot": [
    0.5,
    0.9605
   ],
   "group": "ch2",
   "load": "ch2",
   "note": "Harvest Show judges' table with rosettes (2-8; table top = top edge, things sit on it)"
  },
  "king_aubrey_cheer": {
   "file": "sprites/king_aubrey_cheer.png",
   "w": 62.5,
   "h": 120.0,
   "pivot": [
    0.488,
    0.975
   ],
   "group": "cast",
   "load": "common",
   "note": "the King (our own: short, round, cream beard, acorn crown)"
  },
  "king_aubrey_eat": {
   "file": "sprites/king_aubrey_eat.png",
   "w": 77.5,
   "h": 120.0,
   "pivot": [
    0.4323,
    0.975
   ],
   "group": "cast2",
   "load": "common",
   "note": "the King: eat"
  },
  "king_aubrey_napkin": {
   "file": "sprites/king_aubrey_napkin.png",
   "w": 91.0,
   "h": 120.0,
   "pivot": [
    0.3681,
    0.975
   ],
   "group": "cast2",
   "load": "common",
   "note": "the King: napkin"
  },
  "king_aubrey_point": {
   "file": "sprites/king_aubrey_point.png",
   "w": 80.5,
   "h": 120.0,
   "pivot": [
    0.4161,
    0.975
   ],
   "group": "cast",
   "load": "common",
   "note": "the King (our own: short, round, cream beard, acorn crown)"
  },
  "king_aubrey_proclaim": {
   "file": "sprites/king_aubrey_proclaim.png",
   "w": 60.5,
   "h": 120.0,
   "pivot": [
    0.5537,
    0.975
   ],
   "group": "cast2",
   "load": "common",
   "note": "the King: proclaim"
  },
  "king_aubrey_shock": {
   "file": "sprites/king_aubrey_shock.png",
   "w": 74.0,
   "h": 125.0,
   "pivot": [
    0.5,
    0.976
   ],
   "group": "cast",
   "load": "common",
   "note": "the King (our own: short, round, cream beard, acorn crown)"
  },
  "king_aubrey_sit": {
   "file": "sprites/king_aubrey_sit.png",
   "w": 62.5,
   "h": 118.0,
   "pivot": [
    0.408,
    0.9746
   ],
   "group": "cast2",
   "load": "common",
   "note": "the King seated (put king_chair behind him, same pivot)"
  },
  "king_aubrey_squeezed": {
   "file": "sprites/king_aubrey_squeezed.png",
   "w": 115.0,
   "h": 126.0,
   "pivot": [
    0.5,
    0.4246
   ],
   "group": "cast2",
   "load": "common",
   "note": "ending card 4: the King squeezed into a tunnel (tunnel mouth drawn behind him)"
  },
  "king_aubrey_stand": {
   "file": "sprites/king_aubrey_stand.png",
   "w": 67.0,
   "h": 120.0,
   "pivot": [
    0.5,
    0.975
   ],
   "first": true,
   "group": "cast",
   "load": "first",
   "note": "the King (our own: short, round, cream beard, acorn crown)"
  },
  "king_aubrey_sulk": {
   "file": "sprites/king_aubrey_sulk.png",
   "w": 51.0,
   "h": 121.0,
   "pivot": [
    0.5,
    0.9752
   ],
   "group": "cast",
   "load": "common",
   "note": "the King (our own: short, round, cream beard, acorn crown)"
  },
  "king_chair": {
   "file": "sprites/king_chair.png",
   "w": 66.0,
   "h": 102.0,
   "pivot": [
    0.5,
    0.98
   ],
   "group": "ch3",
   "load": "ch3",
   "note": "the King's chair (picnic + the burrow souvenir after the ending); seat height for king_aubrey_sit at y ~ 0.6"
  },
  "kitchen_bed": {
   "file": "sprites/kitchen_bed.png",
   "w": 150.0,
   "h": 26.0,
   "pivot": [
    0.0,
    0.9346
   ],
   "group": "ch2",
   "load": "ch2",
   "note": "kitchen-garden raised bed (tileable 300 px on the lawn line)"
  },
  "lawn_1": {
   "file": "sprites/lawn_1.png",
   "w": 256.0,
   "h": 48.0,
   "pivot": [
    0.0,
    0.4167
   ],
   "first": true,
   "group": "scene",
   "load": "first",
   "note": "lawn strip chapter 1 (tile horizontally; pivot = lawn line, the strip overlaps the strata top)"
  },
  "lawn_2": {
   "file": "sprites/lawn_2.png",
   "w": 256.0,
   "h": 48.0,
   "pivot": [
    0.0,
    0.4167
   ],
   "group": "scene",
   "load": "ch2",
   "note": "lawn strip chapter 2 (tile horizontally; pivot = lawn line, the strip overlaps the strata top)"
  },
  "lawn_3": {
   "file": "sprites/lawn_3.png",
   "w": 256.0,
   "h": 48.0,
   "pivot": [
    0.0,
    0.4167
   ],
   "group": "scene",
   "load": "ch3",
   "note": "lawn strip chapter 3 (tile horizontally; pivot = lawn line, the strip overlaps the strata top)"
  },
  "lawn_roller": {
   "file": "sprites/lawn_roller.png",
   "w": 96.5,
   "h": 58.0,
   "pivot": [
    0.3399,
    0.9828
   ],
   "group": "ch1",
   "load": "ch1",
   "note": "lawn roller, parked (a mover: solid, the mole goes under; 1-6)"
  },
  "lawnmower": {
   "file": "sprites/lawnmower.png",
   "w": 88.5,
   "h": 83.0,
   "pivot": [
    0.5085,
    0.9934
   ],
   "group": "hazard",
   "load": "ch2",
   "note": "the gardener's lawnmower (chases along the lawn in chapter 2)"
  },
  "lemonade_jug": {
   "file": "sprites/lemonade_jug.png",
   "w": 37.0,
   "h": 52.0,
   "pivot": [
    0.4054,
    0.9683
   ],
   "group": "food",
   "load": "common",
   "note": "lemonade jug"
  },
  "lily_pond": {
   "file": "sprites/lily_pond.png",
   "w": 198.0,
   "h": 36.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "ch3",
   "load": "ch3",
   "note": "lily pond (3-8: the Great Roller rolls into it; splash = p_drop burst + pond_splash)"
  },
  "lindenmere_flag": {
   "file": "sprites/lindenmere_flag.png",
   "w": 106.0,
   "h": 152.0,
   "pivot": [
    0.0472,
    0.99
   ],
   "group": "props",
   "load": "common",
   "note": "the Lindenmere flag on a brass pole (linden leaf, cream field, poppy-red border)"
  },
  "lindenmere_flag_small": {
   "file": "sprites/lindenmere_flag_small.png",
   "w": 58.0,
   "h": 32.5,
   "pivot": [
    -0.0172,
    0.0923
   ],
   "group": "props",
   "load": "common",
   "note": "flag cloth only (cake top, royal hill, pennants on poles)"
  },
  "lost_ball": {
   "file": "sprites/lost_ball.png",
   "w": 22.0,
   "h": 22.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "underground",
   "load": "common",
   "note": "lost croquet ball (dressing)"
  },
  "lost_specs": {
   "file": "sprites/lost_specs.png",
   "w": 50.0,
   "h": 22.5,
   "pivot": [
    0.5,
    0.4222
   ],
   "first": true,
   "group": "underground",
   "load": "first",
   "note": "collectible: a pair of the mole family's lost spectacles (24 to find)"
  },
  "lost_specs_01": {
   "file": "sprites/lost_specs_01.png",
   "w": 49.0,
   "h": 41.5,
   "pivot": [
    0.6122,
    0.3253
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #1 (strings spectaclesNames[0], party 1-1): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_02": {
   "file": "sprites/lost_specs_02.png",
   "w": 50.5,
   "h": 38.0,
   "pivot": [
    0.4455,
    0.2632
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #2 (strings spectaclesNames[1], party 1-2): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_03": {
   "file": "sprites/lost_specs_03.png",
   "w": 49.5,
   "h": 22.5,
   "pivot": [
    0.6061,
    0.4667
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #3 (strings spectaclesNames[2], party 1-3): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_04": {
   "file": "sprites/lost_specs_04.png",
   "w": 48.0,
   "h": 34.0,
   "pivot": [
    0.625,
    0.3676
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #4 (strings spectaclesNames[3], party 1-4): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_05": {
   "file": "sprites/lost_specs_05.png",
   "w": 31.5,
   "h": 42.5,
   "pivot": [
    0.3651,
    0.3412
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #5 (strings spectaclesNames[4], party 1-5): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_06": {
   "file": "sprites/lost_specs_06.png",
   "w": 49.5,
   "h": 30.0,
   "pivot": [
    0.6061,
    0.4667
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #6 (strings spectaclesNames[5], party 1-6): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_07": {
   "file": "sprites/lost_specs_07.png",
   "w": 52.5,
   "h": 32.0,
   "pivot": [
    0.3905,
    0.2812
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #7 (strings spectaclesNames[6], party 1-7): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_08": {
   "file": "sprites/lost_specs_08.png",
   "w": 50.0,
   "h": 16.0,
   "pivot": [
    0.6,
    0.5312
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #8 (strings spectaclesNames[7], party 1-8): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_09": {
   "file": "sprites/lost_specs_09.png",
   "w": 49.5,
   "h": 28.5,
   "pivot": [
    0.6061,
    0.5614
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #9 (strings spectaclesNames[8], party 2-1): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_10": {
   "file": "sprites/lost_specs_10.png",
   "w": 53.0,
   "h": 33.5,
   "pivot": [
    0.566,
    0.5373
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #10 (strings spectaclesNames[9], party 2-2): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_11": {
   "file": "sprites/lost_specs_11.png",
   "w": 48.0,
   "h": 33.5,
   "pivot": [
    0.625,
    0.5672
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #11 (strings spectaclesNames[10], party 2-3): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_12": {
   "file": "sprites/lost_specs_12.png",
   "w": 48.5,
   "h": 28.0,
   "pivot": [
    0.6186,
    0.4643
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #12 (strings spectaclesNames[11], party 2-4): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_13": {
   "file": "sprites/lost_specs_13.png",
   "w": 52.0,
   "h": 24.0,
   "pivot": [
    0.5769,
    0.4583
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #13 (strings spectaclesNames[12], party 2-5): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_14": {
   "file": "sprites/lost_specs_14.png",
   "w": 52.5,
   "h": 26.5,
   "pivot": [
    0.5714,
    0.4717
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #14 (strings spectaclesNames[13], party 2-6): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_15": {
   "file": "sprites/lost_specs_15.png",
   "w": 48.5,
   "h": 28.0,
   "pivot": [
    0.6186,
    0.4643
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #15 (strings spectaclesNames[14], party 2-7): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_16": {
   "file": "sprites/lost_specs_16.png",
   "w": 53.5,
   "h": 39.5,
   "pivot": [
    0.5607,
    0.557
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #16 (strings spectaclesNames[15], party 2-8): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_17": {
   "file": "sprites/lost_specs_17.png",
   "w": 48.0,
   "h": 26.0,
   "pivot": [
    0.625,
    0.4615
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #17 (strings spectaclesNames[16], party 3-1): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_18": {
   "file": "sprites/lost_specs_18.png",
   "w": 51.0,
   "h": 33.0,
   "pivot": [
    0.5882,
    0.3485
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #18 (strings spectaclesNames[17], party 3-2): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_19": {
   "file": "sprites/lost_specs_19.png",
   "w": 48.0,
   "h": 29.0,
   "pivot": [
    0.625,
    0.5
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #19 (strings spectaclesNames[18], party 3-3): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_20": {
   "file": "sprites/lost_specs_20.png",
   "w": 53.0,
   "h": 29.5,
   "pivot": [
    0.566,
    0.4915
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #20 (strings spectaclesNames[19], party 3-4): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_21": {
   "file": "sprites/lost_specs_21.png",
   "w": 50.0,
   "h": 22.0,
   "pivot": [
    0.6,
    0.4545
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #21 (strings spectaclesNames[20], party 3-5): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_22": {
   "file": "sprites/lost_specs_22.png",
   "w": 51.5,
   "h": 34.0,
   "pivot": [
    0.5825,
    0.4706
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #22 (strings spectaclesNames[21], party 3-6): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_23": {
   "file": "sprites/lost_specs_23.png",
   "w": 48.5,
   "h": 28.5,
   "pivot": [
    0.6186,
    0.5965
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #23 (strings spectaclesNames[22], party 3-7): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_24": {
   "file": "sprites/lost_specs_24.png",
   "w": 46.0,
   "h": 22.5,
   "pivot": [
    0.6522,
    0.4667
   ],
   "group": "wear",
   "load": "common",
   "note": "lost spectacles #24 (strings spectaclesNames[23], party 3-8): shelf drawing AND wearable (pivot = bridge, head joint \"specs\")"
  },
  "lost_specs_locked": {
   "file": "sprites/lost_specs_locked.png",
   "w": 48.5,
   "h": 28.0,
   "pivot": [
    0.6186,
    0.4643
   ],
   "group": "wear",
   "load": "common",
   "note": "spectacle shelf: a not-yet-found pair (dusty outline; party name in live text under it)"
  },
  "map_pin_empty": {
   "file": "sprites/map_pin_empty.png",
   "w": 26.0,
   "h": 13.0,
   "pivot": [
    0.5,
    0.7308
   ],
   "group": "hub",
   "load": "hub",
   "note": "map spot not cleared"
  },
  "map_pin_hill": {
   "file": "sprites/map_pin_hill.png",
   "w": 35.0,
   "h": 22.5,
   "pivot": [
    0.5,
    0.8889
   ],
   "group": "hub",
   "load": "hub",
   "note": "cleared party: a molehill"
  },
  "map_pin_hill_flag": {
   "file": "sprites/map_pin_hill_flag.png",
   "w": 35.0,
   "h": 40.5,
   "pivot": [
    0.5,
    0.9383
   ],
   "group": "hub",
   "load": "hub",
   "note": "cleared with 3 stars: a molehill with a little flag"
  },
  "map_pin_next": {
   "file": "sprites/map_pin_next.png",
   "w": 28.0,
   "h": 13.0,
   "pivot": [
    0.5,
    0.7308
   ],
   "group": "hub",
   "load": "hub",
   "note": "the next party to play (pulse scale 1 -> 1.1)"
  },
  "marquee_base": {
   "file": "sprites/marquee_base.png",
   "w": 372.0,
   "h": 171.0,
   "pivot": [
    0.5,
    0.9298
   ],
   "joints": {
    "roof": [
     0.5,
     0.0585
    ]
   },
   "first": true,
   "group": "marquee",
   "load": "first",
   "note": "royal marquee walls; the roof sprite sits on \"roof\" and lifts off like a hat at the Marquee Breach"
  },
  "marquee_fallen": {
   "file": "sprites/marquee_fallen.png",
   "w": 240.0,
   "h": 89.5,
   "pivot": [
    0.5,
    0.9665
   ],
   "group": "ch1",
   "load": "ch1",
   "note": "the Grand Marquee slid off over the lawn: a big striped lump guests poke (1-8)"
  },
  "marquee_on_head": {
   "file": "sprites/marquee_on_head.png",
   "w": 372.0,
   "h": 149.0,
   "pivot": [
    0.5,
    0.7919
   ],
   "group": "ch1",
   "load": "ch1",
   "note": "the marquee roof worn on Delve's head with two snapped guy ropes + tent pegs dangling (pivot = valance centre: put it on head joint \"hat\", scale 0.5)"
  },
  "marquee_roof": {
   "file": "sprites/marquee_roof.png",
   "w": 372.0,
   "h": 121.5,
   "pivot": [
    0.5,
    0.9712
   ],
   "first": true,
   "group": "marquee",
   "load": "first",
   "note": "marquee roof; pivot = valance centre; lift + tumble as one body"
  },
  "maze_arch": {
   "file": "sprites/maze_arch.png",
   "w": 146.0,
   "h": 107.0,
   "pivot": [
    0.5,
    0.9879
   ],
   "group": "props",
   "load": "ch3",
   "note": "hedge-maze wall (clipped yew, solid: the mole goes under)"
  },
  "maze_wall": {
   "file": "sprites/maze_wall.png",
   "w": 126.0,
   "h": 77.0,
   "pivot": [
    0.5,
    0.9909
   ],
   "group": "props",
   "load": "ch3",
   "note": "hedge-maze wall (clipped yew, solid: the mole goes under)"
  },
  "maze_wall_low": {
   "file": "sprites/maze_wall_low.png",
   "w": 96.0,
   "h": 47.0,
   "pivot": [
    0.5,
    0.9979
   ],
   "group": "props",
   "load": "ch3",
   "note": "hedge-maze wall (clipped yew, solid: the mole goes under)"
  },
  "mirror": {
   "file": "sprites/mirror.png",
   "w": 88.0,
   "h": 118.0,
   "pivot": [
    0.5,
    0.5085
   ],
   "group": "hub",
   "load": "hub",
   "note": "oval mirror over the hat stand (wardrobe preview frame)"
  },
  "mod_bakeoff": {
   "file": "sprites/mod_bakeoff.png",
   "w": 98.0,
   "h": 99.0,
   "pivot": [
    0.4898,
    0.4949
   ],
   "group": "ui2",
   "load": "common",
   "note": "Today's Party modifier picture (strings dailyMods order: windy, rainy, bakeoff, rounds, sprinkler)"
  },
  "mod_rainy": {
   "file": "sprites/mod_rainy.png",
   "w": 98.0,
   "h": 99.0,
   "pivot": [
    0.4898,
    0.4949
   ],
   "group": "ui2",
   "load": "common",
   "note": "Today's Party modifier picture (strings dailyMods order: windy, rainy, bakeoff, rounds, sprinkler)"
  },
  "mod_rounds": {
   "file": "sprites/mod_rounds.png",
   "w": 98.0,
   "h": 99.0,
   "pivot": [
    0.4898,
    0.4949
   ],
   "group": "ui2",
   "load": "common",
   "note": "Today's Party modifier picture (strings dailyMods order: windy, rainy, bakeoff, rounds, sprinkler)"
  },
  "mod_sprinkler": {
   "file": "sprites/mod_sprinkler.png",
   "w": 98.0,
   "h": 99.0,
   "pivot": [
    0.4898,
    0.4949
   ],
   "group": "ui2",
   "load": "common",
   "note": "Today's Party modifier picture (strings dailyMods order: windy, rainy, bakeoff, rounds, sprinkler)"
  },
  "mod_windy": {
   "file": "sprites/mod_windy.png",
   "w": 98.0,
   "h": 99.0,
   "pivot": [
    0.4898,
    0.4949
   ],
   "group": "ui2",
   "load": "common",
   "note": "Today's Party modifier picture (strings dailyMods order: windy, rainy, bakeoff, rounds, sprinkler)"
  },
  "molehill": {
   "file": "sprites/molehill.png",
   "w": 60.0,
   "h": 23.0,
   "pivot": [
    0.5,
    0.9674
   ],
   "first": true,
   "group": "props",
   "load": "first",
   "note": "molehill (left where he breaches; the lawn fills as he wins)"
  },
  "molehill_big": {
   "file": "sprites/molehill_big.png",
   "w": 110.0,
   "h": 43.0,
   "pivot": [
    0.5,
    0.9686
   ],
   "group": "props",
   "load": "common",
   "note": "molehill (left where he breaches; the lawn fills as he wins)"
  },
  "molehill_small": {
   "file": "sprites/molehill_small.png",
   "w": 55.0,
   "h": 21.0,
   "pivot": [
    0.5,
    0.9671
   ],
   "group": "ch1",
   "load": "ch1",
   "note": "molehill, small (third size)"
  },
  "mower_shed": {
   "file": "sprites/mower_shed.png",
   "w": 110.0,
   "h": 100.0,
   "pivot": [
    0.5,
    0.9894
   ],
   "group": "ch2",
   "load": "ch2",
   "note": "mower shed (backdrop; the mower comes out of it in 2-5)"
  },
  "music_stand": {
   "file": "sprites/music_stand.png",
   "w": 48.0,
   "h": 79.0,
   "pivot": [
    0.5,
    0.9777
   ],
   "group": "ch1",
   "load": "ch1",
   "note": "band music stand (sheet music as plain staff lines, no text); catches a cake slice"
  },
  "old_coin": {
   "file": "sprites/old_coin.png",
   "w": 24.0,
   "h": 24.0,
   "pivot": [
    0.5,
    0.5
   ],
   "first": true,
   "group": "underground",
   "load": "first",
   "note": "old crown coin (find: +points; spins as scaleX = cos t)"
  },
  "old_key": {
   "file": "sprites/old_key.png",
   "w": 42.0,
   "h": 18.0,
   "pivot": [
    0.4881,
    0.5556
   ],
   "group": "underground",
   "load": "common",
   "note": "old key (dressing)"
  },
  "onion_row": {
   "file": "sprites/onion_row.png",
   "w": 107.0,
   "h": 21.0,
   "pivot": [
    0.5234,
    0.9952
   ],
   "group": "ch2",
   "load": "ch2",
   "note": "onion row (dressing on the beds, 2-6)"
  },
  "p1_marker": {
   "file": "sprites/p1_marker.png",
   "w": 42.0,
   "h": 42.0,
   "pivot": [
    0.5,
    1.0
   ],
   "group": "ui2",
   "load": "twop",
   "note": "2P: marker over Delve (player 1, brass, his spectacles); bob 4 px"
  },
  "p2_marker": {
   "file": "sprites/p2_marker.png",
   "w": 42.0,
   "h": 42.0,
   "pivot": [
    0.5,
    1.0
   ],
   "group": "ui2",
   "load": "twop",
   "note": "2P: marker over Sorrel (player 2, green, her neckerchief); bob 4 px"
  },
  "p_crumb": {
   "file": "sprites/p_crumb.png",
   "w": 11.0,
   "h": 9.0,
   "pivot": [
    0.5,
    0.5556
   ],
   "first": true,
   "group": "particles",
   "load": "first",
   "note": "cake crumb (gulp / burp)"
  },
  "p_drop": {
   "file": "sprites/p_drop.png",
   "w": 9.0,
   "h": 14.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "particles",
   "load": "common",
   "note": "water drop (sprinkler/fountain)"
  },
  "p_holly": {
   "file": "sprites/p_holly.png",
   "w": 20.0,
   "h": 15.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "particles",
   "load": "common"
  },
  "p_icing": {
   "file": "sprites/p_icing.png",
   "w": 13.0,
   "h": 11.0,
   "pivot": [
    0.5,
    0.5
   ],
   "first": true,
   "group": "particles",
   "load": "first"
  },
  "p_leaf": {
   "file": "sprites/p_leaf.png",
   "w": 17.0,
   "h": 11.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "particles",
   "load": "common",
   "note": "topiary/hedge leaf"
  },
  "p_pennant_brass": {
   "file": "sprites/p_pennant_brass.png",
   "w": 22.0,
   "h": 25.0,
   "pivot": [
    0.5,
    0.2
   ],
   "group": "particles",
   "load": "common"
  },
  "p_pennant_cream": {
   "file": "sprites/p_pennant_cream.png",
   "w": 22.0,
   "h": 25.0,
   "pivot": [
    0.5,
    0.2
   ],
   "group": "particles",
   "load": "common"
  },
  "p_pennant_green": {
   "file": "sprites/p_pennant_green.png",
   "w": 22.0,
   "h": 25.0,
   "pivot": [
    0.5,
    0.2
   ],
   "group": "particles",
   "load": "common"
  },
  "p_pennant_red": {
   "file": "sprites/p_pennant_red.png",
   "w": 22.0,
   "h": 25.0,
   "pivot": [
    0.5,
    0.2
   ],
   "group": "particles",
   "load": "common"
  },
  "p_soil": {
   "file": "sprites/p_soil.png",
   "w": 12.0,
   "h": 10.0,
   "pivot": [
    0.5,
    0.5
   ],
   "first": true,
   "group": "particles",
   "load": "first",
   "note": "soil crumb (tunnelling)"
  },
  "p_soil_dark": {
   "file": "sprites/p_soil_dark.png",
   "w": 12.0,
   "h": 10.0,
   "pivot": [
    0.5,
    0.5
   ],
   "first": true,
   "group": "particles",
   "load": "first"
  },
  "p_turf": {
   "file": "sprites/p_turf.png",
   "w": 20.0,
   "h": 17.0,
   "pivot": [
    0.5,
    0.5
   ],
   "first": true,
   "group": "particles",
   "load": "first",
   "note": "turf clod (breach fountain)"
  },
  "pane_shard_1": {
   "file": "sprites/pane_shard_1.png",
   "w": 25.0,
   "h": 27.0,
   "pivot": [
    0.48,
    0.4815
   ],
   "group": "particles",
   "load": "ch2"
  },
  "pane_shard_2": {
   "file": "sprites/pane_shard_2.png",
   "w": 22.0,
   "h": 22.0,
   "pivot": [
    0.5455,
    0.5909
   ],
   "group": "particles",
   "load": "ch2"
  },
  "pane_shard_3": {
   "file": "sprites/pane_shard_3.png",
   "w": 17.0,
   "h": 24.0,
   "pivot": [
    0.7059,
    0.5417
   ],
   "group": "particles",
   "load": "ch2"
  },
  "panel": {
   "file": "sprites/panel.png",
   "w": 367.0,
   "h": 242.0,
   "pivot": [
    0.5068,
    0.5
   ],
   "first": true,
   "slice": [
    60,
    70,
    60,
    70
   ],
   "group": "ui",
   "load": "first",
   "note": "noticeboard card (result, story, settings). 9-slice \"slice\". Text = live font text on the cream sheet (velvet ink)"
  },
  "parasol": {
   "file": "sprites/parasol.png",
   "w": 86.0,
   "h": 90.5,
   "pivot": [
    0.5,
    0.9541
   ],
   "group": "props",
   "load": "common",
   "note": "lace parasol"
  },
  "paving_flag": {
   "file": "sprites/paving_flag.png",
   "w": 80.0,
   "h": 17.0,
   "pivot": [
    0.0,
    0.0
   ],
   "group": "ch3",
   "load": "ch3",
   "note": "paving flag (tile 160 px end to end along the lawn line; bounce-along surface)"
  },
  "picnic_hamper": {
   "file": "sprites/picnic_hamper.png",
   "w": 78.0,
   "h": 59.0,
   "pivot": [
    0.5,
    0.9854
   ],
   "group": "ch3",
   "load": "ch3",
   "note": "the King's picnic hamper (3-8 dressing; wicker as plain lattice bands, no texture)"
  },
  "picnic_rug": {
   "file": "sprites/picnic_rug.png",
   "w": 117.0,
   "h": 14.0,
   "pivot": [
    0.5,
    1.1429
   ],
   "group": "ch1",
   "load": "ch1",
   "note": "picnic rug, checked red and cream (lies on the lawn; food sits on it)"
  },
  "pipe": {
   "file": "sprites/pipe.png",
   "w": 120.0,
   "h": 28.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "underground",
   "load": "common",
   "note": "old copper water pipe, horizontal (solid: steer round it); tile end to end"
  },
  "pipe_elbow": {
   "file": "sprites/pipe_elbow.png",
   "w": 61.0,
   "h": 61.0,
   "pivot": [
    0.1639,
    0.0
   ],
   "group": "underground",
   "load": "common",
   "note": "pipe elbow (top end at pivot)"
  },
  "pk_door": {
   "file": "sprites/pk_door.png",
   "w": 210.0,
   "h": 210.0,
   "pivot": [
    0.5,
    1.0
   ],
   "group": "pack",
   "load": "common",
   "note": "Kenney Platformer Pack: Medieval Expansion part (CC0), recoloured to the palette; building block for Linden House / sheds"
  },
  "pk_wall": {
   "file": "sprites/pk_wall.png",
   "w": 195.0,
   "h": 180.0,
   "pivot": [
    0.5,
    1.0
   ],
   "group": "pack",
   "load": "common",
   "note": "Kenney Platformer Pack: Medieval Expansion part (CC0), recoloured to the palette; building block for Linden House / sheds"
  },
  "pk_win_arch": {
   "file": "sprites/pk_win_arch.png",
   "w": 60.0,
   "h": 60.0,
   "pivot": [
    0.5,
    1.0
   ],
   "group": "pack",
   "load": "common",
   "note": "Kenney Platformer Pack: Medieval Expansion part (CC0), recoloured to the palette; building block for Linden House / sheds"
  },
  "pk_win_small": {
   "file": "sprites/pk_win_small.png",
   "w": 60.0,
   "h": 60.0,
   "pivot": [
    0.5,
    1.0
   ],
   "group": "pack",
   "load": "common",
   "note": "Kenney Platformer Pack: Medieval Expansion part (CC0), recoloured to the palette; building block for Linden House / sheds"
  },
  "pk_win_tall": {
   "file": "sprites/pk_win_tall.png",
   "w": 60.0,
   "h": 200.0,
   "pivot": [
    0.5,
    1.0
   ],
   "group": "pack",
   "load": "common",
   "note": "Kenney Platformer Pack: Medieval Expansion part (CC0), recoloured to the palette; building block for Linden House / sheds"
  },
  "pond_splash": {
   "file": "sprites/pond_splash.png",
   "w": 63.0,
   "h": 26.5,
   "pivot": [
    0.5238,
    0.8642
   ],
   "group": "ch3",
   "load": "ch3",
   "note": "big splash crown (scale y 0 -> 1 -> 0 over 0.5 s)"
  },
  "pop_hiccup": {
   "file": "sprites/pop_hiccup.png",
   "w": 24.0,
   "h": 24.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "particles",
   "load": "common",
   "note": "hiccup bubble after a pop"
  },
  "primsby_capfly": {
   "file": "sprites/primsby_capfly.png",
   "w": 65.0,
   "h": 128.0,
   "pivot": [
    0.4846,
    0.9766
   ],
   "group": "cast2",
   "load": "common",
   "note": "Primsby's cap blown off (cap drawn tumbling above him)"
  },
  "primsby_cheer": {
   "file": "sprites/primsby_cheer.png",
   "w": 51.5,
   "h": 101.5,
   "pivot": [
    0.4854,
    0.9704
   ],
   "group": "cast",
   "load": "common",
   "note": "the head gardener (rival). push = pushing the lawnmower (place lawnmower so its handle meets his hands). cheer = when you pop"
  },
  "primsby_duck": {
   "file": "sprites/primsby_duck.png",
   "w": 55.0,
   "h": 74.0,
   "pivot": [
    0.2727,
    0.9595
   ],
   "group": "cast",
   "load": "common",
   "note": "the head gardener (rival). push = pushing the lawnmower (place lawnmower so its handle meets his hands). cheer = when you pop"
  },
  "primsby_measure": {
   "file": "sprites/primsby_measure.png",
   "w": 67.0,
   "h": 101.5,
   "pivot": [
    0.2164,
    0.9704
   ],
   "group": "cast2",
   "load": "common",
   "note": "Primsby: measure"
  },
  "primsby_point": {
   "file": "sprites/primsby_point.png",
   "w": 70.0,
   "h": 101.5,
   "pivot": [
    0.4071,
    0.9704
   ],
   "group": "cast",
   "load": "common",
   "note": "the head gardener (rival). push = pushing the lawnmower (place lawnmower so its handle meets his hands). cheer = when you pop"
  },
  "primsby_push": {
   "file": "sprites/primsby_push.png",
   "w": 55.0,
   "h": 101.5,
   "pivot": [
    0.2727,
    0.9704
   ],
   "group": "cast",
   "load": "common",
   "note": "the head gardener (rival). push = pushing the lawnmower (place lawnmower so its handle meets his hands). cheer = when you pop"
  },
  "primsby_push_a": {
   "file": "sprites/primsby_push_a.png",
   "w": 60.5,
   "h": 101.5,
   "pivot": [
    0.281,
    0.9704
   ],
   "group": "cast2",
   "load": "common",
   "note": "Primsby: mower walk 1/4 (cycle a,b,c,d at 8 fps); lawnmower handle meets his hands"
  },
  "primsby_push_b": {
   "file": "sprites/primsby_push_b.png",
   "w": 58.0,
   "h": 101.5,
   "pivot": [
    0.25,
    0.9704
   ],
   "group": "cast2",
   "load": "common",
   "note": "Primsby: mower walk 2/4; lawnmower handle meets his hands"
  },
  "primsby_push_c": {
   "file": "sprites/primsby_push_c.png",
   "w": 58.0,
   "h": 101.5,
   "pivot": [
    0.25,
    0.9704
   ],
   "group": "cast2",
   "load": "common",
   "note": "Primsby: mower walk 3/4; lawnmower handle meets his hands"
  },
  "primsby_push_d": {
   "file": "sprites/primsby_push_d.png",
   "w": 58.0,
   "h": 101.5,
   "pivot": [
    0.25,
    0.9704
   ],
   "group": "cast2",
   "load": "common",
   "note": "Primsby: mower walk 4/4; lawnmower handle meets his hands"
  },
  "primsby_run_a": {
   "file": "sprites/primsby_run_a.png",
   "w": 60.0,
   "h": 101.5,
   "pivot": [
    0.5,
    0.9704
   ],
   "group": "cast",
   "load": "common",
   "note": "the head gardener (rival). push = pushing the lawnmower (place lawnmower so its handle meets his hands). cheer = when you pop"
  },
  "primsby_run_b": {
   "file": "sprites/primsby_run_b.png",
   "w": 44.0,
   "h": 101.5,
   "pivot": [
    0.4318,
    0.9704
   ],
   "group": "cast",
   "load": "common",
   "note": "the head gardener (rival). push = pushing the lawnmower (place lawnmower so its handle meets his hands). cheer = when you pop"
  },
  "primsby_shake": {
   "file": "sprites/primsby_shake.png",
   "w": 58.5,
   "h": 108.5,
   "pivot": [
    0.4872,
    0.9724
   ],
   "group": "cast",
   "load": "common",
   "note": "the head gardener (rival). push = pushing the lawnmower (place lawnmower so its handle meets his hands). cheer = when you pop"
  },
  "primsby_shock": {
   "file": "sprites/primsby_shock.png",
   "w": 63.0,
   "h": 108.5,
   "pivot": [
    0.5,
    0.9724
   ],
   "group": "cast",
   "load": "common",
   "note": "the head gardener (rival). push = pushing the lawnmower (place lawnmower so its handle meets his hands). cheer = when you pop"
  },
  "primsby_shout": {
   "file": "sprites/primsby_shout.png",
   "w": 68.5,
   "h": 101.5,
   "pivot": [
    0.4161,
    0.9704
   ],
   "first": true,
   "group": "cast",
   "load": "first",
   "note": "the head gardener (rival). push = pushing the lawnmower (place lawnmower so its handle meets his hands). cheer = when you pop"
  },
  "primsby_sit_barrow": {
   "file": "sprites/primsby_sit_barrow.png",
   "w": 67.5,
   "h": 99.5,
   "pivot": [
    0.4963,
    0.9698
   ],
   "group": "cast2",
   "load": "ch2",
   "note": "Primsby sat in the wheelbarrow (2-5 mower burp, chapter 3 card): draw wheelbarrow first at the same pivot x + 10"
  },
  "primsby_sit_tea": {
   "file": "sprites/primsby_sit_tea.png",
   "w": 49.5,
   "h": 99.5,
   "pivot": [
    0.3131,
    0.9698
   ],
   "group": "cast2",
   "load": "common",
   "note": "Primsby sitting down with a cup of tea, measuring nothing (ending card 3); seat = an upturned flowerpot drawn under him"
  },
  "primsby_stand": {
   "file": "sprites/primsby_stand.png",
   "w": 57.0,
   "h": 101.5,
   "pivot": [
    0.5,
    0.9704
   ],
   "first": true,
   "group": "cast",
   "load": "first",
   "note": "the head gardener (rival). push = pushing the lawnmower (place lawnmower so its handle meets his hands). cheer = when you pop"
  },
  "primsby_tangled": {
   "file": "sprites/primsby_tangled.png",
   "w": 51.5,
   "h": 101.5,
   "pivot": [
    0.4078,
    0.9704
   ],
   "group": "cast2",
   "load": "common",
   "note": "Primsby: tangled"
  },
  "primsby_whistle": {
   "file": "sprites/primsby_whistle.png",
   "w": 54.5,
   "h": 101.5,
   "pivot": [
    0.5229,
    0.9704
   ],
   "group": "cast2",
   "load": "common",
   "note": "Primsby: whistle"
  },
  "pumpkin": {
   "file": "sprites/pumpkin.png",
   "w": 69.0,
   "h": 62.5,
   "pivot": [
    0.5,
    0.992
   ],
   "group": "props",
   "load": "ch2",
   "note": "pumpkin (gulp-able when small; the giant one is the pumpkin-show set-piece)"
  },
  "pumpkin_giant": {
   "file": "sprites/pumpkin_giant.png",
   "w": 155.5,
   "h": 143.0,
   "pivot": [
    0.5,
    1.0
   ],
   "group": "props",
   "load": "ch2",
   "note": "pumpkin (gulp-able when small; the giant one is the pumpkin-show set-piece)"
  },
  "pumpkin_small": {
   "file": "sprites/pumpkin_small.png",
   "w": 43.0,
   "h": 39.5,
   "pivot": [
    0.5,
    0.9747
   ],
   "group": "props",
   "load": "ch2",
   "note": "pumpkin (gulp-able when small; the giant one is the pumpkin-show set-piece)"
  },
  "rake_lying": {
   "file": "sprites/rake_lying.png",
   "w": 124.5,
   "h": 30.0,
   "pivot": [
    0.51,
    0.9
   ],
   "group": "ch1",
   "load": "ch1",
   "note": "rake lying on the lawn, tines UP (hazard reads by the tines; cream glint bar)"
  },
  "rake_stuck": {
   "file": "sprites/rake_stuck.png",
   "w": 53.0,
   "h": 130.5,
   "pivot": [
    0.5094,
    0.8084
   ],
   "first": true,
   "group": "hazard",
   "load": "first",
   "note": "HAZARD iron rake, head buried: pivot = lawn line; the tines reach 25 px into the topsoil (pop zone = the tines + head)"
  },
  "rhubarb": {
   "file": "sprites/rhubarb.png",
   "w": 75.5,
   "h": 76.5,
   "pivot": [
    0.4106,
    0.9778
   ],
   "group": "ch2",
   "load": "ch2",
   "note": "rhubarb clump (soft dressing; leaves fly)"
  },
  "root_a": {
   "file": "sprites/root_a.png",
   "w": 71.0,
   "h": 98.5,
   "pivot": [
    0.4366,
    0.0
   ],
   "group": "underground",
   "load": "common",
   "note": "tree/hedge roots hanging from the lawn line (pivot = top; soft: the mole passes, they wiggle)"
  },
  "root_b": {
   "file": "sprites/root_b.png",
   "w": 81.5,
   "h": 117.0,
   "pivot": [
    0.5337,
    0.0
   ],
   "group": "underground",
   "load": "common",
   "note": "tree/hedge roots hanging from the lawn line (pivot = top; soft: the mole passes, they wiggle)"
  },
  "root_c": {
   "file": "sprites/root_c.png",
   "w": 51.5,
   "h": 72.0,
   "pivot": [
    0.4854,
    0.0
   ],
   "group": "underground",
   "load": "common",
   "note": "tree/hedge roots hanging from the lawn line (pivot = top; soft: the mole passes, they wiggle)"
  },
  "rose_arch": {
   "file": "sprites/rose_arch.png",
   "w": 112.5,
   "h": 128.0,
   "pivot": [
    0.5156,
    0.98
   ],
   "group": "ch3",
   "load": "ch3",
   "note": "rose arch (hazard 3-4: the thorny posts; the gap under the arch is free)"
  },
  "rose_bush": {
   "file": "sprites/rose_bush.png",
   "w": 95.0,
   "h": 52.0,
   "pivot": [
    0.5,
    0.9665
   ],
   "group": "ch3",
   "load": "ch3",
   "note": "rose bush (hazard ch 3: thorns as pale spikes + dark base)"
  },
  "rosette": {
   "file": "sprites/rosette.png",
   "w": 60.0,
   "h": 73.0,
   "pivot": [
    0.5,
    0.411
   ],
   "first": true,
   "group": "ui",
   "load": "first",
   "note": "garden-show rosette (result card, best score); centre for a number in live text"
  },
  "royal_hill": {
   "file": "sprites/royal_hill.png",
   "w": 240.0,
   "h": 100.0,
   "pivot": [
    0.5,
    0.98
   ],
   "group": "props",
   "load": "common",
   "note": "ending: the royal mole hill the King builds (little front door + flag)"
  },
  "scoreboard": {
   "file": "sprites/scoreboard.png",
   "w": 153.0,
   "h": 55.0,
   "pivot": [
    0.5,
    0.5091
   ],
   "first": true,
   "slice": [
    30,
    30,
    30,
    30
   ],
   "group": "ui",
   "load": "first",
   "note": "brass scoreboard (numbers in live display font, cream on velvet)"
  },
  "seed_tray": {
   "file": "sprites/seed_tray.png",
   "w": 88.5,
   "h": 27.5,
   "pivot": [
    0.5028,
    0.9709
   ],
   "group": "ch2",
   "load": "ch2",
   "note": "seed tray of seedlings"
  },
  "show_band_tea_table": {
   "file": "sprites/show_band_tea_table.png",
   "w": 149.0,
   "h": 71.5,
   "pivot": [
    0.5436,
    0.986
   ],
   "joints": {
    "bell_1": [
     0.3221,
     0.7969
    ],
    "bell_2": [
     0.4698,
     0.8283
    ],
    "bell_3": [
     0.6174,
     0.8283
    ],
    "bell_4": [
     0.7651,
     0.7969
    ]
   },
   "bells": 4,
   "group": "ch3",
   "load": "ch3",
   "note": "showpiece \"Band Tea Table\" (4 bells): one body, topples/tumbles when a burp of x4+ reaches it; pivot = base centre. the band's tea table with a tuba propped by it"
  },
  "show_bandstand_awning": {
   "file": "sprites/show_bandstand_awning.png",
   "w": 152.0,
   "h": 124.5,
   "pivot": [
    0.5,
    0.992
   ],
   "joints": {
    "bell_1": [
     0.2632,
     0.4577
    ],
    "bell_2": [
     0.4211,
     0.4757
    ],
    "bell_3": [
     0.5789,
     0.4757
    ],
    "bell_4": [
     0.7368,
     0.4577
    ]
   },
   "bells": 4,
   "group": "ch1",
   "load": "ch1",
   "note": "showpiece \"Bandstand Awning\" (4 bells): one body, topples/tumbles when a burp of x4+ reaches it; pivot = base centre. green-and-cream awning on two poles"
  },
  "show_bean_cane_wigwam": {
   "file": "sprites/show_bean_cane_wigwam.png",
   "w": 100.0,
   "h": 120.0,
   "pivot": [
    0.5,
    0.9917
   ],
   "joints": {
    "bell_1": [
     0.3,
     0.5687
    ],
    "bell_2": [
     0.5,
     0.5833
    ],
    "bell_3": [
     0.7,
     0.5687
    ]
   },
   "bells": 3,
   "group": "ch2",
   "load": "ch2",
   "note": "showpiece \"Bean-Cane Wigwam\" (3 bells): one body, topples/tumbles when a burp of x3+ reaches it; pivot = base centre. "
  },
  "show_bell": {
   "file": "sprites/show_bell.png",
   "w": 17.0,
   "h": 23.0,
   "pivot": [
    0.5,
    0.087
   ],
   "group": "ch1",
   "load": "ch1",
   "note": "one brass show bell (pivot = hanging point): lay over a showpiece bell_N joint and swing +-25 deg when it rings"
  },
  "show_carrot_cart": {
   "file": "sprites/show_carrot_cart.png",
   "w": 141.5,
   "h": 90.5,
   "pivot": [
    0.5194,
    1.011
   ],
   "joints": {
    "bell_1": [
     0.3781,
     0.3729
    ],
    "bell_2": [
     0.5548,
     0.3923
    ],
    "bell_3": [
     0.7314,
     0.3729
    ]
   },
   "bells": 3,
   "group": "ch2",
   "load": "ch2",
   "note": "showpiece \"Carrot Cart\" (3 bells): one body, topples/tumbles when a burp of x3+ reaches it; pivot = base centre. "
  },
  "show_crown_jelly": {
   "file": "sprites/show_crown_jelly.png",
   "w": 86.0,
   "h": 80.5,
   "pivot": [
    0.5,
    0.9876
   ],
   "joints": {
    "bell_1": [
     0.2558,
     0.7202
    ],
    "bell_2": [
     0.4186,
     0.7481
    ],
    "bell_3": [
     0.5814,
     0.7481
    ],
    "bell_4": [
     0.7442,
     0.7202
    ]
   },
   "bells": 4,
   "group": "ch3",
   "load": "ch3",
   "note": "showpiece \"Crown Jelly\" (4 bells): one body, topples/tumbles when a burp of x4+ reaches it; pivot = base centre. a jelly turned out of a crown-shaped mould (the King's own acorn crown, never a real crown)"
  },
  "show_gnome_pyramid": {
   "file": "sprites/show_gnome_pyramid.png",
   "w": 112.0,
   "h": 121.5,
   "pivot": [
    0.5,
    0.9918
   ],
   "joints": {
    "bell_1": [
     0.3661,
     0.7138
    ],
    "bell_2": [
     0.6339,
     0.7138
    ]
   },
   "bells": 2,
   "group": "ch1",
   "load": "ch1",
   "note": "showpiece \"Gnome Pyramid\" (2 bells): one body, topples/tumbles when a burp of x2+ reaches it; pivot = base centre. six gnomes stacked 3-2-1"
  },
  "show_great_roller": {
   "file": "sprites/show_great_roller.png",
   "w": 170.5,
   "h": 120.5,
   "pivot": [
    0.3578,
    0.9917
   ],
   "joints": {
    "bell_1": [
     0.1867,
     0.1618
    ],
    "bell_2": [
     0.2796,
     0.1867
    ],
    "bell_3": [
     0.3724,
     0.195
    ],
    "bell_4": [
     0.4653,
     0.1867
    ],
    "bell_5": [
     0.5582,
     0.1618
    ],
    "axle": [
     0.3578,
     0.5353
    ]
   },
   "bells": 5,
   "group": "ch3",
   "load": "ch3",
   "note": "the Great Roller (3-8, 5 bells): rolls (rotate about joint \"axle\") down the slope into the lily pond once the wedge is knocked out"
  },
  "show_ice_cream_cart": {
   "file": "sprites/show_ice_cream_cart.png",
   "w": 112.0,
   "h": 111.0,
   "pivot": [
    0.5,
    1.0
   ],
   "joints": {
    "bell_1": [
     0.2991,
     0.732
    ],
    "bell_2": [
     0.5,
     0.7477
    ],
    "bell_3": [
     0.7009,
     0.732
    ]
   },
   "bells": 3,
   "group": "ch3",
   "load": "ch3",
   "note": "showpiece \"Ice-Cream Cart\" (3 bells): one body, topples/tumbles when a burp of x3+ reaches it; pivot = base centre. "
  },
  "show_jam_jar_pyramid": {
   "file": "sprites/show_jam_jar_pyramid.png",
   "w": 126.0,
   "h": 135.0,
   "pivot": [
    0.5,
    0.9926
   ],
   "joints": {
    "bell_1": [
     0.2817,
     0.8315
    ],
    "bell_2": [
     0.5,
     0.8444
    ],
    "bell_3": [
     0.7183,
     0.8315
    ]
   },
   "bells": 3,
   "group": "ch2",
   "load": "ch2",
   "note": "showpiece \"Jam Jar Pyramid\" (3 bells): one body, topples/tumbles when a burp of x3+ reaches it; pivot = base centre. "
  },
  "show_lemon_tart_steps": {
   "file": "sprites/show_lemon_tart_steps.png",
   "w": 136.0,
   "h": 97.0,
   "pivot": [
    0.5,
    0.9897
   ],
   "joints": {
    "bell_1": [
     0.2353,
     0.7988
    ],
    "bell_2": [
     0.4118,
     0.8219
    ],
    "bell_3": [
     0.5882,
     0.8219
    ],
    "bell_4": [
     0.7647,
     0.7988
    ]
   },
   "bells": 4,
   "group": "ch3",
   "load": "ch3",
   "note": "showpiece \"Lemon Tart Steps\" (4 bells): one body, topples/tumbles when a burp of x4+ reaches it; pivot = base centre. "
  },
  "show_lemonade_fountain": {
   "file": "sprites/show_lemonade_fountain.png",
   "w": 116.0,
   "h": 125.5,
   "pivot": [
    0.5,
    0.992
   ],
   "joints": {
    "bell_1": [
     0.2845,
     0.8825
    ],
    "bell_2": [
     0.5,
     0.8964
    ],
    "bell_3": [
     0.7155,
     0.8825
    ]
   },
   "bells": 3,
   "group": "ch1",
   "load": "ch1",
   "note": "showpiece \"Lemonade Fountain\" (3 bells): one body, topples/tumbles when a burp of x3+ reaches it; pivot = base centre. tiered stand of lemonade glasses with the jug on top"
  },
  "show_linden_fountain": {
   "file": "sprites/show_linden_fountain.png",
   "w": 156.0,
   "h": 162.0,
   "pivot": [
    0.5,
    1.0
   ],
   "joints": {
    "bell_1": [
     0.2009,
     0.6968
    ],
    "bell_2": [
     0.3504,
     0.7112
    ],
    "bell_3": [
     0.5,
     0.716
    ],
    "bell_4": [
     0.6496,
     0.7112
    ],
    "bell_5": [
     0.7991,
     0.6968
    ]
   },
   "bells": 5,
   "group": "ch3",
   "load": "ch3",
   "note": "showpiece \"Linden Fountain\" (5 bells): one body, topples/tumbles when a burp of x5+ reaches it; pivot = base centre. the terrace fountain with a linden-leaf top"
  },
  "show_marrow_ladder": {
   "file": "sprites/show_marrow_ladder.png",
   "w": 77.0,
   "h": 125.5,
   "pivot": [
    0.5,
    0.992
   ],
   "joints": {
    "bell_1": [
     0.2662,
     0.462
    ],
    "bell_2": [
     0.4221,
     0.4798
    ],
    "bell_3": [
     0.5779,
     0.4798
    ],
    "bell_4": [
     0.7338,
     0.462
    ]
   },
   "bells": 4,
   "group": "ch2",
   "load": "ch2",
   "note": "showpiece \"Marrow Ladder\" (4 bells): one body, topples/tumbles when a burp of x4+ reaches it; pivot = base centre. marrows on a stepladder"
  },
  "show_maze_gazebo": {
   "file": "sprites/show_maze_gazebo.png",
   "w": 136.0,
   "h": 124.0,
   "pivot": [
    0.5,
    1.0
   ],
   "joints": {
    "bell_1": [
     0.2794,
     0.7377
    ],
    "bell_2": [
     0.4265,
     0.7558
    ],
    "bell_3": [
     0.5735,
     0.7558
    ],
    "bell_4": [
     0.7206,
     0.7377
    ]
   },
   "bells": 4,
   "group": "ch3",
   "load": "ch3",
   "note": "showpiece \"Maze Gazebo\" (4 bells): one body, topples/tumbles when a burp of x4+ reaches it; pivot = base centre. "
  },
  "show_name_day_cake": {
   "file": "sprites/show_name_day_cake.png",
   "w": 135.0,
   "h": 117.0,
   "pivot": [
    0.5,
    1.0299
   ],
   "joints": {
    "bell_1": [
     0.2556,
     0.752
    ],
    "bell_2": [
     0.4185,
     0.7711
    ],
    "bell_3": [
     0.5815,
     0.7711
    ],
    "bell_4": [
     0.7444,
     0.752
    ]
   },
   "bells": 4,
   "group": "ch3",
   "load": "ch3",
   "note": "showpiece \"Name-Day Cake\" (4 bells): one body, topples/tumbles when a burp of x4+ reaches it; pivot = base centre. three tiers, pink icing scallops, the kingdom flag on top"
  },
  "show_parasol_stand": {
   "file": "sprites/show_parasol_stand.png",
   "w": 122.0,
   "h": 99.0,
   "pivot": [
    0.5,
    0.9899
   ],
   "joints": {
    "bell_1": [
     0.3361,
     0.7702
    ],
    "bell_2": [
     0.5,
     0.7879
    ],
    "bell_3": [
     0.6639,
     0.7702
    ]
   },
   "bells": 3,
   "group": "ch3",
   "load": "ch3",
   "note": "showpiece \"Parasol Stand\" (3 bells): one body, topples/tumbles when a burp of x3+ reaches it; pivot = base centre. "
  },
  "show_pumpkin_pyramid": {
   "file": "sprites/show_pumpkin_pyramid.png",
   "w": 192.0,
   "h": 196.0,
   "pivot": [
    0.5,
    1.0026
   ],
   "joints": {
    "bell_1": [
     0.2049,
     0.8285
    ],
    "bell_2": [
     0.3524,
     0.8404
    ],
    "bell_3": [
     0.5,
     0.8444
    ],
    "bell_4": [
     0.6476,
     0.8404
    ],
    "bell_5": [
     0.7951,
     0.8285
    ]
   },
   "bells": 5,
   "layout": [
    {
     "sprite": "pumpkin",
     "x": 0.13,
     "y": 0.7529,
     "scale": 0.5
    },
    {
     "sprite": "pumpkin",
     "x": 0.315,
     "y": 0.7529,
     "scale": 0.5
    },
    {
     "sprite": "pumpkin",
     "x": 0.5,
     "y": 0.7529,
     "scale": 0.5
    },
    {
     "sprite": "pumpkin",
     "x": 0.685,
     "y": 0.7529,
     "scale": 0.5
    },
    {
     "sprite": "pumpkin",
     "x": 0.87,
     "y": 0.7529,
     "scale": 0.5
    },
    {
     "sprite": "pumpkin",
     "x": 0.2225,
     "y": 0.5882,
     "scale": 0.5
    },
    {
     "sprite": "pumpkin",
     "x": 0.4075,
     "y": 0.5882,
     "scale": 0.5
    },
    {
     "sprite": "pumpkin",
     "x": 0.5925,
     "y": 0.5882,
     "scale": 0.5
    },
    {
     "sprite": "pumpkin",
     "x": 0.7775,
     "y": 0.5882,
     "scale": 0.5
    },
    {
     "sprite": "pumpkin",
     "x": 0.315,
     "y": 0.4235,
     "scale": 0.5
    },
    {
     "sprite": "pumpkin",
     "x": 0.5,
     "y": 0.4235,
     "scale": 0.5
    },
    {
     "sprite": "pumpkin",
     "x": 0.685,
     "y": 0.4235,
     "scale": 0.5
    },
    {
     "sprite": "pumpkin",
     "x": 0.4075,
     "y": 0.2588,
     "scale": 0.5
    },
    {
     "sprite": "pumpkin",
     "x": 0.5925,
     "y": 0.2588,
     "scale": 0.5
    },
    {
     "sprite": "pumpkin_giant",
     "x": 0.5,
     "y": 0.0941,
     "scale": 0.26
    }
   ],
   "group": "ch2",
   "load": "ch2",
   "note": "showpiece \"Pumpkin Pyramid\" (5 bells): one body, topples/tumbles when a burp of x5+ reaches it; pivot = base centre. the 2-8 set piece as one picture (map/cards). In play build it from 15 pumpkin bodies: meta \"layout\" = sprite, x/y (0..1 of this image, ground contact), scale; the trestle alone is show_pumpkin_trestle"
  },
  "show_pumpkin_trestle": {
   "file": "sprites/show_pumpkin_trestle.png",
   "w": 192.0,
   "h": 42.5,
   "pivot": [
    0.5,
    1.0118
   ],
   "joints": {
    "bell_1": [
     0.2049,
     0.2092
    ],
    "bell_2": [
     0.3524,
     0.2641
    ],
    "bell_3": [
     0.5,
     0.2824
    ],
    "bell_4": [
     0.6476,
     0.2641
    ],
    "bell_5": [
     0.7951,
     0.2092
    ]
   },
   "bells": 5,
   "group": "ch2",
   "load": "ch2",
   "note": "Harvest Show trestle with the 5-bell ribbon (stack the 15 pumpkin bodies of show_pumpkin_pyramid.layout on it)"
  },
  "show_rhubarb_arch": {
   "file": "sprites/show_rhubarb_arch.png",
   "w": 142.0,
   "h": 124.5,
   "pivot": [
    0.588,
    0.992
   ],
   "joints": {
    "bell_1": [
     0.4401,
     0.4635
    ],
    "bell_2": [
     0.5387,
     0.4763
    ],
    "bell_3": [
     0.6373,
     0.4763
    ],
    "bell_4": [
     0.7359,
     0.4635
    ]
   },
   "bells": 4,
   "group": "ch2",
   "load": "ch2",
   "note": "showpiece \"Rhubarb Arch\" (4 bells): one body, topples/tumbles when a burp of x4+ reaches it; pivot = base centre. "
  },
  "show_roller_wedge": {
   "file": "sprites/show_roller_wedge.png",
   "w": 43.0,
   "h": 27.0,
   "pivot": [
    0.5,
    1.0037
   ],
   "group": "ch3",
   "load": "ch3",
   "note": "wooden wedge chocking the Great Roller (flies off spinning on the x5 burp)"
  },
  "show_rose_bower": {
   "file": "sprites/show_rose_bower.png",
   "w": 137.0,
   "h": 125.0,
   "pivot": [
    0.5073,
    0.992
   ],
   "joints": {
    "bell_1": [
     0.3321,
     0.3318
    ],
    "bell_2": [
     0.4489,
     0.3498
    ],
    "bell_3": [
     0.5657,
     0.3498
    ],
    "bell_4": [
     0.6825,
     0.3318
    ]
   },
   "bells": 4,
   "group": "ch3",
   "load": "ch3",
   "note": "showpiece \"Rose Bower\" (4 bells): one body, topples/tumbles when a burp of x4+ reaches it; pivot = base centre. arch of roses over a bench"
  },
  "show_seed_tray_tower": {
   "file": "sprites/show_seed_tray_tower.png",
   "w": 103.0,
   "h": 109.0,
   "pivot": [
    0.4951,
    1.0183
   ],
   "joints": {
    "bell_1": [
     0.301,
     0.5344
    ],
    "bell_2": [
     0.4951,
     0.5505
    ],
    "bell_3": [
     0.6893,
     0.5344
    ]
   },
   "bells": 3,
   "group": "ch2",
   "load": "ch2",
   "note": "showpiece \"Seed-Tray Tower\" (3 bells): one body, topples/tumbles when a burp of x3+ reaches it; pivot = base centre. "
  },
  "show_seven_tier_cake": {
   "file": "sprites/show_seven_tier_cake.png",
   "w": 136.0,
   "h": 199.0,
   "pivot": [
    0.5,
    1.0377
   ],
   "joints": {
    "bell_1": [
     0.2353,
     0.814
    ],
    "bell_2": [
     0.4118,
     0.8252
    ],
    "bell_3": [
     0.5882,
     0.8252
    ],
    "bell_4": [
     0.7647,
     0.814
    ]
   },
   "bells": 4,
   "group": "ch1",
   "load": "ch1",
   "note": "showpiece \"Seven-Tier Cake\" (4 bells): one body, topples/tumbles when a burp of x4+ reaches it; pivot = base centre. the 1-8 cake as one picture (map/cards); in play use cake_tier_1..7 + cake_plate (they topple tier by tier)"
  },
  "show_silver_cup_stand": {
   "file": "sprites/show_silver_cup_stand.png",
   "w": 116.0,
   "h": 127.5,
   "pivot": [
    0.5,
    0.9922
   ],
   "joints": {
    "bell_1": [
     0.2845,
     0.8686
    ],
    "bell_2": [
     0.5,
     0.8824
    ],
    "bell_3": [
     0.7155,
     0.8686
    ]
   },
   "bells": 3,
   "group": "ch1",
   "load": "ch1",
   "note": "showpiece \"Silver Cup Stand\" (3 bells): one body, topples/tumbles when a burp of x3+ reaches it; pivot = base centre. trophy cups on a brass stand"
  },
  "show_strawberry_tower": {
   "file": "sprites/show_strawberry_tower.png",
   "w": 106.0,
   "h": 101.5,
   "pivot": [
    0.5,
    0.9901
   ],
   "joints": {
    "bell_1": [
     0.2877,
     0.835
    ],
    "bell_2": [
     0.5,
     0.8522
    ],
    "bell_3": [
     0.7123,
     0.835
    ]
   },
   "bells": 3,
   "group": "ch1",
   "load": "ch1",
   "note": "showpiece \"Strawberry Tower\" (3 bells): one body, topples/tumbles when a burp of x3+ reaches it; pivot = base centre. a cone of strawberries"
  },
  "show_tea_tent_cake": {
   "file": "sprites/show_tea_tent_cake.png",
   "w": 102.0,
   "h": 93.0,
   "pivot": [
    0.5,
    1.0
   ],
   "joints": {
    "bell_1": [
     0.3791,
     0.7551
    ],
    "bell_2": [
     0.6209,
     0.7551
    ]
   },
   "bells": 2,
   "group": "ch1",
   "load": "ch1",
   "note": "showpiece \"Tea-Tent Cake\" (2 bells): one body, topples/tumbles when a burp of x2+ reaches it; pivot = base centre. a striped cake shaped like the tea tent"
  },
  "show_teacup_tower": {
   "file": "sprites/show_teacup_tower.png",
   "w": 86.0,
   "h": 111.5,
   "pivot": [
    0.5,
    0.991
   ],
   "joints": {
    "bell_1": [
     0.2558,
     0.8787
    ],
    "bell_2": [
     0.4186,
     0.8988
    ],
    "bell_3": [
     0.5814,
     0.8988
    ],
    "bell_4": [
     0.7442,
     0.8787
    ]
   },
   "bells": 4,
   "group": "ch3",
   "load": "ch3",
   "note": "showpiece \"Teacup Tower\" (4 bells): one body, topples/tumbles when a burp of x4+ reaches it; pivot = base centre. "
  },
  "show_tomato_tower": {
   "file": "sprites/show_tomato_tower.png",
   "w": 86.0,
   "h": 114.5,
   "pivot": [
    0.5,
    0.9913
   ],
   "joints": {
    "bell_1": [
     0.2965,
     0.6354
    ],
    "bell_2": [
     0.5,
     0.6507
    ],
    "bell_3": [
     0.7035,
     0.6354
    ]
   },
   "bells": 3,
   "group": "ch2",
   "load": "ch2",
   "note": "showpiece \"Tomato Tower\" (3 bells): one body, topples/tumbles when a burp of x3+ reaches it; pivot = base centre. "
  },
  "show_topiary_peacocks": {
   "file": "sprites/show_topiary_peacocks.png",
   "w": 182.0,
   "h": 104.0,
   "pivot": [
    0.5,
    0.9904
   ],
   "joints": {
    "bell_1": [
     0.294,
     0.7524
    ],
    "bell_2": [
     0.5,
     0.7692
    ],
    "bell_3": [
     0.706,
     0.7524
    ]
   },
   "bells": 3,
   "group": "ch1",
   "load": "ch1",
   "note": "showpiece \"Topiary Peacocks\" (3 bells): one body, topples/tumbles when a burp of x3+ reaches it; pivot = base centre. two clipped peacocks on one plinth"
  },
  "show_watering_can_fountain": {
   "file": "sprites/show_watering_can_fountain.png",
   "w": 106.0,
   "h": 87.5,
   "pivot": [
    0.5,
    0.9886
   ],
   "joints": {
    "bell_1": [
     0.2453,
     0.7998
    ],
    "bell_2": [
     0.4151,
     0.8254
    ],
    "bell_3": [
     0.5849,
     0.8254
    ],
    "bell_4": [
     0.7547,
     0.7998
    ]
   },
   "bells": 4,
   "group": "ch2",
   "load": "ch2",
   "note": "showpiece \"Watering-Can Fountain\" (4 bells): one body, topples/tumbles when a burp of x4+ reaches it; pivot = base centre. watering cans stacked, pouring"
  },
  "skim_ridge": {
   "file": "sprites/skim_ridge.png",
   "w": 90.0,
   "h": 15.0,
   "pivot": [
    0.5,
    0.9
   ],
   "group": "ch1",
   "load": "ch1",
   "note": "skim ridge: the lawn bulges where he runs just under the turf (follow him, fade 0.6 s)"
  },
  "slate_board": {
   "file": "sprites/slate_board.png",
   "w": 112.0,
   "h": 103.0,
   "pivot": [
    0.5,
    0.9783
   ],
   "group": "hub",
   "load": "hub",
   "note": "potting-shed slate (Today's party): live chalk-white text in the dark panel (cream, display font)"
  },
  "sorrel_belly_1": {
   "file": "sprites/sorrel_belly_1.png",
   "w": 91.0,
   "h": 86.0,
   "pivot": [
    0.7492,
    0.5
   ],
   "joints": {
    "back": [
     0.2508,
     0.5
    ]
   },
   "seg_len": 45.4,
   "group": "sorrel",
   "load": "twop",
   "note": "belly x1 (score multiplier x1); pivot = front joint on shoulders \"back\"; hips go on its \"back\""
  },
  "sorrel_belly_2": {
   "file": "sprites/sorrel_belly_2.png",
   "w": 107.5,
   "h": 101.0,
   "pivot": [
    0.7487,
    0.5
   ],
   "joints": {
    "back": [
     0.2513,
     0.5
    ]
   },
   "seg_len": 53.5,
   "group": "sorrel",
   "load": "twop",
   "note": "belly x2 (score multiplier x2); pivot = front joint on shoulders \"back\"; hips go on its \"back\""
  },
  "sorrel_belly_3": {
   "file": "sprites/sorrel_belly_3.png",
   "w": 126.0,
   "h": 119.0,
   "pivot": [
    0.7507,
    0.5
   ],
   "joints": {
    "back": [
     0.2493,
     0.5
    ]
   },
   "seg_len": 63.2,
   "group": "sorrel",
   "load": "twop",
   "note": "belly x3 (score multiplier x3); pivot = front joint on shoulders \"back\"; hips go on its \"back\""
  },
  "sorrel_belly_4": {
   "file": "sprites/sorrel_belly_4.png",
   "w": 147.0,
   "h": 138.0,
   "pivot": [
    0.7498,
    0.5
   ],
   "joints": {
    "back": [
     0.2502,
     0.5
    ]
   },
   "seg_len": 73.4,
   "group": "sorrel",
   "load": "twop",
   "note": "belly x4 (score multiplier x4); pivot = front joint on shoulders \"back\"; hips go on its \"back\""
  },
  "sorrel_belly_5": {
   "file": "sprites/sorrel_belly_5.png",
   "w": 168.0,
   "h": 158.0,
   "pivot": [
    0.7507,
    0.5
   ],
   "joints": {
    "back": [
     0.2493,
     0.5
    ]
   },
   "seg_len": 84.2,
   "group": "sorrel",
   "load": "twop",
   "note": "belly x5 (score multiplier x5); pivot = front joint on shoulders \"back\"; hips go on its \"back\""
  },
  "sorrel_belly_pop": {
   "file": "sprites/sorrel_belly_pop.png",
   "w": 98.0,
   "h": 68.0,
   "pivot": [
    0.7347,
    0.5
   ],
   "joints": {
    "back": [
     0.2653,
     0.5
    ]
   },
   "seg_len": 46.0,
   "group": "sorrel",
   "load": "twop",
   "note": "belly right after a rake/holly pop (deflated, wrinkles), then back to belly_1"
  },
  "sorrel_door": {
   "file": "sprites/sorrel_door.png",
   "w": 102.0,
   "h": 112.0,
   "pivot": [
    0.5,
    0.9968
   ],
   "group": "hub",
   "load": "hub",
   "note": "Sorrel's round door at the end of the side tunnel (Two players)"
  },
  "sorrel_foot": {
   "file": "sprites/sorrel_foot.png",
   "w": 36.5,
   "h": 28.0,
   "pivot": [
    0.3151,
    0.1071
   ],
   "group": "sorrel",
   "load": "twop",
   "note": "hind foot, pivot = ankle"
  },
  "sorrel_foot_far": {
   "file": "sprites/sorrel_foot_far.png",
   "w": 36.5,
   "h": 28.0,
   "pivot": [
    0.3151,
    0.1071
   ],
   "group": "sorrel",
   "load": "twop",
   "note": "hind foot, pivot = ankle (far side)"
  },
  "sorrel_head_blink": {
   "file": "sprites/sorrel_head_blink.png",
   "w": 114.5,
   "h": 82.5,
   "pivot": [
    0.0393,
    0.5576
   ],
   "joints": {
    "back": [
     0.0393,
     0.5576
    ],
    "nose": [
     0.9127,
     0.5091
    ],
    "specs": [
     0.5895,
     0.3273
    ],
    "mouth": [
     0.7729,
     0.8
    ],
    "hat": [
     0.3537,
     0.0364
    ]
   },
   "group": "sorrel",
   "load": "twop",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "sorrel_head_breach": {
   "file": "sprites/sorrel_head_breach.png",
   "w": 114.5,
   "h": 82.5,
   "pivot": [
    0.0393,
    0.5576
   ],
   "joints": {
    "back": [
     0.0393,
     0.5576
    ],
    "nose": [
     0.9127,
     0.5091
    ],
    "specs": [
     0.5895,
     0.3273
    ],
    "mouth": [
     0.7729,
     0.8
    ],
    "hat": [
     0.3537,
     0.0364
    ]
   },
   "group": "sorrel",
   "load": "twop",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "sorrel_head_burp": {
   "file": "sprites/sorrel_head_burp.png",
   "w": 115.5,
   "h": 85.0,
   "pivot": [
    0.039,
    0.5412
   ],
   "joints": {
    "back": [
     0.039,
     0.5412
    ],
    "nose": [
     0.9048,
     0.4941
    ],
    "specs": [
     0.5844,
     0.3176
    ],
    "mouth": [
     0.7662,
     0.7765
    ],
    "hat": [
     0.3506,
     0.0353
    ]
   },
   "group": "sorrel",
   "load": "twop",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "sorrel_head_burp_huge": {
   "file": "sprites/sorrel_head_burp_huge.png",
   "w": 117.0,
   "h": 89.0,
   "pivot": [
    0.0385,
    0.5169
   ],
   "joints": {
    "back": [
     0.0385,
     0.5169
    ],
    "nose": [
     0.8932,
     0.4719
    ],
    "specs": [
     0.5769,
     0.3034
    ],
    "mouth": [
     0.7564,
     0.7416
    ],
    "hat": [
     0.3462,
     0.0337
    ]
   },
   "group": "sorrel2",
   "load": "twop",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "sorrel_head_burp_small": {
   "file": "sprites/sorrel_head_burp_small.png",
   "w": 114.5,
   "h": 82.5,
   "pivot": [
    0.0393,
    0.5576
   ],
   "joints": {
    "back": [
     0.0393,
     0.5576
    ],
    "nose": [
     0.9127,
     0.5091
    ],
    "specs": [
     0.5895,
     0.3273
    ],
    "mouth": [
     0.7729,
     0.8
    ],
    "hat": [
     0.3537,
     0.0364
    ]
   },
   "group": "sorrel2",
   "load": "twop",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "sorrel_head_calm": {
   "file": "sprites/sorrel_head_calm.png",
   "w": 114.5,
   "h": 82.5,
   "pivot": [
    0.0393,
    0.5576
   ],
   "joints": {
    "back": [
     0.0393,
     0.5576
    ],
    "nose": [
     0.9127,
     0.5091
    ],
    "specs": [
     0.5895,
     0.3273
    ],
    "mouth": [
     0.7729,
     0.8
    ],
    "hat": [
     0.3537,
     0.0364
    ]
   },
   "group": "sorrel",
   "load": "twop",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "sorrel_head_cheer": {
   "file": "sprites/sorrel_head_cheer.png",
   "w": 114.5,
   "h": 82.5,
   "pivot": [
    0.0393,
    0.5576
   ],
   "joints": {
    "back": [
     0.0393,
     0.5576
    ],
    "nose": [
     0.9127,
     0.5091
    ],
    "specs": [
     0.5895,
     0.3273
    ],
    "mouth": [
     0.7729,
     0.8
    ],
    "hat": [
     0.3537,
     0.0364
    ]
   },
   "group": "sorrel2",
   "load": "twop",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "sorrel_head_dizzy": {
   "file": "sprites/sorrel_head_dizzy.png",
   "w": 114.5,
   "h": 82.5,
   "pivot": [
    0.0393,
    0.5576
   ],
   "joints": {
    "back": [
     0.0393,
     0.5576
    ],
    "nose": [
     0.9127,
     0.5091
    ],
    "specs": [
     0.5895,
     0.3273
    ],
    "mouth": [
     0.7729,
     0.8
    ],
    "hat": [
     0.3537,
     0.0364
    ]
   },
   "group": "sorrel",
   "load": "twop",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "sorrel_head_giggle": {
   "file": "sprites/sorrel_head_giggle.png",
   "w": 114.5,
   "h": 82.5,
   "pivot": [
    0.0393,
    0.5576
   ],
   "joints": {
    "back": [
     0.0393,
     0.5576
    ],
    "nose": [
     0.9127,
     0.5091
    ],
    "specs": [
     0.5895,
     0.3273
    ],
    "mouth": [
     0.7729,
     0.8
    ],
    "hat": [
     0.3537,
     0.0364
    ]
   },
   "group": "sorrel2",
   "load": "twop",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "sorrel_head_gulp": {
   "file": "sprites/sorrel_head_gulp.png",
   "w": 114.0,
   "h": 90.0,
   "pivot": [
    0.0395,
    0.5111
   ],
   "joints": {
    "back": [
     0.0395,
     0.5111
    ],
    "nose": [
     0.9167,
     0.4667
    ],
    "specs": [
     0.5921,
     0.3
    ],
    "mouth": [
     0.7763,
     0.7333
    ],
    "hat": [
     0.3553,
     0.0333
    ]
   },
   "group": "sorrel",
   "load": "twop",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "sorrel_head_happy": {
   "file": "sprites/sorrel_head_happy.png",
   "w": 114.5,
   "h": 82.5,
   "pivot": [
    0.0393,
    0.5576
   ],
   "joints": {
    "back": [
     0.0393,
     0.5576
    ],
    "nose": [
     0.9127,
     0.5091
    ],
    "specs": [
     0.5895,
     0.3273
    ],
    "mouth": [
     0.7729,
     0.8
    ],
    "hat": [
     0.3537,
     0.0364
    ]
   },
   "group": "sorrel",
   "load": "twop",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "sorrel_head_pop": {
   "file": "sprites/sorrel_head_pop.png",
   "w": 114.5,
   "h": 82.5,
   "pivot": [
    0.0393,
    0.5576
   ],
   "joints": {
    "back": [
     0.0393,
     0.5576
    ],
    "nose": [
     0.9127,
     0.5091
    ],
    "specs": [
     0.5895,
     0.3273
    ],
    "mouth": [
     0.7729,
     0.8
    ],
    "hat": [
     0.3537,
     0.0364
    ]
   },
   "group": "sorrel",
   "load": "twop",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "sorrel_head_sad": {
   "file": "sprites/sorrel_head_sad.png",
   "w": 114.5,
   "h": 82.5,
   "pivot": [
    0.0393,
    0.5576
   ],
   "joints": {
    "back": [
     0.0393,
     0.5576
    ],
    "nose": [
     0.9127,
     0.5091
    ],
    "specs": [
     0.5895,
     0.3273
    ],
    "mouth": [
     0.7729,
     0.8
    ],
    "hat": [
     0.3537,
     0.0364
    ]
   },
   "group": "sorrel2",
   "load": "twop",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "sorrel_head_sniff": {
   "file": "sprites/sorrel_head_sniff.png",
   "w": 114.5,
   "h": 82.5,
   "pivot": [
    0.0393,
    0.5576
   ],
   "joints": {
    "back": [
     0.0393,
     0.5576
    ],
    "nose": [
     0.9127,
     0.5091
    ],
    "specs": [
     0.5895,
     0.3273
    ],
    "mouth": [
     0.7729,
     0.8
    ],
    "hat": [
     0.3537,
     0.0364
    ]
   },
   "group": "sorrel",
   "load": "twop",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "sorrel_head_sulk": {
   "file": "sprites/sorrel_head_sulk.png",
   "w": 114.5,
   "h": 82.5,
   "pivot": [
    0.0393,
    0.5576
   ],
   "joints": {
    "back": [
     0.0393,
     0.5576
    ],
    "nose": [
     0.9127,
     0.5091
    ],
    "specs": [
     0.5895,
     0.3273
    ],
    "mouth": [
     0.7729,
     0.8
    ],
    "hat": [
     0.3537,
     0.0364
    ]
   },
   "group": "sorrel",
   "load": "twop",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "sorrel_head_wave": {
   "file": "sprites/sorrel_head_wave.png",
   "w": 114.5,
   "h": 82.5,
   "pivot": [
    0.0393,
    0.5576
   ],
   "joints": {
    "back": [
     0.0393,
     0.5576
    ],
    "nose": [
     0.9127,
     0.5091
    ],
    "specs": [
     0.5895,
     0.3273
    ],
    "mouth": [
     0.7729,
     0.8
    ],
    "hat": [
     0.3537,
     0.0364
    ]
   },
   "group": "sorrel2",
   "load": "twop",
   "note": "head (root of the chain); faces right; pivot = neck; place shoulders' pivot at \"back\"; specs/frame_*/lost_specs_* pivot on \"specs\"; hat_* pivot on \"hat\""
  },
  "sorrel_hips": {
   "file": "sprites/sorrel_hips.png",
   "w": 82.0,
   "h": 76.0,
   "pivot": [
    0.7683,
    0.5
   ],
   "joints": {
    "back": [
     0.2317,
     0.5
    ],
    "tail": [
     0.0732,
     0.4079
    ],
    "foot_near": [
     0.3902,
     0.8684
    ],
    "foot_far": [
     0.4878,
     0.8026
    ]
   },
   "seg_len": 44.0,
   "group": "sorrel",
   "load": "twop",
   "note": "hip segment, pivot = front joint on the belly \"back\"; tail + feet joints"
  },
  "sorrel_paw": {
   "file": "sprites/sorrel_paw.png",
   "w": 40.5,
   "h": 59.0,
   "pivot": [
    0.4568,
    0.1017
   ],
   "group": "sorrel",
   "load": "twop",
   "note": "front paw (spade hand), pivot = wrist; hangs down at angle 0; rotate to dig"
  },
  "sorrel_paw_far": {
   "file": "sprites/sorrel_paw_far.png",
   "w": 40.5,
   "h": 59.0,
   "pivot": [
    0.4568,
    0.1017
   ],
   "group": "sorrel",
   "load": "twop",
   "note": "front paw (spade hand), pivot = wrist; hangs down at angle 0; rotate to dig (far side, darker)"
  },
  "sorrel_paw_scoop": {
   "file": "sprites/sorrel_paw_scoop.png",
   "w": 46.0,
   "h": 53.5,
   "pivot": [
    0.3804,
    0.1121
   ],
   "swim": "swim cycle, 6 frames at 12 fps (near paw; far paw = the same sequence 3 frames later, drawn under the body): 1 paw_spread -40 deg, 2 paw_spread 0, 3 paw_scoop 35, 4 paw_scoop 70, 5 paw 40, 6 paw -5; hind feet swing +-20 deg in counter-phase; chain bends +-4 deg per segment with the stroke",
   "group": "sorrel2",
   "load": "twop",
   "note": "front paw cupped (the stroke that pulls soil back). swim cycle, 6 frames at 12 fps (near paw; far paw = the same sequence 3 frames later, drawn under the body): 1 paw_spread -40 deg, 2 paw_spread 0, 3 paw_scoop 35, 4 paw_scoop 70, 5 paw 40, 6 paw -5; hind feet swing +-20 deg in counter-phase; chain bends +-4 deg per segment with the stroke"
  },
  "sorrel_paw_spread": {
   "file": "sprites/sorrel_paw_spread.png",
   "w": 51.5,
   "h": 62.0,
   "pivot": [
    0.4272,
    0.0968
   ],
   "group": "sorrel",
   "load": "twop",
   "note": "front paw (spade hand), pivot = wrist; hangs down at angle 0; rotate to dig"
  },
  "sorrel_paw_spread_far": {
   "file": "sprites/sorrel_paw_spread_far.png",
   "w": 51.5,
   "h": 62.0,
   "pivot": [
    0.4272,
    0.0968
   ],
   "group": "sorrel",
   "load": "twop",
   "note": "front paw (spade hand), pivot = wrist; hangs down at angle 0; rotate to dig (far side, darker)"
  },
  "sorrel_paw_wave": {
   "file": "sprites/sorrel_paw_wave.png",
   "w": 52.5,
   "h": 62.0,
   "pivot": [
    0.4476,
    0.9032
   ],
   "group": "sorrel2",
   "load": "twop",
   "note": "front paw raised open, fingers up (wave: rock +-15 deg at 4 Hz about the wrist pivot)"
  },
  "sorrel_pose_wave": {
   "file": "sprites/sorrel_pose_wave.png",
   "w": 112.5,
   "h": 300.0,
   "pivot": [
    0.6978,
    0.8337
   ],
   "group": "poses",
   "load": "twop",
   "note": "Cousin Sorrel standing, waving (whole body, one sprite: cards, hub, result card; pivot = between the feet)"
  },
  "sorrel_scarf": {
   "file": "sprites/sorrel_scarf.png",
   "w": 72.0,
   "h": 45.0,
   "pivot": [
    0.5,
    0.2
   ],
   "group": "sorrel2",
   "load": "twop",
   "note": "Sorrel's green spotted neckerchief: pivot = knot; place at the shoulders pivot, rotate with the shoulders. With the cinnamon fur, snub nose and no spectacles it tells her from Delve at a glance"
  },
  "sorrel_shoulders": {
   "file": "sprites/sorrel_shoulders.png",
   "w": 94.0,
   "h": 86.0,
   "pivot": [
    0.766,
    0.5
   ],
   "joints": {
    "back": [
     0.2553,
     0.5
    ],
    "paw_near": [
     0.6277,
     0.8372
    ],
    "paw_far": [
     0.734,
     0.7674
    ]
   },
   "seg_len": 48.0,
   "group": "sorrel",
   "load": "twop",
   "note": "shoulder segment, pivot = front joint (goes on the head \"back\"); paws hang from paw_near / paw_far"
  },
  "sorrel_tail": {
   "file": "sprites/sorrel_tail.png",
   "w": 38.5,
   "h": 13.5,
   "pivot": [
    0.9091,
    0.5926
   ],
   "group": "sorrel",
   "load": "twop",
   "note": "stub tail, pivot = root (right end); attach at hips \"tail\""
  },
  "souvenir_marquee_flag": {
   "file": "sprites/souvenir_marquee_flag.png",
   "w": 63.0,
   "h": 65.0,
   "pivot": [
    0.0397,
    1.0062
   ],
   "group": "hub",
   "load": "hub",
   "note": "souvenir: the marquee's top flag (1-8)"
  },
  "souvenir_napkin": {
   "file": "sprites/souvenir_napkin.png",
   "w": 62.0,
   "h": 52.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "hub",
   "load": "hub",
   "note": "souvenir: the King's napkin with a cake smudge (ending)"
  },
  "souvenir_pennant": {
   "file": "sprites/souvenir_pennant.png",
   "w": 53.5,
   "h": 65.0,
   "pivot": [
    0.0467,
    1.0062
   ],
   "group": "hub",
   "load": "hub",
   "note": "souvenir: the tea-tent pennant (1-1)"
  },
  "souvenir_rosette": {
   "file": "sprites/souvenir_rosette.png",
   "w": 54.0,
   "h": 73.0,
   "pivot": [
    0.5,
    0.3808
   ],
   "group": "hub",
   "load": "hub",
   "note": "souvenir: the Harvest Show rosette (2-8), green (the result rosette is red)"
  },
  "spectacle_shelf": {
   "file": "sprites/spectacle_shelf.png",
   "w": 360.0,
   "h": 234.0,
   "pivot": [
    0.5,
    0.4893
   ],
   "joints": {
    "slot_01": [
     0.0833,
     0.1261
    ],
    "slot_02": [
     0.25,
     0.1261
    ],
    "slot_03": [
     0.4167,
     0.1261
    ],
    "slot_04": [
     0.5833,
     0.1261
    ],
    "slot_05": [
     0.75,
     0.1261
    ],
    "slot_06": [
     0.9167,
     0.1261
    ],
    "slot_07": [
     0.0833,
     0.3611
    ],
    "slot_08": [
     0.25,
     0.3611
    ],
    "slot_09": [
     0.4167,
     0.3611
    ],
    "slot_10": [
     0.5833,
     0.3611
    ],
    "slot_11": [
     0.75,
     0.3611
    ],
    "slot_12": [
     0.9167,
     0.3611
    ],
    "slot_13": [
     0.0833,
     0.5962
    ],
    "slot_14": [
     0.25,
     0.5962
    ],
    "slot_15": [
     0.4167,
     0.5962
    ],
    "slot_16": [
     0.5833,
     0.5962
    ],
    "slot_17": [
     0.75,
     0.5962
    ],
    "slot_18": [
     0.9167,
     0.5962
    ],
    "slot_19": [
     0.0833,
     0.8312
    ],
    "slot_20": [
     0.25,
     0.8312
    ],
    "slot_21": [
     0.4167,
     0.8312
    ],
    "slot_22": [
     0.5833,
     0.8312
    ],
    "slot_23": [
     0.75,
     0.8312
    ],
    "slot_24": [
     0.9167,
     0.8312
    ]
   },
   "group": "hub",
   "load": "hub",
   "note": "spectacle shelf, 4 shelves x 6 = 24 slots (joints slot_01..24, party order): draw lost_specs_NN (found) or lost_specs_locked at scale 0.8"
  },
  "sprinkler": {
   "file": "sprites/sprinkler.png",
   "w": 22.0,
   "h": 31.5,
   "pivot": [
    0.5,
    0.9746
   ],
   "group": "hazard",
   "load": "common",
   "note": "sprinkler head (its spray pushes the mole aside; harmless)"
  },
  "sprinkler_spray": {
   "file": "sprites/sprinkler_spray.png",
   "w": 92.0,
   "h": 40.5,
   "pivot": [
    0.5,
    1.2716
   ],
   "group": "hazard",
   "load": "common",
   "note": "spray arcs (2 frames: draw flipped every 0.15 s)"
  },
  "star_empty": {
   "file": "sprites/star_empty.png",
   "w": 50.0,
   "h": 34.0,
   "pivot": [
    0.5,
    0.4412
   ],
   "first": true,
   "group": "ui",
   "load": "first"
  },
  "star_full": {
   "file": "sprites/star_full.png",
   "w": 50.0,
   "h": 38.0,
   "pivot": [
    0.5,
    0.5
   ],
   "first": true,
   "group": "ui",
   "load": "first",
   "note": "party star = a molehill with a pennant"
  },
  "stone_a": {
   "file": "sprites/stone_a.png",
   "w": 38.5,
   "h": 26.5,
   "pivot": [
    0.5974,
    0.5094
   ],
   "group": "underground",
   "load": "common",
   "note": "buried stone (solid)"
  },
  "stone_b": {
   "file": "sprites/stone_b.png",
   "w": 45.5,
   "h": 23.5,
   "pivot": [
    0.4945,
    0.5957
   ],
   "group": "underground",
   "load": "common",
   "note": "buried stone (solid)"
  },
  "stone_c": {
   "file": "sprites/stone_c.png",
   "w": 24.0,
   "h": 18.5,
   "pivot": [
    0.9583,
    0.7568
   ],
   "group": "underground",
   "load": "common",
   "note": "buried stone (solid)"
  },
  "strata_1": {
   "file": "sprites/strata_1.png",
   "w": 256.0,
   "h": 450.0,
   "pivot": [
    0.0,
    0.0
   ],
   "first": true,
   "group": "scene",
   "load": "first",
   "note": "underground strata, chapter 1: 512x900 PNG = 256x450 at 1280x720, tile horizontally; top = lawn line. Tunnels are drawn on top in code (fill velvet_m #3F2D28, edge loam_d #533829)"
  },
  "strata_2": {
   "file": "sprites/strata_2.png",
   "w": 256.0,
   "h": 450.0,
   "pivot": [
    0.0,
    0.0
   ],
   "group": "scene",
   "load": "ch2",
   "note": "underground strata, chapter 2: 512x900 PNG = 256x450 at 1280x720, tile horizontally; top = lawn line. Tunnels are drawn on top in code (fill velvet_m #3F2D28, edge loam_d #533829)"
  },
  "strata_3": {
   "file": "sprites/strata_3.png",
   "w": 256.0,
   "h": 450.0,
   "pivot": [
    0.0,
    0.0
   ],
   "group": "scene",
   "load": "ch3",
   "note": "underground strata, chapter 3: 512x900 PNG = 256x450 at 1280x720, tile horizontally; top = lawn line. Tunnels are drawn on top in code (fill velvet_m #3F2D28, edge loam_d #533829)"
  },
  "sun_bonnet": {
   "file": "sprites/sun_bonnet.png",
   "w": 51.5,
   "h": 36.0,
   "pivot": [
    0.5049,
    0.4861
   ],
   "group": "ch1",
   "load": "ch1",
   "note": "sun bonnet (flies off guests like the boater)"
  },
  "sundial": {
   "file": "sprites/sundial.png",
   "w": 82.0,
   "h": 92.0,
   "pivot": [
    0.5,
    0.9843
   ],
   "group": "hub",
   "load": "hub",
   "note": "the sundial under the ceiling hole (Long Summer); locked: icon_lock on it"
  },
  "tag_label": {
   "file": "sprites/tag_label.png",
   "w": 109.0,
   "h": 34.0,
   "pivot": [
    0.5046,
    0.5147
   ],
   "first": true,
   "slice": [
    40,
    20,
    20,
    20
   ],
   "group": "ui",
   "load": "first",
   "note": "wooden tag label (hub, map)"
  },
  "tea_table": {
   "file": "sprites/tea_table.png",
   "w": 120.0,
   "h": 59.0,
   "pivot": [
    0.5,
    0.9603
   ],
   "joints": {
    "top_l": [
     0.25,
     0.0
    ],
    "top_c": [
     0.5,
     0.0
    ],
    "top_r": [
     0.75,
     0.0
    ]
   },
   "first": true,
   "group": "props",
   "load": "first",
   "note": "tea table (cloth); teapot/cups/food sit on the top_* joints; knocked flying as one body"
  },
  "teacup": {
   "file": "sprites/teacup.png",
   "w": 37.0,
   "h": 26.0,
   "pivot": [
    0.4622,
    0.5692
   ],
   "first": true,
   "group": "food",
   "load": "first",
   "note": "teacup (gulp item, also buried find)"
  },
  "teapot": {
   "file": "sprites/teapot.png",
   "w": 64.0,
   "h": 46.0,
   "pivot": [
    0.4922,
    1.0522
   ],
   "group": "food",
   "load": "common",
   "note": "teapot (on tea tables; knocked flying)"
  },
  "teaspoon": {
   "file": "sprites/teaspoon.png",
   "w": 42.0,
   "h": 20.0,
   "pivot": [
    0.4762,
    0.475
   ],
   "group": "ch1",
   "load": "ch1",
   "note": "buried silver teaspoon pickup (currency; spin as scaleX = cos t + glint)"
  },
  "terrace_steps": {
   "file": "sprites/terrace_steps.png",
   "w": 200.0,
   "h": 82.0,
   "pivot": [
    0.5,
    0.98
   ],
   "group": "ch3",
   "load": "ch3",
   "note": "terrace steps (3-5; solid: the mole goes under, bounces along the top)"
  },
  "tomato_plant": {
   "file": "sprites/tomato_plant.png",
   "w": 25.0,
   "h": 75.0,
   "pivot": [
    0.5,
    0.9845
   ],
   "group": "ch2",
   "load": "ch2",
   "note": "tomato plant on canes"
  },
  "tool_big_lungs": {
   "file": "sprites/tool_big_lungs.png",
   "w": 88.0,
   "h": 102.0,
   "pivot": [
    0.5,
    0.5147
   ],
   "group": "ui2",
   "load": "common",
   "note": "tool on a wooden tag: Big Lungs: a pair of garden bellows (bigger burp); locked: tool_locked"
  },
  "tool_claws": {
   "file": "sprites/tool_claws.png",
   "w": 88.0,
   "h": 101.0,
   "pivot": [
    0.5,
    0.5198
   ],
   "group": "ui2",
   "load": "common",
   "note": "tool on a wooden tag: Claws (turn tighter); locked: tool_locked"
  },
  "tool_locked": {
   "file": "sprites/tool_locked.png",
   "w": 88.0,
   "h": 101.0,
   "pivot": [
    0.5,
    0.5198
   ],
   "group": "ui2",
   "load": "common",
   "note": "a tool still locked (stars needed in live text)"
  },
  "tool_rubber_belly": {
   "file": "sprites/tool_rubber_belly.png",
   "w": 88.0,
   "h": 101.0,
   "pivot": [
    0.5,
    0.5198
   ],
   "group": "ui2",
   "load": "common",
   "note": "tool on a wooden tag: Rubber Belly (first tickle bounces off); locked: tool_locked"
  },
  "tool_wide_nose": {
   "file": "sprites/tool_wide_nose.png",
   "w": 88.0,
   "h": 101.0,
   "pivot": [
    0.5,
    0.5198
   ],
   "group": "ui2",
   "load": "common",
   "note": "tool on a wooden tag: Wide Nose (gulp further); locked: tool_locked"
  },
  "topiary_crown": {
   "file": "sprites/topiary_crown.png",
   "w": 97.0,
   "h": 102.0,
   "pivot": [
    0.5,
    0.9925
   ],
   "group": "props",
   "load": "ch3",
   "note": "crown-shaped topiary on a stone pot (palace terrace)"
  },
  "topiary_peacock": {
   "file": "sprites/topiary_peacock.png",
   "w": 123.0,
   "h": 151.5,
   "pivot": [
    0.5,
    0.9852
   ],
   "first": true,
   "group": "props",
   "load": "first",
   "note": "clipped peacock topiary (knocked flying as one body, sheds p_leaf)"
  },
  "topiary_tiers": {
   "file": "sprites/topiary_tiers.png",
   "w": 72.0,
   "h": 142.0,
   "pivot": [
    0.5,
    0.9868
   ],
   "group": "props",
   "load": "common",
   "note": "three-tier clipped topiary in a planter"
  },
  "tremor_ripple": {
   "file": "sprites/tremor_ripple.png",
   "w": 100.0,
   "h": 11.5,
   "pivot": [
    0.5,
    0.8696
   ],
   "group": "ch1",
   "load": "ch1",
   "note": "tremor ripple on the lawn surface before a breach (scale x 0.6 -> 1.2, 0.25 s)"
  },
  "twop_divider": {
   "file": "sprites/twop_divider.png",
   "w": 20.0,
   "h": 720.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "ui2",
   "load": "twop",
   "note": "2P split divider: a gardener's string line between two pegs (1440 px = full height at 2x)"
  },
  "twop_zone_p1": {
   "file": "sprites/twop_zone_p1.png",
   "w": 56.0,
   "h": 56.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "ui2",
   "load": "twop",
   "note": "2P: \"drag here\" hint in each half (brass)"
  },
  "twop_zone_p2": {
   "file": "sprites/twop_zone_p2.png",
   "w": 56.0,
   "h": 56.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "ui2",
   "load": "twop",
   "note": "2P: \"drag here\" hint in each half (green)"
  },
  "urn": {
   "file": "sprites/urn.png",
   "w": 43.0,
   "h": 60.0,
   "pivot": [
    0.5,
    0.97
   ],
   "group": "ch3",
   "load": "ch3",
   "note": "stone urn with a rose (terrace dressing; knocked flying)"
  },
  "watering_can": {
   "file": "sprites/watering_can.png",
   "w": 83.5,
   "h": 51.0,
   "pivot": [
    0.3293,
    0.9773
   ],
   "group": "ch2",
   "load": "ch2",
   "note": "watering can"
  },
  "well_arch": {
   "file": "sprites/well_arch.png",
   "w": 72.0,
   "h": 69.0,
   "pivot": [
    0.5,
    0.5
   ],
   "group": "ch3",
   "load": "ch3",
   "note": "old well arch buried in the soil (3-8 spectacles in it; solid dressing)"
  },
  "wheelbarrow": {
   "file": "sprites/wheelbarrow.png",
   "w": 101.5,
   "h": 51.5,
   "pivot": [
    0.4458,
    0.9981
   ],
   "group": "ch2",
   "load": "ch2",
   "note": "Primsby's wheelbarrow (the biggest pumpkin rolls into it; he sits in it: primsby_sit_barrow)"
  },
  "worm": {
   "file": "sprites/worm.png",
   "w": 49.5,
   "h": 17.0,
   "pivot": [
    0.5051,
    0.3824
   ],
   "group": "underground",
   "load": "common",
   "note": "earthworm (dressing; wriggles away, never eaten)"
  }
 }
}