{
  "schema_version": 1,
  "read_only": true,
  "retrieved_at": "2026-10-23T13:59:25.828Z",
  "scope": "Approved, visible public Hall portraits. FF status is submitter-confirmed, not an independent authorship audit.",
  "filters": {
    "favorites": false,
    "ff_only": false
  },
  "pagination": {
    "limit": 25,
    "offset": 150,
    "total": 1308,
    "next": "https://hall-library.framedfantasy.com/catalog.json?offset=175"
  },
  "characters": [
    {
      "id": "cc3ccae4-da6b-4d40-b1b3-8c26ecb8e73f",
      "slug": "anders",
      "name": "Anders",
      "race": "Shadow Kai ",
      "character_class": "Fighter",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=anders",
      "character_url": "https://hall-library.framedfantasy.com/characters/anders",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/anders.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/anders.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1788213632599_0.jpeg",
      "image_url": "https://hall-library.framedfantasy.com/images/anders",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1788213632599_0.jpeg",
      "crop": {
        "x": 50,
        "y": 20,
        "zoom": 100
      },
      "story_excerpt": "Defining moment:\nMy wife Jess and I were always a team ever since we were little, always adventuring until we had a daughter Hannah. For a time we stopped but when people started disappearing from the village we were hired to investigate, found a cult of wizards held up in a near by temple performin"
    },
    {
      "id": "d74944bb-24f9-4ed2-9fd7-0693c1803349",
      "slug": "andrieal-2",
      "name": "Andrieal",
      "race": "Tabaxi",
      "character_class": "Cleric",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=andrieal-2",
      "character_url": "https://hall-library.framedfantasy.com/characters/andrieal-2",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/andrieal-2.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/andrieal-2.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/1783404774738_n8qxk0.webp",
      "image_url": "https://hall-library.framedfantasy.com/images/andrieal-2",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/1783404774738_n8qxk0_thumb.webp",
      "crop": {
        "x": 50,
        "y": 50,
        "zoom": 100
      },
      "story_excerpt": "Andrieal is a kind-hearted cleric, helping anyone in her power that needs helping. She brings blessings to those near and far, and rarely accepts payment for kindnesses shared. She defends the helpless with grace and tact- and force if necessary. Blessings shared are love in action."
    },
    {
      "id": "f625925d-9af4-448e-a4a4-087392cf816a",
      "slug": "androse",
      "name": "Androse",
      "race": "Human",
      "character_class": "Fighter",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=androse",
      "character_url": "https://hall-library.framedfantasy.com/characters/androse",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/androse.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/androse.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1777047829594_0.jpg",
      "image_url": "https://hall-library.framedfantasy.com/images/androse",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1777047829594_0.jpg",
      "crop": {
        "x": 50,
        "y": 0,
        "zoom": 100
      },
      "story_excerpt": "You are the knight who came back when everyone else died, and you decided that meant you owed the world everything. You chose the King's Road because people travel it, and people need help, and needing help is the only invitation you require. The faces of the dead brought you back from darkness, not"
    },
    {
      "id": "7b3e7c46-dedd-447f-8051-bf21cecaf25c",
      "slug": "andruin",
      "name": "Andruin",
      "race": "Aasimar",
      "character_class": "Paladin",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=andruin",
      "character_url": "https://hall-library.framedfantasy.com/characters/andruin",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/andruin.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/andruin.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1777376333372_0.jpg",
      "image_url": "https://hall-library.framedfantasy.com/images/andruin",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1777376333372_0.jpg",
      "crop": {
        "x": 50,
        "y": 0,
        "zoom": 100
      },
      "story_excerpt": "You are the paladin who chose the slow cart and careful words, then stood anyway when darkness came. What brought you back was simpler than divine intervention: the village needed someone who wouldn't flinch. But every stranger you save is another name you'll carry if the next fire comes. They'll re"
    },
    {
      "id": "c9b5abb5-2255-4042-9cb2-ee77e5b444e5",
      "slug": "angron-thal",
      "name": "Angron Thal",
      "race": "Goliath",
      "character_class": "Barbarian",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=angron-thal",
      "character_url": "https://hall-library.framedfantasy.com/characters/angron-thal",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/angron-thal.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/angron-thal.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1782215145055_0.jpg",
      "image_url": "https://hall-library.framedfantasy.com/images/angron-thal",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1782215145055_0.jpg",
      "crop": {
        "x": 50,
        "y": 50,
        "zoom": 100
      },
      "story_excerpt": "You are a Quiet Strategist, the kind who waits and watches because rushing forward once cost everything. The night on Nuceria taught you that survival alone is not victory, not when it means living with empty spaces. You carry names no one at the table will ever hear, ghosts that make every choice f"
    },
    {
      "id": "5fd30c19-bfe8-4d0c-a39f-5c27b3e30da5",
      "slug": "antogio",
      "name": "Antogio",
      "race": "Human",
      "character_class": "Paladin / Warlock ",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=antogio",
      "character_url": "https://hall-library.framedfantasy.com/characters/antogio",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/antogio.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/antogio.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1785343797941_0.jpg",
      "image_url": "https://hall-library.framedfantasy.com/images/antogio",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1785343797941_0.jpg",
      "crop": {
        "x": 50,
        "y": 0,
        "zoom": 100
      },
      "story_excerpt": "Defining moment:\nThe night the seaside town was overtaken by a hag and her undead. Prior to this, you spent years gambling and traveling with pirates until you realized how your life was leading down a dark and lonely path. Your eyes were open by a monk you saved from drowning. It was the first time"
    },
    {
      "id": "92f98ddb-dcfc-4632-8fb9-ce22b9ee6230",
      "slug": "anya",
      "name": "Anya",
      "race": "Human",
      "character_class": "Warlock",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=anya",
      "character_url": "https://hall-library.framedfantasy.com/characters/anya",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/anya.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/anya.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1778291204102_0.jpg",
      "image_url": "https://hall-library.framedfantasy.com/images/anya",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1778291204102_0.jpg",
      "crop": {
        "x": 50,
        "y": 13,
        "zoom": 100
      },
      "story_excerpt": "You are the warlock who plans two moves ahead, the one who rode Old Yost's Cart and became the Quiet Strategist. Your pact was born from desperation, a deal struck in the moment you refused the future they carved for you. But borrowed power means borrowed time, and you know better than most that eve"
    },
    {
      "id": "8b7b3667-1d6c-48cb-93db-297ea6ba9968",
      "slug": "apis",
      "name": "Apis",
      "race": "Minotaur",
      "character_class": "Cleric",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=apis",
      "character_url": "https://hall-library.framedfantasy.com/characters/apis",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/apis.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/apis.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/1775337260480_6od1y3.webp",
      "image_url": "https://hall-library.framedfantasy.com/images/apis",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/1775337260480_6od1y3.webp",
      "crop": {
        "x": 50,
        "y": 50,
        "zoom": 100
      },
      "story_excerpt": "Apis was born Apeiros Isladren, an eladren princess in the Fey Wild.  She was the keeper of the Mask of Awakening, but was dupe by the nefarious pirate, Marlo, and his plane-jumping henchmen.  The Fairy Queen in her anger (wisdom), cursed (transformed) Apeiros with the body of a beast and banished ("
    },
    {
      "id": "3ee42b6d-ec46-48ad-a09d-da00f8732730",
      "slug": "apollyon",
      "name": "Apollyon",
      "race": "Tiefling",
      "character_class": "Bard",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=apollyon",
      "character_url": "https://hall-library.framedfantasy.com/characters/apollyon",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/apollyon.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/apollyon.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/1791124165020_s3whjg.webp",
      "image_url": "https://hall-library.framedfantasy.com/images/apollyon",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/1791124165020_s3whjg_thumb.webp",
      "crop": {
        "x": 50,
        "y": 50,
        "zoom": 100
      },
      "story_excerpt": "A clearly young and new bard who has everything to prove. He has to prove himself, and his rival is always traveling so it works out. His rival, a fellow Tiefling bard that seems to always be one step ahead of him and always slightly better, must be shown that he is better. Currently himself, he is "
    },
    {
      "id": "d14ae701-61ff-4571-b049-2017c3c475e6",
      "slug": "apophis",
      "name": "Apophis",
      "race": "Dragon (Transfigured Human)",
      "character_class": "Monk",
      "jan_favorite": false,
      "is_ff_portrait": true,
      "profile_url": "https://framedfantasy.com/pages/hero?h=apophis",
      "character_url": "https://hall-library.framedfantasy.com/characters/apophis",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/apophis.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/apophis.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/1775155654317_juv43b.webp",
      "image_url": "https://hall-library.framedfantasy.com/images/apophis",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/1775155654317_juv43b.webp",
      "crop": {
        "x": 50,
        "y": 50,
        "zoom": 100
      },
      "story_excerpt": "Apophis, known by most as the Great Destroyer, was responsible for exterminating the dragon species. Born in the Age of Acension, he rose to power and hunted down all dragons regardless of their status. In the end, he disappeared, leaving only a few dragons in hiding. But, with the return of the Cha"
    },
    {
      "id": "872e0f00-f841-449c-b21d-a7e7824d6492",
      "slug": "aral-koesku",
      "name": "Aral Koesku",
      "race": "Human",
      "character_class": "Cleric",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=aral-koesku",
      "character_url": "https://hall-library.framedfantasy.com/characters/aral-koesku",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/aral-koesku.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/aral-koesku.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/1789440182163_1ixipb.webp",
      "image_url": "https://hall-library.framedfantasy.com/images/aral-koesku",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/1789440182163_1ixipb_thumb.webp",
      "crop": {
        "x": 50,
        "y": 50,
        "zoom": 100
      },
      "story_excerpt": "Aral Koesku is twenty now, or close enough; he stopped noting birthdays somewhere on the road and took to marking distances instead. But he does know it's been two years since the Unbinding ritual that freed his brother Ompar. Two years of walking the land and the bedrock below. Aral has grown into "
    },
    {
      "id": "30697946-dfc1-455d-ab57-f85e297e93a8",
      "slug": "archivist",
      "name": "Archivist",
      "race": "Human",
      "character_class": "Wizard/Warlock multiclass",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=archivist",
      "character_url": "https://hall-library.framedfantasy.com/characters/archivist",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/archivist.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/archivist.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/1780259842225_lmbbzz.webp",
      "image_url": "https://hall-library.framedfantasy.com/images/archivist",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/1780259842225_lmbbzz_thumb.webp",
      "crop": {
        "x": 50,
        "y": 40,
        "zoom": 100
      },
      "story_excerpt": "Archivist has had many names, many titles throughout Eldest's incarnations. He is the portion of the mind that creates, that takes both imagination, memory, and the world around them, and forges something from it. In this iteration, he is Archivist, a collector, a monitor, a keeper of secrets and st"
    },
    {
      "id": "95389cb3-60ce-4552-ba17-c3674b305ded",
      "slug": "argentos",
      "name": "Argentos",
      "race": "Human",
      "character_class": "Fighter",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=argentos",
      "character_url": "https://hall-library.framedfantasy.com/characters/argentos",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/argentos.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/argentos.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1782325390101_0.jpg",
      "image_url": "https://hall-library.framedfantasy.com/images/argentos",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1782325390101_0.jpg",
      "crop": {
        "x": 50,
        "y": 0,
        "zoom": 100
      },
      "story_excerpt": "You are the Shadow Investigator who walks the King's Road, a fighter who wins by seeing what others miss. The orc children you protected taught you that strength means choosing who not to fight. Every battle costs you the easy certainty your commander had, the weight of refusing orders others would "
    },
    {
      "id": "ac77f75d-9446-47f0-a8fe-16055e7721e0",
      "slug": "ariadne-willow",
      "name": "Ariadne Willow",
      "race": "Nephilim",
      "character_class": "Bard",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=ariadne-willow",
      "character_url": "https://hall-library.framedfantasy.com/characters/ariadne-willow",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/ariadne-willow.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/ariadne-willow.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1784267210454_0.jpg",
      "image_url": "https://hall-library.framedfantasy.com/images/ariadne-willow",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1784267210454_0.jpg",
      "crop": {
        "x": 50,
        "y": 23,
        "zoom": 100
      },
      "story_excerpt": "Defining moment:\nThe moment her mother died in her arms, there was a flash of blinding white light entering the chapel. A voice was heard before Ariadne, who was fully broken, transformed into a seraph. She made an oath to become the best of who she could be and not let the darkness win.\n\nArchetype:"
    },
    {
      "id": "d1cb85b3-951f-4a73-aba0-565b0a9cea63",
      "slug": "ariadra",
      "name": "Ariadra",
      "race": "Half-Changeling/drown (Mother is Half-Changeling, father is Drow.) ",
      "character_class": "Bard/Paladin ",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=ariadra",
      "character_url": "https://hall-library.framedfantasy.com/characters/ariadra",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/ariadra.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/ariadra.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1777552578678_1.jpg",
      "image_url": "https://hall-library.framedfantasy.com/images/ariadra",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1777552578678_1.jpg",
      "crop": {
        "x": 50,
        "y": 21,
        "zoom": 100
      },
      "story_excerpt": "You walked the King's Road and talked your way past iron because you believe words can rebuild what violence broke. Your father returned to the dark to free others, and that choice taught you heroism isn't escape but turning back. The strangers you help will never know what it costs to keep offering"
    },
    {
      "id": "707962be-70c8-43de-9795-3edf2df3b2b4",
      "slug": "arilyvia-dreadmore",
      "name": "Arilyvia Dreadmore",
      "race": "Tiefling",
      "character_class": "Warlock",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=arilyvia-dreadmore",
      "character_url": "https://hall-library.framedfantasy.com/characters/arilyvia-dreadmore",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/arilyvia-dreadmore.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/arilyvia-dreadmore.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1777780810803_0.jpg",
      "image_url": "https://hall-library.framedfantasy.com/images/arilyvia-dreadmore",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1777780810803_0.jpg",
      "crop": {
        "x": 50,
        "y": 50,
        "zoom": 100
      },
      "story_excerpt": "You are the warlock who bargained with the light, who talked your way past the Iron Matron because mercy costs less than blood. What Zechariel gave you in that astral moment was a second chance, and you've spent every day since proving you deserved it. But help given so freely to strangers is also a"
    },
    {
      "id": "b74b5a04-b7f3-4626-9bb9-07fa0e74ef58",
      "slug": "aris",
      "name": "Aris",
      "race": "Half-Elf",
      "character_class": "Rogue",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=aris",
      "character_url": "https://hall-library.framedfantasy.com/characters/aris",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/aris.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/aris.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1780679696889_0.jpg",
      "image_url": "https://hall-library.framedfantasy.com/images/aris",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1780679696889_0.jpg",
      "crop": {
        "x": 50,
        "y": 50,
        "zoom": 100
      },
      "story_excerpt": "You are a Shadow Investigator who walks the Blackfen because exposed ground leaves no room for error. What you remembered was the table your parents shoved you under, the last shelter they could give. You arm yourself like someone who knows exactly how many seconds warning you'll get next time. The "
    },
    {
      "id": "d6c9940e-2cbf-46d6-9d92-e36eb044cb60",
      "slug": "arlena",
      "name": "Arlena",
      "race": "Tiefling",
      "character_class": "Artificer Rogue",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=arlena",
      "character_url": "https://hall-library.framedfantasy.com/characters/arlena",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/arlena.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/arlena.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1780433453109_0.jpg",
      "image_url": "https://hall-library.framedfantasy.com/images/arlena",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1780433453109_0.jpg",
      "crop": {
        "x": 50,
        "y": 0,
        "zoom": 100
      },
      "story_excerpt": "You're the kind of hero who crossed the Blackfen and played the Quiet Strategist because survival demands knowing the terrain. What brought you back was seeing the cousin's blade in your back while your family looked away. You carry the exhaustion of never being able to stop calculating, of measurin"
    },
    {
      "id": "c451ee94-1c6a-4540-aab0-803f3f83cf54",
      "slug": "armandir",
      "name": "Armandir",
      "race": "Dragonborn",
      "character_class": "Fighter",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=armandir",
      "character_url": "https://hall-library.framedfantasy.com/characters/armandir",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/armandir.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/armandir.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1778289205681_0.jpg",
      "image_url": "https://hall-library.framedfantasy.com/images/armandir",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1778289205681_0.jpg",
      "crop": {
        "x": 50,
        "y": 50,
        "zoom": 100
      },
      "story_excerpt": "You're the hero who arrived on Old Yost's Cart and faced the Iron Matron as The Quiet Strategist, watching before striking. The sinking ship didn't just take your clan, it gave you a mission that wakes you before dawn. You calculate every risk because you can't afford to fail anyone else the way the"
    },
    {
      "id": "118b17db-8c9a-4635-883e-53c676639f0d",
      "slug": "arno-bouchard",
      "name": "Arno Bouchard",
      "race": "Dwarf",
      "character_class": "Fighter",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=arno-bouchard",
      "character_url": "https://hall-library.framedfantasy.com/characters/arno-bouchard",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/arno-bouchard.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/arno-bouchard.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/1774919199328_9ap7ez.webp",
      "image_url": "https://hall-library.framedfantasy.com/images/arno-bouchard",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/1774919199328_9ap7ez.webp",
      "crop": {
        "x": 50,
        "y": 22,
        "zoom": 100
      },
      "story_excerpt": "Arno Bouchard, Captain of legendary Deepdraught, is a privateer in my homebrew world Tidebound Reach. He’s cocky and materialistic, driven by loot and love, no matter how fleeting. Starting as a lad who got lost in a mineral Ore exchange, he found himself on a trade ship bound for far away lands. He"
    },
    {
      "id": "a635d8ad-ccdf-4a4a-b9ec-242bafa7b63a",
      "slug": "arrora",
      "name": "Arrora",
      "race": "Tiefling",
      "character_class": "Warlock",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=arrora",
      "character_url": "https://hall-library.framedfantasy.com/characters/arrora",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/arrora.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/arrora.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1781400369564_0.jpg",
      "image_url": "https://hall-library.framedfantasy.com/images/arrora",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1781400369564_0.jpg",
      "crop": {
        "x": 50,
        "y": 35,
        "zoom": 100
      },
      "story_excerpt": "You are the Quiet Strategist who helps strangers because planning means nothing if you can't protect what matters. The portal seared your skin but Lara stayed behind, and that moment rewrote every pact you'd make after. You know the weight of choosing who gets saved, and it follows you into every ta"
    },
    {
      "id": "95a2b4df-37ba-4a76-8c91-ab9dab9e6d73",
      "slug": "arson",
      "name": "Arson",
      "race": "Tiefling",
      "character_class": "Sorcerer",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=arson",
      "character_url": "https://hall-library.framedfantasy.com/characters/arson",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/arson.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/arson.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1787273859124_0.jpg",
      "image_url": "https://hall-library.framedfantasy.com/images/arson",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1787273859124_0.jpg",
      "crop": {
        "x": 37,
        "y": 50,
        "zoom": 100
      },
      "story_excerpt": "Defining moment:\nWhen I was a boy, I was a mischievous and arrogant lad. I heard a power calling to me in my mountain village. A ripple in the air. Touching the ripple opened a deadly portal to the elemental plane of fire. It seared much of my skin, knocking me unconscious. I woke to seeing my entir"
    },
    {
      "id": "5ff0cd39-2348-4378-946d-2f12d7e0e834",
      "slug": "art3mis",
      "name": "Art3mis",
      "race": "Dragonborn",
      "character_class": "Rogue",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=art3mis",
      "character_url": "https://hall-library.framedfantasy.com/characters/art3mis",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/art3mis.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/art3mis.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1792292578392_hall.jpg",
      "image_url": "https://hall-library.framedfantasy.com/images/art3mis",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1792292578392_hall.jpg",
      "crop": {
        "x": 50,
        "y": 50,
        "zoom": 100
      },
      "story_excerpt": "Art3mis is a Dragonborn Rogue, armed with A rapier."
    },
    {
      "id": "436d9ac8-63a9-4fbb-bb13-a0381daa9d91",
      "slug": "arthur-littlesong",
      "name": "Arthur Littlesong",
      "race": "Halfling",
      "character_class": "Bard/Ranger ",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=arthur-littlesong",
      "character_url": "https://hall-library.framedfantasy.com/characters/arthur-littlesong",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/arthur-littlesong.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/arthur-littlesong.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1781563067066_0.jpg",
      "image_url": "https://hall-library.framedfantasy.com/images/arthur-littlesong",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1781563067066_0.jpg",
      "crop": {
        "x": 50,
        "y": 29,
        "zoom": 100
      },
      "story_excerpt": "You are the hero who talks their way through danger with a Silver Tongue, then picks up the sickle when words fail. The mist that dragged you to Misthaven taught you that performance is survival, charm is armor. You came to prove something, and that weight never lifts, even when the table laughs at "
    },
    {
      "id": "2c7ee923-74c3-4761-b064-e899d813c6fe",
      "slug": "artlu",
      "name": "Artlu",
      "race": "Half-Elf",
      "character_class": "Wizard",
      "jan_favorite": false,
      "is_ff_portrait": false,
      "profile_url": "https://framedfantasy.com/pages/hero?h=artlu",
      "character_url": "https://hall-library.framedfantasy.com/characters/artlu",
      "character_json_url": "https://hall-library.framedfantasy.com/characters/artlu.json",
      "character_markdown_url": "https://hall-library.framedfantasy.com/characters/artlu.md",
      "original_image_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1780716747135_0.jpg",
      "image_url": "https://hall-library.framedfantasy.com/images/artlu",
      "thumbnail_url": "https://obadckrukccwkjgpbsxa.supabase.co/storage/v1/object/public/portraits/quest_1780716747135_0.jpg",
      "crop": {
        "x": 50,
        "y": 50,
        "zoom": 100
      },
      "story_excerpt": "You're the pragmatist who chose the King's Road and proved your worth through cunning negotiation, not volume. What brought you back wasn't hope or rage, but the cold certainty of a spell pronounced with surgical precision. You carry the weight of knowing exactly how much you're capable of, and the "
    }
  ]
}
