export const LIBRARY_SLUGS = [
  "2d-animation",
  "3d-animation",
  "concepting",
  "character-design",
  "level-design",
  "diy",
  "traditional-art",
  "life-drawing",
] as const;

export type LibrarySlug = (typeof LIBRARY_SLUGS)[number];

export type Library = {
  slug: LibrarySlug;
  name: string;
  short: string;
  kicker: string;
  description: string;
};

export const LIBRARIES: Library[] = [
  {
    slug: "2d-animation",
    name: "2D Animation",
    short: "Drawn motion",
    kicker: "Frames, hold, and the space between.",
    description:
      "Key illustrations and painted frames from shorts in production at the ridge. Cel, wash, and graphic narrative — stills that still move.",
  },
  {
    slug: "3d-animation",
    name: "3D Animation",
    short: "Sculpted time",
    kicker: "Light, weight, and a long take.",
    description:
      "Cinematic stills from digital sculptures in motion. Colossi, automata, and dust — rendered as if the canyon itself were a stage.",
  },
  {
    slug: "concepting",
    name: "Concepting",
    short: "Places first",
    kicker: "Worlds before they are walked.",
    description:
      "Environment concepts for cities hung in stone, cisterns, and unbuilt rooms. Paintings meant to be argued over at a table, then built.",
  },
  {
    slug: "character-design",
    name: "Character Design",
    short: "People & kit",
    kicker: "A face, a wrap, a reason to walk.",
    description:
      "Portraits and costume studies for the people of the ridge — cartographers, masons, and the gear they refuse to explain.",
  },
  {
    slug: "level-design",
    name: "Level Design",
    short: "Playable stone",
    kicker: "Paths you can still get lost in.",
    description:
      "Plans and sections of canyon spaces: keeps, slot arenas, switchbacks. Architecture drawn so a body could run it.",
  },
  {
    slug: "diy",
    name: "D.I.Y.",
    short: "Made by hand",
    kicker: "Paper, plaster, wire, dust.",
    description:
      "Studio work from the bench: pressed botanicals, layer boxes, and small constructions you could attempt at home — if you have the patience.",
  },
  {
    slug: "traditional-art",
    name: "Traditional Art",
    short: "Pigment & paper",
    kicker: "Ink, oil, and mineral.",
    description:
      "Works on cotton and linen from the west wall. Ink canyons, ochre veins, and slow paintings that do not care about your refresh rate.",
  },
  {
    slug: "life-drawing",
    name: "Life Drawing",
    short: "The standing hour",
    kicker: "Charcoal, newsprint, a held pose.",
    description:
      "Figure studies from the evening sessions in the north shed. Standing and seated turns — no costume, no story, only weight.",
  },
];

export function libraryBySlug(slug: string | undefined): Library | undefined {
  return LIBRARIES.find((l) => l.slug === slug);
}

export function isLibrarySlug(value: string): value is LibrarySlug {
  return (LIBRARY_SLUGS as readonly string[]).includes(value);
}
