diff --git a/src/data/index.ts b/src/data/index.ts index 00a9bf5..fc4f54b 100644 --- a/src/data/index.ts +++ b/src/data/index.ts @@ -206,6 +206,106 @@ import prisonSchool from "@/data/mappings/prison-school.json"; import dateALive from "@/data/mappings/date-a-live.json"; import aoHaruRide from "@/data/mappings/ao-haru-ride.json"; import tonikawa from "@/data/mappings/tonikawa.json"; +import violetEvergarden from "@/data/mappings/violet-evergarden.json"; +import devilmanCrybaby from "@/data/mappings/devilman-crybaby.json"; +import kOn from "@/data/mappings/k-on.json"; +import domesticGirlfriend from "@/data/mappings/domestic-girlfriend.json"; +import shikimorisNotJustACutie from "@/data/mappings/shikimoris-not-just-a-cutie.json"; +import heavenlyDelusion from "@/data/mappings/heavenly-delusion.json"; +import caseStudyOfVanitas from "@/data/mappings/case-study-of-vanitas.json"; +import shimoneta from "@/data/mappings/shimoneta.json"; +import howNotToSummonADemonLord from "@/data/mappings/how-not-to-summon-a-demon-lord.json"; +import haruhiSuzumiya from "@/data/mappings/haruhi-suzumiya.json"; +import welcomeToTheNhk from "@/data/mappings/welcome-to-the-nhk.json"; +import worldsFinestAssassin from "@/data/mappings/worlds-finest-assassin.json"; +import myLoveStoryWithYamadaKun from "@/data/mappings/my-love-story-with-yamada-kun.json"; +import akashicRecords from "@/data/mappings/akashic-records.json"; +import cautiousHero from "@/data/mappings/cautious-hero.json"; +import trinitySeven from "@/data/mappings/trinity-seven.json"; +import blackBullet from "@/data/mappings/black-bullet.json"; +import tsuredureChildren from "@/data/mappings/tsuredure-children.json"; +import gate from "@/data/mappings/gate.json"; +import fragrantFlower from "@/data/mappings/fragrant-flower.json"; +import alyaSometimesHides from "@/data/mappings/alya-sometimes-hides.json"; +import dailyLivesOfHighSchoolBoys from "@/data/mappings/daily-lives-of-high-school-boys.json"; +import kokoroConnect from "@/data/mappings/kokoro-connect.json"; +import imSakamoto from "@/data/mappings/im-sakamoto.json"; +import baccano from "@/data/mappings/baccano.json"; +import yamadaAndTheSevenWitches from "@/data/mappings/yamada-and-the-seven-witches.json"; +import higehiro from "@/data/mappings/higehiro.json"; +import eromangaSensei from "@/data/mappings/eromanga-sensei.json"; +import windBreaker from "@/data/mappings/wind-breaker.json"; +import blendS from "@/data/mappings/blend-s.json"; +import scumsWish from "@/data/mappings/scums-wish.json"; +import wiseMansGrandchild from "@/data/mappings/wise-mans-grandchild.json"; +import grimgar from "@/data/mappings/grimgar.json"; +import snowWhiteWithTheRedHair from "@/data/mappings/snow-white-with-the-red-hair.json"; +import bofuri from "@/data/mappings/bofuri.json"; +import shangriLaFrontier from "@/data/mappings/shangri-la-frontier.json"; +import saekano from "@/data/mappings/saekano.json"; +import greatTeacherOnizuka from "@/data/mappings/great-teacher-onizuka.json"; +import gamers from "@/data/mappings/gamers.json"; +import darwinsGame from "@/data/mappings/darwins-game.json"; +import umaruChan from "@/data/mappings/umaru-chan.json"; +import tomoChanIsAGirl from "@/data/mappings/tomo-chan-is-a-girl.json"; +import monsterMusume from "@/data/mappings/monster-musume.json"; +import teasingMasterTakagiSan from "@/data/mappings/teasing-master-takagi-san.json"; +import tsukimichi from "@/data/mappings/tsukimichi.json"; +import kamisamaKiss from "@/data/mappings/kamisama-kiss.json"; +import laidBackCamp from "@/data/mappings/laid-back-camp.json"; +import haganai from "@/data/mappings/haganai.json"; +import irumaKun from "@/data/mappings/iruma-kun.json"; +import amagiBrilliantPark from "@/data/mappings/amagi-brilliant-park.json"; +import angelNextDoor from "@/data/mappings/angel-next-door.json"; +import tomodachiGame from "@/data/mappings/tomodachi-game.json"; +import mierukoChan from "@/data/mappings/mieruko-chan.json"; +import testamentOfSisterNewDevil from "@/data/mappings/testament-of-sister-new-devil.json"; +import wayOfTheHousehusband from "@/data/mappings/way-of-the-househusband.json"; +import moreThanAMarriedCouple from "@/data/mappings/more-than-a-married-couple.json"; +import myLoveStory from "@/data/mappings/my-love-story.json"; +import asteriskWar from "@/data/mappings/asterisk-war.json"; +import moriartyThePatriot from "@/data/mappings/moriarty-the-patriot.json"; +import familiarOfZero from "@/data/mappings/familiar-of-zero.json"; +import dangersInMyHeart from "@/data/mappings/dangers-in-my-heart.json"; +import sayILoveYou from "@/data/mappings/say-i-love-you.json"; +import smartphone from "@/data/mappings/smartphone.json"; +import barakamon from "@/data/mappings/barakamon.json"; +import watamote from "@/data/mappings/watamote.json"; +import soImASpider from "@/data/mappings/so-im-a-spider.json"; +import gleipnir from "@/data/mappings/gleipnir.json"; +import wanderingWitch from "@/data/mappings/wandering-witch.json"; +import hinamatsuri from "@/data/mappings/hinamatsuri.json"; +import uzakiChan from "@/data/mappings/uzaki-chan.json"; +import asobiAsobase from "@/data/mappings/asobi-asobase.json"; +import redoOfHealer from "@/data/mappings/redo-of-healer.json"; +import oreimo from "@/data/mappings/oreimo.json"; +import villainess from "@/data/mappings/villainess.json"; +import myFirstGirlfriendIsAGal from "@/data/mappings/my-first-girlfriend-is-a-gal.json"; +import cheatSkill from "@/data/mappings/cheat-skill.json"; +import luckyStar from "@/data/mappings/lucky-star.json"; +import citrus from "@/data/mappings/citrus.json"; +import netoge from "@/data/mappings/netoge.json"; +import tomozaki from "@/data/mappings/tomozaki.json"; +import blueBox from "@/data/mappings/blue-box.json"; +import toLoveRu from "@/data/mappings/to-love-ru.json"; +import bloodLad from "@/data/mappings/blood-lad.json"; +import myHappyMarriage from "@/data/mappings/my-happy-marriage.json"; +import plunderer from "@/data/mappings/plunderer.json"; +import oresuki from "@/data/mappings/oresuki.json"; +import phantomWorld from "@/data/mappings/phantom-world.json"; +import killingSlimes300Years from "@/data/mappings/killing-slimes-300-years.json"; +import bloomIntoYou from "@/data/mappings/bloom-into-you.json"; +import realistHero from "@/data/mappings/realist-hero.json"; +import gangsta from "@/data/mappings/gangsta.json"; +import seireiGensouki from "@/data/mappings/seirei-gensouki.json"; +import girlsLastTour from "@/data/mappings/girls-last-tour.json"; +import mmoJunkie from "@/data/mappings/mmo-junkie.json"; +import signOfAffection from "@/data/mappings/sign-of-affection.json"; +import deathMarch from "@/data/mappings/death-march.json"; +import highRiseInvasion from "@/data/mappings/high-rise-invasion.json"; +import katanagatari from "@/data/mappings/katanagatari.json"; +import worldGodOnlyKnows from "@/data/mappings/world-god-only-knows.json"; +import recordOfRagnarok from "@/data/mappings/record-of-ragnarok.json"; // JSON imports lose tuple types — `[1, 100]` becomes `number[]` instead of // `[number, number]`. `normalizeMapping` rebuilds tuples literally. @@ -481,6 +581,106 @@ const ALL_MAPPINGS: SeriesMapping[] = [ dateALive, aoHaruRide, tonikawa, + violetEvergarden, + devilmanCrybaby, + kOn, + domesticGirlfriend, + shikimorisNotJustACutie, + heavenlyDelusion, + caseStudyOfVanitas, + shimoneta, + howNotToSummonADemonLord, + haruhiSuzumiya, + welcomeToTheNhk, + worldsFinestAssassin, + myLoveStoryWithYamadaKun, + akashicRecords, + cautiousHero, + trinitySeven, + blackBullet, + tsuredureChildren, + gate, + fragrantFlower, + alyaSometimesHides, + dailyLivesOfHighSchoolBoys, + kokoroConnect, + imSakamoto, + baccano, + yamadaAndTheSevenWitches, + higehiro, + eromangaSensei, + windBreaker, + blendS, + scumsWish, + wiseMansGrandchild, + grimgar, + snowWhiteWithTheRedHair, + bofuri, + shangriLaFrontier, + saekano, + greatTeacherOnizuka, + gamers, + darwinsGame, + umaruChan, + tomoChanIsAGirl, + monsterMusume, + teasingMasterTakagiSan, + tsukimichi, + kamisamaKiss, + laidBackCamp, + haganai, + irumaKun, + amagiBrilliantPark, + angelNextDoor, + tomodachiGame, + mierukoChan, + testamentOfSisterNewDevil, + wayOfTheHousehusband, + moreThanAMarriedCouple, + myLoveStory, + asteriskWar, + moriartyThePatriot, + familiarOfZero, + dangersInMyHeart, + sayILoveYou, + smartphone, + barakamon, + watamote, + soImASpider, + gleipnir, + wanderingWitch, + hinamatsuri, + uzakiChan, + asobiAsobase, + redoOfHealer, + oreimo, + villainess, + myFirstGirlfriendIsAGal, + cheatSkill, + luckyStar, + citrus, + netoge, + tomozaki, + blueBox, + toLoveRu, + bloodLad, + myHappyMarriage, + plunderer, + oresuki, + phantomWorld, + killingSlimes300Years, + bloomIntoYou, + realistHero, + gangsta, + seireiGensouki, + girlsLastTour, + mmoJunkie, + signOfAffection, + deathMarch, + highRiseInvasion, + katanagatari, + worldGodOnlyKnows, + recordOfRagnarok, ].map(normalizeMapping); export function findMappingByMediaId(mediaId: number): SeriesMapping | null { diff --git a/src/data/mappings/akashic-records.json b/src/data/mappings/akashic-records.json new file mode 100644 index 0000000..0f480f6 --- /dev/null +++ b/src/data/mappings/akashic-records.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 21700, + "anilistMangaId": 86432, + "title": "Akashic Records of Bastard Magic Instructor", + "sourceNotes": "Source is Taro Hitsuji's light novel (24 vols, ended 2023). Mapped against Aosa Tsunemi's MANGA adaptation (AniList 86432), which finished in June 2021 at 16 volumes / 78 chapters and covers roughly LN vols 1-10. The 2017 TV anime (12 eps, single cour) is a heavily abridged take on LN vols 1-5; the manga adapts that same span across vols 1-10 (ch 1-44), so a viewer resumes reading at ch 45. Episode-to-volume groupings: eps 1-3 = LN1, eps 4-6 = LN2, eps 7-9 = LN3, eps 10-12 = LN4-5. Manga chapter boundaries from MangaDex volume aggregate; LN-to-arc alignment approximate. No theatrical films.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 9], + "arc": "The Foolish Magic Instructor (Academy Debut & Terrorist Incident)" + }, + { + "episodes": [4, 6], + "chapters": [10, 18], + "arc": "The Magic Competition" + }, + { + "episodes": [7, 9], + "chapters": [19, 28], + "arc": "Re=L and the Sea of Falling Stars" + }, + { + "episodes": [10, 12], + "chapters": [29, 44], + "arc": "The Imperial Court Mage Corps Battle" + }, + { + "chapters": [45, 78], + "arc": "Beyond the Anime (Unadapted)" + } + ] +} diff --git a/src/data/mappings/alya-sometimes-hides.json b/src/data/mappings/alya-sometimes-hides.json new file mode 100644 index 0000000..461b75a --- /dev/null +++ b/src/data/mappings/alya-sometimes-hides.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 162804, + "anilistMangaId": 152404, + "title": "Alya Sometimes Hides Her Feelings in Russian", + "sourceNotes": "Source is Sunsunsun's light novel (Roshidere); paired here with the ongoing manga adaptation (AniList 152404, ~9 volumes / ch 83 as of mid-2026). The 2024 TV anime (AniList 162804) is a single cour of 12 episodes adapting light-novel volumes 1-3 (vol 1 prologue through vol 3 epilogue, the student-council election speeches). This is a slow-burn romcom with loose, episodic arcs, so arcs are grouped by light-novel volume and the manga-chapter boundaries are approximate. Manga pacing anchors: the manga had reached ~ch 45 (end of LN vol 2) around the time the anime aired, and manga vol 9 (ch ~67+) covers the student-council election *competition* (LN vol 4+, beyond the anime), which places the anime's endpoint near manga ch 66. Chapters 67-83 are the unadapted tail (resume reading there after the anime). A second TV season (AniList 181641) was announced but had not aired. No theatrical films.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 23], + "arc": "The Aloof Princess and Her Neighbor (Daily School Life)" + }, + { + "episodes": [5, 8], + "chapters": [24, 45], + "arc": "Student Council & Cultural Festival (Family Revelations)" + }, + { + "episodes": [9, 12], + "chapters": [46, 66], + "arc": "Student Council President Election Campaign" + }, + { + "chapters": [67, 83], + "arc": "Election Competition & Beyond (ongoing, unadapted)" + } + ] +} diff --git a/src/data/mappings/amagi-brilliant-park.json b/src/data/mappings/amagi-brilliant-park.json new file mode 100644 index 0000000..fb5f92e --- /dev/null +++ b/src/data/mappings/amagi-brilliant-park.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 20602, + "anilistMangaId": 85217, + "title": "Amagi Brilliant Park", + "sourceNotes": "Source is Shoji Gatoh's LIGHT NOVEL (illustrated by Yuka Nakajima; AniList id 85200), of which Fujimi Shobo published 8 volumes before the series went on hiatus in 2016. The 2014 Kyoto Animation TV anime (13 eps; the OVA 'No Time to Take It Easy!' ep 14 is excluded) adapts roughly LN VOLUMES 1-2 (with a touch of vol 3) — the park-revival-by-deadline plot, racing to 250,000 guests by the July 31 deadline — and wraps up with an ANIME-ORIGINAL ending, so a viewer resumes reading at LN vol 3. The linked manga adaptation (AniList id 85217; 32 chapters / 6 volumes, FINISHED) is a separate parallel retelling whose chapters don't cleanly anchor the anime, so this mapping uses LIGHT-NOVEL VOLUME numbers as the 'chapters' unit, NOT manga chapters. With only ~2 volumes spanning 13 episodes the groupings are coarse and volume-to-episode boundaries are APPROXIMATE. Vols 3-8 are unadapted (LN on hiatus). No theatrical films.", + "mappings": [ + { + "episodes": [1, 2], + "chapters": [1, 1], + "arc": "Seiya's Recruitment & the 250,000-Visitor Deadline (LN vol 1)" + }, + { + "episodes": [3, 7], + "chapters": [1, 2], + "arc": "Rebuilding the Park — Marketing, Money, Staff & Pool (LN vols 1-2)" + }, + { + "episodes": [8, 10], + "chapters": [2, 2], + "arc": "Side Stories & Mounting Crisis (Love Appeal / Teamwork) (LN vol 2)" + }, + { + "episodes": [11, 13], + "chapters": [2, 2], + "arc": "The Final Deadline Push (anime-original ending) (LN vol 2)" + }, + { + "chapters": [3, 8], + "arc": "Post-anime (LN vols 3-8, on hiatus & unadapted)" + } + ] +} diff --git a/src/data/mappings/angel-next-door.json b/src/data/mappings/angel-next-door.json new file mode 100644 index 0000000..080685a --- /dev/null +++ b/src/data/mappings/angel-next-door.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 143338, + "anilistMangaId": 113533, + "title": "The Angel Next Door Spoils Me Rotten", + "sourceNotes": "Source is Saekisan's light novel (AniList id 113533, type MANGA / format NOVEL), 12 main volumes as of mid-2026 (Japanese vol 12 released March 2026; Yen Press English at vol 10). The official manga adaptation (id 122337) is paced far behind the anime — only ~ch 28-29 / 7 tankobon as of June 2026, not yet past the anime's content — so chapter mapping is unusable; this maps by LIGHT NOVEL VOLUME instead. IMPORTANT: the `chapters` tuples below hold LN VOLUME numbers, NOT chapter numbers (AniList lists no chapter/volume count for either entry). The 2023 TV anime (id 143338, 12 eps, single cour) adapts LN vols 1-4, ending right as Amane and Mahiru confess and start dating. Episode-to-volume groupings are even ~3-eps-per-volume estimates — this is a low-arc slice-of-life romcom, so boundaries are approximate. The unadapted tail (vols 5-12) was partly covered by the 2026 Season 2 (id 170019, vols ~5-8), which is a separate AniList entry not included here.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 1], + "arc": "Meeting the Angel Next Door (LN vol 1)" + }, + { + "episodes": [4, 6], + "chapters": [2, 2], + "arc": "Growing Closer at Home & School (LN vol 2)" + }, + { + "episodes": [7, 9], + "chapters": [3, 3], + "arc": "Amane's Family & Deepening Trust (LN vol 3)" + }, + { + "episodes": [10, 12], + "chapters": [4, 4], + "arc": "Christmas & the Confession (LN vol 4)" + }, + { + "chapters": [5, 12], + "arc": "After They Start Dating (LN vols 5-12, unadapted by this anime)" + } + ] +} diff --git a/src/data/mappings/asobi-asobase.json b/src/data/mappings/asobi-asobase.json new file mode 100644 index 0000000..fb652fd --- /dev/null +++ b/src/data/mappings/asobi-asobase.json @@ -0,0 +1,22 @@ +{ + "anilistAnimeId": 101001, + "anilistMangaId": 97418, + "title": "Asobi Asobase", + "sourceNotes": "Gag manga — chapter ranges are approximate. Rin Suzukawa's skit-based comedy is complete at 15 volumes (132 main chapters; AniList counts 134 including extras). The 2018 Lerche TV anime is a single 12-episode season directed by Seiji Kishi, and each episode wedges together three to four unrelated short chapters rather than following any continuous arc, ending around volume 5 / chapter 47 with only a handful of chapters skipped. Because the adaptation samples short gags rather than mapping cleanly, the per-episode chapter ranges below are coarse approximations, not exact matches. The canon OVA (a separate side entry) adapts a couple of stray chapters and there are no theatrical films. A reader continues past the anime from roughly chapter 48 to the finale at chapter 134.", + "mappings": [ + { + "episodes": [1, 6], + "chapters": [1, 24], + "arc": "Episodes 1-6 (assorted sketches; gag manga, approximate)" + }, + { + "episodes": [7, 12], + "chapters": [25, 47], + "arc": "Episodes 7-12 (assorted sketches through vol 5; gag manga, approximate)" + }, + { + "chapters": [48, 134], + "arc": "Later Stories to the Finale (unadapted; gag manga, approximate)" + } + ] +} diff --git a/src/data/mappings/asterisk-war.json b/src/data/mappings/asterisk-war.json new file mode 100644 index 0000000..48937c2 --- /dev/null +++ b/src/data/mappings/asterisk-war.json @@ -0,0 +1,37 @@ +{ + "anilistAnimeId": 21131, + "anilistMangaId": 81459, + "title": "The Asterisk War", + "sourceNotes": "Source is Yuu Miyazaki's light novel (AniList id 81459, type MANGA / format NOVEL, 139 chapters across 17 volumes). Mapped by LIGHT NOVEL volume rather than the manga adaptation (id 78369), which only ran 5 volumes / 37 chapters before stalling and never reaches the anime's endpoint. Cumulative episodes span the first TV cour (id 21131, 12 eps, 2015) plus the sequel 'Asterisk War 2' (id 21390, eps 13-24, 2016) = 24 total. Season 1 (eps 1-12) adapts LN vols 1-3; Season 2 (eps 13-24) adapts LN vols 4-6 — the entirety of the Phoenix Festa. Chapter ranges are proportional estimates converting LN volume boundaries onto AniList's 139-chapter count (~8 ch/vol), so they are approximate. LN vols 7-17 (the Gryps Festa and beyond) are unadapted.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 6], + "arc": "Introduction - Ayato transfers to Seidoukan, meets Julis-Alexia von Riessfeld (LN vol 1)" + }, + { + "episodes": [4, 8], + "chapters": [7, 16], + "arc": "Kirin Toudou arc - Ayato befriends Kirin and frees her from her uncle's control (LN vols 1-2)" + }, + { + "episodes": [9, 12], + "chapters": [17, 25], + "arc": "Phoenix Festa - qualifiers & early rounds (S1, LN vol 3)" + }, + { + "episodes": [13, 20], + "chapters": [26, 41], + "arc": "Phoenix Festa - main tournament, Allekant puppets & Flora rescue subplot (S2, LN vols 4-5)" + }, + { + "episodes": [21, 24], + "chapters": [42, 49], + "arc": "Phoenix Festa - finals & finale (S2, LN vol 6)" + }, + { + "chapters": [50, 139], + "arc": "Gryps Festa onward (LN vols 7-17, unadapted)" + } + ] +} diff --git a/src/data/mappings/baccano.json b/src/data/mappings/baccano.json new file mode 100644 index 0000000..6fbcdb3 --- /dev/null +++ b/src/data/mappings/baccano.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 2251, + "anilistMangaId": 31342, + "title": "Baccano!", + "sourceNotes": "Source is Ryohgo Narita's LIGHT NOVEL (AniList id 31342, format NOVEL). IMPORTANT: the units below are LN VOLUMES, not chapters - the 'chapters' values are LN volume numbers. The 22-volume main Dengeki Bunko series is used; AniList exposes no volume count for the novel, so 22 is sourced externally. The minor manga adaptation is deliberately ignored. anilistAnimeId 2251 = the 2007 TV anime, counted here as 16 episodes (13 TV eps + the 3 'Bangai-hen' specials, AniList id 3901). The anime adapts the first three LN arcs INTERWOVEN and NON-CHRONOLOGICALLY: vol 1 '1930 The Rolling Bootlegs', vols 2-3 '1931 The Grand Punk Railroad' (the Flying Pussyfoot transcontinental train), and vol 4 '1932 Drug & The Dominoes'. Because the three timelines are braided across the TV run, the per-arc episode ranges overlap and are APPROXIMATE. A reader resumes at LN vol 5 ('1933 The Slash').", + "mappings": [ + { + "episodes": [1, 13], + "chapters": [1, 1], + "arc": "1930 - The Rolling Bootlegs (LN vol 1; woven across the TV run, approximate)" + }, + { + "episodes": [1, 13], + "chapters": [2, 3], + "arc": "1931 - The Grand Punk Railroad / Flying Pussyfoot (LN vols 2-3; woven across the TV run, approximate)" + }, + { + "episodes": [1, 16], + "chapters": [4, 4], + "arc": "1932 - Drug & The Dominoes (LN vol 4; resolves late and across the 3 specials, approximate)" + }, + { + "chapters": [5, 22], + "arc": "Unadapted later LN arcs from 1933 onward (e.g. The Slash, Alice in Jails); LN vols 5-22" + } + ] +} diff --git a/src/data/mappings/barakamon.json b/src/data/mappings/barakamon.json new file mode 100644 index 0000000..e3deb22 --- /dev/null +++ b/src/data/mappings/barakamon.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 20722, + "anilistMangaId": 47051, + "title": "Barakamon", + "sourceNotes": "Single-season TV anime (12 eps, 2014, Kinema Citrus) adapts Satsuki Yoshino's manga through the end of Volume 6 / Act 52, so a viewer resumes reading at Act 53. The main story concluded at Act 134 across 18 volumes (Dec 2018); AniList counts 146 chapters / 19 volumes because it also includes the 2023 limited-revival 'Barakamon 18+1' (Vol 19) and the interstitial '.5' bonus acts, so the unadapted tail extends to 146. The Handa-kun prequel spin-off and the Mijikamon ONA shorts are separate entries and are excluded. There are no theatrical films. This is pure slice-of-life with no named arcs, and the anime reorders/condenses chapters, so episode-to-chapter groupings are coarse and approximate.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 16], + "arc": "Exiled to Gotō Island (Handa Arrives & Meets Naru)" + }, + { + "episodes": [4, 7], + "chapters": [17, 34], + "arc": "Island Summer (Beach, Tokyo Visitors & Fishing)" + }, + { + "episodes": [8, 12], + "chapters": [35, 52], + "arc": "Festivals, the Tokyo Exhibition & Coming Home (anime portion)" + }, + { + "chapters": [53, 146], + "arc": "Continued Island Life → Conclusion (unadapted tail; ch 135-146 are the 2023 '18+1' revival)" + } + ] +} diff --git a/src/data/mappings/black-bullet.json b/src/data/mappings/black-bullet.json new file mode 100644 index 0000000..12778f5 --- /dev/null +++ b/src/data/mappings/black-bullet.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 20457, + "anilistMangaId": 75559, + "title": "Black Bullet", + "sourceNotes": "Single 13-episode TV anime (2014); no sequels, so episodes are not cumulative. The source is Shiden Kanzaki's light novel (7 volumes, completed 2017). The linked Black Bullet manga (AniList id 75559, type MANGA) is a short, incomplete adaptation — only 20 chapters / 4 volumes covering the opening — so this mapping uses LIGHT-NOVEL VOLUME numbers as the 'chapters' unit instead. The anime adapts LN vols 1-4; vols 5-7 (Rentaro Satomi, Fugitive / Purgatory Strider / The Bullet That Changed the World) were never animated. Episode-to-volume boundaries are approximate (sources vary; some cite vols 1-3). No theatrical films — the lone 'Tenchuu*Girls' release is an OVA short and is omitted.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 1], + "arc": "Civil Security introduction — Those Who Would Be Gods (Rentaro & Enju, Kagetane Hiruko) (LN vol 1)" + }, + { + "episodes": [5, 7], + "chapters": [2, 2], + "arc": "Seitenshi Assassination plot — Against a Perfect Sniper (Tina Sprout) (LN vol 2)" + }, + { + "episodes": [8, 13], + "chapters": [3, 4], + "arc": "Third Kanto Battle / Legacy of the Seven Stars — the war for Tokyo Area vs the Gastrea Aldebaran (LN vols 3-4)" + }, + { + "chapters": [5, 7], + "arc": "Rentaro Satomi, Fugitive / Purgatory Strider / The Bullet That Changed the World (LN vols 5-7, unadapted)" + } + ] +} diff --git a/src/data/mappings/blend-s.json b/src/data/mappings/blend-s.json new file mode 100644 index 0000000..20b7399 --- /dev/null +++ b/src/data/mappings/blend-s.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 97994, + "anilistMangaId": 93940, + "title": "Blend-S", + "sourceNotes": "Single 12-episode TV season (2017, A-1 Pictures). Paired with Miyuki Nakayama's original Blend-S 4-koma (id 93940), a Manga Time Kirara Carat slice-of-life serial; AniList lists it as complete at 115 chapters / 8 volumes. 4-koma source — chapter ranges are approximate: the gag-style vignettes do not map 1:1 to episodes, so the 12 episodes adapt roughly the early chapters/volumes (several 4-koma per episode) in loose chronological order. There are no story arcs, so the adaptation is treated as one episodic entry plus an unadapted manga tail. No theatrical films exist, so no movies are listed.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 45], + "arc": "Café Stile everyday life (Maika joins the staff; the cast's café antics) — roughly vols 1-3, approximate" + }, + { + "chapters": [46, 115], + "arc": "Later 4-koma vignettes (vols 4-8) — manga only, approximate continuation" + } + ] +} diff --git a/src/data/mappings/blood-lad.json b/src/data/mappings/blood-lad.json new file mode 100644 index 0000000..b1219a8 --- /dev/null +++ b/src/data/mappings/blood-lad.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 11633, + "anilistMangaId": 51614, + "title": "Blood Lad", + "sourceNotes": "Single-cour 2013 TV anime (10 episodes, Brain's Base) adapting Yuuki Kodama's manga (complete, 85 chapters / 17 volumes per AniList). The anime covers roughly volumes 1-4, ending mid-story on the resurrection quest, so a viewer resumes the manga around chapter 24. Chapter boundaries are approximate, derived from the volume-to-episode pacing (~5 chapters per volume); the action-comedy's episodic structure makes exact cut points fuzzy. The 'Wagahai wa Neko de wa Nai' OVA, the 'Kanketsu Kinen' ONA, the side-story spinoff 'Bloody Brat', and the light novel are separate entries; there are no theatrical films.", + "mappings": [ + { + "episodes": [1, 2], + "chapters": [1, 5], + "arc": "Staz & Fuyumi — A Vampire's Promise" + }, + { + "episodes": [3, 5], + "chapters": [6, 12], + "arc": "The Demon World & Wolf" + }, + { + "episodes": [6, 7], + "chapters": [13, 17], + "arc": "The Human World & Bell's Treasure" + }, + { + "episodes": [8, 10], + "chapters": [18, 23], + "arc": "The Resurrection Quest (Braz & Liz Blood)" + }, + { + "chapters": [24, 85], + "arc": "Beyond the Anime (unadapted)" + } + ] +} diff --git a/src/data/mappings/bloom-into-you.json b/src/data/mappings/bloom-into-you.json new file mode 100644 index 0000000..d4f45b4 --- /dev/null +++ b/src/data/mappings/bloom-into-you.json @@ -0,0 +1,36 @@ +{ + "anilistAnimeId": 101573, + "anilistMangaId": 86218, + "title": "Bloom Into You", + "sourceNotes": "Single-cour TV anime (13 episodes, 2018) by Nakatani Nio's yuri manga, complete at 45 chapters across 8 volumes. The anime adapts chapters 1-24 (volumes 1-4) faithfully, ending around the student council play preparations; a reader resumes at chapter 25, which begins the manga-exclusive second half (the play performance and the Yuu-Touko resolution). AniList reports 53 chapters because it counts the per-volume bonus/interlude chapters; the canonical main-story numbering ends at 45, which this mapping uses. Episode-to-chapter boundaries are approximate.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 7], + "arc": "Yuu & Touko / Student Council" + }, + { + "episodes": [5, 8], + "chapters": [8, 15], + "arc": "Sayaka & the Play Proposal" + }, + { + "episodes": [9, 11], + "chapters": [16, 22], + "arc": "Play Preparations / Rising Feelings" + }, + { + "episodes": [12, 13], + "chapters": [23, 24], + "arc": "Suddenly Suffocating (Anime Finale)" + }, + { + "chapters": [25, 34], + "arc": "The Student Council Play (unadapted)" + }, + { + "chapters": [35, 45], + "arc": "After the Play / Resolution (unadapted)" + } + ] +} diff --git a/src/data/mappings/blue-box.json b/src/data/mappings/blue-box.json new file mode 100644 index 0000000..230a7b4 --- /dev/null +++ b/src/data/mappings/blue-box.json @@ -0,0 +1,37 @@ +{ + "anilistAnimeId": 170942, + "anilistMangaId": 132182, + "title": "Blue Box", + "sourceNotes": "S1 (25 eps across 2 cours, 2024-25) is a faithful ~3-chapters-per-episode adaptation of Kouji Miura's ongoing Weekly Shonen Jump manga, covering ch 1 through ch 80 (the finale adapts ch 77-80, with ch 80's content brought slightly forward). A viewer resumes reading at ch 81. Episode-to-chapter boundaries follow published episode guides; arc groupings are an approximate segmentation of this sports-romance. The manga is ongoing (ch 247 as of June 2026, 25 volumes); the unadapted tail is chapters-only. A Season 2 (AniList id 189123, Electric Circus) is announced but unreleased, so episode numbering is not yet cumulative.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 12], + "arc": "Chinatsu Moves In: Taiki, Badminton & the Road to Nationals" + }, + { + "episodes": [5, 9], + "chapters": [13, 26], + "arc": "Summer Inter-High: The Aquarium Date & the Tournament" + }, + { + "episodes": [10, 13], + "chapters": [27, 41], + "arc": "Second Term: Hina & Shifting Feelings" + }, + { + "episodes": [14, 19], + "chapters": [42, 62], + "arc": "Summer Training Camp" + }, + { + "episodes": [20, 25], + "chapters": [63, 80], + "arc": "Sports Festival, the Amusement Park & Hina's Confession (S1 Finale)" + }, + { + "chapters": [81, 247], + "arc": "Beyond the Anime (manga-only, ongoing)" + } + ] +} diff --git a/src/data/mappings/bofuri.json b/src/data/mappings/bofuri.json new file mode 100644 index 0000000..b6ea801 --- /dev/null +++ b/src/data/mappings/bofuri.json @@ -0,0 +1,52 @@ +{ + "anilistAnimeId": 106479, + "anilistMangaId": 103852, + "title": "BOFURI: I Don't Want to Get Hurt, so I'll Max Out My Defense.", + "sourceNotes": "Cumulative episodes across S1 (12, 2020) + S2 (12, 2023, eps 13-24) = 24 total; use the S1 anime id 106479. Source is Yuumikan's light novel (AniList id 103852, 19 volumes; web novel concluded Feb 2025). The Jiro Oimoto manga (AniList id 103853) is far behind the anime -- only ~ch 38 / vol 7 as of mid-2026, covering through roughly S1 ep 11 -- so it cannot anchor a 24-episode mapping. This therefore maps by LIGHT NOVEL VOLUME: the `chapters` tuples are LN volume numbers (1-19), NOT manga chapters. S1 adapts LN vols 1-4 and S2 adapts LN vols 5-8, so a reader resumes at vol 9 after the anime; vols 9-19 are unadapted. Arcs are named by NewWorld Online in-game events per the episode titles. Volume-to-episode boundaries are approximate.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 1], + "arc": "Beginnings & First Event (1st-2nd Stratum)" + }, + { + "episodes": [4, 5], + "chapters": [2, 2], + "arc": "Second Event (Underwater / Silverwing)" + }, + { + "episodes": [6, 8], + "chapters": [3, 3], + "arc": "Maple Tree Formation & Third Event" + }, + { + "episodes": [9, 12], + "chapters": [4, 4], + "arc": "Fourth Event (Guild War)" + }, + { + "episodes": [13, 14], + "chapters": [5, 5], + "arc": "Christmas Event & Strata 4-6 Exploration" + }, + { + "episodes": [15, 16], + "chapters": [6, 6], + "arc": "Seventh Event (Tower Conquest)" + }, + { + "episodes": [17, 18], + "chapters": [7, 7], + "arc": "Stratum 7 Exploration & Monster Taming" + }, + { + "episodes": [19, 24], + "chapters": [8, 8], + "arc": "Eighth Event (Final Guild Battle)" + }, + { + "chapters": [9, 19], + "arc": "Post-Eighth Event (LN vols 9-19, unadapted)" + } + ] +} diff --git a/src/data/mappings/case-study-of-vanitas.json b/src/data/mappings/case-study-of-vanitas.json new file mode 100644 index 0000000..2b26794 --- /dev/null +++ b/src/data/mappings/case-study-of-vanitas.json @@ -0,0 +1,37 @@ +{ + "anilistAnimeId": 131646, + "anilistMangaId": 86568, + "title": "The Case Study of Vanitas", + "sourceNotes": "Cumulative episodes across Part 1 (12) + Part 2 'The Case Study of Vanitas Part 2' (12, eps 13-24) = 24 total. Studio Bones adapts Jun Mochizuki's 'Vanitas no Carte' (Monthly Gangan Joker) chapters (mémoires) 1-55; the anime ends on Mémoire 55 'Après la pluie: His Wish', so a viewer resumes reading at ch 56 ('Faire un gâteau: Bittersweet', Vol 10). Manga is ongoing — it returned from a 2024-25 hiatus and the latest published chapter is 68 (released Jun 23, 2026). Arc boundaries are approximate, anchored to chapter titles vs. volume boundaries and to the reported Part-2 split (eps 13-19 ≈ ch 21-43). No theatrical films exist.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 5], + "arc": "Parisian Excursion (Vampire of the Blue Moon)" + }, + { + "episodes": [4, 7], + "chapters": [6, 13], + "arc": "Bal Masqué" + }, + { + "episodes": [8, 12], + "chapters": [14, 20], + "arc": "Hunters of the Dark (Catacombs)" + }, + { + "episodes": [13, 19], + "chapters": [21, 42], + "arc": "Beast of Gévaudan" + }, + { + "episodes": [20, 24], + "chapters": [43, 55], + "arc": "Beast of Gévaudan: Chloé's Resolution" + }, + { + "chapters": [56, 68], + "arc": "Post-Gévaudan (ongoing, unadapted)" + } + ] +} diff --git a/src/data/mappings/cautious-hero.json b/src/data/mappings/cautious-hero.json new file mode 100644 index 0000000..a43b6e7 --- /dev/null +++ b/src/data/mappings/cautious-hero.json @@ -0,0 +1,38 @@ +{ + "anilistAnimeId": 105156, + "anilistMangaId": 105724, + "title": "Cautious Hero: The Hero Is Overpowered but Overly Cautious", + "sourceNotes": "Source is Light Hiraga's light novel (AniList id 105723, ongoing), but chapter counts here track the completed manga adaptation by Koyuki (AniList id 105724, 36 chapters / 6 volumes, FINISHED 2018-2022). The single-cour 12-episode 2019 TV anime and the manga both adapt the complete Gaeabrande Salvation arc (LN vols 1-3), so the manga ends exactly where the anime ends and there is no unadapted manga tail. The light novel itself continues past Gaeabrande into the Ixphoria arc and beyond, but neither the manga nor the anime covers it. Episodes are mapped proportionally across the 36 chapters (~3 chapters/episode); sub-arc boundaries are approximate.", + "mappings": [ + { + "episodes": [1, 2], + "chapters": [1, 6], + "arc": "Gaeabrande: Summoning & Cautious Preparation" + }, + { + "episodes": [3, 4], + "chapters": [7, 12], + "arc": "Dragonkin Village & Chaos Machina (1st Heavenly King)" + }, + { + "episodes": [5, 6], + "chapters": [13, 18], + "arc": "Divine Realm Training (Great Dragon God)" + }, + { + "episodes": [7, 8], + "chapters": [19, 24], + "arc": "Mseiltinge / Mseroute, the Nymphomaniac Heavenly King" + }, + { + "episodes": [9, 10], + "chapters": [25, 30], + "arc": "Death Magla & Kilkapul (Heavenly Kings)" + }, + { + "episodes": [11, 12], + "chapters": [31, 36], + "arc": "The Truth & Demon Lord Finale" + } + ] +} diff --git a/src/data/mappings/cheat-skill.json b/src/data/mappings/cheat-skill.json new file mode 100644 index 0000000..b5e64f8 --- /dev/null +++ b/src/data/mappings/cheat-skill.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 153845, + "anilistMangaId": 116062, + "title": "I Got a Cheat Skill in Another World and Became Unrivaled in The Real World, Too", + "sourceNotes": "Source is Miku's light novel (20 volumes as of March 2026, ongoing). The linked manga adaptation (AniList id 116062, art by Kazuomi Minatogawa, serialized since Dec 2019) lags FAR behind the anime — only ~ch 37 / 7 volumes as of mid-2026, not yet reaching the anime's endpoint, and AniList lists no chapter count — so this mapping uses LIGHT-NOVEL VOLUME numbers as the 'chapters' unit instead (same approach as arifureta.json). The single-cour 13-episode 2023 TV anime adapts LN vols 1-4 (it rearranges events heavily and closes at the end of vol 4; a viewer resumes reading at vol 5). Per-volume episode boundaries are approximate. A 2024 TV special ('The Legendary Dragon Awakens') and an announced Season 2 are separate and not mapped here. No theatrical films.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 1], + "arc": "The Great Devil's Nest & Ōsei Academy — Yūya gains the leveling Cheat skill, transforms, and starts his dual real-world / isekai life (LN vol 1)" + }, + { + "episodes": [5, 6], + "chapters": [2, 2], + "arc": "New Family & the Sage — Night the fenrir, magic training, and academy life (LN vol 2)" + }, + { + "episodes": [7, 10], + "chapters": [3, 3], + "arc": "Princess Lexia & Luna the Assassin — the woods, study trip, and Owen's tutelage (LN vol 3)" + }, + { + "episodes": [11, 13], + "chapters": [4, 4], + "arc": "To the Royal Capital — the Evil God's demon assailant and the Yūya & Kaori finale (LN vol 4)" + }, + { + "chapters": [5, 20], + "arc": "Beyond the Anime (unadapted LN vols 5-20)" + } + ] +} diff --git a/src/data/mappings/citrus.json b/src/data/mappings/citrus.json new file mode 100644 index 0000000..a473823 --- /dev/null +++ b/src/data/mappings/citrus.json @@ -0,0 +1,42 @@ +{ + "anilistAnimeId": 97832, + "anilistMangaId": 80145, + "title": "Citrus", + "sourceNotes": "The 2018 TV anime (12 eps, single season) adapts Saburouta's complete yuri manga (50 chapters across 10 volumes; AniList id 80145, FINISHED) covering roughly volumes 1-6. Mapped against the original Citrus manga, not the Citrus+ sequel (id 103884). At ~5 chapters per volume the anime ends partway through volume 6, leaving chapters 31-50 (the rest of the Aihara family / engagement resolution through the wedding) unadapted. Internal episode-to-chapter boundaries are approximate.", + "mappings": [ + { + "episodes": [1, 2], + "chapters": [1, 4], + "arc": "Transfer & Step-Sisters (Yuzu meets council president Mei, learns they're new step-sisters)" + }, + { + "episodes": [3, 4], + "chapters": [5, 9], + "arc": "Harumin & the Chairman (growing tension; Mei's grandfather and the Aihara household)" + }, + { + "episodes": [5, 6], + "chapters": [10, 14], + "arc": "Matsuri (Yuzu's manipulative childhood friend tests the sisters' bond)" + }, + { + "episodes": [7, 8], + "chapters": [15, 18], + "arc": "Aftermath & Deepening Feelings" + }, + { + "episodes": [9, 10], + "chapters": [19, 22], + "arc": "Sara & Nina (the twins; school trip)" + }, + { + "episodes": [11, 12], + "chapters": [23, 30], + "arc": "Engagement Crisis (Mei's arranged marriage; finale)" + }, + { + "chapters": [31, 50], + "arc": "Aihara Resolution & Wedding (unadapted manga tail, vols 7-10)" + } + ] +} diff --git a/src/data/mappings/daily-lives-of-high-school-boys.json b/src/data/mappings/daily-lives-of-high-school-boys.json new file mode 100644 index 0000000..8e25a32 --- /dev/null +++ b/src/data/mappings/daily-lives-of-high-school-boys.json @@ -0,0 +1,13 @@ +{ + "anilistAnimeId": 11843, + "anilistMangaId": 56144, + "title": "Daily Lives of High School Boys", + "sourceNotes": "Gag sketch manga — chapter ranges are approximate. Yasunobu Yamauchi's comedy is complete at 138 chapters / 7 volumes. The 2012 Sunrise TV anime is a single 12-episode season, with each episode stitching together several unrelated short sketches drawn from across the run rather than following any continuous arc. Because the adaptation reorders and samples gags throughout all 7 volumes, there are no real arc boundaries; the mapping below is a coarse approximation. The 6 short Specials are a separate side entry and there are no theatrical films.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 138], + "arc": "Episodes 1-12 (assorted sketches, vols 1-7)" + } + ] +} diff --git a/src/data/mappings/dangers-in-my-heart.json b/src/data/mappings/dangers-in-my-heart.json new file mode 100644 index 0000000..285e13c --- /dev/null +++ b/src/data/mappings/dangers-in-my-heart.json @@ -0,0 +1,48 @@ +{ + "anilistAnimeId": 153152, + "anilistMangaId": 101557, + "title": "The Dangers in My Heart", + "sourceNotes": "Cumulative episodes across S1 (12 ep, 2023) + S2 (13 ep, 2024) = 25 total; S2 is a direct sequel so episode 13 is its premiere. Uses the S1 anime id (153152). Paired with Norio Sakurai's manga 'Boku no Kokoro no Yabai Yatsu' (Tonari no Young Jump), ending with its 14th volume (announced Jan 2026); latest available chapter is ~193 per MangaDex, so the unadapted tail covers ch 114–193. Firm anchors from reading guides + MangaDex tankobon boundaries: S1 ends at ch 57 (end of vol 4), S2 ends at ch 113 (end of vol 8) with the library confession/first kiss — a viewer resumes reading at ch 114. The work-study trip to Akita Shoten is ch 24–27; Valentine's lands in S2 ep 4 (overall ep 16). Internal per-episode boundaries are approximate (~4.3–4.75 ch/ep); the S1/S2 endpoints are exact.", + "mappings": [ + { + "season": 1, + "episodes": [1, 4], + "chapters": [1, 23], + "arc": "S1 · Library Encounters (Meeting Yamada)" + }, + { + "season": 1, + "episodes": [5, 8], + "chapters": [24, 40], + "arc": "S1 · Work-Study Trip & Growing Closer" + }, + { + "season": 1, + "episodes": [9, 12], + "chapters": [41, 57], + "arc": "S1 · Winter Break & New Year" + }, + { + "season": 2, + "episodes": [13, 16], + "chapters": [58, 75], + "arc": "S2 · New Term & Valentine's" + }, + { + "season": 2, + "episodes": [17, 20], + "chapters": [76, 94], + "arc": "S2 · White Day & Class Trip" + }, + { + "season": 2, + "episodes": [21, 25], + "chapters": [95, 113], + "arc": "S2 · Photoshoot & Library Confession (Kana arc)" + }, + { + "chapters": [114, 193], + "arc": "Coupledom & Final Volume (ongoing, unadapted)" + } + ] +} diff --git a/src/data/mappings/darwins-game.json b/src/data/mappings/darwins-game.json new file mode 100644 index 0000000..b3302f0 --- /dev/null +++ b/src/data/mappings/darwins-game.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 105190, + "anilistMangaId": 78881, + "title": "Darwin's Game", + "sourceNotes": "Single-cour TV anime (11 episodes, 2020) adapting FLIPFLOPs' manga (completed 2024 at 125 chapters / 30 volumes). The anime covers chapters 1-31, ending partway through volume 8; a viewer should resume reading at chapter 31 (around page 23). The adaptation compresses and skips material, so episode-to-chapter boundaries are approximate. No theatrical films exist.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 8], + "arc": "Introduction / First Game (Shibuya)" + }, + { + "episodes": [4, 6], + "chapters": [9, 20], + "arc": "Hunting Game (Shibuya Treasure Hunt)" + }, + { + "episodes": [7, 11], + "chapters": [21, 31], + "arc": "Sunset Ravens vs Eighth" + }, + { + "chapters": [32, 125], + "arc": "Post-Eighth War & Final Arcs (unadapted)" + } + ] +} diff --git a/src/data/mappings/death-march.json b/src/data/mappings/death-march.json new file mode 100644 index 0000000..b3611e9 --- /dev/null +++ b/src/data/mappings/death-march.json @@ -0,0 +1,37 @@ +{ + "anilistAnimeId": 97907, + "anilistMangaId": 86511, + "title": "Death March to the Parallel World Rhapsody", + "sourceNotes": "Source is Hiro Ainana's light novel; mapped here against Ayamegumu's manga adaptation (AniList 86511), which is ongoing at ~ch 136 / 19 volumes (plus extra chapters) as of mid-2026 per MangaDex. The single 2018 TV anime (12 eps, Silver Link x Connect) adapts roughly the first 3 light-novel volumes, which correspond to manga volumes 1-7 (ch 1-44), so a viewer resumes reading at manga ch 45 (vol 8). Episode-to-chapter boundaries are approximate since the manga paces these arcs more slowly than the anime. A sequel anime was announced in Dec 2024 but had not aired as of this mapping. No theatrical films.", + "mappings": [ + { + "episodes": [1, 1], + "chapters": [1, 3], + "arc": "Arrival & the Black Dragon (death march, isekai transport, Meteor Shower, leveling)" + }, + { + "episodes": [2, 3], + "chapters": [4, 12], + "arc": "Seiryuu City & the Soldier Zena (city tour, the inn, romance, demon scam begins)" + }, + { + "episodes": [4, 6], + "chapters": [13, 18], + "arc": "The Cradle Labyrinth & the Slaves (frees Liza/Tama/Pochi, defeats the demon, gains Arisa & Lulu, city defense)" + }, + { + "episodes": [7, 9], + "chapters": [19, 30], + "arc": "The Maze of Trazayuya & Princess Mia (departure, camping, the labyrinth, undead Zen, rescuing the elf princess)" + }, + { + "episodes": [10, 12], + "chapters": [31, 44], + "arc": "Labyrinth City Celivera & the Noble's Quarter (journey home, the potion conspiracy, the underworld descent)" + }, + { + "chapters": [45, 136], + "arc": "Beyond the Anime (ongoing, unadapted)" + } + ] +} diff --git a/src/data/mappings/devilman-crybaby.json b/src/data/mappings/devilman-crybaby.json new file mode 100644 index 0000000..7ab1d57 --- /dev/null +++ b/src/data/mappings/devilman-crybaby.json @@ -0,0 +1,33 @@ +{ + "anilistAnimeId": 98460, + "anilistMangaId": 31474, + "title": "Devilman Crybaby", + "sourceNotes": "10-episode Netflix ONA (2018, dir. Masaaki Yuasa) adapting Go Nagai's original 1972 Devilman manga, which is complete at 53 chapters across 5 tankobon volumes (AniList id 31474). Chapter ranges follow the five-volume structure (Vol 1 Sabbath/Amon, Vol 2 Sirene, Vol 3 Jinmen & demon hunts, Vol 4 the demon reveal/witch hunts/global war, Vol 5 Armageddon) and are approximate, because Crybaby heavily compresses and modernizes the source: it collapses the manga's lengthy demon-hunting middle and the entire apocalyptic finale (Ryo's televised demon reveal, the witch hunts, Miki's death, and Armageddon with the Satan reveal) into just the final two episodes. Boundaries drawn from the Devilman fandom episode guide and the Wikipedia volume list.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 11], + "arc": "The Sabbath & the Birth of Devilman (Amon)" + }, + { + "episodes": [4, 5], + "chapters": [12, 22], + "arc": "Sirene the Demoness" + }, + { + "episodes": [6, 8], + "chapters": [23, 32], + "arc": "Jinmen & the Demon Hunts" + }, + { + "episodes": [9, 9], + "chapters": [33, 43], + "arc": "The Demon Reveal & the Witch Hunts (Miki's Death)" + }, + { + "episodes": [10, 10], + "chapters": [44, 53], + "arc": "Armageddon (Satan's War)" + } + ] +} diff --git a/src/data/mappings/domestic-girlfriend.json b/src/data/mappings/domestic-girlfriend.json new file mode 100644 index 0000000..da5f1bd --- /dev/null +++ b/src/data/mappings/domestic-girlfriend.json @@ -0,0 +1,31 @@ +{ + "anilistAnimeId": 103139, + "anilistMangaId": 85802, + "title": "Domestic Girlfriend", + "sourceNotes": "Single 12-episode TV season (2019) heavily condenses Kei Sasuga's manga ch 1-72, skipping several chapters along the way (e.g., 25-28 and 37-41), so a viewer resumes reading at ch 73. The manga is complete at 276 chapters / 28 volumes (AniList lists 299, counting bonus/extra chapters). The manga has no officially-labeled arcs, so the adapted-segment chapter ranges and the two unadapted tail groupings (ch 73-276) are approximate, descriptive labels.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 10], + "arc": "First Love and a New Family" + }, + { + "episodes": [5, 8], + "chapters": [11, 33], + "arc": "A Forbidden Triangle" + }, + { + "episodes": [9, 12], + "chapters": [34, 72], + "arc": "Hina's Departure" + }, + { + "chapters": [73, 180], + "arc": "The Aspiring Novelist (unadapted)" + }, + { + "chapters": [181, 276], + "arc": "Reunion and Resolution (unadapted, final)" + } + ] +} diff --git a/src/data/mappings/eromanga-sensei.json b/src/data/mappings/eromanga-sensei.json new file mode 100644 index 0000000..8285f03 --- /dev/null +++ b/src/data/mappings/eromanga-sensei.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 21685, + "anilistMangaId": 85471, + "title": "Eromanga Sensei", + "sourceNotes": "Source is Tsukasa Fushimi's light novel (13 vols, AniList 85166). Paired here with the manga adaptation by Rin (AniList 85471): 79 chapters / 12 vols, serialized May 2014 - May 2021 (FINISHED). The 2017 TV anime (12 eps) adapts roughly LN vols 1-5, so a viewer can resume the manga at ch. 34. A 2-ep OVA exists (AniList 100523) but is omitted; there are no theatrical films. Episode-to-chapter boundaries are APPROXIMATE because the anime reorders and condenses material relative to both the LN and the manga; treat the chapter ranges as coarse guides rather than exact cut points.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 8], + "arc": "Eromanga-sensei Revealed (Sagiri & Masamune become a team)" + }, + { + "episodes": [4, 6], + "chapters": [9, 16], + "arc": "Elf Yamada (rival author & illustration showdown)" + }, + { + "episodes": [7, 9], + "chapters": [17, 25], + "arc": "Muramasa Senju (the genius novelist)" + }, + { + "episodes": [10, 12], + "chapters": [26, 33], + "arc": "Stepping Outside (Sagiri's resolve & family backstory)" + }, + { + "chapters": [34, 79], + "arc": "Beyond the Anime (unadapted manga continuation through the finale)" + } + ] +} diff --git a/src/data/mappings/familiar-of-zero.json b/src/data/mappings/familiar-of-zero.json new file mode 100644 index 0000000..528db9a --- /dev/null +++ b/src/data/mappings/familiar-of-zero.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 1195, + "anilistMangaId": 35450, + "title": "The Familiar of Zero", + "sourceNotes": "Cumulative episodes across S1 (13) + 'Knight of the Twin Moons'/S2 (12, eps 14-25) + 'Rondo of Princesses'/S3 (12, eps 26-37) + 'F'/S4 (12, eps 38-49) = 49 total; the four J.C.Staff TV series (2006/2007/2008/2012) are sequels, so episodes are numbered continuously. The Nana Mochizuki manga adaptation (id 31154) is incomplete (only ~36 ch / 7 vols, ending around LN vol 3), so this maps to Noboru Yamaguchi's complete LIGHT NOVEL instead (AniList id 35450, type MANGA, 222 chapters across 22 volumes). The LN ran 20 volumes (2004-2011); Yamaguchi died in 2013 leaving it unfinished, and the final two volumes (21-22, 2016/2017) were completed posthumously by another author from his notes. Mapping is by LN VOLUME (cleaner than the truncated manga): S1 ~vols 1-3, S2 ~vols 4-6, S3 ~vols 7-9, S4 'F' loosely covers later volumes with heavy anime-original content and an original ending (the LN was unfinished when F aired). Chapter ranges are proportional estimates converting those volume boundaries onto AniList's 222-chapter count, so per-season boundaries are APPROXIMATE. The LN's true conclusion (vols 21-22) is unadapted. No theatrical films exist (the only side entry is the 'Seductive Beach' OVA, omitted).", + "mappings": [ + { + "episodes": [1, 13], + "chapters": [1, 30], + "arc": "S1: The Familiar of Zero (LN vols 1-3)" + }, + { + "episodes": [14, 25], + "chapters": [31, 61], + "arc": "S2: Knight of the Twin Moons / Futatsuki no Kishi (LN vols 4-6)" + }, + { + "episodes": [26, 37], + "chapters": [62, 91], + "arc": "S3: Rondo of Princesses / Princesses no Rondo (LN vols 7-9)" + }, + { + "episodes": [38, 49], + "chapters": [92, 172], + "arc": "S4: F (later LN volumes; anime-original ending)" + }, + { + "chapters": [173, 222], + "arc": "Final Arc (LN vols 18-22; unadapted, conclusion completed posthumously)" + } + ] +} diff --git a/src/data/mappings/fragrant-flower.json b/src/data/mappings/fragrant-flower.json new file mode 100644 index 0000000..4734581 --- /dev/null +++ b/src/data/mappings/fragrant-flower.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 181444, + "anilistMangaId": 140475, + "title": "The Fragrant Flower Blooms With Dignity", + "sourceNotes": "Single-cour TV anime by CloverWorks (13 episodes, Jul 6 - Sep 28 2025) adapting Saka Mikami's ongoing manga (Kaoru Hana wa Rin to Saku), serialized in Magazine Pocket. AniList lists chapters as null; per fan episode-to-chapter guides the anime covers manga ch 1-39 (ep 13 also touches ch 40), so a viewer resumes reading at ch 40. As of June 2026 the manga is at ~ch 193 across 23 tankobon volumes (vol 23 = ch 173-179; ch 180+ uncollected), used here as the unadapted-tail endpoint. This is a slow-burn romance with loose arcs, so the groupings below are approximate and built by clustering the episode-to-chapter mapping into story phases.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 7], + "arc": "Meeting Across the Divide (Rintaro & Kaoruko at the Waguri bakery; Chidori vs Kikyo)" + }, + { + "episodes": [5, 8], + "chapters": [8, 19], + "arc": "Merging Worlds (Subaru's feelings; friend groups intertwine; Rintaro's circle finds out)" + }, + { + "episodes": [9, 12], + "chapters": [20, 36], + "arc": "Awakening Feelings (Rintaro grapples with his growing feelings amid school events & outings)" + }, + { + "episodes": [13, 13], + "chapters": [37, 39], + "arc": "Confession at the Festival (the two become a couple)" + }, + { + "chapters": [40, 193], + "arc": "Dating Life & Beyond (unadapted, ongoing; ch 40 is where to resume reading)" + } + ] +} diff --git a/src/data/mappings/gamers.json b/src/data/mappings/gamers.json new file mode 100644 index 0000000..df2e451 --- /dev/null +++ b/src/data/mappings/gamers.json @@ -0,0 +1,37 @@ +{ + "anilistAnimeId": 97766, + "anilistMangaId": 94309, + "title": "Gamers!", + "sourceNotes": "Single 12-episode TV anime by Pine Jam (Summer 2017). The separate manga adaptation (AniList id 98786) is a slower, self-contained 7-volume / 33-chapter retelling that only covers the early light novel and does not span the anime's range, so this maps to Sekina Aoi's source light novel instead (AniList id 94309, type MANGA, 66 chapters across 12 volumes). The anime adapts LN volumes 1-5; volumes 6-12 are unadapted. This is a romcom built almost entirely on overlapping misunderstandings, so the love web threads through every episode and arc boundaries are coarse. Chapter ranges are proportional estimates mapping the LN volume boundaries onto AniList's 66-chapter count (about 5.5 ch/vol), and the episode-to-volume splits are approximate.", + "mappings": [ + { + "episodes": [1, 2], + "chapters": [1, 6], + "arc": "Game Club Invitation (Amano declines Tendou; Uehara introduced, LN vol 1)" + }, + { + "episodes": [3, 5], + "chapters": [7, 11], + "arc": "Crossed Flags (Chiaki rivalry, Tendou's slump, Aguri appears, LN vol 2)" + }, + { + "episodes": [6, 8], + "chapters": [12, 17], + "arc": "Game Over Misunderstanding Spiral (the love web tangles, LN vol 3)" + }, + { + "episodes": [9, 10], + "chapters": [18, 22], + "arc": "Account Hack & Next Stage (Chiaki's secret, LN vol 4)" + }, + { + "episodes": [11, 12], + "chapters": [23, 28], + "arc": "Youth Continues (climax and partial resolution, LN vol 5)" + }, + { + "chapters": [29, 66], + "arc": "Post-anime romance (LN vols 6-12, unadapted)" + } + ] +} diff --git a/src/data/mappings/gangsta.json b/src/data/mappings/gangsta.json new file mode 100644 index 0000000..055b149 --- /dev/null +++ b/src/data/mappings/gangsta.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 20773, + "anilistMangaId": 54903, + "title": "Gangsta.", + "sourceNotes": "S1 anime (12 eps, 2015) adapts roughly manga ch 1-28 (through about vol 5); the finale (ep 12) covers ch 26-28, so a viewer resumes reading at ch 29 (vol 6). Paired with Kohske's manga, which is on a long hiatus due to the author's health: the latest published chapter is 56 (Dec 2020) across 8 volumes; AniList does not track a chapter count for this series. Serialization is announced to resume with ch 57 in July 2026. Internal episode/chapter splits are approximate; the Gangsta:Cursed. spin-off and the 'Postman' one-shot are excluded.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 9], + "arc": "Ergastulum & the Handymen (Worick, Nicolas & Alex; Twilight underworld intro)" + }, + { + "episodes": [5, 8], + "chapters": [10, 19], + "arc": "Worick & Nicolas' Past (Twilight law, the Corsica family & the four families)" + }, + { + "episodes": [9, 12], + "chapters": [20, 28], + "arc": "The Guild & the Twilight Hunt (anime finale)" + }, + { + "chapters": [29, 56], + "arc": "The Twilight Massacre & Aftermath (unadapted tail; latest ch 56, on hiatus)" + } + ] +} diff --git a/src/data/mappings/gate.json b/src/data/mappings/gate.json new file mode 100644 index 0000000..e3e900d --- /dev/null +++ b/src/data/mappings/gate.json @@ -0,0 +1,42 @@ +{ + "anilistAnimeId": 20994, + "anilistMangaId": 71733, + "title": "Gate", + "sourceNotes": "Cumulative episode numbering spans both TV cours: S1 'Gate' eps 1-12 (2015) + S2 'Gate Part 2' eps 13-24 (2016), both A-1 Pictures; the anime id is S1's. Ranges map onto Satoru Sao's manga adaptation (AniList: FINISHED, 143 chapters across 28 volumes; the main run ends with a ch 143 finale plus a 143.2 epilogue). The manga reorders and expands the light-novel material relative to the anime, so episode-to-chapter ranges are approximate. The 24-episode anime covers roughly ch 1-66 (through the Rondel / Oprichnina confrontation); ch 67-143 (the full-scale Japan-Empire civil war, Zorzal's downfall, and conclusion) are unadapted.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 8], + "arc": "Ginza Incident & the Special Region (Battle of Alnus, first Flame Dragon)" + }, + { + "episodes": [5, 7], + "chapters": [9, 15], + "arc": "Battle of Italica" + }, + { + "episodes": [8, 10], + "chapters": [16, 24], + "arc": "Japan Beyond the Gate (Diet hearing & the Ginza counterattack)" + }, + { + "episodes": [11, 14], + "chapters": [25, 34], + "arc": "Coda Village & Imperial Capital diplomacy (Yao, Zorzal, the earthquake)" + }, + { + "episodes": [15, 17], + "chapters": [35, 47], + "arc": "Tuka's grief & the Flame Dragon decisive battle (Dark Elves)" + }, + { + "episodes": [18, 24], + "chapters": [48, 66], + "arc": "Magic City of Rondel & the Imperial coup / Oprichnina (anime finale)" + }, + { + "chapters": [67, 143], + "arc": "Japan-Empire civil war, Zorzal's downfall & conclusion (unadapted)" + } + ] +} diff --git a/src/data/mappings/girls-last-tour.json b/src/data/mappings/girls-last-tour.json new file mode 100644 index 0000000..492056d --- /dev/null +++ b/src/data/mappings/girls-last-tour.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 99420, + "anilistMangaId": 85412, + "title": "Girls' Last Tour", + "sourceNotes": "Single-cour 2017 TV anime (12 eps) paired with Tsukumizu's complete post-apocalyptic slice-of-life manga 'Shoujo Shuumatsu Ryokou' (47 chapters / 6 tankobon vols, finished). The anime adapts roughly manga volumes 1-4 at a pace of ~3 episodes per volume, ending around the close of Vol 4 (~ch 32). Volume-to-chapter anchors (~8 chapters each): V1=1-8, V2=9-16, V3=17-24, V4=25-32, V5=33-40, V6=41-47. This is an episodic, segment-based show (each episode adapts 2-3 short chapters in order, e.g. ep 1 = 'Starry Sky'/'War'), so chapter boundaries are APPROXIMATE and grouped per volume rather than per episode. Vols 5-6 (ch 33-47), covering Chito and Yuuri's final ascent to the topmost layer, are unadapted, so a viewer resumes reading around ch 33. No theatrical films; the 'Shoujo Shuumatsu Jugyou' ONA shorts and anthology/special comics are separate side entries and are omitted.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 8], + "arc": "Departure: Chito & Yuuri ascend the ruined lower city (Starry Sky, Bath, City, Streetlights) — Vol 1" + }, + { + "episodes": [4, 6], + "chapters": [9, 16], + "arc": "The Temple, the Rains & Takeoff (Photograph, Sound of Rain, Technology) — Vol 2" + }, + { + "episodes": [7, 9], + "chapters": [17, 24], + "arc": "The Labyrinthine Factory, the Aquarium & Life (Labyrinth, Memory, Aquarium) — Vol 3" + }, + { + "episodes": [10, 12], + "chapters": [25, 32], + "arc": "The Train Upward, Culture & Friends (Train, Destruction, Connection) — Vol 4 finale" + }, + { + "chapters": [33, 47], + "arc": "The Final Ascent to the Topmost Layer (Vols 5-6, unadapted)" + } + ] +} diff --git a/src/data/mappings/gleipnir.json b/src/data/mappings/gleipnir.json new file mode 100644 index 0000000..949c327 --- /dev/null +++ b/src/data/mappings/gleipnir.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 108241, + "anilistMangaId": 86607, + "title": "Gleipnir", + "sourceNotes": "S1 anime (13 eps, 2020) adapts roughly the first five volumes (about ch 1-36); episode 13 ('We Two Are One') is an anime-original ending, so a viewer resumes reading at ch 37. Paired with Sun Takeda's complete manga: 88 chapters across 14 volumes (serialization ended April 2023), and AniList confirms 88 ch / 14 vols, so the final arc extends to 88. Per-episode chapter boundaries are approximate (the adaptation is loose), as is the pact/coin-hunt/Elena split. The live-action material is excluded; there are no films.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 9], + "arc": "The Pact: Shuichi & Clair (Monster Secret; Elena & the Coins Revealed)" + }, + { + "episodes": [4, 9], + "chapters": [10, 27], + "arc": "The Coin Hunt (Gatherers & the War for the Wish)" + }, + { + "episodes": [10, 13], + "chapters": [28, 36], + "arc": "Elena Confrontation (anime-original ending)" + }, + { + "chapters": [37, 88], + "arc": "Post-Anime: The Spaceship & Final Arc (unadapted)" + } + ] +} diff --git a/src/data/mappings/great-teacher-onizuka.json b/src/data/mappings/great-teacher-onizuka.json new file mode 100644 index 0000000..797ecd9 --- /dev/null +++ b/src/data/mappings/great-teacher-onizuka.json @@ -0,0 +1,47 @@ +{ + "anilistAnimeId": 245, + "anilistMangaId": 30336, + "title": "Great Teacher Onizuka", + "sourceNotes": "Single-season 1999 TV anime (43 eps) adapting Tooru Fujisawa's `GTO` manga (FINISHED; AniList counts 208 chapters incl. `.5`/extra installments, Wikipedia lists 200 across 25 vols). The anime caught up to the then-ongoing manga, so it reorders chapters heavily through the Okinawa trip (~ch 109) and then ends on an ANIME-ORIGINAL Onizuka-vs-Miyabi finale (eps 42-43) rather than adapting the manga's later arcs. Episode-to-chapter anchors are approximate, drawn from the `Everything Begins With Your Heart` GTO anime/manga comparison (eps 1-8 ≈ ch 1-28, eps 9-19 ≈ ch 28-67, eps 20-41 ≈ ch 68-109) plus the GTO fandom wiki; the anime interleaves chapters out of order so per-arc ranges are best-fit. The unadapted manga tail (Mayu, Urumi Kanzaki / school carnival, and the final Daimon/graduation arcs) is included as chapters-only. Live-action films/specials excluded, so no `movies`.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 14], + "arc": "The Legend Begins (Onizuka becomes a teacher; Yoshikawa's rooftop rescue)" + }, + { + "episodes": [4, 8], + "chapters": [15, 28], + "arc": "Kikuchi & the Campaign to Oust Onizuka" + }, + { + "episodes": [9, 15], + "chapters": [29, 50], + "arc": "Tomoko Nomura & Anko Uehara" + }, + { + "episodes": [16, 22], + "chapters": [51, 71], + "arc": "Fuyutsuki & Class 2-4's Crises" + }, + { + "episodes": [23, 36], + "chapters": [72, 97], + "arc": "Miyabi's Blackmail Scheme, Tomoko's Idol Debut & Murai's Mother (anime reorders ch 72-97)" + }, + { + "episodes": [37, 41], + "chapters": [98, 109], + "arc": "The Okinawa School Trip" + }, + { + "episodes": [42, 43], + "chapters": [110, 145], + "arc": "Onizuka vs Miyabi: The Finale (anime-original ending; the manga resolves Miyabi later across the Mayu and Urumi carnival arcs)" + }, + { + "chapters": [146, 208], + "arc": "Final Arcs & Graduation (unadapted manga tail: Daimon & the third-year finale)" + } + ] +} diff --git a/src/data/mappings/grimgar.json b/src/data/mappings/grimgar.json new file mode 100644 index 0000000..9028195 --- /dev/null +++ b/src/data/mappings/grimgar.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 21428, + "anilistMangaId": 86367, + "title": "Grimgar of Fantasy and Ash", + "sourceNotes": "S1 anime (12 eps, 2016) adapts roughly LIGHT NOVEL volumes 1-2 of Ao Jumonji's series. The linked manga adaptation (AniList id 86367) is SHORT and incomplete — only 16 chapters / 3 volumes (FINISHED) covering a fraction of the story — so this mapping uses LIGHT-NOVEL VOLUME numbers as the 'chapters' unit instead of manga chapters. Vol 1 runs through Manato's death and the immediate aftermath; vol 2 covers Merry joining and the Cyrene Mines / Death Spot climax (Moguzo's death). Per-arc volume boundaries are APPROXIMATE (only two volumes span all 12 episodes, so groupings are coarse and the vol-1/vol-2 boundary falls inside the middle arc). The LN is ongoing (~20 volumes by 2026); resume reading at vol 3 — its upper bound below is approximate. The OVA 2.5 special is a separate side entry; there are no theatrical films.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 1], + "arc": "Party formation & first goblins / Manato's death (LN vol 1)" + }, + { + "episodes": [5, 8], + "chapters": [1, 2], + "arc": "Grief & recruiting Merry the priest (LN vols 1-2)" + }, + { + "episodes": [9, 12], + "chapters": [2, 2], + "arc": "Cyrene Mines / Death Spots — the Deathspot battle & Moguzo's death (LN vol 2)" + }, + { + "chapters": [3, 20], + "arc": "Post-anime (LN vol 3 onward, ongoing & unadapted)" + } + ] +} diff --git a/src/data/mappings/haganai.json b/src/data/mappings/haganai.json new file mode 100644 index 0000000..c0c1d55 --- /dev/null +++ b/src/data/mappings/haganai.json @@ -0,0 +1,25 @@ +{ + "anilistAnimeId": 10719, + "anilistMangaId": 49087, + "title": "Haganai: I Don't Have Many Friends", + "sourceNotes": "Cumulative episodes across S1 'Haganai' (2011, 12 eps) + S2 'Haganai NEXT' (2013, eps 13-24) = 24 total; anilistAnimeId 10719 is the S1 TV anime. The franchise's true source is Yomi Hirasaka's LIGHT NOVEL (11 vols, 2009-2015), which the anime adapts directly. anilistMangaId 49087 is Itachi's manga adaptation (FINISHED, 109 ch / 20 vols, 2010-2021) -- an independent, parallel adaptation of the same LN, so its pacing and chapter boundaries do not line up exactly with the anime, and the manga's ending diverges from the LN. Season 1 adapts LN vol 1 through vol 4 ch 2; Season 2 NEXT adapts LN vol 4 through about three-quarters of vol 8. In manga terms, the two seasons together cover roughly chapters 1-64; the documented manga resume point after the anime is Vol 15, ch 65 (manga vol anchors: v1=ch1-5, v2=ch6-10, v3=ch11-15, v4=ch16-20, v5=ch21-24). The intra-anime S1/S2 chapter split (~ch 32) is approximate. No theatrical films.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 32], + "arc": "Season 1: Neighbors Club Formation & First Summer (through Yozora 'Sora' reveal)", + "note": "Adapts LN vol 1 to vol 4 ch 2. Manga chapter split is approximate." + }, + { + "episodes": [13, 24], + "chapters": [33, 64], + "arc": "Season 2 (NEXT): Sena Engagement, Yukimura's Secret & Mayoi Neko Overheat Film", + "note": "Adapts LN vol 4 to ~vol 8 (3/4). Manga chapter split is approximate." + }, + { + "chapters": [65, 109], + "arc": "Post-anime (resume at manga Vol 15) -- unadapted", + "note": "LN vol 8 (~3/4) onward through vol 11. Manga ending diverges from the LN." + } + ] +} diff --git a/src/data/mappings/haruhi-suzumiya.json b/src/data/mappings/haruhi-suzumiya.json new file mode 100644 index 0000000..cea8f8a --- /dev/null +++ b/src/data/mappings/haruhi-suzumiya.json @@ -0,0 +1,42 @@ +{ + "anilistAnimeId": 849, + "anilistMangaId": 33083, + "title": "The Melancholy of Haruhi Suzumiya", + "sourceNotes": "Source is Nagaru Tanigawa's light novel series; the anime adapts LN volumes, so the units here are LN VOLUMES (the 'chapters' ranges are volume numbers), not manga chapters. anilistAnimeId 849 is the original 2006 TV anime (14 eps); the 2009 re-broadcast (id 4382) interleaved those with 14 new episodes for 28 total, presented in story-chronological order. Episodes are kept cumulative 1-28 by that standard Kadokawa chronological numbering. Note that broadcast order differs from story order and from LN publication order (e.g. ep 2 'The Boredom' is a vol-3 short slotted between vol-1 'Melancholy' parts), so volume ranges are coarse/approximate and do not increase monotonically. AniList splits each LN volume into its own NOVEL entry; 33083 is the series-root entry ('The Melancholy', vol 1). The TV run covers vols 1-3, 5-6; LN vol 4 'The Disappearance' is adapted as the 2010 film, not the series.", + "mappings": [ + { + "episodes": [1, 7], + "chapters": [1, 1], + "arc": "The Melancholy of Haruhi Suzumiya (vol 1; SOS Brigade formed)" + }, + { + "episodes": [8, 11], + "chapters": [3, 3], + "arc": "The Boredom of Haruhi Suzumiya (vol 3 shorts: Bamboo Leaf Rhapsody, Mysterique Sign, Remote Island Syndrome)" + }, + { + "episodes": [12, 19], + "chapters": [5, 5], + "arc": "Endless Eight (The Rampage of Haruhi Suzumiya, vol 5)" + }, + { + "episodes": [20, 24], + "chapters": [2, 2], + "arc": "The Sigh of Haruhi Suzumiya (vol 2; cultural-festival film arc)" + }, + { + "episodes": [25, 28], + "chapters": [5, 6], + "arc": "The Day of Sagittarius / The Wavering of Haruhi Suzumiya (vols 5-6: Live Alive, Someday in the Rain)" + } + ], + "movies": [ + { + "anilistId": 7311, + "title": "The Disappearance of Haruhi Suzumiya", + "year": 2010, + "afterEpisode": 28, + "note": "canon sequel film; adapts LN vol 4 (The Disappearance)" + } + ] +} diff --git a/src/data/mappings/heavenly-delusion.json b/src/data/mappings/heavenly-delusion.json new file mode 100644 index 0000000..3ff4cea --- /dev/null +++ b/src/data/mappings/heavenly-delusion.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 155783, + "anilistMangaId": 101942, + "title": "Heavenly Delusion", + "sourceNotes": "13-ep single season (2023) by Production I.G adapts Masakazu Ishiguro's manga through roughly vol 6 into early vol 7. The two parallel timelines end at different points: the 'outside' journey (Maru & Kiruko) reaches ~ch 34, while the 'inside' Takahara Academy timeline runs to ~ch 39, with the anime pulling some Nursery-arc reveals (ch 36-38) forward into the finale. Because the timelines interleave, episode-to-chapter boundaries are approximate. Manga ongoing: 13 volumes / ~ch 83 as of late June 2026 (MangaDex / Wikipedia chapter list). A reader resumes cleanly around ch 40 (vol 7, 'Dreams of Hell'). No films.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 12], + "arc": "The Outside & Takahara Academy (Setup) — approx." + }, + { + "episodes": [5, 9], + "chapters": [13, 30], + "arc": "The Immortal Order & Wall Town — approx." + }, + { + "episodes": [10, 13], + "chapters": [31, 39], + "arc": "Robin Inazaki & Takahara Academy (Finale) — approx." + }, + { + "chapters": [40, 83], + "arc": "Ongoing (unadapted)" + } + ] +} diff --git a/src/data/mappings/higehiro.json b/src/data/mappings/higehiro.json new file mode 100644 index 0000000..7a34122 --- /dev/null +++ b/src/data/mappings/higehiro.json @@ -0,0 +1,33 @@ +{ + "anilistAnimeId": 114232, + "anilistMangaId": 105791, + "title": "Higehiro: After Being Rejected, I Shaved and Took in a High School Runaway", + "sourceNotes": "Source is Shimesaba's light novel (AniList 104505, 5 vols / completed). Paired here with the completed manga adaptation 'Hige wo Soru. Soshite Joshikousei wo Hirou.' (AniList 105791, 67 ch / 13 vols, FINISHED). The single-cour 2021 TV anime (13 eps) adapts essentially the entire main story (LN vols 1-5), so the manga's 67 chapters and the anime's run end at the same story point and there is no unadapted tail. Episode-to-volume splits follow the LN structure (~vol 1: eps 1-3, vol 2: eps 4-6, vol 3: eps 7-9, vol 4: eps 10-11, vol 5: eps 12-13); chapter ranges are mapped proportionally across the manga and are approximate.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 14], + "arc": "Taking In Sayu (A New Life Together)" + }, + { + "episodes": [4, 6], + "chapters": [15, 28], + "arc": "Daily Life & Mishima's Feelings" + }, + { + "episodes": [7, 9], + "chapters": [29, 42], + "arc": "Friendships & Sayu's Past Resurfaces" + }, + { + "episodes": [10, 11], + "chapters": [43, 54], + "arc": "Her Brother Issa (The Truth Comes Out)" + }, + { + "episodes": [12, 13], + "chapters": [55, 67], + "arc": "Return to Hokkaido (Resolution)" + } + ] +} diff --git a/src/data/mappings/high-rise-invasion.json b/src/data/mappings/high-rise-invasion.json new file mode 100644 index 0000000..2aba182 --- /dev/null +++ b/src/data/mappings/high-rise-invasion.json @@ -0,0 +1,37 @@ +{ + "anilistAnimeId": 125428, + "anilistMangaId": 85388, + "title": "High-Rise Invasion", + "sourceNotes": "The 2021 Netflix ONA (Tenkuu Shinpan, id 125428) is a single 12-episode season that adapts roughly volumes 1-8 of Tsuina Miura (story) & Takahiro Oba (art)'s complete manga (id 85388). AniList counts the manga at 258 chapters across 21 volumes; fan/scanlation sources often cite ~169 'main' chapters, but ranges here follow AniList's 258-chapter count for consistency. Chapter ranges are proportional estimates converting volume boundaries onto that count (vols 1-8 ~= ch 1-98), so they are approximate; resume reading at ch 99. The separate 'Tenkuu Shinpan Arrive' spin-off (id 111034) is excluded, and there are no theatrical films.", + "mappings": [ + { + "episodes": [1, 1], + "chapters": [1, 12], + "arc": "Yuri Honjo's Arrival: Survival & Masks" + }, + { + "episodes": [2, 4], + "chapters": [13, 40], + "arc": "Mayuko Nise Alliance" + }, + { + "episodes": [5, 7], + "chapters": [41, 64], + "arc": "Sniper Mask & Forming Alliances" + }, + { + "episodes": [8, 9], + "chapters": [65, 82], + "arc": "Kuon Shinzaki & the God's Candidate" + }, + { + "episodes": [10, 12], + "chapters": [83, 98], + "arc": "Angels & Administrators (Anime Finale)" + }, + { + "chapters": [99, 258], + "arc": "Resolving the Tower (unadapted)" + } + ] +} diff --git a/src/data/mappings/hinamatsuri.json b/src/data/mappings/hinamatsuri.json new file mode 100644 index 0000000..76bfee2 --- /dev/null +++ b/src/data/mappings/hinamatsuri.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 100077, + "anilistMangaId": 66413, + "title": "Hinamatsuri", + "sourceNotes": "The 2018 TV anime by Feel (12 eps, single cour) adapts roughly volumes 1-8.5 of Masao Ohtake's manga, ending around chapter 47. Because Hinamatsuri is a skit-based comedy, the anime reorders and skips stories rather than adapting linearly, so the per-group chapter ranges are approximate and monotonic guides rather than exact episode-to-chapter matches. The manga is complete at 19 volumes; its final numbered chapter is 100 ('Their Lives Thereafter: Part 2'). AniList reports 132 chapters because it counts the '.5' extra/omake interstitials (e.g. ch 100.6) separately, so the main story is treated as ending at chapter 100. A reader resumes at chapter 48 to continue past the anime.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 12], + "arc": "Hina & Anzu Arrive (Nitta's Yakuza Household; Superpower Battles)" + }, + { + "episodes": [4, 6], + "chapters": [13, 24], + "arc": "Anzu's Homeless Redemption & the Nitta Family" + }, + { + "episodes": [7, 9], + "chapters": [25, 36], + "arc": "Anzu Working & Mao Stranded on the Island" + }, + { + "episodes": [10, 12], + "chapters": [37, 47], + "arc": "Hitomi's Bartender Double-Life & Yukimatsuri (Snow Festival)" + }, + { + "chapters": [48, 100], + "arc": "Later Stories (Hitomi's Career, Anzu Grows Up, Finale; unadapted)" + } + ] +} diff --git a/src/data/mappings/how-not-to-summon-a-demon-lord.json b/src/data/mappings/how-not-to-summon-a-demon-lord.json new file mode 100644 index 0000000..192a726 --- /dev/null +++ b/src/data/mappings/how-not-to-summon-a-demon-lord.json @@ -0,0 +1,22 @@ +{ + "anilistAnimeId": 101004, + "anilistMangaId": 86338, + "title": "How NOT to Summon a Demon Lord", + "sourceNotes": "Source is a light novel by Yukiya Murasaki (AniList id 93368, on hiatus since 2022). anilistAnimeId is the 2018 TV season 1 (id 101004, 12 eps); season 2 'Ω/Omega' (id 117448, 10 eps) is a sequel, so episodes are cumulative (eps 13-22). Mapped to the ongoing manga adaptation (AniList id 86338, chapters null on AniList) using its main tankoubon chapter numbering, ~135 chapters as of June 2026. Per anime-to-manga guides, season 1 ends around Vol 9 Ch 41 and season 2 Ω ends around Vol 15 Ch 72.2; chapters 73+ are unadapted. Boundaries are approximate.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 41], + "arc": "Faltra City & the Demon Lord's Soul (Season 1)" + }, + { + "episodes": [13, 22], + "chapters": [42, 72], + "arc": "The Holy Knights & Horn (Season 2 Ω)" + }, + { + "chapters": [73, 135], + "arc": "Royal Capital and beyond (unadapted)" + } + ] +} diff --git a/src/data/mappings/im-sakamoto.json b/src/data/mappings/im-sakamoto.json new file mode 100644 index 0000000..a7293b4 --- /dev/null +++ b/src/data/mappings/im-sakamoto.json @@ -0,0 +1,28 @@ +{ + "anilistAnimeId": 21595, + "anilistMangaId": 78649, + "title": "Haven't You Heard? I'm Sakamoto", + "sourceNotes": "Single 12-episode TV season (2016, Studio Deen). Nami Sano's gag manga is complete at 4 volumes; AniList counts 24 chapters (some sources cite ~28 due to differently numbered/half installments). Because the series is an episodic gag comedy with no continuous arcs — each ~22-min episode strings together several short vignettes — the anime adapts essentially the whole manga roughly in publication order. Episode-to-chapter boundaries below are coarse approximations (~2 chapters per episode).", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 6], + "arc": "Transfer-student Sakamoto's flawless debut & his first would-be rivals (approx.)" + }, + { + "episodes": [4, 6], + "chapters": [7, 12], + "arc": "Classmates' schemes backfire against Sakamoto's effortless cool (approx.)" + }, + { + "episodes": [7, 9], + "chapters": [13, 18], + "arc": "Yoshino, Acchan & the delinquents put Sakamoto to the test (approx.)" + }, + { + "episodes": [10, 12], + "chapters": [19, 24], + "arc": "Hayabusa rivalry & Sakamoto's unflappable send-off (approx.)" + } + ] +} diff --git a/src/data/mappings/iruma-kun.json b/src/data/mappings/iruma-kun.json new file mode 100644 index 0000000..c83db78 --- /dev/null +++ b/src/data/mappings/iruma-kun.json @@ -0,0 +1,42 @@ +{ + "anilistAnimeId": 107693, + "anilistMangaId": 99324, + "title": "Welcome to Demon School! Iruma-kun", + "sourceNotes": "Cumulative episodes across S1 (23) + S2 (21, eps 24-44) + S3 (21, eps 45-65) = 65 total. Use the S1 anime id (107693); S2 and S3 are sequels with cumulative numbering. Paired with Osamu Nishi's manga (AniList id 99324), ongoing in Weekly Shonen Champion since 2017; AniList lists no chapter count, so the latest figure (~448 as of mid-2026) comes from scanlation trackers. S1 adapts ch 1-43, S2 ch 44-95, S3 ch 95-146; from ep 8 onward the anime reorders/splits some chapters, so episode/chapter boundaries are approximate. Resume reading at ch 147. Arc names and cutoffs follow the fandom Story Arcs list and are fan-made/approximate. Season 4 began airing in April 2026 adapting from ch 147 onward, but no settled episode-to-chapter breakdown exists yet, so post-S3 material is listed as a chapters-only tail. No theatrical films.", + "mappings": [ + { + "episodes": [1, 10], + "chapters": [1, 17], + "arc": "Welcome (Iruma enrolls at Babyls Demon School; Asmodeus & Clara)" + }, + { + "episodes": [11, 23], + "chapters": [18, 43], + "arc": "Battler Party (rank exams; the Misfit/Abnormal Class is formed)" + }, + { + "episodes": [24, 35], + "chapters": [44, 68], + "arc": "Royal One (Ameri/Student Council; Misfit Class claims the Demon King's classroom)" + }, + { + "episodes": [36, 44], + "chapters": [69, 95], + "arc": "Walter Park (amusement-park attack; Iruma becomes a hero)" + }, + { + "episodes": [45, 49], + "chapters": [95, 101], + "arc": "Tutor Training (the Misfit Class takes on personal instructors)" + }, + { + "episodes": [50, 65], + "chapters": [102, 146], + "arc": "Harvest Festival (multi-day gathering competition for the Young King title)" + }, + { + "chapters": [147, 448], + "arc": "Post-Harvest onward (unadapted; Season 4 airing from 2026)" + } + ] +} diff --git a/src/data/mappings/k-on.json b/src/data/mappings/k-on.json new file mode 100644 index 0000000..96fe928 --- /dev/null +++ b/src/data/mappings/k-on.json @@ -0,0 +1,31 @@ +{ + "anilistAnimeId": 5680, + "anilistMangaId": 43001, + "title": "K-On!", + "sourceNotes": "Cumulative episodes across S1 'K-ON!' (13) + S2 'K-ON!!' (26, eps 14-39) = 39 total. Paired with kakifly's original K-On! 4-koma manga (id 43001), complete at 57 chapters / 4 volumes. The TV anime adapts the four volumes roughly chronologically by school year: S1 covers vols 1-2 (first & second year — Light Music Club is formed, Azusa joins) and S2 covers vols 3-4 (the girls' third/final year, culminating in graduation). 4-koma source — chapter ranges are approximate (each volume is ~14 chapters and the slice-of-life vignettes do not map 1:1 to episodes). The post-graduation sequels 'K-On! College' (id 81855, 14 ch) and 'K-On! High School' (id 81857, 14 ch) are separate 4-koma volumes, shown here as a follow-up tail for further reading. K-On! The Movie is a canon side-story (the London graduation trip).", + "mappings": [ + { + "episodes": [1, 13], + "chapters": [1, 28], + "arc": "First & Second Year (Light Music Club formed, Azusa joins) — vols 1-2" + }, + { + "episodes": [14, 39], + "chapters": [29, 57], + "arc": "Third Year (graduation) — vols 3-4" + }, + { + "chapters": [58, 85], + "arc": "K-On! College & High School (post-graduation sequel 4-koma; separate volumes, approximate continuation)" + } + ], + "movies": [ + { + "anilistId": 9617, + "title": "K-On! The Movie", + "year": 2011, + "afterEpisode": 39, + "note": "canon side-story film (graduation London trip)" + } + ] +} diff --git a/src/data/mappings/kamisama-kiss.json b/src/data/mappings/kamisama-kiss.json new file mode 100644 index 0000000..2823a25 --- /dev/null +++ b/src/data/mappings/kamisama-kiss.json @@ -0,0 +1,47 @@ +{ + "anilistAnimeId": 14713, + "anilistMangaId": 38157, + "title": "Kamisama Kiss", + "sourceNotes": "Paired with Julietta Suzuki's complete manga 'Kamisama Hajimemashita' (149 numbered story chapters in 25 volumes; AniList counts 154 because it lists the side/extra chapters and the time-skip epilogue separately). Episodes are cumulative across the two TV seasons: S1 (anilistAnimeId 14713, 13 eps, 2012) covers eps 1-13, and the sequel S2 'Kamisama Hajimemashita◎' (id 20801, 12 eps, 2015) continues as eps 14-25. S1 adapts roughly ch 1-30; S2 adapts ch 31-63, so a viewer resumes reading at ch 64. Per-episode chapter boundaries are approximate and grouped at the arc level. The wedding falls at ch 149 and ch 154 is the epilogue. The 4-part 'Kako-hen' (Past Arc) OVA adapts Tomoe's backstory from volumes 14-17 (within the unadapted tail) and a 1-part wedding OVA covers the finale; these OADs are excluded as they are not theatrical films.", + "mappings": [ + { + "episodes": [1, 2], + "chapters": [1, 7], + "arc": "Becoming a Land God & Tomoe's Contract" + }, + { + "episodes": [3, 5], + "chapters": [8, 14], + "arc": "Kurama the Tengu Pop Idol" + }, + { + "episodes": [6, 9], + "chapters": [15, 22], + "arc": "Himemiko's Matchmaking & Mizuki the Snake Familiar" + }, + { + "episodes": [10, 13], + "chapters": [23, 30], + "arc": "Kurama-yama Festival & Tsuchigumo (Season 1 finale)" + }, + { + "episodes": [14, 16], + "chapters": [31, 40], + "arc": "Divine Assembly at Izumo" + }, + { + "episodes": [17, 22], + "chapters": [41, 55], + "arc": "Netherworld Journey & Kirihito / Akura-Ou" + }, + { + "episodes": [23, 25], + "chapters": [56, 63], + "arc": "Mount Kurama & Memory Regression (Season 2 finale)" + }, + { + "chapters": [64, 154], + "arc": "Black Miko, Tomoe's Past & Wedding (unadapted; story ends ch 149, ch 154 epilogue)" + } + ] +} diff --git a/src/data/mappings/katanagatari.json b/src/data/mappings/katanagatari.json new file mode 100644 index 0000000..25ced70 --- /dev/null +++ b/src/data/mappings/katanagatari.json @@ -0,0 +1,68 @@ +{ + "anilistAnimeId": 6594, + "anilistMangaId": 48161, + "title": "Katanagatari", + "sourceNotes": "Source is NisiOisin's 12-volume light novel (one volume released per month across 2007); the AniList entry used as anilistMangaId (id 48161, format NOVEL) is that light novel, so the 'chapters' axis here is LIGHT NOVEL VOLUME numbers 1-12, not manga chapters. The 2010 TV anime (id 6594) is a single 12-episode season of double-length episodes, and each episode adapts exactly one LN volume = one of the twelve Deviant Blades. This is a clean 1:1 mapping (episode N -> volume N), and the anime adapts the entire 12-volume LN, so there is no unadapted tail.", + "mappings": [ + { + "episodes": [1, 1], + "chapters": [1, 1], + "arc": "Zettou \"Kanna\" (Absolute Sword)" + }, + { + "episodes": [2, 2], + "chapters": [2, 2], + "arc": "Zantou \"Namakura\" (Slash Sword)" + }, + { + "episodes": [3, 3], + "chapters": [3, 3], + "arc": "Sentou \"Tsurugi\" (Thousand Sword)" + }, + { + "episodes": [4, 4], + "chapters": [4, 4], + "arc": "Hakutou \"Hari\" (Thin Sword)" + }, + { + "episodes": [5, 5], + "chapters": [5, 5], + "arc": "Zokutou \"Yoroi\" (Thief Sword)" + }, + { + "episodes": [6, 6], + "chapters": [6, 6], + "arc": "Soutou \"Tsui\" (Twin Sword)" + }, + { + "episodes": [7, 7], + "chapters": [7, 7], + "arc": "Akutou \"Bita\" (Evil Sword)" + }, + { + "episodes": [8, 8], + "chapters": [8, 8], + "arc": "Bitou \"Kanzashi\" (Tiny Sword)" + }, + { + "episodes": [9, 9], + "chapters": [9, 9], + "arc": "Outou \"Nokogiri\" (King Sword)" + }, + { + "episodes": [10, 10], + "chapters": [10, 10], + "arc": "Seitou \"Hakari\" (Honest Sword)" + }, + { + "episodes": [11, 11], + "chapters": [11, 11], + "arc": "Dokutou \"Mekki\" (Poison Sword)" + }, + { + "episodes": [12, 12], + "chapters": [12, 12], + "arc": "Entou \"Juu\" (Flame Sword)" + } + ] +} diff --git a/src/data/mappings/killing-slimes-300-years.json b/src/data/mappings/killing-slimes-300-years.json new file mode 100644 index 0000000..0c324eb --- /dev/null +++ b/src/data/mappings/killing-slimes-300-years.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 112608, + "anilistMangaId": 101069, + "title": "I've Been Killing Slimes for 300 Years and Maxed Out My Level", + "sourceNotes": "Source is Kisetsu Morita's light novel (29+ vols); paired here with Yusuke Shiba's ongoing manga adaptation (~17 vols / ~ch. 88 as of mid-2026; AniList lists no chapter count). The 2021 TV anime is a single 12-episode season. This is an episodic slice-of-life isekai, and the anime reorders events relative to the manga — so episodes are grouped into blocks aligned to manga volumes rather than mapped 1:1. Solid anchors: manga vol 1 = ch 1-6, vol 2 = ch 7-12, vol 3 = ch 13-19, and the harvest-festival café that closes vol 3 (ch 19) is also the anime finale (ep 12). S1 therefore covers roughly manga ch 1-19 (vols 1-3); chapter boundaries within that span are approximate. A viewer resumes reading at ch 20. Manga ongoing, so the unadapted tail (ch 88) is approximate.", + "mappings": [ + { + "episodes": [1, 2], + "chapters": [1, 6], + "arc": "Maxed-Out Witch — Laika & the Slime Daughters (Falfa & Shalsha)" + }, + { + "episodes": [3, 7], + "chapters": [7, 12], + "arc": "The Family Grows — Halkara, Beelzebub & the Demon Realm; the Dragons (Flatorte); Rosalie" + }, + { + "episodes": [8, 12], + "chapters": [13, 19], + "arc": "Highland Slice-of-Life — Eno, Kuku the Minstrel & the Café Festival" + }, + { + "chapters": [20, 88], + "arc": "Beyond the Highlands (ongoing, unadapted by the 2021 season)" + } + ] +} diff --git a/src/data/mappings/kokoro-connect.json b/src/data/mappings/kokoro-connect.json new file mode 100644 index 0000000..e107a1a --- /dev/null +++ b/src/data/mappings/kokoro-connect.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 11887, + "anilistMangaId": 54380, + "title": "Kokoro Connect", + "sourceNotes": "The 2012 TV anime (AniList id 11887) is 13 episodes; the 4 'Michi Random' specials that aired December 30, 2012 (eps 14-17 here) are a separate OVA entry (AniList id 16001). The source is Sadanatsu Anda's light novel. The actual manga adaptation (AniList id 54489) is only 32 chapters / 5 volumes and never got past the early arcs, so this mapping uses LIGHT-NOVEL VOLUME numbers as the 'chapters' unit, via the LN's AniList id 54380 (11 volumes, matching the original Japanese tankobon count). Japanese LN volume structure: vol 1 Hito Random, vol 2 Kizu Random, vol 3 Kako Random, vol 4 Michi Random, vol 5 Clip Time (anthology), vol 6 Nise Random, vol 7 Yume Random, vol 8 Step Time (side material), vols 9-10 Asu Random (the finale), vol 11 Precious Time (side-story collection). (J-Novel Club's English omnibus releases renumber these arcs into 6 volumes.) The anime adapts vols 1-4 cleanly; vols 5-11 are unadapted. No theatrical films.", + "mappings": [ + { + "episodes": [1, 5], + "chapters": [1, 1], + "arc": "Hito Random - Body Swap (LN vol 1)" + }, + { + "episodes": [6, 10], + "chapters": [2, 2], + "arc": "Kizu Random - Desire Liberation (LN vol 2)" + }, + { + "episodes": [11, 13], + "chapters": [3, 3], + "arc": "Kako Random - Time Regression (LN vol 3)" + }, + { + "episodes": [14, 17], + "chapters": [4, 4], + "arc": "Michi Random - Emotion Transmission (LN vol 4, the 4 OVA specials = AniList id 16001)" + }, + { + "chapters": [5, 11], + "arc": "Unadapted: Clip Time / Nise Random / Yume Random / Step Time / Asu Random / Precious Time (LN vols 5-11)" + } + ] +} diff --git a/src/data/mappings/laid-back-camp.json b/src/data/mappings/laid-back-camp.json new file mode 100644 index 0000000..1745248 --- /dev/null +++ b/src/data/mappings/laid-back-camp.json @@ -0,0 +1,46 @@ +{ + "anilistAnimeId": 98444, + "anilistMangaId": 98351, + "title": "Laid-Back Camp", + "sourceNotes": "Cumulative episodes across three TV seasons: Season 1 (2018, 12 eps) + Season 2 (2021, 13 eps, eps 13-25) + Season 3 (2024, 12 eps, eps 26-37) = 37 total. Paired with Afro's slice-of-life camping manga 'Yuru Camp△' / 'Laid-Back Camp', ongoing (latest ~ch 107, March 2026; 18 tankobon vols, with Vol 18 covering ch 99-104). Volume-to-chapter anchors: V1=1-6, V2=7-13, V3=14-18, V4=19-23, V5=24-28, V6=29-34, V7=35-40, V8=41-46, V9=47-51, V10=52-57, V11=58-63, V12=64-69, V13=70-75, V14=76-81. Season anchors: S1 finishes Vol 4 (ep 10 bridges Vol 3->4, Christmas Camp finale in eps 10-12); the Izu Peninsula grand trip spans Vols 6-9 in S2; S3 features the 'Death Road' chapter (ch 59, Vol 11) and ends around ch 77, so a viewer resumes reading at ch 78. This is a very episodic show segmented by camping trips, so chapter boundaries are APPROXIMATE (especially the S2 setup/Izu split, which is an estimate) — refine via PR. The Room Camp (Heya Camp) shorts and per-season OVAs are separate side entries and are omitted.", + "mappings": [ + { + "episodes": [1, 9], + "chapters": [1, 18], + "arc": "Solo Camping & Outdoor Activities Club Formation (Lake Motosu, Lake Shibire, Fumotoppara)" + }, + { + "episodes": [10, 12], + "chapters": [19, 23], + "arc": "Christmas Camp at Lake Yamanaka (Season 1 finale)" + }, + { + "episodes": [13, 15], + "chapters": [24, 28], + "arc": "New Year Solo Camping & Izu Trip Planning (approx. split)" + }, + { + "episodes": [16, 25], + "chapters": [29, 51], + "arc": "Izu Peninsula Grand Camping Trip (Season 2)" + }, + { + "episodes": [26, 37], + "chapters": [52, 77], + "arc": "Outdoor Activities Club Continues, incl. 'Death Road' (Season 3)" + }, + { + "chapters": [78, 107], + "arc": "Ongoing camping trips (unadapted; current ch 107)" + } + ], + "movies": [ + { + "anilistId": 104460, + "title": "Laid-Back Camp Movie", + "year": 2022, + "afterEpisode": 25, + "note": "Canon sequel film (anime-original adult-timeline story): a grown-up Nadeshiko, Rin, Chiaki, Aoi and Ena reunite to build a campsite in Yamanashi. Not in the manga, so no chapter mapping; slots after Season 2 (eps 1-25)." + } + ] +} diff --git a/src/data/mappings/lucky-star.json b/src/data/mappings/lucky-star.json new file mode 100644 index 0000000..cf6055b --- /dev/null +++ b/src/data/mappings/lucky-star.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 1887, + "anilistMangaId": 30587, + "title": "Lucky☆Star", + "sourceNotes": "Single 24-episode TV season (2007, Kyoto Animation). Paired with Kagami Yoshimizu's original Lucky☆Star 4-koma manga (id 30587), a slice-of-life gag comic serialized in Comptiq since December 2003. The manga ran to 10 tankōbon volumes (2005-2013), went on hiatus in 2014, and was revived in Kadokawa's Mitaina! magazine in November 2022 — it is ONGOING and the post-revival chapters are not yet compiled, so AniList lists no chapter count. As a 4-koma gag series there are no story arcs, just episodic vignettes; the anime loosely adapts and reorders strips from across the early volumes and pads with anime-original segments, so episode-to-chapter boundaries are coarse. 4-koma source — chapter ranges are approximate. The Lucky☆Star OVA (id 4472) is an OVA, not a theatrical film, so no movies are listed.", + "mappings": [ + { + "episodes": [1, 24], + "chapters": [1, 56], + "arc": "Everyday school-life vignettes (Konata, the Hiiragi twins, Miyuki) — loosely adapted & reordered from early vols ~1-4 with anime-original segments" + }, + { + "chapters": [57, 140], + "arc": "Later vignettes (vols ~5-10) + ongoing Mitaina! revival — manga only, unadapted" + } + ] +} diff --git a/src/data/mappings/mieruko-chan.json b/src/data/mappings/mieruko-chan.json new file mode 100644 index 0000000..531d10f --- /dev/null +++ b/src/data/mappings/mieruko-chan.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 131083, + "anilistMangaId": 105097, + "title": "Mieruko-chan", + "sourceNotes": "Single-cour 2021 TV anime (12 eps) adapting Tomoki Izumi's ongoing horror-comedy manga (Kadokawa). The anime covers manga volumes 1-3, roughly chapters 1-23; the author has said readers should resume at chapter 24. Manga is RELEASING (~ch. 71 / 14 volumes as of mid-2026 per web sources). The series is loosely structured with episodic spirit encounters, so episode-to-chapter groupings follow the volume boundaries and are approximate. No theatrical films.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 7], + "arc": "Awakening (Volume 1: Miko starts seeing spirits, befriends Hana Yurikawa)" + }, + { + "episodes": [5, 8], + "chapters": [8, 16], + "arc": "Mountain God & New Encounters (Volume 2: shrine deity, fortune teller, Yulia)" + }, + { + "episodes": [9, 12], + "chapters": [17, 23], + "arc": "Zen & the Cats (Volume 3: Zen Touno and the cat-killer resolution)" + }, + { + "chapters": [24, 71], + "arc": "Continued Sightings (ongoing, unadapted)" + } + ] +} diff --git a/src/data/mappings/mmo-junkie.json b/src/data/mappings/mmo-junkie.json new file mode 100644 index 0000000..fa0d738 --- /dev/null +++ b/src/data/mappings/mmo-junkie.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 99726, + "anilistMangaId": 94095, + "title": "Recovery of an MMO Junkie", + "sourceNotes": "Anime (10 TV eps, 2017) + a Blu-ray-bundled OVA, counted here as ep 11. Paired with Rin Kokuyou's Comico webcomic 'Net-juu no Susume': 87 serialized chapters (2 print volumes) before a July 2015 hiatus that became a 2018 cancellation due to the author's health; a single special finale was later posted free on pixiv in 2023 (informally ch 88-89), so the complete story runs to ~89. Because the manga stalled, the TV anime supplies a partly anime-original conclusion in ep 10, so chapter boundaries are loose and approximate. This slice-of-life romcom is episodic; groupings are coarse. No theatrical films.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 24], + "arc": "NEET Life & Fruits de Mer (Moriko quits work, becomes Hayashi, befriends Lily)" + }, + { + "episodes": [4, 7], + "chapters": [25, 50], + "arc": "Secret Triangle (Moriko & Sakurai meet IRL while Hayashi & Lily bond online)" + }, + { + "episodes": [8, 10], + "chapters": [51, 72], + "arc": "Nanter SG Reveal & Drawing Closer (Sakurai's confession; anime-original ending)" + }, + { + "episodes": [11, 11], + "chapters": [73, 80], + "arc": "OVA: Blu-ray Bonus Extra" + }, + { + "chapters": [81, 89], + "arc": "Hiatus Tail & 2023 Pixiv Finale (unadapted)" + } + ] +} diff --git a/src/data/mappings/monster-musume.json b/src/data/mappings/monster-musume.json new file mode 100644 index 0000000..4815567 --- /dev/null +++ b/src/data/mappings/monster-musume.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 21093, + "anilistMangaId": 66213, + "title": "Monster Musume: Everyday Life with Monster Girls", + "sourceNotes": "Single-cour 2015 TV anime (12 episodes) paired with Okayado's ongoing manga 'Monster Musume no Iru Nichijou' (~ch. 95 / 21 vols as of early 2026, ch. 95 released Feb 2026 per the Daily Life With A Monster Girl Wiki). The anime adapts roughly the first 25 chapters but reorders several of them and skips ch. 17 (the swimsuit chapter, adapted instead as an OVA), so episode-to-chapter boundaries are approximate. Chapter ranges below are grouped by which monster girls each block of episodes introduces. A viewer who finishes the anime resumes the manga around ch. 26.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 6], + "arc": "Miia, Papi & Centorea (Lamia, Harpy, Centaur introduced)" + }, + { + "episodes": [4, 6], + "chapters": [7, 14], + "arc": "Suu & Meroune (Slime, Mermaid introduced; shedding & egg-laying)" + }, + { + "episodes": [7, 9], + "chapters": [15, 19], + "arc": "Rachnera & the MON Squad (Arachne introduced; stalker letters)" + }, + { + "episodes": [10, 12], + "chapters": [20, 25], + "arc": "Ms. Smith, Lala & Cultural Exchange Finale (Dullahan introduced)" + }, + { + "chapters": [26, 95], + "arc": "Homestay Saga Continues (ongoing, unadapted)" + } + ] +} diff --git a/src/data/mappings/more-than-a-married-couple.json b/src/data/mappings/more-than-a-married-couple.json new file mode 100644 index 0000000..5432722 --- /dev/null +++ b/src/data/mappings/more-than-a-married-couple.json @@ -0,0 +1,42 @@ +{ + "anilistAnimeId": 141949, + "anilistMangaId": 105011, + "title": "More than a Married Couple, but Not Lovers", + "sourceNotes": "Single-cour 2022 TV anime (12 eps) by Studio Mother, adapting Yuki Kanamaru's seinen manga (Young Ace, 2018-). The school's 'marriage practical' pairs Jirou Yakuin with Akari Watanabe though each pines for someone else. The anime covers roughly chapters 1-29 (a reader resumes at ch 30). Per-episode boundaries are approximate, anchored to known marks: ep 5 ~ch 10, ep 7 ~ch 16, ep 11 ~ch 26, ep 12 finale ~ch 29. Manga is on indefinite hiatus (since April 2025) preparing its final part; latest is ch 79 / 13 volumes, used as the unadapted-tail endpoint. No theatrical films exist.", + "mappings": [ + { + "episodes": [1, 2], + "chapters": [1, 5], + "arc": "The Marriage Practical Begins" + }, + { + "episodes": [3, 5], + "chapters": [6, 10], + "arc": "Adjusting to Married Life" + }, + { + "episodes": [6, 7], + "chapters": [11, 16], + "arc": "Summer Festival & Fireworks" + }, + { + "episodes": [8, 9], + "chapters": [17, 21], + "arc": "Childhood Friends & Old Feelings" + }, + { + "episodes": [10, 11], + "chapters": [22, 26], + "arc": "Tangled Hearts" + }, + { + "episodes": [12, 12], + "chapters": [27, 29], + "arc": "The Practical's Conclusion (season finale)" + }, + { + "chapters": [30, 79], + "arc": "Beyond the Anime (ongoing, unadapted)" + } + ] +} diff --git a/src/data/mappings/moriarty-the-patriot.json b/src/data/mappings/moriarty-the-patriot.json new file mode 100644 index 0000000..61d6347 --- /dev/null +++ b/src/data/mappings/moriarty-the-patriot.json @@ -0,0 +1,72 @@ +{ + "anilistAnimeId": 114124, + "anilistMangaId": 98544, + "title": "Moriarty the Patriot", + "sourceNotes": "Cumulative episodes across S1 (11) + 'Part 2' (13, eps 12-24) = 24 total. Paired with the manga by Ryosuke Takeuchi (story) and Hikaru Miyoshi (art), serialized in Jump Square; Part 1 ran 76 chapters across 19 volumes (concluded Dec 2022). The anime ends at chapter 56 (end of 'The Final Problem' arc), so a viewer resumes reading at chapter 57. The adaptation reorders several early one-shot cases and omits chapters: ch 4 (Albert's backstory), ch 10-14 (the 'Hunting of the Baskervilles' and 'Golden Army' arcs), and ch 31. Arc-to-episode boundaries are therefore approximate. The 2-episode OVA, the light novels, and the 'The Remains' spin-off are separate entries, and manga Part 2 (began Dec 2024) is ongoing and unadapted; there are no theatrical films.", + "mappings": [ + { + "episodes": [1, 5], + "chapters": [1, 3], + "arc": "The Earl's Crime / The Scarlet Eyes (origins & early cases)" + }, + { + "episodes": [6, 7], + "chapters": [5, 6], + "arc": "The 'Noahtic'" + }, + { + "episodes": [8, 9], + "chapters": [7, 9], + "arc": "A Study in 'S'" + }, + { + "episodes": [10, 11], + "chapters": [15, 16], + "arc": "The Two Detectives (anime skips ch 10-14)" + }, + { + "episodes": [12, 14], + "chapters": [17, 23], + "arc": "A Scandal in the British Empire" + }, + { + "episodes": [15, 16], + "chapters": [24, 28], + "arc": "The Phantom of Whitechapel" + }, + { + "episodes": [17, 17], + "chapters": [29, 30], + "arc": "The Riot in New Scotland Yard" + }, + { + "episodes": [18, 18], + "chapters": [32, 34], + "arc": "The Merchant of London" + }, + { + "episodes": [19, 20], + "chapters": [35, 39], + "arc": "The White Knight of London" + }, + { + "episodes": [21, 21], + "chapters": [40, 43], + "arc": "The Sign of Mary" + }, + { + "episodes": [22, 22], + "chapters": [44, 47], + "arc": "The Two Criminals" + }, + { + "episodes": [23, 24], + "chapters": [48, 56], + "arc": "The Final Problem" + }, + { + "chapters": [57, 76], + "arc": "The Adventure of Empty Hearts & The Valley of Fellows (rest of Part 1, unadapted)" + } + ] +} diff --git a/src/data/mappings/my-first-girlfriend-is-a-gal.json b/src/data/mappings/my-first-girlfriend-is-a-gal.json new file mode 100644 index 0000000..b305edd --- /dev/null +++ b/src/data/mappings/my-first-girlfriend-is-a-gal.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 97863, + "anilistMangaId": 87315, + "title": "My First Girlfriend is a Gal", + "sourceNotes": "S1 anime (10 eps, 2017, NAZ; AniList id 97863) adapts roughly the first 37 chapters of Meguru Ueno's manga; a viewer resumes reading around ch 38. The anime reorders some gags, so the per-episode chapter boundaries below are approximate. Paired with the manga (AniList id 87315, which lists no chapter/volume count and is still marked RELEASING): it is a long-running romcom that had reached ch 200 across 21 tankobon volumes by late 2025/early 2026, and the latest chapters ('Our First Climax' ch 199, 'My First Time With You' ch 200) read like the finale, so the unadapted tail is extended to 200 (this endpoint is the latest known chapter, not a confirmed series end). The 'Hajimete no Bunkasai' OVA (cultural-festival side story, ~ch 70-73) and the live-action film are excluded.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 11], + "arc": "Junichi & Yukana Start Dating (Meeting the Gal Girlfriend)" + }, + { + "episodes": [4, 7], + "chapters": [12, 26], + "arc": "The Love Rivals Arrive (Yui, Ranko, Nene & Part-Time Jobs)" + }, + { + "episodes": [8, 10], + "chapters": [27, 37], + "arc": "Summer Trip, First Fight & Confession" + }, + { + "chapters": [38, 200], + "arc": "After the Confession (ongoing, unadapted by this anime)" + } + ] +} diff --git a/src/data/mappings/my-happy-marriage.json b/src/data/mappings/my-happy-marriage.json new file mode 100644 index 0000000..6b34f4b --- /dev/null +++ b/src/data/mappings/my-happy-marriage.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 147103, + "anilistMangaId": 125444, + "title": "My Happy Marriage", + "sourceNotes": "Source is Akumi Agitogi's light novel (AniList id 125444, type MANGA / format NOVEL, ongoing — 10 volumes as of early 2026). The numeric ranges below are LIGHT NOVEL VOLUME numbers, not manga chapters: the Rito Kohsaka manga adaptation (AniList id 106531) exists but lags far behind the anime (~6 tankobon covering only early content), so episode->manga-chapter mapping is impossible for the later seasons and a light-novel-volume mapping is cleaner. Cumulative episodes across the two TV seasons: S1 (12 eps, 2023, id 147103) + S2 (13 eps, 2025, id 169441, a sequel) = eps 1-25. S1 adapts LN vols 1-2 (read on from vol 3 after S1); S2 adapts LN vols 3-6 (read on from vol 7 after S2), at a faster pace. The standalone OVA 'My Happy Marriage: The Shape of My Happiness' (id 167486), sometimes labelled 'Episode 13', sits between the seasons and is NOT counted in the cumulative TV numbering. Volume boundaries are approximate.", + "mappings": [ + { + "episodes": [1, 7], + "chapters": [1, 1], + "arc": "Arranged Marriage & Saimori Family Conflict (LN vol 1)" + }, + { + "episodes": [8, 12], + "chapters": [2, 2], + "arc": "Usuba Family / Dream-Sight Awakening & the Grotesquerie (S1, LN vol 2)" + }, + { + "episodes": [13, 19], + "chapters": [3, 4], + "arc": "Gifted Communion Cult Rises — Naoshi Usui (S2, LN vols 3-4)" + }, + { + "episodes": [20, 25], + "chapters": [5, 6], + "arc": "Grotesquerie Bearer / Usui's Defeat & Official Engagement (S2, LN vols 5-6)" + }, + { + "chapters": [7, 10], + "arc": "Post-engagement, unadapted (LN vols 7-10)" + } + ] +} diff --git a/src/data/mappings/my-love-story-with-yamada-kun.json b/src/data/mappings/my-love-story-with-yamada-kun.json new file mode 100644 index 0000000..8f17787 --- /dev/null +++ b/src/data/mappings/my-love-story-with-yamada-kun.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 154965, + "anilistMangaId": 109501, + "title": "My Love Story with Yamada-kun at Lv999", + "sourceNotes": "The 2023 TV anime (Madhouse, 13 eps, single season) adapts roughly chapters 1-41 of Mashiro's manga; episode 13 lands around chapter 40-41, so a viewer resumes reading near chapter 42. This is a loosely-arced online-gaming romcom, so episode-to-chapter boundaries are approximate and evenly apportioned (~3 chapters/ep). Paired with the manga (serialized in Ganma! since 2019), which is ongoing on an irregular schedule; the latest chapter is ~110 (MangaDex tracks through ch 108), so the unadapted tail runs to ch 110 and will grow. No theatrical films exist.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 9], + "arc": "Online Game & Breakup (Akane meets YAMADA in FOS; first offline meetup)" + }, + { + "episodes": [4, 7], + "chapters": [10, 21], + "arc": "Real-Life Meetings (Collab Cafe & Higashinari School Festival)" + }, + { + "episodes": [8, 10], + "chapters": [22, 31], + "arc": "Growing Feelings & Guild Crisis" + }, + { + "episodes": [11, 13], + "chapters": [32, 41], + "arc": "Confession (\"I Like You\")" + }, + { + "chapters": [42, 110], + "arc": "Dating Life Continues (ongoing, unadapted)" + } + ] +} diff --git a/src/data/mappings/my-love-story.json b/src/data/mappings/my-love-story.json new file mode 100644 index 0000000..d858a90 --- /dev/null +++ b/src/data/mappings/my-love-story.json @@ -0,0 +1,47 @@ +{ + "anilistAnimeId": 20946, + "anilistMangaId": 66933, + "title": "My Love Story!!", + "sourceNotes": "Single 2-cour TV anime (24 eps, 2015, Madhouse) adapting Kazune Kawahara & Aruko's complete manga (AniList id 66933: 56 chapters / 14 volumes). The anime is a faithful but condensed adaptation of roughly the first nine volumes, ending at about chapter 34 (the Kouki Ichinose pâtissier rival arc), so a viewer resumes reading around ch 35. Some side stories are cut/rearranged, so chapter boundaries are approximate. The 2015 live-action film is excluded.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 6], + "arc": "Takeo & Yamato (train rescue, misunderstanding, confession)" + }, + { + "episodes": [4, 7], + "chapters": [7, 12], + "arc": "A New Couple (fire rescue, Yamato's friends, early dating)" + }, + { + "episodes": [8, 12], + "chapters": [13, 19], + "arc": "Summer with Suna (mountain & ocean trip, Ai introduced)" + }, + { + "episodes": [13, 14], + "chapters": [20, 22], + "arc": "Summer Festival (Ai's unrequited feelings resolve)" + }, + { + "episodes": [15, 18], + "chapters": [23, 27], + "arc": "Autumn & Winter (Christmas, New Year's first kiss)" + }, + { + "episodes": [19, 22], + "chapters": [28, 32], + "arc": "Takeo's Mom, Valentine's & the Love Letter" + }, + { + "episodes": [23, 24], + "chapters": [33, 34], + "arc": "Kouki Ichinose (pâtissier rival arc)" + }, + { + "chapters": [35, 56], + "arc": "Post-anime story (unadapted)" + } + ] +} diff --git a/src/data/mappings/netoge.json b/src/data/mappings/netoge.json new file mode 100644 index 0000000..f644c45 --- /dev/null +++ b/src/data/mappings/netoge.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 21290, + "anilistMangaId": 86009, + "title": "And you thought there is never a girl online?", + "sourceNotes": "Single-cour 2016 TV anime (Project No.9), 12 episodes. The source is Shibai Kineko's light novel (AniList id 86009, type MANGA / format NOVEL, 23 volumes, FINISHED). A separate manga adaptation exists (AniList id 85886, 46 chapters across 8 volumes) but it is its own truncated retelling, so mapping by LIGHT NOVEL VOLUME is cleaner and is what is used here: the numbers in the `chapters` fields are LN VOLUME numbers, not chapter numbers. The anime adapts roughly LN vols 1-3 (the Alley Cats guild, the offline meeting revealing the guildmates are classmates, forming the Net Game Club to help Ako separate game from reality). Volume-to-episode boundaries are approximate, split evenly four episodes per volume; the show is an episodic romcom so groupings are coarse. LN vols 4-23 are unadapted.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 1], + "arc": "Offline Meeting & the Net Game Club (LN vol 1, approx)" + }, + { + "episodes": [5, 8], + "chapters": [2, 2], + "arc": "Ako's Reality vs. Game & School Life (LN vol 2, approx)" + }, + { + "episodes": [9, 12], + "chapters": [3, 3], + "arc": "Training Camp & the Legendary Age Event (LN vol 3, approx)" + }, + { + "chapters": [4, 23], + "arc": "Continued Net Game Club arcs (LN vols 4-23, unadapted)" + } + ] +} diff --git a/src/data/mappings/oreimo.json b/src/data/mappings/oreimo.json new file mode 100644 index 0000000..916fae0 --- /dev/null +++ b/src/data/mappings/oreimo.json @@ -0,0 +1,38 @@ +{ + "anilistAnimeId": 8769, + "anilistMangaId": 43667, + "title": "Oreimo", + "sourceNotes": "Cumulative broadcast episodes across S1 (12, eps 1-12) + S2 'Oreimo 2' (13, eps 13-25) = 25 total. Broadcast counts only: the original S1 also shipped 4 web-only 'True Route' episodes (AniList ONA id 10020) and S2 added a 3-episode ONA 'True End'; both alternate-route extras are excluded. Paired with Tsukasa Fushimi's light novel (AniList id 43667, type MANGA / format NOVEL, 56 chapters across 12 volumes) rather than the standalone manga adaptation (id 45317), which covers only the first 4 LN volumes (26 ch); the anime adapts the complete 12-volume LN, so mapping by LN volume is cleaner and fully covers the series. Chapter ranges are proportional estimates converting LN volume boundaries onto AniList's 56-chapter count, and the per-arc episode splits within each season are approximate. No unadapted tail (the LN is fully adapted) and no films.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 5], + "arc": "Kirino's Hidden Hobby / Life Counseling (S1, LN vol 1)" + }, + { + "episodes": [5, 8], + "chapters": [6, 9], + "arc": "Comiket & the Eroge Conflict (S1, LN vol 2)" + }, + { + "episodes": [9, 12], + "chapters": [10, 19], + "arc": "America Arc / Kuroneko's Confession (S1, LN vols 3-4)" + }, + { + "episodes": [13, 16], + "chapters": [20, 28], + "arc": "New School Year / Ayase & Kanako (S2, LN vols 5-6)" + }, + { + "episodes": [17, 20], + "chapters": [29, 42], + "arc": "Kirino's Game Dev & Saori's Past (S2, LN vols 7-9)" + }, + { + "episodes": [21, 25], + "chapters": [43, 56], + "arc": "Kyousuke & Kirino Finale (S2, LN vols 10-12)" + } + ] +} diff --git a/src/data/mappings/oresuki.json b/src/data/mappings/oresuki.json new file mode 100644 index 0000000..9e73956 --- /dev/null +++ b/src/data/mappings/oresuki.json @@ -0,0 +1,37 @@ +{ + "anilistAnimeId": 104464, + "anilistMangaId": 98648, + "title": "ORESUKI: Are you the only one who loves me?", + "sourceNotes": "Source is Rakuda's light novel (17 volumes, completed Jan 2022) — a harem rom-com 'deconstruction' where protagonist Joro keeps getting set up only to discover the girls love someone else. The Yu Ijima manga adaptation (AniList id 98648, 43 ch / 6 vols, Shounen Jump+ 2017-2020) diverges from the novel and reaches its own early conclusion, so its chapters do not line up with the anime; this mapping therefore uses LIGHT-NOVEL VOLUME NUMBERS as the 'chapters' axis instead. The 2019 TV anime (12 eps) adapts LN vols 1-4 (the finale already dips into vol 5), and the 'Oretachi no Game Set' OVA — counted here as ep 13 — adapts vol 5. Per-volume episode boundaries are approximate (the anime reorders some material). LN vols 6-17 are unadapted. No theatrical films.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 1], + "arc": "Confession arc — Cosmos & Himawari both confess to Joro yet pine for Sun-chan, then plain library girl Pansy reveals she loves Joro (harem-deconstruction setup; LN vol 1)" + }, + { + "episodes": [4, 6], + "chapters": [2, 2], + "arc": "Joro branded the school villain and his recovery; Tsubaki's debut and the Hundred Flower Festival dance (LN vol 2)" + }, + { + "episodes": [7, 9], + "chapters": [3, 3], + "arc": "Cheerful Skewers part-time work arc and Tsubaki's transfer; resolving Sun-chan's feelings (LN vol 3)" + }, + { + "episodes": [10, 12], + "chapters": [4, 4], + "arc": "Library Crisis and the Hose rival love-quadrangle — the scheme to save the school library (TV finale; LN vol 4)" + }, + { + "episodes": [13, 13], + "chapters": [5, 5], + "arc": "'Oretachi no Game Set' OVA — the festival showdown that closes out the anime (LN vol 5)" + }, + { + "chapters": [6, 17], + "arc": "Post-anime volumes through the series finale (LN vols 6-17, unadapted)" + } + ] +} diff --git a/src/data/mappings/phantom-world.json b/src/data/mappings/phantom-world.json new file mode 100644 index 0000000..cc28ad3 --- /dev/null +++ b/src/data/mappings/phantom-world.json @@ -0,0 +1,23 @@ +{ + "anilistAnimeId": 21306, + "anilistMangaId": 86401, + "title": "Myriad Colors Phantom World", + "sourceNotes": "TV anime (13 eps, 2016, Kyoto Animation) adapts Soichiro Hatano's light novel 'Musaigen no Phantom World'. AniList has no manga-adaptation entry, so this maps to the light novel (id 86401), treating its 3 published volumes as 'chapters' 1-3. The show is largely episodic (a phantom-of-the-week format) with a loose overarching thread around Enigma and the phantom Ruru that pays off late, so volume boundaries are approximate and KyoAni reordered/added original material. Side entries 'Limitless Phantom World' (7 shorts) and the OVA 'The Polka Dot Miracle' are excluded. There are no theatrical films.", + "mappings": [ + { + "episodes": [1, 5], + "chapters": [1, 1], + "arc": "Phantom Sealing Begins (team forms: Haruhiko, Mai, Reina)" + }, + { + "episodes": [6, 9], + "chapters": [2, 2], + "arc": "Episodic Phantom Cases (Kurumi, Koito & Ruru join)" + }, + { + "episodes": [10, 13], + "chapters": [3, 3], + "arc": "Enigma Arc (overarching memory/Ruru climax)" + } + ] +} diff --git a/src/data/mappings/plunderer.json b/src/data/mappings/plunderer.json new file mode 100644 index 0000000..929129e --- /dev/null +++ b/src/data/mappings/plunderer.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 101168, + "anilistMangaId": 85939, + "title": "Plunderer", + "sourceNotes": "Single 2-cour TV anime (24 eps, 2020, GEEKTOYS) adapting Suu Minazuki's manga, which finished in 2022 at 83 chapters / 21 volumes (AniList). The manga runs in four arcs: the present-day introduction (ch 1-11), the 'Return to the Past' Abandonment War flashback (ch 12-28), the Special Service Arc (ch 29-53), and the Last War Arc (ch 54-83). The anime covers chapters 1 through roughly 36-37: eps 1-11 adapt the heavily padded present-day intro (~1 ch/ep, biggest divergence from ep 6), eps 12-18 compress the academy/war flashback, and eps 19-24 return to the present for the start of the Special Service Arc. Ep 22 adapts ch 33-34; the finale (ep 24) lands around ch 37 with some anime-original wrap-up, so a reader resumes near ch 38. Chapter boundaries are approximate. No theatrical films.", + "mappings": [ + { + "episodes": [1, 11], + "chapters": [1, 11], + "arc": "Hina's Search / The Count System (Licht the Baron, the Aces, Abyss Demon)" + }, + { + "episodes": [12, 18], + "chapters": [12, 28], + "arc": "Return to the Past: Military Academy & the Abandonment War (Birth of Alcia)" + }, + { + "episodes": [19, 24], + "chapters": [29, 37], + "arc": "Special Service / King of Abyss (return to the present)" + }, + { + "chapters": [38, 83], + "arc": "Special Service conclusion & the Last War Arc (unadapted)" + } + ] +} diff --git a/src/data/mappings/realist-hero.json b/src/data/mappings/realist-hero.json new file mode 100644 index 0000000..aa25087 --- /dev/null +++ b/src/data/mappings/realist-hero.json @@ -0,0 +1,37 @@ +{ + "anilistAnimeId": 117612, + "anilistMangaId": 98171, + "title": "How a Realist Hero Rebuilt the Kingdom", + "sourceNotes": "Source is Dojyomaru's light novel (Genjitsu Shugi Yuusha no Oukoku Saikenki, 20 volumes, completed Dec 2024). The 2021-22 TV anime (J.C.Staff) aired as 2 cours: Part 1 (eps 1-13, AniList id 117612) and Part 2 (eps 14-26, AniList id 139648). This mapping uses the first id with CUMULATIVE episode numbering 1-26. The linked manga adaptation (AniList id 98171, art by Satoshi Ueda, serialized in Comic Gardo since 2017) lags FAR behind the anime - only ~15 tankobon / ~ch 76 as of mid-2026, not yet reaching the anime's endpoint, and AniList lists no chapter count - so this mapping uses LIGHT-NOVEL VOLUME numbers as the 'chapters' unit instead (same approach as cheat-skill.json and netoge.json). The anime adapts LN vols 1 through roughly the first half of vol 5; a viewer resumes reading at LN vol 5. Per-volume episode boundaries are approximate. No theatrical films.", + "mappings": [ + { + "episodes": [1, 6], + "chapters": [1, 1], + "arc": "Kingdom Reform - Elfrieden (Souma is crowned, gathers talented retainers, and pushes fiscal & food reforms) (LN vol 1)" + }, + { + "episodes": [7, 13], + "chapters": [2, 2], + "arc": "The Three Dukedoms Civil War (the dukes' rebellion, the Amidonian invasion, and the capture of Van) (LN vol 2)" + }, + { + "episodes": [14, 18], + "chapters": [3, 3], + "arc": "Occupation of Van & Amidonia (governing the conquered city, the food festival broadcast, Roroa) (LN vol 3)" + }, + { + "episodes": [19, 23], + "chapters": [4, 4], + "arc": "The Mankind Declaration & the Gran Chaos Empire (Jeanne's negotiation, returning Van, the engagement) (LN vol 4)" + }, + { + "episodes": [24, 26], + "chapters": [5, 5], + "arc": "Into the Next Reign (LN vol 5, first half - the anime stops partway through this volume)" + }, + { + "chapters": [5, 20], + "arc": "Beyond the anime - the rest of LN vol 5 onward (vols 5-20, unadapted; resume reading at vol 5)" + } + ] +} diff --git a/src/data/mappings/record-of-ragnarok.json b/src/data/mappings/record-of-ragnarok.json new file mode 100644 index 0000000..bb73f53 --- /dev/null +++ b/src/data/mappings/record-of-ragnarok.json @@ -0,0 +1,66 @@ +{ + "anilistAnimeId": 127399, + "anilistMangaId": 107098, + "title": "Record of Ragnarok", + "sourceNotes": "Cumulative episodes across the Netflix ONA: S1 (12 ep, 2021) + S2 (15 ep, 2023; Part 1 = ep 13–22, Part 2 = ep 23–27) + S3 (15 ep, 2025) = 42 total. Uses the S1 anime id (127399); S2/S3 are sequels with their own AniList ids. Paired with the ongoing manga by Shinya Umemura, Takumi Fukui & Ajichika — 27 volumes / latest chapter ~121 (June 2026). Each Ragnarok ROUND is treated as an arc. Firm anchors from anime-vs-manga reading guides: resume reading at ch 20 after S1, ch 55 after S2, and ch 86 after S3 — so S1 = ch 1–19, S2 = ch 20–54, S3 = ch 55–85. Round-level anchors: Shiva vs Raiden ≈ ch 31–41 and Buddha begins ch 42 (Round Six). Internal per-round chapter splits within each season are approximate; the S1/S2/S3 endpoints are exact. The unadapted tail (ch 86–121) covers Round 10 (Okita vs Susano'o) onward, still ongoing.", + "mappings": [ + { + "season": 1, + "episodes": [1, 4], + "chapters": [1, 7], + "arc": "S1 · Round 1: Lü Bu vs Thor (incl. prologue)" + }, + { + "season": 1, + "episodes": [5, 8], + "chapters": [8, 14], + "arc": "S1 · Round 2: Adam vs Zeus" + }, + { + "season": 1, + "episodes": [9, 12], + "chapters": [15, 19], + "arc": "S1 · Round 3: Kojiro Sasaki vs Poseidon" + }, + { + "season": 2, + "episodes": [13, 17], + "chapters": [20, 30], + "arc": "S2 · Round 4: Jack the Ripper vs Heracles" + }, + { + "season": 2, + "episodes": [18, 22], + "chapters": [31, 41], + "arc": "S2 · Round 5: Raiden Tameemon vs Shiva" + }, + { + "season": 2, + "episodes": [23, 27], + "chapters": [42, 54], + "arc": "S2 · Round 6: Buddha vs Zerofuku/Hajun" + }, + { + "season": 3, + "episodes": [28, 33], + "chapters": [55, 65], + "arc": "S3 · Round 7: Qin Shi Huang vs Hades" + }, + { + "season": 3, + "episodes": [34, 38], + "chapters": [66, 76], + "arc": "S3 · Round 8: Nikola Tesla vs Beelzebub" + }, + { + "season": 3, + "episodes": [39, 42], + "chapters": [77, 85], + "arc": "S3 · Round 9: Leonidas vs Apollo" + }, + { + "chapters": [86, 121], + "arc": "Round 10+ (Okita vs Susano'o onward, ongoing, unadapted)" + } + ] +} diff --git a/src/data/mappings/redo-of-healer.json b/src/data/mappings/redo-of-healer.json new file mode 100644 index 0000000..6f9cee3 --- /dev/null +++ b/src/data/mappings/redo-of-healer.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 113425, + "anilistMangaId": 100476, + "title": "Redo of Healer", + "sourceNotes": "Source is the light novel (10 volumes); paired here with the ongoing manga adaptation (AniList id 100476, which reports null chapters). The 2021 TV anime (12 eps; the broadcast 'Redo' and 'Complete Recovery' uncensored versions share the same 12 episodes) adapts roughly LN volumes 1-3 = manga chapters 1-30, so a viewer resumes reading around ch 31. Manga is ongoing: 18 volumes / latest chapter ~78 as of mid-2026 (web-sourced; AniList chapter count is null). Per-episode chapter boundaries are approximate, segmented by arc.", + "mappings": [ + { + "episodes": [1, 1], + "chapters": [1, 5], + "arc": "Revenge Restart: Keyaru Rewinds Time & Recaptures Flare" + }, + { + "episodes": [2, 3], + "chapters": [6, 11], + "arc": "Princess Flare's Downfall (Freia) & Buying Setsuna" + }, + { + "episodes": [4, 9], + "chapters": [12, 23], + "arc": "Setsuna's Revenge & Kureha the Blade Saint; Demon Lord Eve" + }, + { + "episodes": [10, 12], + "chapters": [24, 30], + "arc": "The Kingdom & Princess Norn; A New Journey" + }, + { + "chapters": [31, 78], + "arc": "Post-anime arcs (unadapted): Eve's reclamation, Buranikka & hunting Norn" + } + ] +} diff --git a/src/data/mappings/saekano.json b/src/data/mappings/saekano.json new file mode 100644 index 0000000..c2f3cd0 --- /dev/null +++ b/src/data/mappings/saekano.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 20657, + "anilistMangaId": 79567, + "title": "Saekano: How to Raise a Boring Girlfriend", + "sourceNotes": "Source is Fumiaki Maruto's light novel 'Saenai Heroine no Sodatekata' (13 main volumes, completed Nov 2017). This mapping uses LIGHT-NOVEL VOLUME NUMBERS as the 'chapters' axis because it is cleaner and covers the whole story: the manga adaptation by Takeshi Moriki (AniList 81309) runs only ~42 chapters / 7 vols and stops around the TV anime's end, never reaching the finale. anilistMangaId 79567 is the canonical LN entry. anilistAnimeId 20657 is the 2015 TV anime; AniList lists 13 eps (incl. episode 0), but the broadcast had 12 numbered eps. Season 2 '♭ (Flat)' (2017, 11 eps) is a sequel, so episodes are numbered cumulatively here (S1 = 1-12, S2 = 13-23). The 2019 film 'Saekano the Movie: Finale' adapts the remaining volumes and concludes the story. Volume boundaries are APPROXIMATE — the anime condenses and reorders material around the doujin-game ('cherry blessing') production milestones.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 3], + "arc": "Forming blessing software (Season 1) — Tomoya recruits artist Eriri, scenario writer Utaha, and his 'boring' muse Megumi to build the doujin game 'cherry blessing' (LN vols 1-3)" + }, + { + "episodes": [13, 23], + "chapters": [4, 6], + "arc": "Making 'cherry blessing' (Season 2 ♭) — development crunch, team friction, and the game's Winter Comiket release (LN vols 4-6)" + }, + { + "chapters": [7, 13], + "arc": "The Finale — Eriri & Utaha leave for a rival circle, blessing software's second game, and the Megumi/Tomoya resolution; adapted by the Finale film (LN vols 7-13)" + } + ], + "movies": [ + { + "anilistId": 100675, + "title": "Saekano the Movie: Finale", + "year": 2019, + "chapters": [7, 13], + "afterEpisode": 23, + "note": "Canon finale film adapting the final LN volumes; concludes the story after the cumulative TV run (eps 1-23)." + } + ] +} diff --git a/src/data/mappings/say-i-love-you.json b/src/data/mappings/say-i-love-you.json new file mode 100644 index 0000000..044265c --- /dev/null +++ b/src/data/mappings/say-i-love-you.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 14289, + "anilistMangaId": 41767, + "title": "Say I Love You", + "sourceNotes": "Single-cours TV anime (13 eps, 2012) adapting roughly the first 7 volumes (ch 1-28), so a viewer resumes reading at ch 29. Paired with Kanae Hazuki's complete manga, serialized in Dessert 2008-2017: AniList counts 73 chapters across 18 volumes. The adaptation is near chapter-per-episode early on but rushes from ep 9 once Kai is introduced, so arc boundaries are approximate. The 'Mei to Marshmallow' shorts and the 'Dareka ga' OAD are separate side entries, and the 2016 live-action film is excluded.", + "mappings": [ + { + "episodes": [1, 2], + "chapters": [1, 4], + "arc": "Mei & Yamato (First Kiss, Dating Begins)" + }, + { + "episodes": [3, 5], + "chapters": [5, 12], + "arc": "Aiko & the Past (incl. Kakeru, Yamato's sister Nagi)" + }, + { + "episodes": [6, 8], + "chapters": [13, 20], + "arc": "Megumi & Modeling (Rumors → Reconciliation)" + }, + { + "episodes": [9, 13], + "chapters": [21, 28], + "arc": "Kai Rivalry & Megumi's Resolution (Finale)" + }, + { + "chapters": [29, 73], + "arc": "Third Year & Beyond (unadapted tail)" + } + ] +} diff --git a/src/data/mappings/scums-wish.json b/src/data/mappings/scums-wish.json new file mode 100644 index 0000000..a76bbe7 --- /dev/null +++ b/src/data/mappings/scums-wish.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 21701, + "anilistMangaId": 74929, + "title": "Scum's Wish", + "sourceNotes": "The 2017 TV anime (12 eps) is a near-complete adaptation of Mengo Yokoyari's manga (53 chapters across 8 volumes, complete). It covers essentially the whole story; ep 12's ending lands very close to the manga's, so a viewer only needs the final few chapters (51-53) to finish. Episode-to-chapter boundaries are approximate. Yokoyari's 'Kuzu no Honkai Décor' (a separate 7-chapter side-story anthology) is excluded.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 18], + "arc": "Fake Lovers: Hanabi & Mugi's Arrangement (the love web; Ecchan & Moca introduced)" + }, + { + "episodes": [5, 9], + "chapters": [19, 38], + "arc": "Akane Minagawa Arc (Mugi & Akane; Hanabi's jealousy & confrontation; Narumi)" + }, + { + "episodes": [10, 12], + "chapters": [39, 50], + "arc": "Letting Go: Ending the Arrangement (resolutions; anime portion)" + }, + { + "chapters": [51, 53], + "arc": "Manga Finale (post-anime resolution)" + } + ] +} diff --git a/src/data/mappings/seirei-gensouki.json b/src/data/mappings/seirei-gensouki.json new file mode 100644 index 0000000..0446a77 --- /dev/null +++ b/src/data/mappings/seirei-gensouki.json @@ -0,0 +1,42 @@ +{ + "anilistAnimeId": 126546, + "anilistMangaId": 99587, + "title": "Seirei Gensouki: Spirit Chronicles", + "sourceNotes": "Cumulative episodes across S1 (12, 2021) + S2 (12, eps 13-24, 2024) = 24 total. The source is Yuri Kitayama's light novel (ongoing, 28 main volumes as of early 2026). The linked manga (AniList id 99587, art by Futago Minaduki, ~13 tankobon / ~60 chapters) only reaches roughly LN vol 7 and AniList lists no chapter count, so — like other LN adaptations here whose manga lags far behind — this mapping uses LIGHT-NOVEL VOLUME numbers as the 'chapters' unit. The anime also reorders source material (it pulls the Celia wedding-rescue / Miharu reunion forward and skips most of vol 4), so per-volume boundaries are approximate and sources disagree on exact volume numbering. S1 covers roughly LN vols 1-5; S2 roughly vols 6-7. No theatrical films.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 1], + "arc": "Rio & Haruto: reincarnation, rescuing Princess Flora, entering the Royal Academy (LN vol 1)" + }, + { + "episodes": [4, 6], + "chapters": [2, 2], + "arc": "Latifa & the Forest of Spirits; leaving the academy to seek his homeland (LN vol 2)" + }, + { + "episodes": [7, 9], + "chapters": [3, 3], + "arc": "Journey east to Yagumo: his grandmother, his parents' past, avenging his mother (LN vol 3)" + }, + { + "episodes": [10, 12], + "chapters": [4, 5], + "arc": "Return to Beltrum: Aishia awakens, stopping Celia's forced marriage, reuniting with Miharu (LN vols 4-5)" + }, + { + "episodes": [13, 18], + "chapters": [6, 6], + "arc": "S2: Galarc Kingdom life — rebuilding, heroes & champions, threats to home (LN vol 6)" + }, + { + "episodes": [19, 24], + "chapters": [7, 7], + "arc": "S2: the Battle to Defend Amande and its aftermath (LN vol 7)" + }, + { + "chapters": [8, 28], + "arc": "LN vols 8-28 (ongoing), unadapted" + } + ] +} diff --git a/src/data/mappings/shangri-la-frontier.json b/src/data/mappings/shangri-la-frontier.json new file mode 100644 index 0000000..89ca476 --- /dev/null +++ b/src/data/mappings/shangri-la-frontier.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 151970, + "anilistMangaId": 122063, + "title": "Shangri-La Frontier", + "sourceNotes": "Source is Katarina's web novel; the adaptation paired here is Ryosuke Fuji's manga 'Shangri-La Frontier: Kusoge Hunter, Kami-ge ni Idoman to su', serialized in Kodansha's Weekly Shonen Magazine since 2020 and ongoing (~ch. 270 as of late June 2026). anilistAnimeId 151970 is the first TV anime (2023-24, 25 eps across 2 cours). Season 2 (AniList 176508, another 25 eps) is a sequel, so episodes are numbered cumulatively 26-50. S1 adapts roughly ch 1-58; S2 adapts ch 59-126, so a viewer resumes reading at ch 127. Arc boundaries are approximate, derived from the AnimeFillerGuide episode-to-chapter conversion and the Shangri-La Frontier Fandom 'Story Arcs' page; arcs are named by the in-game scenario/boss (one of the Seven Colossi). S2 cour 2 runs the undersea 'Abyss City' raid concurrently with the Global Game Competition (GGC) tournament. A separate 'Mini Anime' ONA exists; there are no theatrical films.", + "mappings": [ + { + "episodes": [1, 8], + "chapters": [1, 17], + "arc": "Lycagon the Nightslayer (Vorpal Rabbit's Foot)" + }, + { + "episodes": [9, 25], + "chapters": [18, 58], + "arc": "Wezaemon the Tombguard" + }, + { + "episodes": [26, 40], + "chapters": [59, 96], + "arc": "Journeying Wolf, Be Ambitious (Shadow-Lycagon)" + }, + { + "episodes": [41, 50], + "chapters": [97, 126], + "arc": "Abyss City (Ctarnidd) & Global Game Competition" + }, + { + "chapters": [127, 270], + "arc": "Beyond the Abyssal City / Dragon Blight (ongoing, unadapted)" + } + ] +} diff --git a/src/data/mappings/shikimoris-not-just-a-cutie.json b/src/data/mappings/shikimoris-not-just-a-cutie.json new file mode 100644 index 0000000..c9641dc --- /dev/null +++ b/src/data/mappings/shikimoris-not-just-a-cutie.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 127911, + "anilistMangaId": 107282, + "title": "Shikimori's Not Just a Cutie", + "sourceNotes": "Single 12-episode TV season (2022). Keigo Maki's manga (AniList id 107282) is complete at 203 chapters / 20 volumes (concluded 2024), not ongoing. The anime adapts roughly the first four volumes (~ch 1-40), so a viewer resumes around ch 41. Episodic romcom with no strong arcs — chapter ranges are approximate.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 13], + "arc": "Meeting Shikimori & the Friend Group" + }, + { + "episodes": [5, 8], + "chapters": [14, 27], + "arc": "Sports Festival & Summer Days" + }, + { + "episodes": [9, 12], + "chapters": [28, 40], + "arc": "Festivals & Growing Closer" + }, + { + "chapters": [41, 203], + "arc": "Remaining manga (unadapted)" + } + ] +} diff --git a/src/data/mappings/shimoneta.json b/src/data/mappings/shimoneta.json new file mode 100644 index 0000000..3ba1965 --- /dev/null +++ b/src/data/mappings/shimoneta.json @@ -0,0 +1,28 @@ +{ + "anilistAnimeId": 20910, + "anilistMangaId": 86320, + "title": "Shimoneta", + "sourceNotes": "Single 12-episode TV season (2015). The source is Hirotaka Akagi's light novel (AniList 86319, 11 vols / 64 ch, finished); the anime adapts roughly LN vols 1-4. anilistMangaId points at the finished manga adaptation 'Manmaru-hen' (AniList 86320, 23 ch / 4 vols), which covers the same early LN material. Episode-to-chapter ranges are approximate (LN-based): both the anime and manga independently adapt the novels, so boundaries are reasonable segment splits across the manga's 23 chapters rather than exact correspondences. A reader who finishes the manga continues in the light novel.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 6], + "arc": "Joining SOX (Lewd Terrorism Begins)" + }, + { + "episodes": [4, 6], + "chapters": [7, 12], + "arc": "Anna's Awakening & SOX Operations" + }, + { + "episodes": [7, 9], + "chapters": [13, 18], + "arc": "Gathered Fabric & White Source Incident" + }, + { + "episodes": [10, 12], + "chapters": [19, 23], + "arc": "Anna's Obsession & Decensorship Finale" + } + ] +} diff --git a/src/data/mappings/sign-of-affection.json b/src/data/mappings/sign-of-affection.json new file mode 100644 index 0000000..44745f2 --- /dev/null +++ b/src/data/mappings/sign-of-affection.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 166794, + "anilistMangaId": 111189, + "title": "A Sign of Affection", + "sourceNotes": "Cumulative episodes are just the 12-episode first-season TV anime (Jan-Mar 2024); no Season 2 has aired or been announced as of June 2026, so the episode count does not extend further. Paired with suu Morishita's ongoing manga (AniList lists chapters as null): 57 numbered chapters released as of volume 14 (May 13, 2026), so the unadapted tail runs to chapter 57. The anime adapts through chapter 21 (chapter 8 is skipped between episodes 5 and 6); per-episode chapter boundaries follow AnimeFillerGuide's conversion, and the internal arc splits are approximate.", + "mappings": [ + { + "episodes": [1, 5], + "chapters": [1, 7], + "arc": "A Fateful Meeting & The Answer (Yuki falls for Itsuomi)" + }, + { + "episodes": [6, 9], + "chapters": [8, 15], + "arc": "Becoming a Couple (first dates, introductions, Kyouya)" + }, + { + "episodes": [10, 12], + "chapters": [16, 21], + "arc": "Oushi's World / Promise (Itsuomi heads abroad)" + }, + { + "chapters": [22, 57], + "arc": "After the Promise (unadapted tail; manga ongoing)" + } + ] +} diff --git a/src/data/mappings/smartphone.json b/src/data/mappings/smartphone.json new file mode 100644 index 0000000..75f1a71 --- /dev/null +++ b/src/data/mappings/smartphone.json @@ -0,0 +1,22 @@ +{ + "anilistAnimeId": 98491, + "anilistMangaId": 87174, + "title": "In Another World With My Smartphone", + "sourceNotes": "Cumulative episodes across S1 (12) + S2 (12, eps 13-24) = 24 total. The anime adapts Patora Fuyuhara's LIGHT NOVEL, not Soto's slower parallel manga adaptation (id 99465, ~18 vols, whose chapter pacing does not line up with the anime), so this maps to the light novel (AniList id 87174, type MANGA / format NOVEL, ongoing at 31 volumes as of May 2025). AniList tracks no chapter count for the LN, so the numbers in the `chapters` field are LIGHT NOVEL VOLUMES, not chapters. Both seasons combined cover roughly LN vols 1-6: S1 ~vols 1-3, S2 ~vols 4-6, with readers advised to continue at vol 7 afterward. The TV adaptation is heavily abridged and non-linear (it reorders and skips chapters), so the per-season volume boundaries are approximate. Vols 7-31 are unadapted.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 3], + "arc": "Reincarnation, Fiancees & the Babylon Discovery (S1, LN vols 1-3)" + }, + { + "episodes": [13, 24], + "chapters": [4, 6], + "arc": "Brunhild Dukedom, Frame Gears & the Phrase (S2, LN vols 4-6)" + }, + { + "chapters": [7, 31], + "arc": "Unadapted (LN vols 7-31)" + } + ] +} diff --git a/src/data/mappings/snow-white-with-the-red-hair.json b/src/data/mappings/snow-white-with-the-red-hair.json new file mode 100644 index 0000000..1f3fd30 --- /dev/null +++ b/src/data/mappings/snow-white-with-the-red-hair.json @@ -0,0 +1,47 @@ +{ + "anilistAnimeId": 21058, + "anilistMangaId": 34571, + "title": "Snow White with the Red Hair", + "sourceNotes": "Cumulative episodes across S1 (12 eps, AniList 21058) + S2 (12 eps, AniList 21258 — eps 13-24) = 24 total. Use the S1 id. Paired with Sorata Akizuki's shoujo manga 'Akagami no Shirayuki-hime' (AniList 34571), ongoing — 27 tankobon volumes / ~ch 142 as of May 2025 (vol 27). S1 adapts roughly ch 1-18 (vols 1-4); S2 adapts roughly ch 19-31 (vols 5-7). S2 closes on an anime-original ending, so the standard advice is for a viewer to resume the manga at ch 32. The 1-episode OVA 'Nandemonai Takaramono, Kono Page' (AniList 21313) is a side story aired between seasons and is not part of the cumulative count; there is no 3rd TV season and no theatrical film. Intra-season arc boundaries are approximate.", + "mappings": [ + { + "episodes": [1, 2], + "chapters": [1, 2], + "arc": "Tanbarun & the Poisoned Apple (fleeing Prince Raji, meeting Zen)" + }, + { + "episodes": [3, 6], + "chapters": [3, 9], + "arc": "Royal Court Herbalist (Wistal Castle exam & apprenticeship under Ryuu)" + }, + { + "episodes": [7, 9], + "chapters": [10, 13], + "arc": "Mihaya Kidnapping & Obi" + }, + { + "episodes": [10, 12], + "chapters": [14, 18], + "arc": "Return to Tanbarun" + }, + { + "episodes": [13, 16], + "chapters": [19, 23], + "arc": "Northern City of Lyrias (research assignment)" + }, + { + "episodes": [17, 21], + "chapters": [24, 28], + "arc": "Sea Pirate Kidnapping (Claw of the Sea & Lions of the Mountain)" + }, + { + "episodes": [22, 24], + "chapters": [29, 31], + "arc": "Resolution & Official Court Herbalist (anime-original ending; resume at ch 32)" + }, + { + "chapters": [32, 142], + "arc": "Continued Story (unadapted, ongoing)" + } + ] +} diff --git a/src/data/mappings/so-im-a-spider.json b/src/data/mappings/so-im-a-spider.json new file mode 100644 index 0000000..6d80d29 --- /dev/null +++ b/src/data/mappings/so-im-a-spider.json @@ -0,0 +1,37 @@ +{ + "anilistAnimeId": 103632, + "anilistMangaId": 86952, + "title": "So I'm a Spider, So What?", + "sourceNotes": "Source is Okina Baba's light novel Kumo desu ga, Nani ka?, complete at 16 main volumes (concluded January 2022; AniList LN id 86406). The `chapters` tuples here are LIGHT-NOVEL VOLUME numbers (1-16), NOT manga chapters. anilistMangaId points to the Asahiro Kakashi manga adaptation (id 86952, ongoing -- roughly ch. 78 / 15 volumes as of 2026), but that manga cannot anchor this mapping: it lags far behind the 24-episode anime and deliberately drops most of the human-side 'S' interludes, whereas the anime interweaves Kumoko's dungeon-climb timeline with the reincarnated classmates' present-day timeline (set ~15 years later). The single 2-cour 2021 TV anime (24 eps) adapts roughly LN vols 1-5; an anime-only viewer resumes at vol 6. Per-volume episode boundaries are APPROXIMATE because the anime reorders and interleaves the two timelines. No theatrical films.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 1], + "arc": "Lower Stratum survival: hatching & fleeing the Great Elroe Labyrinth (classmates' reincarnation revealed) (LN vol 1)" + }, + { + "episodes": [5, 8], + "chapters": [2, 2], + "arc": "Middle Stratum: the catfish & magma trials; Hero and Demon Lord introduced; Prince Shun's childhood (LN vol 2)" + }, + { + "episodes": [9, 12], + "chapters": [3, 3], + "arc": "Upper Stratum & the Great Fire Dragon -- cour 1 finale (LN vol 3)" + }, + { + "episodes": [13, 18], + "chapters": [4, 4], + "arc": "Reaching the surface: parallel minds & the Queen's puppet spiders; the classmates' school years (LN vol 4)" + }, + { + "episodes": [19, 24], + "chapters": [5, 5], + "arc": "Convergence: class reunion, evolution to Arachne & the Hero's death; Kumoko becomes Shiraori (anime finale) (LN vol 5)" + }, + { + "chapters": [6, 16], + "arc": "Human-Demon war, Sariella & the System's truth (LN vols 6-16, unadapted)" + } + ] +} diff --git a/src/data/mappings/teasing-master-takagi-san.json b/src/data/mappings/teasing-master-takagi-san.json new file mode 100644 index 0000000..6df5c43 --- /dev/null +++ b/src/data/mappings/teasing-master-takagi-san.json @@ -0,0 +1,36 @@ +{ + "anilistAnimeId": 99468, + "anilistMangaId": 85533, + "title": "Teasing Master Takagi-san", + "sourceNotes": "Cumulative episodes across S1 (12, 2018) + S2 (12, eps 13-24, 2019) + S3 (12, eps 25-36, 2022) = 36 total; all use the S1 anime id 99468 as the entry point. Paired with Soichiro Yamamoto's manga 'Karakai Jouzu no Takagi-san' (AniList id 85533, FINISHED, 20 volumes). AniList lists 190 chapters; the main serialized run is closer to ~166 numbered chapters, with the remainder being bonus/extra chapters, so the chapter count is source-dependent. This is an episodic gag romcom of short chapters (each episode adapts roughly 4-5 chapters, not strictly in order), so all chapter boundaries are coarse and approximate. The canon theatrical film follows S3.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 48], + "arc": "Season 1 (approx. vols 1-4 — first-year teasing battles)" + }, + { + "episodes": [13, 24], + "chapters": [49, 96], + "arc": "Season 2 (approx. vols 5-9 — deepening rivalry & affection)" + }, + { + "episodes": [25, 36], + "chapters": [97, 144], + "arc": "Season 3 (approx. vols 10-14 — second-year onward)" + }, + { + "chapters": [145, 190], + "arc": "Final chapters (later/unadapted manga, incl. material drawn on by the film)" + } + ], + "movies": [ + { + "anilistId": 138425, + "title": "Teasing Master Takagi-san: The Movie", + "year": 2022, + "afterEpisode": 36, + "note": "Canon film set after S3 (ep 36), adapting later manga chapters toward the series' culmination." + } + ] +} diff --git a/src/data/mappings/testament-of-sister-new-devil.json b/src/data/mappings/testament-of-sister-new-devil.json new file mode 100644 index 0000000..8ae6c62 --- /dev/null +++ b/src/data/mappings/testament-of-sister-new-devil.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 20678, + "anilistMangaId": 79305, + "title": "The Testament of Sister New Devil", + "sourceNotes": "Cumulative episodes across S1 (12) + S2 'BURST' (10, eps 13-22) = 22 total. The series is sourced from Tetsuto Uesu's light novel (AniList id 79305, type NOVEL, 75 chapters across 13 volumes); the parallel manga adaptation (id 81755) is a separate, incomplete continuity (only 9 volumes / 46 chapters) that diverges from the anime, so this maps by LN volume instead. S1 adapts LN vols 1-2 and S2 BURST adapts LN vols 3-4, leaving vols 5-13 unadapted. Chapter ranges are proportional estimates converting those volume boundaries onto AniList's 75-chapter count, so they are approximate. The DEPARTURES OVA and other specials are side entries; there are no theatrical films.", + "mappings": [ + { + "episodes": [1, 6], + "chapters": [1, 6], + "arc": "Master-Servant Pact (new step-sisters & family forms, LN vol 1)" + }, + { + "episodes": [7, 12], + "chapters": [7, 12], + "arc": "Zolgia Arc (Mio kidnapped & rescued, Zest joins, LN vol 2)" + }, + { + "episodes": [13, 18], + "chapters": [13, 17], + "arc": "Zest's Contract & the Hero Village summons Basara (LN vol 3)" + }, + { + "episodes": [19, 22], + "chapters": [18, 23], + "arc": "Takigawa/Lars Reveal & Hero-Faction Clash (LN vol 4)" + }, + { + "chapters": [24, 75], + "arc": "Demon-Lord Faction War (LN vols 5-13, unadapted)" + } + ] +} diff --git a/src/data/mappings/to-love-ru.json b/src/data/mappings/to-love-ru.json new file mode 100644 index 0000000..6c99510 --- /dev/null +++ b/src/data/mappings/to-love-ru.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 3455, + "anilistMangaId": 30671, + "title": "To Love-Ru", + "sourceNotes": "Cumulative episodes across 4 TV seasons: To Love-Ru S1 (26, 2008) + Motto To Love-Ru (12, 2010) + To Love-Ru Darkness (12, 2012) + To Love-Ru Darkness 2nd (12, 2015) = 62 eps. anilistMangaId is the ORIGINAL To Love-Ru manga by Saki Hasemi & Kentaro Yabuki, complete at 162 chapters / 18 volumes (~9 ch per volume). S1 is largely anime-original and pulls scattered chapters from vols 1-6; Motto adapts vols 7-11 faithfully in a 3-skit-per-episode format; the original manga's final arcs (vols 12-18, ch 100-162) were never adapted on TV (chapters-only tail, lead-in to Darkness). The two Darkness TV seasons adapt a SEPARATE sequel manga, To Love-Ru Darkness (AniList id 52519; ~77 numbered chapters / 18 volumes, AniList counts 100 incl. extras) — so their chapter ranges use the Darkness manga's OWN numbering, not the original 162-ch axis: Darkness covers Darkness ch 1-19, Darkness 2nd covers Darkness ch 20-47 (the remainder, Darkness ch 48-77, is unadapted). Episodic harem comedy, so all chapter boundaries are approximate (refine via PR). OVAs/specials are not theatrical and are omitted; no qualifying theatrical films.", + "mappings": [ + { + "episodes": [1, 26], + "chapters": [1, 54], + "arc": "To Love-Ru (Season 1, 2008) — original manga vols 1-6, mostly anime-original / scattered chapters" + }, + { + "episodes": [27, 38], + "chapters": [55, 99], + "arc": "Motto To Love-Ru (Season 2, 2010) — original manga vols 7-11, faithful 3-skit adaptation" + }, + { + "chapters": [100, 162], + "arc": "Original manga vols 12-18 — final arcs, unadapted on TV (lead-in to To Love-Ru Darkness)" + }, + { + "episodes": [39, 50], + "chapters": [1, 19], + "arc": "To Love-Ru Darkness (Season 3, 2012) — Darkness manga ch 1-19 (SEPARATE manga, AniList id 52519)" + }, + { + "episodes": [51, 62], + "chapters": [20, 47], + "arc": "To Love-Ru Darkness 2nd (Season 4, 2015) — Darkness manga ch 20-47 (SEPARATE numbering)" + } + ] +} diff --git a/src/data/mappings/tomo-chan-is-a-girl.json b/src/data/mappings/tomo-chan-is-a-girl.json new file mode 100644 index 0000000..29a432a --- /dev/null +++ b/src/data/mappings/tomo-chan-is-a-girl.json @@ -0,0 +1,33 @@ +{ + "anilistAnimeId": 151806, + "anilistMangaId": 86300, + "title": "Tomo-chan Is a Girl!", + "sourceNotes": "Fumita Yanagida's 4-koma webcomic/manga (961 short strips collected into 8 complete volumes per AniList). The single-cour 2023 TV anime (13 episodes) is a complete adaptation of the entire manga, so a viewer finishes the whole story. Because the source is 4-koma (gag strips rather than continuous chapters), strip-to-episode boundaries are highly approximate; ranges below are coarse groupings by descriptive segment and roughly track the 8 volumes. Tomo Aizawa, a tomboy mistaken for 'one of the guys', tries to make childhood friend Junichiro 'Jun' Kubota see her as a girl, aided and teased by schemer Misuzu Gundou and transfer student Carol Olston. There are no theatrical films. ('Kurae! Telepathy' is the opening-theme music video, not story content.)", + "mappings": [ + { + "episodes": [1, 2], + "chapters": [1, 148], + "arc": "Confession Attempts Begin — Tomo's love goes unnoticed (Vol. 1, approx.)" + }, + { + "episodes": [3, 5], + "chapters": [149, 370], + "arc": "Misuzu's Scheming & Carol Olston's Arrival (Vols. 2-3, approx.)" + }, + { + "episodes": [6, 8], + "chapters": [371, 592], + "arc": "Summer, the Beach & the Sports Festival (Vols. 4-5, approx.)" + }, + { + "episodes": [9, 11], + "chapters": [593, 815], + "arc": "Carol & Misuzu, and Tomo's Growing Resolve (Vols. 6-7, approx.)" + }, + { + "episodes": [12, 13], + "chapters": [816, 961], + "arc": "Resolution — Jun's Realization & the Confession (Vol. 8, approx.)" + } + ] +} diff --git a/src/data/mappings/tomodachi-game.json b/src/data/mappings/tomodachi-game.json new file mode 100644 index 0000000..85c12b7 --- /dev/null +++ b/src/data/mappings/tomodachi-game.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 141014, + "anilistMangaId": 85911, + "title": "Tomodachi Game", + "sourceNotes": "Manga conceived by Mikoto Yamaguchi with art by Yuki Sato; serialized in Bessatsu Shounen Magazine Dec 2013 - Aug 2024 and now complete at 26 volumes / 127 chapters (AniList lists 130, likely counting the split final chapter and extras). The 2022 anime (12 eps, single cours; AniList tags it ONA, aired on TV in Japan) adapts manga ch 1-25, so a viewer resumes reading at ch 26 (Volume 6). Per-game chapter boundaries are well sourced (Shapes / K Manga): Game 1 'Kokkuri-san' debt game = ch 1-8, Game 2 'Bad-Mouth Sugoroku' = ch 9-18, Game 3 'Friendship Hide-and-Seek' = ch 19-25. Episode-to-game boundaries are approximate. The unadapted tail (ch 26-127) covers the later games - Friend's Sin Trial / Friend Murder Game, Solitary King (Kill the King), Import-Export, the All-Bet gambling arc, and the final Friends Battle Royale.", + "mappings": [ + { + "episodes": [1, 2], + "chapters": [1, 8], + "arc": "Game 1: Kokkuri-san (Debt Repayment Game)" + }, + { + "episodes": [3, 6], + "chapters": [9, 18], + "arc": "Game 2: Bad-Mouth Sugoroku" + }, + { + "episodes": [7, 12], + "chapters": [19, 25], + "arc": "Game 3: Friendship Hide-and-Seek" + }, + { + "chapters": [26, 127], + "arc": "Later Games (Sin Trial, Kill the King, Import-Export, Battle Royale; unadapted)" + } + ] +} diff --git a/src/data/mappings/tomozaki.json b/src/data/mappings/tomozaki.json new file mode 100644 index 0000000..11fa192 --- /dev/null +++ b/src/data/mappings/tomozaki.json @@ -0,0 +1,22 @@ +{ + "anilistAnimeId": 112443, + "anilistMangaId": 100807, + "title": "Bottom-Tier Character Tomozaki", + "sourceNotes": "Cumulative episodes across S1 (12) + S2 '2nd STAGE' (13, eps 13-25) = 25 total. Source is Yuki Yaku's light novel ('life is a god-tier game' premise). The Yuki Aonuma manga adaptation (AniList id 100807, 30 ch / 6 vols, finished Feb 2021) only adapts the early arcs (~LN vols 1-3) and ends far short of the two-season anime, so this mapping uses LIGHT-NOVEL VOLUME NUMBERS as the 'chapters' axis instead. Anime coverage by LN volume: S1 = vols 1-3 (a viewer resumes at vol 4), S2 = vols 4-7 (resume at vol 8). The main LN entered its 'Last Stage' at vol 11; 11 main volumes plus short-story side volumes were published through early 2024, leaving vols 8-11 unadapted. Per-volume arc boundaries are approximate. No theatrical films.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 3], + "arc": "Hinami's life-as-a-game coaching; friend group & Tama-chan; student council election & sports festival (S1; LN vols 1-3)" + }, + { + "episodes": [13, 25], + "chapters": [4, 7], + "arc": "Dating goal with Kikuchi-san & the culture-festival play arc; field trip (S2 '2nd STAGE'; LN vols 4-7)" + }, + { + "chapters": [8, 11], + "arc": "Career survey through the 'Last Stage' finale (LN vols 8-11, unadapted)" + } + ] +} diff --git a/src/data/mappings/trinity-seven.json b/src/data/mappings/trinity-seven.json new file mode 100644 index 0000000..2448127 --- /dev/null +++ b/src/data/mappings/trinity-seven.json @@ -0,0 +1,50 @@ +{ + "anilistAnimeId": 20631, + "anilistMangaId": 54822, + "title": "Trinity Seven", + "sourceNotes": "TV anime (12 eps, 2014, Seven Arcs Pictures) adapts Kenji Saito & Akinari Nao's manga 'Trinity Seven: The Seven Magicians', serialized in Monthly Dragon Age since 2010 and still ongoing (34 volumes / ~chapter 173 as of April 2026 per Wikipedia's chapter list, NOT complete). Volume 1 opens with a prologue chapter 0; ranges below start at chapter 1 for clarity. The anime covers roughly volumes 1-8, whose final chapter is 35 ('Judecca & World System'); arc-to-episode boundaries are approximate (~3 chapters per episode). A reader resumes at chapter 36. The two canon theatrical films continue after episode 12 and loosely adapt later manga arcs; their exact chapter ranges are not officially documented, so the values given are approximate. The single-episode OVA and the various spin-off manga are excluded.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 9], + "arc": "Selection Arc (Royal Biblia Academy)" + }, + { + "episodes": [4, 6], + "chapters": [10, 18], + "arc": "Superbia & Iscariot Arcs" + }, + { + "episodes": [7, 9], + "chapters": [19, 27], + "arc": "Liber Arcanum Arc" + }, + { + "episodes": [10, 12], + "chapters": [28, 35], + "arc": "Sword Arc (Hijiri & World System)" + }, + { + "chapters": [36, 173], + "arc": "Eternal Library, Heavens Library & beyond (post-anime; films adapt early portions, rest unadapted, ongoing)" + } + ], + "movies": [ + { + "anilistId": 21874, + "title": "Trinity Seven: Eternity Library and Alchemic Girl", + "year": 2017, + "chapters": [36, 43], + "afterEpisode": 12, + "note": "Canon film following the TV series. Awakening of the Eternal Library and the grimoire-girl Lilim, leading into the alchemist arc (approx. vols 9-10); chapter range approximate." + }, + { + "anilistId": 103631, + "title": "Trinity Seven: Heavens Library & Crimson Lord", + "year": 2019, + "chapters": [44, 54], + "afterEpisode": 12, + "note": "Sequel to the first film. Arata and the Trinity Seven face the Crimson Demon Lord, Lilith's father (approx. vols 11-12); chapter range approximate." + } + ] +} diff --git a/src/data/mappings/tsukimichi.json b/src/data/mappings/tsukimichi.json new file mode 100644 index 0000000..479ce98 --- /dev/null +++ b/src/data/mappings/tsukimichi.json @@ -0,0 +1,33 @@ +{ + "anilistAnimeId": 125206, + "anilistMangaId": 87225, + "title": "Tsukimichi: Moonlit Fantasy", + "sourceNotes": "Cumulative episodes across S1 (12) + S2 (25, eps 13-37) = 37 total. anilistAnimeId is the 2021 first-season TV anime (id 125206); S2 (id 139518) is a sequel whose 25 episodes continue the cumulative count. Paired with Kotora Kino's ongoing manga adaptation 'Tsuki ga Michibiku Isekai Douchuu' (AniList id 87225, RELEASING), latest ch. 117 across 16 volumes (mid-2026). Anchors: after S1 a reader resumes the manga at vol. 9 / ch. 60, and manga ch. 104 lines up with roughly cumulative ep. 23 (S2 ep. 11). The anime is a fast, compressed adaptation that has OUTPACED the manga: manga ch. 117 only reaches about cumulative ep. 26, so the back half of S2 (roughly eps. 27-37) has no corresponding manga yet (no unadapted manga tail exists). Arc boundaries are interpolated from those anchors and are approximate.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 15], + "arc": "Goddess's Wasteland & Founding of Asora (demi-human haven, Tomoe & Mio)" + }, + { + "episodes": [4, 9], + "chapters": [16, 45], + "arc": "Tsige & the Kuzunoha Company (adventurer's guild, Rembrandt curse)" + }, + { + "episodes": [10, 12], + "chapters": [46, 59], + "arc": "Rotsgard Academy (Raidou the lecturer; S1 finale)" + }, + { + "episodes": [13, 23], + "chapters": [60, 104], + "arc": "Rotsgard Academy Festival & the Heroes (S2; Hibiki and Tomoki appear)" + }, + { + "episodes": [24, 37], + "chapters": [105, 117], + "arc": "Fort Stella & the Demon War (S2; anime surpasses the manga partway through)" + } + ] +} diff --git a/src/data/mappings/tsuredure-children.json b/src/data/mappings/tsuredure-children.json new file mode 100644 index 0000000..7a7bdec --- /dev/null +++ b/src/data/mappings/tsuredure-children.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 98291, + "anilistMangaId": 86481, + "title": "Tsuredure Children", + "sourceNotes": "Short-format ensemble manga — chapter ranges are approximate. Toshiya Wakabayashi's gag/short romcom is a complete 4-koma-style work (AniList lists 212 short chapters / 12 volumes; some sources tally fewer due to differing chapter splits). It has no story arcs — instead it follows many independent couples' brief vignettes that interleave throughout. The 2017 TV short (single season, 12 short episodes) adapts an assortment of these early couples (roughly ch 1-50), so a viewer resumes reading around there. The remainder is unadapted.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 50], + "arc": "Episodes 1-12 (assorted couples)" + }, + { + "chapters": [51, 212], + "arc": "Remaining couples & vignettes (unadapted)" + } + ] +} diff --git a/src/data/mappings/umaru-chan.json b/src/data/mappings/umaru-chan.json new file mode 100644 index 0000000..a30300b --- /dev/null +++ b/src/data/mappings/umaru-chan.json @@ -0,0 +1,22 @@ +{ + "anilistAnimeId": 20987, + "anilistMangaId": 80133, + "title": "Himouto! Umaru-chan", + "sourceNotes": "Cumulative episodes across S1 (12 eps, 2015) + S2 'R' (12 eps, 2017, eps 13-24) = 24 total. Use the S1 id; R is a sequel. Paired with Sankaku Head's complete manga: 231 chapters across 12 volumes (FINISHED per AniList). 4-koma episodic slice-of-life with no real story arcs, so groupings are coarse and chapter ranges are approximate (roughly several chapters per episode); the anime also reorders gags rather than adapting strictly in order. The OVA and the 'S'/'R'/'N'/'G' spin-offs are separate side entries; there are no theatrical films.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 90], + "arc": "Season 1 (eps 1-12) — Umaru's double life (approximate)" + }, + { + "episodes": [13, 24], + "chapters": [91, 180], + "arc": "Season 2 R (eps 13-24) — friends & family slice-of-life (approximate)" + }, + { + "chapters": [181, 231], + "arc": "Unadapted tail — final chapters through the manga's end" + } + ] +} diff --git a/src/data/mappings/uzaki-chan.json b/src/data/mappings/uzaki-chan.json new file mode 100644 index 0000000..42bdcef --- /dev/null +++ b/src/data/mappings/uzaki-chan.json @@ -0,0 +1,37 @@ +{ + "anilistAnimeId": 115113, + "anilistMangaId": 101724, + "title": "Uzaki-chan Wants to Hang Out!", + "sourceNotes": "Cumulative episodes across S1 (12 eps, 2020) + S2 'ω' (13 eps, 2022, eps 13-25) = 25 total. Paired with Take's manga 'Uzaki-chan wa Asobitai!', still ongoing (~ch. 137 / 14 volumes as of mid-2026, serialized on Niconico Seiga's Dra Dra Sharp since Dec 2017). This is an episodic slice-of-life romcom and the anime adapts chapters out of order with anime-original beats, so groupings are coarse and chapter boundaries are approximate. S1 ends around the start of Volume 4 (~ch 30); S2 ends around Volume 6, so a viewer resumes reading roughly ch 62 (sources vary between ch 61 and ch 69). No theatrical films exist.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 10], + "arc": "Meeting Up: First Hangouts (Café, Games, Movies)" + }, + { + "episodes": [5, 8], + "chapters": [11, 20], + "arc": "Summer: The Beach, Fireworks & the Cat Café" + }, + { + "episodes": [9, 12], + "chapters": [21, 30], + "arc": "Tottori Trip, the Holidays & the Uzaki Family" + }, + { + "episodes": [13, 19], + "chapters": [31, 46], + "arc": "Daily Life: New Faces, Valentine's & Outings" + }, + { + "episodes": [20, 25], + "chapters": [47, 61], + "arc": "Sakurai & Uzaki Grow Closer (Festivals, New Year)" + }, + { + "chapters": [62, 137], + "arc": "Relationship Deepens (ongoing, unadapted)" + } + ] +} diff --git a/src/data/mappings/villainess.json b/src/data/mappings/villainess.json new file mode 100644 index 0000000..8a68916 --- /dev/null +++ b/src/data/mappings/villainess.json @@ -0,0 +1,41 @@ +{ + "anilistAnimeId": 104647, + "anilistMangaId": 100559, + "title": "My Next Life as a Villainess: All Routes Lead to Doom!", + "sourceNotes": "Mapped by LIGHT NOVEL VOLUME, not chapter. The source is Satoru Yamaguchi's light novel (Otome Game no Hametsu Flag shika Nai Akuyaku Reijou ni Tensei shiteshimatta...), which the anime adapts faithfully. The standalone manga adaptation (AniList id 100560) is a separate, much slower retelling that does not track the anime, so the `chapters` tuples below hold LN VOLUME numbers and `anilistMangaId` points to the light novel itself (AniList id 100559), the work these volumes index. Cumulative episodes: Season 1 (id 104647, 12 eps) + sequel 'X' (id 120209, 12 eps = eps 13-24). Confirmed endpoints: S1 ep 12 ends at the close of LN Vol 2; S2 ep 24 ends at the close of LN Vol 4 — a viewer continues reading at Vol 5 (a side-story volume) or Vol 6 (story proper). The internal per-episode volume splits (Vol 1/2 boundary ~ep 6/7, Vol 3/4 boundary ~ep 18/19) are approximate; the season endpoints are firm. The main light novel is ongoing (~15 volumes as of 2025), so Vols 5-15 are the unadapted tail. The 2023 film is an all-new canon original story by Yamaguchi (not a recap) and does not correspond to a specific LN volume, so it carries no volume range. Side entries (the 'On the Verge of Doom!' / 'Girls Patch' spin-off manga, the 'Katarina's Inner Council' ONA shorts, and the 'X - I Met My Destined One...' OVA) are excluded.", + "mappings": [ + { + "episodes": [1, 6], + "chapters": [1, 1], + "arc": "Childhood & doom-flag countermeasures (LN Vol 1): Catarina recalls she is the villainess of the otome game Fortune Lover, then befriends every love interest and rival; time-skip into the Academy of Magic" + }, + { + "episodes": [7, 12], + "chapters": [2, 2], + "arc": "Academy / Fortune Lover arc (LN Vol 2): Maria Campbell, the student council, and the dark-magic incident with Sirius (Raphael) — the original game's doom flags resolved" + }, + { + "episodes": [13, 18], + "chapters": [3, 3], + "arc": "Post-game daily life (LN Vol 3): the second-game (Fortune Lover II) characters appear; lead-in toward the Ministry of Magic" + }, + { + "episodes": [19, 24], + "chapters": [4, 4], + "arc": "Magical ministry / kidnapping arc (LN Vol 4): Catarina is taken to the dark-magic island, Raphael's past, and the 'X' finale" + }, + { + "chapters": [5, 15], + "arc": "Unadapted tail (LN Vols 5-15, ongoing): resume at Vol 5 (side stories) or Vol 6 (story proper)" + } + ], + "movies": [ + { + "anilistId": 139359, + "title": "My Next Life as a Villainess: All Routes Lead to Doom! The Movie", + "year": 2023, + "afterEpisode": 24, + "note": "Released Dec 8, 2023 (Japan). An all-new canon story written by original author Satoru Yamaguchi — not a recap. Catarina meets a mysterious boy from the visiting Mutrac circus caravan. Anime-original, so it maps to no specific LN volume; watch after the 'X' season." + } + ] +} diff --git a/src/data/mappings/violet-evergarden.json b/src/data/mappings/violet-evergarden.json new file mode 100644 index 0000000..5392b40 --- /dev/null +++ b/src/data/mappings/violet-evergarden.json @@ -0,0 +1,30 @@ +{ + "anilistAnimeId": 21827, + "anilistMangaId": 97298, + "title": "Violet Evergarden", + "sourceNotes": "Source is Kana Akatsuki's original 2-volume light novel (complete, 13 chapters: Vol 1 = ch 1-6, Vol 2 = ch 7-13); AniList lists no manga adaptation, so the novel entry (id 97298) is used. The single 13-episode TV season (KyoAni, 2018) needs no cumulative offset. The anime is an episodic anthology that adapts Volume 1's standalone 'Auto Memory Doll' vignettes out of order, wrapping them in anime-original framing and an anime-original ending, so the episode->chapter mapping is approximate (~one vignette per adapting episode); confirmed beats are ep7=ch1 (Oscar the playwright), ep6=ch4 (Leon the astronomer), and ep10=ch2 (Ann). Volume 2's conclusion (ch 7-13, Violet and Gilbert) is instead adapted by 'Violet Evergarden: the Movie' (2020), while 'Eternity and the Auto Memory Doll' (2019) adapts the separate Gaiden side novel rather than the main book.", + "mappings": [ + { + "episodes": [1, 13], + "chapters": [1, 6], + "arc": "Auto Memory Doll (Volume 1 vignettes)" + } + ], + "movies": [ + { + "anilistId": 109190, + "title": "Violet Evergarden: Eternity and the Auto Memory Doll", + "year": 2019, + "afterEpisode": 13, + "note": "Canon side-story film adapting the separate 'Violet Evergarden Gaiden' side novel (Isabella/Amy and her sister Taylor); not part of the main 13-chapter book." + }, + { + "anilistId": 103047, + "title": "Violet Evergarden: the Movie", + "year": 2020, + "afterEpisode": 13, + "chapters": [7, 13], + "note": "Canon sequel film adapting Volume 2 — the novel's conclusion, Violet learning Gilbert's fate and their reunion; the ending the TV series left open." + } + ] +} diff --git a/src/data/mappings/wandering-witch.json b/src/data/mappings/wandering-witch.json new file mode 100644 index 0000000..fe4e71e --- /dev/null +++ b/src/data/mappings/wandering-witch.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 112609, + "anilistMangaId": 105913, + "title": "Wandering Witch: The Journey of Elaina", + "sourceNotes": "Source is Jougi Shiraishi's light novel, a series of standalone short stories (25+ volumes). anilistMangaId points to the manga adaptation (AniList 105913, 24 chapters / 6 volumes), which retells largely the same short stories the anime draws from. The 2020 TV anime is an EPISODIC ANTHOLOGY: its 12 episodes cherry-pick self-contained short stories from LN volumes 1-5 OUT OF ORDER, drawing mostly from vols 1, 3 and 5 while skipping most of vols 2 and 4. Because the anime reorders and compresses stories, there is no clean one-to-one episode-to-chapter mapping; the chapter ranges below are APPROXIMATE, aligned to the sequential manga (manga vols 1-4 / chapters ~1-16 cover most of what the 12 episodes adapt), and arc labels describe the short stories each block covers.", + "mappings": [ + { + "episodes": [1, 2], + "chapters": [1, 3], + "arc": "Origin & The Land of Mages - Elaina's apprenticeship under Fran, then the country where all use magic (LN Vol. 1)" + }, + { + "episodes": [3, 5], + "chapters": [4, 7], + "arc": "Bottled Happiness / The Girl as Pretty as a Flower / The Princess Without Subjects / Royal Celesteria (LN Vol. 1-2, anthology, approx.)" + }, + { + "episodes": [6, 8], + "chapters": [8, 11], + "arc": "The Land of Truth Tellers / The Wall Etched by Travelers / The Grape-Stomping Girl / The Ripper (LN Vol. 1, 3, anthology, approx.)" + }, + { + "episodes": [9, 12], + "chapters": [12, 16], + "arc": "A Deep Sorrow from the Past / The Two Teachers / The Two Apprentices / The Everyday Tale of Every Ashen Witch (LN Vol. 3, 5, anthology, approx.)" + }, + { + "chapters": [17, 24], + "arc": "Further short stories (manga Vol. 5-6 / later LN tales) not covered by the 12-episode anime" + } + ] +} diff --git a/src/data/mappings/watamote.json b/src/data/mappings/watamote.json new file mode 100644 index 0000000..890be61 --- /dev/null +++ b/src/data/mappings/watamote.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 16742, + "anilistMangaId": 58533, + "title": "WataMote: No Matter How I Look at It, It's You Guys' Fault I'm Not Popular!", + "sourceNotes": "Single-season 2013 TV anime by Silver Link (12 eps) adapts roughly the first four volumes / chapters 1-34 of Nico Tanigawa's ongoing manga, covering Tomoko's solo-misery first year of high school (before the later ensemble cast). The anime is episodic and non-linear: each episode bundles two or three thematically similar but chronologically separate chapters, and it skips/rearranges some (e.g. ch 30 marathon, ch 33 birthday), so the per-episode chapter ranges below are approximate. New unadapted content begins at ch 35. Manga is ongoing (~ch 238 as of Jan 2026; AniList chapter count null). The anime-original OVA (ep 13, id 20453) adapts no specific chapters and is omitted. No theatrical films.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 9], + "arc": "First Days of High School (Failed Popularity Schemes) — approx." + }, + { + "episodes": [4, 6], + "chapters": [10, 17], + "arc": "Summer Break Misery — approx." + }, + { + "episodes": [7, 9], + "chapters": [18, 26], + "arc": "Second Semester & Cultural Festival — approx." + }, + { + "episodes": [10, 12], + "chapters": [27, 34], + "arc": "Winter & End of First Year — approx." + }, + { + "chapters": [35, 238], + "arc": "Solo Misery to Ensemble Cast (ongoing, unadapted)" + } + ] +} diff --git a/src/data/mappings/way-of-the-househusband.json b/src/data/mappings/way-of-the-househusband.json new file mode 100644 index 0000000..d229622 --- /dev/null +++ b/src/data/mappings/way-of-the-househusband.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 125426, + "anilistMangaId": 101233, + "title": "The Way of the Househusband", + "sourceNotes": "Kousuke Oono's gag manga 'Gokushufudou' is ongoing (~ch. 135 / 17 volumes as of mid-2026 per Bato/Wikipedia). Cumulative episodes use the first Netflix ONA id (125426): Season 1 Part 1 (5 eps, Apr 2021) + Season 1 Part 2 (5 eps, Oct 2021) + Season 2 (5 eps, Jan 2023) = 15 total; Season 2 was a single 5-episode block, not two parts. This is an episodic gag series the anime adapts selectively and out of order, splitting each episode into several short skits, so episode-to-chapter boundaries are coarse and APPROXIMATE. Season 1 (eps 1-10) adapts roughly chapters 1-26; Season 2's coverage is the least certain and cherry-picks skits from later volumes, so the resume point is a rough estimate. A reader can comfortably pick up around chapter 61 (~volume 7). Volume guides: vol 1 = ch 1-9, ~8-9 chapters per volume, vol 9 ~ch 76, vol 13 ~ch 109. No theatrical films.", + "mappings": [ + { + "episodes": [1, 5], + "chapters": [1, 13], + "arc": "Season 1 Part 1 (Tatsu's Househusband Debut)" + }, + { + "episodes": [6, 10], + "chapters": [14, 26], + "arc": "Season 1 Part 2 (Domestic Life Continues)" + }, + { + "episodes": [11, 15], + "chapters": [27, 60], + "arc": "Season 2 (More Househusband Misadventures)" + }, + { + "chapters": [61, 136], + "arc": "Ongoing Skits (unadapted)" + } + ] +} diff --git a/src/data/mappings/welcome-to-the-nhk.json b/src/data/mappings/welcome-to-the-nhk.json new file mode 100644 index 0000000..54aba96 --- /dev/null +++ b/src/data/mappings/welcome-to-the-nhk.json @@ -0,0 +1,38 @@ +{ + "anilistAnimeId": 1210, + "anilistMangaId": 30463, + "title": "Welcome to the NHK", + "sourceNotes": "Single 24-episode TV season (2006). Source is Tatsuhiko Takimoto's light novel, but this pairs the 40-chapter / 8-volume manga adaptation (AniList 30463, complete) since it tracks the anime far more closely than the novel. The anime heavily reorders and condenses the manga, so chapter ranges below are coarse phase approximations, not literal per-episode boundaries. The ending also diverges: in the anime Misaki's abusive-childhood backstory is genuine and the island rescue succeeds, whereas in the manga she admits she fabricated the story and Yamazaki diverts the rescue to Comiket. Anchors: ep 1 = ch 1 (Project), ep 13 'Heaven' = ch 10 (the suicide pact), ep 24 'Welcome to the N.H.K.!' = ch 40.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 3], + "arc": "Hikikomori & the Moe Game Project" + }, + { + "episodes": [5, 9], + "chapters": [4, 8], + "arc": "Counseling & the Mother's Visit" + }, + { + "episodes": [10, 13], + "chapters": [9, 10], + "arc": "The Offline Suicide Pact" + }, + { + "episodes": [14, 17], + "chapters": [11, 21], + "arc": "Online Game Addiction" + }, + { + "episodes": [18, 20], + "chapters": [22, 30], + "arc": "Pyramid Scheme & Despair" + }, + { + "episodes": [21, 24], + "chapters": [31, 40], + "arc": "Misaki's Past & the N.H.K. (anime-original ending)" + } + ] +} diff --git a/src/data/mappings/wind-breaker.json b/src/data/mappings/wind-breaker.json new file mode 100644 index 0000000..de1bb6c --- /dev/null +++ b/src/data/mappings/wind-breaker.json @@ -0,0 +1,37 @@ +{ + "anilistAnimeId": 163270, + "anilistMangaId": 135083, + "title": "Wind Breaker", + "sourceNotes": "Cumulative episodes across S1 (13 eps, 2024 CloverWorks) + S2 (12 eps, eps 14-25) = 25 total. Paired with Nii Satoru's manga 'Wind Breaker' (Magazine Pocket; Bofurin / Furin High), ongoing at ~ch 220 / vol 20 as of mid-2026 per fan trackers. S1 adapts ch 1-41 (ends on 'For a Friend'); S2 adapts ch 42-90, so a viewer resumes reading at ch 91. Arc boundaries follow the Wind Breaker Fandom wiki and episode-to-chapter guides and align to episode breaks; chapter cutoffs are approximate. No theatrical films exist.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 9], + "arc": "Introduction Arc (Sakura Arrives at Bofurin / Furin High)" + }, + { + "episodes": [5, 13], + "chapters": [10, 41], + "arc": "Shishitoren Arc (Bofurin vs Shishitoren)" + }, + { + "episodes": [14, 16], + "chapters": [42, 55], + "arc": "KEEL Arc" + }, + { + "episodes": [17, 19], + "chapters": [56, 66], + "arc": "Sakura / Tsubakino Arc" + }, + { + "episodes": [20, 25], + "chapters": [67, 90], + "arc": "Roppo-Ichiza / Gravel Arc (S2 ends mid-arc)" + }, + { + "chapters": [91, 220], + "arc": "Roppo-Ichiza/Gravel conclusion through Noroshi War and beyond (ongoing, unadapted)" + } + ] +} diff --git a/src/data/mappings/wise-mans-grandchild.json b/src/data/mappings/wise-mans-grandchild.json new file mode 100644 index 0000000..23c63a9 --- /dev/null +++ b/src/data/mappings/wise-mans-grandchild.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 100112, + "anilistMangaId": 87293, + "title": "Wise Man's Grandchild", + "sourceNotes": "Source is Tsuyoshi Yoshioka's light novel (17 vols); paired here with Shunsuke Ogata's ongoing manga adaptation (id 87293, ~28 tankobon as of Feb 2026, latest ~ch. 98). The single 12-episode 2019 TV anime (id 100112) adapts roughly LN volumes 1-3, ending at manga chapter 21, so a viewer resumes reading at chapter 22. Episode-to-chapter boundaries are approximate; the anime is fairly faithful but compresses some material.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 5], + "arc": "Shin's Origin & Earlsheid Magic Academy Entrance" + }, + { + "episodes": [4, 6], + "chapters": [6, 10], + "arc": "Magic Academy Life & the Ultimate Magicians" + }, + { + "episodes": [7, 9], + "chapters": [11, 15], + "arc": "Oliver Schtrom & the Kurt Demonoid Incident" + }, + { + "episodes": [10, 12], + "chapters": [16, 21], + "arc": "Blusfia Empire Demonoid Invasion (Sweed)" + }, + { + "chapters": [22, 98], + "arc": "Post-Anime Story (ongoing, unadapted)" + } + ] +} diff --git a/src/data/mappings/world-god-only-knows.json b/src/data/mappings/world-god-only-knows.json new file mode 100644 index 0000000..ae7de91 --- /dev/null +++ b/src/data/mappings/world-god-only-knows.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 8525, + "anilistMangaId": 37519, + "title": "The World God Only Knows", + "sourceNotes": "Cumulative episodes across three TV seasons by Manglobe: S1 (12, eps 1-12, 2010), S2 'II' (12, eps 13-24, 2011) and 'Goddesses' / Megami-hen (12, eps 25-36, 2013) = 36 total; anilistAnimeId is the S1 entry (8525). Paired with Tamiki Wakaki's completed manga (AniList id 37519): 268 numbered FLAGs across 26 volumes -- AniList's listed count of 271 includes extra/special chapters. S1 adapts the early conquest intro arcs (ch 1-17). S2 adapts the Kusunoki, Haqua, Chihiro and Jun Nagase arcs (ch 18-64) while skipping several manga-only conquest arcs within that span (Tsukiyo Kujyo ch 43-46, Yukie Marui 47-49, Minami Ikoma 50-53). The TV anime then skips chapters 65-113 before the Goddesses season, which adapts the Old Conquest (Goddess) arc and Mai-High Festival -- the goddess hunt / Hell arc (ch 114-189); a TV-only viewer resumes reading at chapter 190. Parts of the skipped block are covered only by OVAs: the two-episode Tenri-hen OVA adapts the Childhood Friend / Tenri arc (ch 57-65) and '4 Girls and an Idol' adapts ch 54-55, and the Goddesses season also re-adapts the Tenri arc and flashbacks in its opening episodes (eps 25-28). The manga's final Heart of Jupiter arc (the Mother/Hat goddess-war finale, ch 190-268) is unadapted. No theatrical films. Arc boundaries are approximate.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 17], + "arc": "Season 1: Conquest intro arcs -- Ayumi, Mio, Kanon & Shiori" + }, + { + "episodes": [13, 24], + "chapters": [18, 64], + "arc": "Season 2 (II): Kusunoki, Haqua, Chihiro & Jun Nagase arcs (manga-only conquest arcs skipped)" + }, + { + "episodes": [25, 36], + "chapters": [114, 189], + "arc": "Goddesses (Megami-hen): Old Conquest / Goddess arc & Mai-High Festival (chapters 65-113 skipped by TV; partly in OVAs)" + }, + { + "chapters": [190, 268], + "arc": "Heart of Jupiter arc -- final Mother/Hat goddess-war finale (unadapted)" + } + ] +} diff --git a/src/data/mappings/worlds-finest-assassin.json b/src/data/mappings/worlds-finest-assassin.json new file mode 100644 index 0000000..e6852d9 --- /dev/null +++ b/src/data/mappings/worlds-finest-assassin.json @@ -0,0 +1,37 @@ +{ + "anilistAnimeId": 129898, + "anilistMangaId": 107603, + "title": "The World's Finest Assassin Gets Reincarnated in Another World as an Aristocrat", + "sourceNotes": "12-ep S1 anime (2021) adapts the manga of Tougetsu Hamada (orig. light novel by Rui Tsukiyo). The finale (ep 12) ends at manga ch 23 plus the epilogue, covering roughly LN vols 1-3. Manga ongoing (current ch ~43 / 9 vols, English via MangaDex mid-2026; AniList lists chapters as null). Per-episode chapter boundaries are approximate beyond the confirmed ep-12 = ch-23 endpoint, so groupings are coarse. Resume reading at ch 24.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 6], + "arc": "Reincarnation & Childhood Training (Tuatha Dé arts, magic, Dia)" + }, + { + "episodes": [4, 5], + "chapters": [7, 10], + "arc": "The Goddess's Mission & Assassin Qualification" + }, + { + "episodes": [6, 7], + "chapters": [11, 14], + "arc": "Building the Network (Tarte & Maha)" + }, + { + "episodes": [8, 10], + "chapters": [15, 19], + "arc": "Royal Academy & the Hero Epona" + }, + { + "episodes": [11, 12], + "chapters": [20, 23], + "arc": "The Hero Subjugation (Setanta & the God Spear; incl. epilogue)" + }, + { + "chapters": [24, 43], + "arc": "Post-anime (ongoing, unadapted)" + } + ] +} diff --git a/src/data/mappings/yamada-and-the-seven-witches.json b/src/data/mappings/yamada-and-the-seven-witches.json new file mode 100644 index 0000000..6eb582a --- /dev/null +++ b/src/data/mappings/yamada-and-the-seven-witches.json @@ -0,0 +1,21 @@ +{ + "anilistAnimeId": 20966, + "anilistMangaId": 65003, + "title": "Yamada-kun and the Seven Witches", + "sourceNotes": "S1 anime (12 eps, 2015, LIDEN FILMS) adapts manga chapters 1-90 — the first 'Seven Witches' saga, ending with all seven original witches losing their powers (Witch Hunting arc concludes ~ch 89); resume reading at ch 91. The anime covers 5 of Volume 11's 9 chapters (86-90). Paired with Miki Yoshikawa's complete manga: 243 numbered story chapters across 28 volumes (Jun 2012 - Apr 2017); AniList counts 246 because it lists ~3 bonus/omake chapters separately, so the final tail extends to 246. The 'Student Council election' belongs to the unadapted tail, not the anime: the Student Council Formation arc begins ch 91 and the election between Tamaki and Ichijo (Second Witch War) is ~ch 169. OVA/ONA shorts and the live-action drama/film are excluded. Tail arc boundaries are approximate.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 90], + "arc": "Supernatural Studies Club Restoration → Witch Hunting (First Witch War; anime portion)" + }, + { + "chapters": [91, 164], + "arc": "Student Council Formation → Seven New Witches → Winter Break" + }, + { + "chapters": [165, 246], + "arc": "Second Witch War (student council election) → Stolen Notes → Graduation finale (ch 244-246 are bonus chapters)" + } + ] +}