///|
pub struct EngineProfile {
  name : String
  target : RuntimeTarget
  max_texture : Int
  max_frames : Int
  padding : Int
  scale : Int
  power_of_two : Bool
} derive(Debug, Eq, ToJson, FromJson)

///|
pub fn EngineProfile::options(self : EngineProfile) -> AtlasOptions {
  { max_width: self.max_texture, padding: self.padding }
}

///|
pub fn EngineProfile::adapter(self : EngineProfile) -> RuntimeAdapter {
  RuntimeAdapter::for_target(self.target)
}

///|
pub fn EngineProfile::usable_for(
  self : EngineProfile,
  sheet : SpriteSheet,
) -> Bool {
  sheet.frames.length() <= self.max_frames
}

///|
pub fn EngineProfile::to_json_string(
  self : EngineProfile,
  indent? : Int = 2,
) -> String {
  self.to_json().stringify(indent~)
}

///|
pub fn engine_profiles() -> Array[EngineProfile] {
  [
    {
      name: "profile_1",
      target: if 1 % 3 == 0 {
        Godot
      } else if 1 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 24,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_2",
      target: if 2 % 3 == 0 {
        Godot
      } else if 2 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 32,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_3",
      target: if 3 % 3 == 0 {
        Godot
      } else if 3 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 40,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_4",
      target: if 4 % 3 == 0 {
        Godot
      } else if 4 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 48,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_5",
      target: if 5 % 3 == 0 {
        Godot
      } else if 5 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1536,
      max_frames: 56,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_6",
      target: if 6 % 3 == 0 {
        Godot
      } else if 6 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1792,
      max_frames: 64,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_7",
      target: if 7 % 3 == 0 {
        Godot
      } else if 7 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 2048,
      max_frames: 72,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_8",
      target: if 8 % 3 == 0 {
        Godot
      } else if 8 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 256,
      max_frames: 80,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_9",
      target: if 9 % 3 == 0 {
        Godot
      } else if 9 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 88,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_10",
      target: if 10 % 3 == 0 {
        Godot
      } else if 10 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 96,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_11",
      target: if 11 % 3 == 0 {
        Godot
      } else if 11 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 104,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_12",
      target: if 12 % 3 == 0 {
        Godot
      } else if 12 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 16,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_13",
      target: if 13 % 3 == 0 {
        Godot
      } else if 13 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1536,
      max_frames: 24,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_14",
      target: if 14 % 3 == 0 {
        Godot
      } else if 14 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1792,
      max_frames: 32,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_15",
      target: if 15 % 3 == 0 {
        Godot
      } else if 15 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 2048,
      max_frames: 40,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_16",
      target: if 16 % 3 == 0 {
        Godot
      } else if 16 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 256,
      max_frames: 48,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_17",
      target: if 17 % 3 == 0 {
        Godot
      } else if 17 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 56,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_18",
      target: if 18 % 3 == 0 {
        Godot
      } else if 18 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 64,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_19",
      target: if 19 % 3 == 0 {
        Godot
      } else if 19 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 72,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_20",
      target: if 20 % 3 == 0 {
        Godot
      } else if 20 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 80,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_21",
      target: if 21 % 3 == 0 {
        Godot
      } else if 21 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1536,
      max_frames: 88,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_22",
      target: if 22 % 3 == 0 {
        Godot
      } else if 22 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1792,
      max_frames: 96,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_23",
      target: if 23 % 3 == 0 {
        Godot
      } else if 23 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 2048,
      max_frames: 104,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_24",
      target: if 24 % 3 == 0 {
        Godot
      } else if 24 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 256,
      max_frames: 16,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_25",
      target: if 25 % 3 == 0 {
        Godot
      } else if 25 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 24,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_26",
      target: if 26 % 3 == 0 {
        Godot
      } else if 26 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 32,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_27",
      target: if 27 % 3 == 0 {
        Godot
      } else if 27 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 40,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_28",
      target: if 28 % 3 == 0 {
        Godot
      } else if 28 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 48,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_29",
      target: if 29 % 3 == 0 {
        Godot
      } else if 29 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1536,
      max_frames: 56,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_30",
      target: if 30 % 3 == 0 {
        Godot
      } else if 30 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1792,
      max_frames: 64,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_31",
      target: if 31 % 3 == 0 {
        Godot
      } else if 31 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 2048,
      max_frames: 72,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_32",
      target: if 32 % 3 == 0 {
        Godot
      } else if 32 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 256,
      max_frames: 80,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_33",
      target: if 33 % 3 == 0 {
        Godot
      } else if 33 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 88,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_34",
      target: if 34 % 3 == 0 {
        Godot
      } else if 34 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 96,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_35",
      target: if 35 % 3 == 0 {
        Godot
      } else if 35 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 104,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_36",
      target: if 36 % 3 == 0 {
        Godot
      } else if 36 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 16,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_37",
      target: if 37 % 3 == 0 {
        Godot
      } else if 37 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1536,
      max_frames: 24,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_38",
      target: if 38 % 3 == 0 {
        Godot
      } else if 38 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1792,
      max_frames: 32,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_39",
      target: if 39 % 3 == 0 {
        Godot
      } else if 39 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 2048,
      max_frames: 40,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_40",
      target: if 40 % 3 == 0 {
        Godot
      } else if 40 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 256,
      max_frames: 48,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_41",
      target: if 41 % 3 == 0 {
        Godot
      } else if 41 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 56,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_42",
      target: if 42 % 3 == 0 {
        Godot
      } else if 42 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 64,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_43",
      target: if 43 % 3 == 0 {
        Godot
      } else if 43 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 72,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_44",
      target: if 44 % 3 == 0 {
        Godot
      } else if 44 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 80,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_45",
      target: if 45 % 3 == 0 {
        Godot
      } else if 45 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1536,
      max_frames: 88,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_46",
      target: if 46 % 3 == 0 {
        Godot
      } else if 46 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1792,
      max_frames: 96,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_47",
      target: if 47 % 3 == 0 {
        Godot
      } else if 47 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 2048,
      max_frames: 104,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_48",
      target: if 48 % 3 == 0 {
        Godot
      } else if 48 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 256,
      max_frames: 16,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_49",
      target: if 49 % 3 == 0 {
        Godot
      } else if 49 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 24,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_50",
      target: if 50 % 3 == 0 {
        Godot
      } else if 50 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 32,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_51",
      target: if 51 % 3 == 0 {
        Godot
      } else if 51 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 40,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_52",
      target: if 52 % 3 == 0 {
        Godot
      } else if 52 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 48,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_53",
      target: if 53 % 3 == 0 {
        Godot
      } else if 53 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1536,
      max_frames: 56,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_54",
      target: if 54 % 3 == 0 {
        Godot
      } else if 54 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1792,
      max_frames: 64,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_55",
      target: if 55 % 3 == 0 {
        Godot
      } else if 55 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 2048,
      max_frames: 72,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_56",
      target: if 56 % 3 == 0 {
        Godot
      } else if 56 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 256,
      max_frames: 80,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_57",
      target: if 57 % 3 == 0 {
        Godot
      } else if 57 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 88,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_58",
      target: if 58 % 3 == 0 {
        Godot
      } else if 58 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 96,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_59",
      target: if 59 % 3 == 0 {
        Godot
      } else if 59 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 104,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_60",
      target: if 60 % 3 == 0 {
        Godot
      } else if 60 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 16,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_61",
      target: if 61 % 3 == 0 {
        Godot
      } else if 61 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1536,
      max_frames: 24,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_62",
      target: if 62 % 3 == 0 {
        Godot
      } else if 62 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1792,
      max_frames: 32,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_63",
      target: if 63 % 3 == 0 {
        Godot
      } else if 63 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 2048,
      max_frames: 40,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_64",
      target: if 64 % 3 == 0 {
        Godot
      } else if 64 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 256,
      max_frames: 48,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_65",
      target: if 65 % 3 == 0 {
        Godot
      } else if 65 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 56,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_66",
      target: if 66 % 3 == 0 {
        Godot
      } else if 66 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 64,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_67",
      target: if 67 % 3 == 0 {
        Godot
      } else if 67 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 72,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_68",
      target: if 68 % 3 == 0 {
        Godot
      } else if 68 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 80,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_69",
      target: if 69 % 3 == 0 {
        Godot
      } else if 69 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1536,
      max_frames: 88,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_70",
      target: if 70 % 3 == 0 {
        Godot
      } else if 70 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1792,
      max_frames: 96,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_71",
      target: if 71 % 3 == 0 {
        Godot
      } else if 71 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 2048,
      max_frames: 104,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_72",
      target: if 72 % 3 == 0 {
        Godot
      } else if 72 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 256,
      max_frames: 16,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_73",
      target: if 73 % 3 == 0 {
        Godot
      } else if 73 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 24,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_74",
      target: if 74 % 3 == 0 {
        Godot
      } else if 74 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 32,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_75",
      target: if 75 % 3 == 0 {
        Godot
      } else if 75 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 40,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_76",
      target: if 76 % 3 == 0 {
        Godot
      } else if 76 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 48,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_77",
      target: if 77 % 3 == 0 {
        Godot
      } else if 77 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1536,
      max_frames: 56,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_78",
      target: if 78 % 3 == 0 {
        Godot
      } else if 78 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1792,
      max_frames: 64,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_79",
      target: if 79 % 3 == 0 {
        Godot
      } else if 79 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 2048,
      max_frames: 72,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_80",
      target: if 80 % 3 == 0 {
        Godot
      } else if 80 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 256,
      max_frames: 80,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_81",
      target: if 81 % 3 == 0 {
        Godot
      } else if 81 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 88,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_82",
      target: if 82 % 3 == 0 {
        Godot
      } else if 82 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 96,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_83",
      target: if 83 % 3 == 0 {
        Godot
      } else if 83 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 104,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_84",
      target: if 84 % 3 == 0 {
        Godot
      } else if 84 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 16,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_85",
      target: if 85 % 3 == 0 {
        Godot
      } else if 85 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1536,
      max_frames: 24,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_86",
      target: if 86 % 3 == 0 {
        Godot
      } else if 86 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1792,
      max_frames: 32,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_87",
      target: if 87 % 3 == 0 {
        Godot
      } else if 87 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 2048,
      max_frames: 40,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_88",
      target: if 88 % 3 == 0 {
        Godot
      } else if 88 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 256,
      max_frames: 48,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_89",
      target: if 89 % 3 == 0 {
        Godot
      } else if 89 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 56,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_90",
      target: if 90 % 3 == 0 {
        Godot
      } else if 90 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 64,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_91",
      target: if 91 % 3 == 0 {
        Godot
      } else if 91 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 72,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_92",
      target: if 92 % 3 == 0 {
        Godot
      } else if 92 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 80,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_93",
      target: if 93 % 3 == 0 {
        Godot
      } else if 93 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1536,
      max_frames: 88,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_94",
      target: if 94 % 3 == 0 {
        Godot
      } else if 94 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1792,
      max_frames: 96,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_95",
      target: if 95 % 3 == 0 {
        Godot
      } else if 95 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 2048,
      max_frames: 104,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_96",
      target: if 96 % 3 == 0 {
        Godot
      } else if 96 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 256,
      max_frames: 16,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_97",
      target: if 97 % 3 == 0 {
        Godot
      } else if 97 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 24,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_98",
      target: if 98 % 3 == 0 {
        Godot
      } else if 98 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 32,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_99",
      target: if 99 % 3 == 0 {
        Godot
      } else if 99 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 40,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_100",
      target: if 100 % 3 == 0 {
        Godot
      } else if 100 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 48,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_101",
      target: if 101 % 3 == 0 {
        Godot
      } else if 101 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1536,
      max_frames: 56,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_102",
      target: if 102 % 3 == 0 {
        Godot
      } else if 102 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1792,
      max_frames: 64,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_103",
      target: if 103 % 3 == 0 {
        Godot
      } else if 103 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 2048,
      max_frames: 72,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_104",
      target: if 104 % 3 == 0 {
        Godot
      } else if 104 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 256,
      max_frames: 80,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_105",
      target: if 105 % 3 == 0 {
        Godot
      } else if 105 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 88,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_106",
      target: if 106 % 3 == 0 {
        Godot
      } else if 106 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 96,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_107",
      target: if 107 % 3 == 0 {
        Godot
      } else if 107 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 104,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_108",
      target: if 108 % 3 == 0 {
        Godot
      } else if 108 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 16,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_109",
      target: if 109 % 3 == 0 {
        Godot
      } else if 109 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1536,
      max_frames: 24,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_110",
      target: if 110 % 3 == 0 {
        Godot
      } else if 110 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1792,
      max_frames: 32,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_111",
      target: if 111 % 3 == 0 {
        Godot
      } else if 111 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 2048,
      max_frames: 40,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_112",
      target: if 112 % 3 == 0 {
        Godot
      } else if 112 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 256,
      max_frames: 48,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_113",
      target: if 113 % 3 == 0 {
        Godot
      } else if 113 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 56,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_114",
      target: if 114 % 3 == 0 {
        Godot
      } else if 114 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 64,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_115",
      target: if 115 % 3 == 0 {
        Godot
      } else if 115 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 72,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_116",
      target: if 116 % 3 == 0 {
        Godot
      } else if 116 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 80,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_117",
      target: if 117 % 3 == 0 {
        Godot
      } else if 117 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1536,
      max_frames: 88,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_118",
      target: if 118 % 3 == 0 {
        Godot
      } else if 118 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1792,
      max_frames: 96,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_119",
      target: if 119 % 3 == 0 {
        Godot
      } else if 119 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 2048,
      max_frames: 104,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_120",
      target: if 120 % 3 == 0 {
        Godot
      } else if 120 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 256,
      max_frames: 16,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_121",
      target: if 121 % 3 == 0 {
        Godot
      } else if 121 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 24,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_122",
      target: if 122 % 3 == 0 {
        Godot
      } else if 122 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 32,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_123",
      target: if 123 % 3 == 0 {
        Godot
      } else if 123 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 40,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_124",
      target: if 124 % 3 == 0 {
        Godot
      } else if 124 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 48,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_125",
      target: if 125 % 3 == 0 {
        Godot
      } else if 125 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1536,
      max_frames: 56,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_126",
      target: if 126 % 3 == 0 {
        Godot
      } else if 126 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1792,
      max_frames: 64,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_127",
      target: if 127 % 3 == 0 {
        Godot
      } else if 127 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 2048,
      max_frames: 72,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_128",
      target: if 128 % 3 == 0 {
        Godot
      } else if 128 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 256,
      max_frames: 80,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_129",
      target: if 129 % 3 == 0 {
        Godot
      } else if 129 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 88,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_130",
      target: if 130 % 3 == 0 {
        Godot
      } else if 130 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 96,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_131",
      target: if 131 % 3 == 0 {
        Godot
      } else if 131 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 104,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_132",
      target: if 132 % 3 == 0 {
        Godot
      } else if 132 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 16,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_133",
      target: if 133 % 3 == 0 {
        Godot
      } else if 133 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1536,
      max_frames: 24,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_134",
      target: if 134 % 3 == 0 {
        Godot
      } else if 134 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1792,
      max_frames: 32,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_135",
      target: if 135 % 3 == 0 {
        Godot
      } else if 135 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 2048,
      max_frames: 40,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_136",
      target: if 136 % 3 == 0 {
        Godot
      } else if 136 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 256,
      max_frames: 48,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_137",
      target: if 137 % 3 == 0 {
        Godot
      } else if 137 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 56,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_138",
      target: if 138 % 3 == 0 {
        Godot
      } else if 138 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 64,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_139",
      target: if 139 % 3 == 0 {
        Godot
      } else if 139 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 72,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_140",
      target: if 140 % 3 == 0 {
        Godot
      } else if 140 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 80,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_141",
      target: if 141 % 3 == 0 {
        Godot
      } else if 141 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1536,
      max_frames: 88,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_142",
      target: if 142 % 3 == 0 {
        Godot
      } else if 142 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1792,
      max_frames: 96,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_143",
      target: if 143 % 3 == 0 {
        Godot
      } else if 143 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 2048,
      max_frames: 104,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_144",
      target: if 144 % 3 == 0 {
        Godot
      } else if 144 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 256,
      max_frames: 16,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_145",
      target: if 145 % 3 == 0 {
        Godot
      } else if 145 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 24,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_146",
      target: if 146 % 3 == 0 {
        Godot
      } else if 146 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 32,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_147",
      target: if 147 % 3 == 0 {
        Godot
      } else if 147 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 40,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_148",
      target: if 148 % 3 == 0 {
        Godot
      } else if 148 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 48,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_149",
      target: if 149 % 3 == 0 {
        Godot
      } else if 149 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1536,
      max_frames: 56,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_150",
      target: if 150 % 3 == 0 {
        Godot
      } else if 150 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1792,
      max_frames: 64,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_151",
      target: if 151 % 3 == 0 {
        Godot
      } else if 151 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 2048,
      max_frames: 72,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_152",
      target: if 152 % 3 == 0 {
        Godot
      } else if 152 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 256,
      max_frames: 80,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_153",
      target: if 153 % 3 == 0 {
        Godot
      } else if 153 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 88,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_154",
      target: if 154 % 3 == 0 {
        Godot
      } else if 154 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 96,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_155",
      target: if 155 % 3 == 0 {
        Godot
      } else if 155 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 104,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_156",
      target: if 156 % 3 == 0 {
        Godot
      } else if 156 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 16,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_157",
      target: if 157 % 3 == 0 {
        Godot
      } else if 157 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1536,
      max_frames: 24,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_158",
      target: if 158 % 3 == 0 {
        Godot
      } else if 158 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1792,
      max_frames: 32,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_159",
      target: if 159 % 3 == 0 {
        Godot
      } else if 159 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 2048,
      max_frames: 40,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_160",
      target: if 160 % 3 == 0 {
        Godot
      } else if 160 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 256,
      max_frames: 48,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_161",
      target: if 161 % 3 == 0 {
        Godot
      } else if 161 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 56,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_162",
      target: if 162 % 3 == 0 {
        Godot
      } else if 162 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 64,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_163",
      target: if 163 % 3 == 0 {
        Godot
      } else if 163 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 72,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_164",
      target: if 164 % 3 == 0 {
        Godot
      } else if 164 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 80,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_165",
      target: if 165 % 3 == 0 {
        Godot
      } else if 165 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1536,
      max_frames: 88,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_166",
      target: if 166 % 3 == 0 {
        Godot
      } else if 166 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1792,
      max_frames: 96,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_167",
      target: if 167 % 3 == 0 {
        Godot
      } else if 167 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 2048,
      max_frames: 104,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_168",
      target: if 168 % 3 == 0 {
        Godot
      } else if 168 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 256,
      max_frames: 16,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_169",
      target: if 169 % 3 == 0 {
        Godot
      } else if 169 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 24,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_170",
      target: if 170 % 3 == 0 {
        Godot
      } else if 170 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 32,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_171",
      target: if 171 % 3 == 0 {
        Godot
      } else if 171 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 40,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_172",
      target: if 172 % 3 == 0 {
        Godot
      } else if 172 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 48,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_173",
      target: if 173 % 3 == 0 {
        Godot
      } else if 173 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1536,
      max_frames: 56,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_174",
      target: if 174 % 3 == 0 {
        Godot
      } else if 174 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1792,
      max_frames: 64,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_175",
      target: if 175 % 3 == 0 {
        Godot
      } else if 175 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 2048,
      max_frames: 72,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_176",
      target: if 176 % 3 == 0 {
        Godot
      } else if 176 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 256,
      max_frames: 80,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
    {
      name: "profile_177",
      target: if 177 % 3 == 0 {
        Godot
      } else if 177 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 512,
      max_frames: 88,
      padding: 1,
      scale: 2,
      power_of_two: false,
    },
    {
      name: "profile_178",
      target: if 178 % 3 == 0 {
        Godot
      } else if 178 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 768,
      max_frames: 96,
      padding: 2,
      scale: 3,
      power_of_two: true,
    },
    {
      name: "profile_179",
      target: if 179 % 3 == 0 {
        Godot
      } else if 179 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1024,
      max_frames: 104,
      padding: 3,
      scale: 4,
      power_of_two: false,
    },
    {
      name: "profile_180",
      target: if 180 % 3 == 0 {
        Godot
      } else if 180 % 3 == 1 {
        Phaser
      } else {
        MoonBit
      },
      max_texture: 1280,
      max_frames: 16,
      padding: 0,
      scale: 1,
      power_of_two: true,
    },
  ]
}

///|
pub fn engine_profile_named(name : String) -> EngineProfile? {
  match engine_profiles().search_by(fn(profile) { profile.name == name }) {
    Some(index) => Some(engine_profiles()[index])
    None => None
  }
}

///|
pub fn engine_profiles_for(target : RuntimeTarget) -> Array[EngineProfile] {
  engine_profiles().filter(fn(profile) { profile.target == target })
}

///|
pub fn engine_profiles_supporting(sheet : SpriteSheet) -> Array[EngineProfile] {
  engine_profiles().filter(fn(profile) { profile.usable_for(sheet) })
}

///|
pub fn best_engine_profile(
  sheet : SpriteSheet,
  target : RuntimeTarget,
) -> EngineProfile? {
  let profiles = engine_profiles_for(target).filter(fn(profile) {
    profile.usable_for(sheet)
  })
  match profiles.get(0) {
    None => None
    Some(first) => {
      let mut best = first
      for profile in profiles[1:] {
        if profile.max_texture < best.max_texture {
          best = profile
        }
      }
      Some(best)
    }
  }
}

///|
pub fn engine_profile_count() -> Int {
  engine_profiles().length()
}

///|
pub fn engine_profile_names() -> Array[String] {
  engine_profiles().map(fn(profile) { profile.name })
}

///|
pub fn engine_profile_json(indent? : Int = 2) -> String {
  engine_profiles().to_json().stringify(indent~)
}