diff --git a/src/data/index.ts b/src/data/index.ts index 26ca385..f170429 100644 --- a/src/data/index.ts +++ b/src/data/index.ts @@ -407,7 +407,184 @@ import yosugaNoSora from "@/data/mappings/yosuga-no-sora.json"; import schoolBabysitters from "@/data/mappings/school-babysitters.json"; import pluto from "@/data/mappings/pluto.json"; import ghostInTheShell from "@/data/mappings/ghost-in-the-shell.json"; +import mapping7thPrince from "@/data/mappings/7th-prince.json"; +import mapping7thTimeLoop from "@/data/mappings/7th-time-loop.json"; +import mapping8thSonAreYouKiddingMe from "@/data/mappings/8th-son-are-you-kidding-me.json"; +import mappingALullInTheSea from "@/data/mappings/a-lull-in-the-sea.json"; +import mappingAPlaceFurtherThanTheUniverse from "@/data/mappings/a-place-further-than-the-universe.json"; +import mappingAdachiAndShimamura from "@/data/mappings/adachi-and-shimamura.json"; +import mappingAestheticaOfARogueHero from "@/data/mappings/aesthetica-of-a-rogue-hero.json"; +import mappingAfroSamurai from "@/data/mappings/afro-samurai.json"; +import mappingAfterTheRain from "@/data/mappings/after-the-rain.json"; +import mappingAkudamaDrive from "@/data/mappings/akudama-drive.json"; +import mappingAlderaminOnTheSky from "@/data/mappings/alderamin-on-the-sky.json"; +import mappingAldnoahZero from "@/data/mappings/aldnoah-zero.json"; +import mappingAmIActuallyTheStrongest from "@/data/mappings/am-i-actually-the-strongest.json"; +import mappingAnArchdemonsDilemma from "@/data/mappings/an-archdemons-dilemma.json"; +import mappingAnohana from "@/data/mappings/anohana.json"; +import mappingAoChanCantStudy from "@/data/mappings/ao-chan-cant-study.json"; +import mappingAoashi from "@/data/mappings/aoashi.json"; +import mappingArmedGirlsMachiavellism from "@/data/mappings/armed-girls-machiavellism.json"; +import mappingBeckMongolianChopSquad from "@/data/mappings/beck-mongolian-chop-squad.json"; +import mappingBerserkOfGluttony from "@/data/mappings/berserk-of-gluttony.json"; +import mappingBlackSummoner from "@/data/mappings/black-summoner.json"; +import mappingBladeDanceOfTheElementalers from "@/data/mappings/blade-dance-of-the-elementalers.json"; +import mappingBloodC from "@/data/mappings/blood-c.json"; +import mappingBna from "@/data/mappings/bna.json"; +import mappingBubble from "@/data/mappings/bubble.json"; +import mappingBunnyDrop from "@/data/mappings/bunny-drop.json"; +import mappingBurnTheWitch from "@/data/mappings/burn-the-witch.json"; +import mappingByTheGraceOfTheGods from "@/data/mappings/by-the-grace-of-the-gods.json"; +import mappingCampione from "@/data/mappings/campione.json"; +import mappingCaroleTuesday from "@/data/mappings/carole-tuesday.json"; +import mappingChaikaTheCoffinPrincess from "@/data/mappings/chaika-the-coffin-princess.json"; +import mappingCharlotte from "@/data/mappings/charlotte.json"; +import mappingChillinInAnotherWorld from "@/data/mappings/chillin-in-another-world.json"; +import mappingChobits from "@/data/mappings/chobits.json"; +import mappingClevatess from "@/data/mappings/clevatess.json"; +import mappingDFrag from "@/data/mappings/d-frag.json"; +import mappingDanganronpaTheAnimation from "@/data/mappings/danganronpa-the-animation.json"; +import mappingDarlingInTheFranxx from "@/data/mappings/darling-in-the-franxx.json"; +import mappingDaysWithMyStepsister from "@/data/mappings/days-with-my-stepsister.json"; +import mappingDeadMountDeathPlay from "@/data/mappings/dead-mount-death-play.json"; +import mappingDemonKingDaimao from "@/data/mappings/demon-king-daimao.json"; +import mappingDemonLordRetry from "@/data/mappings/demon-lord-retry.json"; +import mappingDetectiveConan from "@/data/mappings/detective-conan.json"; +import mappingDevilsLine from "@/data/mappings/devils-line.json"; +import mappingDoYouLoveYourMomAndHerTwoHitMultiTargetAttacks from "@/data/mappings/do-you-love-your-mom-and-her-two-hit-multi-target-attacks.json"; +import mappingDukeOfDeathAndHisMaid from "@/data/mappings/duke-of-death-and-his-maid.json"; +import mappingDuskMaidenOfAmnesia from "@/data/mappings/dusk-maiden-of-amnesia.json"; +import mappingEdensZero from "@/data/mappings/edens-zero.json"; +import mappingEngagedToTheUnidentified from "@/data/mappings/engaged-to-the-unidentified.json"; +import mappingFailureFrame from "@/data/mappings/failure-frame.json"; +import mappingFateStrangeFake from "@/data/mappings/fate-strange-fake.json"; +import mappingFlyingWitch from "@/data/mappings/flying-witch.json"; +import mappingFromOldCountryBumpkinToMasterSwordsman from "@/data/mappings/from-old-country-bumpkin-to-master-swordsman.json"; +import mappingFullDive from "@/data/mappings/full-dive.json"; +import mappingFullMetalPanic from "@/data/mappings/full-metal-panic.json"; +import mappingGargantiaOnTheVerdurousPlanet from "@/data/mappings/gargantia-on-the-verdurous-planet.json"; +import mappingGirlsUndPanzer from "@/data/mappings/girls-und-panzer.json"; +import mappingGoGoLoserRanger from "@/data/mappings/go-go-loser-ranger.json"; +import mappingGoldenBoy from "@/data/mappings/golden-boy.json"; +import mappingGuiltyCrown from "@/data/mappings/guilty-crown.json"; +import mappingGurrenLagann from "@/data/mappings/gurren-lagann.json"; +import mappingGushingOverMagicalGirls from "@/data/mappings/gushing-over-magical-girls.json"; +import mappingHanasakuIroha from "@/data/mappings/hanasaku-iroha.json"; +import mappingHappySugarLife from "@/data/mappings/happy-sugar-life.json"; +import mappingHaremInTheLabyrinthOfAnotherWorld from "@/data/mappings/harem-in-the-labyrinth-of-another-world.json"; +import mappingHeavensLostProperty from "@/data/mappings/heavens-lost-property.json"; +import mappingHensuki from "@/data/mappings/hensuki.json"; +import mappingHentaiPrinceAndTheStonyCat from "@/data/mappings/hentai-prince-and-the-stony-cat.json"; +import mappingHighSchoolProdigiesHaveItEasyEvenInAnotherWorld from "@/data/mappings/high-school-prodigies-have-it-easy-even-in-another-world.json"; +import mappingHokkaidoGalsAreSuperAdorable from "@/data/mappings/hokkaido-gals-are-super-adorable.json"; +import mappingHundred from "@/data/mappings/hundred.json"; +import mappingICantUnderstandWhatMyHusbandIsSaying from "@/data/mappings/i-cant-understand-what-my-husband-is-saying.json"; +import mappingIParryEverything from "@/data/mappings/i-parry-everything.json"; +import mappingIcebladeSorcerer from "@/data/mappings/iceblade-sorcerer.json"; +import mappingImStandingOnAMillionLives from "@/data/mappings/im-standing-on-a-million-lives.json"; +import mappingInuXBokuSecretService from "@/data/mappings/inu-x-boku-secret-service.json"; +import mappingIsekaiCheatMagician from "@/data/mappings/isekai-cheat-magician.json"; +import mappingJormungand from "@/data/mappings/jormungand.json"; +import mappingK from "@/data/mappings/k.json"; +import mappingKabaneriOfTheIronFortress from "@/data/mappings/kabaneri-of-the-iron-fortress.json"; +import mappingKaijiUltimateSurvivor from "@/data/mappings/kaiji-ultimate-survivor.json"; +import mappingKamikatsu from "@/data/mappings/kamikatsu.json"; +import mappingKawaiComplex from "@/data/mappings/kawai-complex.json"; +import mappingKazeNoStigma from "@/data/mappings/kaze-no-stigma.json"; +import mappingKidsOnTheSlope from "@/data/mappings/kids-on-the-slope.json"; +import mappingKillLaKill from "@/data/mappings/kill-la-kill.json"; +import mappingKiznaiver from "@/data/mappings/kiznaiver.json"; +import mappingKotouraSan from "@/data/mappings/kotoura-san.json"; +import mappingKuboWontLetMeBeInvisible from "@/data/mappings/kubo-wont-let-me-be-invisible.json"; +import mappingLifeLessonsWithUramichiOniisan from "@/data/mappings/life-lessons-with-uramichi-oniisan.json"; +import mappingLordMarksmanAndVanadis from "@/data/mappings/lord-marksman-and-vanadis.json"; +import mappingLoveAfterWorldDomination from "@/data/mappings/love-after-world-domination.json"; +import mappingLoveTyrant from "@/data/mappings/love-tyrant.json"; +import mappingLycorisRecoil from "@/data/mappings/lycoris-recoil.json"; +import mappingMagicalSempai from "@/data/mappings/magical-sempai.json"; +import mappingMarriagetoxin from "@/data/mappings/marriagetoxin.json"; +import mappingMayoChiki from "@/data/mappings/mayo-chiki.json"; +import mappingMyGirlfriendIsShobitch from "@/data/mappings/my-girlfriend-is-shobitch.json"; +import mappingMyIsekaiLife from "@/data/mappings/my-isekai-life.json"; +import mappingMyMentalChoices from "@/data/mappings/my-mental-choices.json"; +import mappingMyStatusAsAnAssassin from "@/data/mappings/my-status-as-an-assassin.json"; +import mappingMysteriousGirlfriendX from "@/data/mappings/mysterious-girlfriend-x.json"; +import mappingNanbaka from "@/data/mappings/nanbaka.json"; +import mappingNoLongerAllowedInAnotherWorld from "@/data/mappings/no-longer-allowed-in-another-world.json"; +import mappingNoblesse from "@/data/mappings/noblesse.json"; +import mappingNyaruko from "@/data/mappings/nyaruko.json"; +import mappingOddtaxi from "@/data/mappings/oddtaxi.json"; +import mappingOsamake from "@/data/mappings/osamake.json"; +import mappingOssanNewbieAdventurer from "@/data/mappings/ossan-newbie-adventurer.json"; +import mappingOurDatingStory from "@/data/mappings/our-dating-story.json"; +import mappingOutbreakCompany from "@/data/mappings/outbreak-company.json"; +import mappingParallelWorldPharmacy from "@/data/mappings/parallel-world-pharmacy.json"; +import mappingPenguindrum from "@/data/mappings/penguindrum.json"; +import mappingPlasticMemories from "@/data/mappings/plastic-memories.json"; +import mappingPseudoHarem from "@/data/mappings/pseudo-harem.json"; +import mappingRainbow from "@/data/mappings/rainbow.json"; +import mappingReCreators from "@/data/mappings/re-creators.json"; +import mappingRealGirl from "@/data/mappings/real-girl.json"; +import mappingRecordOfGrancrestWar from "@/data/mappings/record-of-grancrest-war.json"; +import mappingReincarnationOfTheStrongestExorcist from "@/data/mappings/reincarnation-of-the-strongest-exorcist.json"; +import mappingRestaurantToAnotherWorld from "@/data/mappings/restaurant-to-another-world.json"; +import mappingSabikuiBisco from "@/data/mappings/sabikui-bisco.json"; +import mappingSaintsMagicPowerIsOmnipotent from "@/data/mappings/saints-magic-power-is-omnipotent.json"; +import mappingSasakiAndMiyano from "@/data/mappings/sasaki-and-miyano.json"; +import mappingSayonaraZetsubouSensei from "@/data/mappings/sayonara-zetsubou-sensei.json"; +import mappingSecondPrettiestGirlInMyClass from "@/data/mappings/second-prettiest-girl-in-my-class.json"; +import mappingSecretsOfTheSilentWitch from "@/data/mappings/secrets-of-the-silent-witch.json"; +import mappingShadowsHouse from "@/data/mappings/shadows-house.json"; +import mappingShakuganNoShana from "@/data/mappings/shakugan-no-shana.json"; +import mappingShowaGenrokuRakugoShinju from "@/data/mappings/showa-genroku-rakugo-shinju.json"; +import mappingSingYesterdayForMe from "@/data/mappings/sing-yesterday-for-me.json"; +import mappingSleepyPrincessInTheDemonCastle from "@/data/mappings/sleepy-princess-in-the-demon-castle.json"; +import mappingSmokingBehindTheSupermarketWithYou from "@/data/mappings/smoking-behind-the-supermarket-with-you.json"; +import mappingSoICantPlayH from "@/data/mappings/so-i-cant-play-h.json"; +import mappingSomaliAndTheForestSpirit from "@/data/mappings/somali-and-the-forest-spirit.json"; +import mappingSpaceDandy from "@/data/mappings/space-dandy.json"; +import mappingSsssGridman from "@/data/mappings/ssss-gridman.json"; +import mappingSupposeAKidFromTheLastDungeonBooniesMovedToAStarterTown from "@/data/mappings/suppose-a-kid-from-the-last-dungeon-boonies-moved-to-a-starter-town.json"; +import mappingSweetnessAndLightning from "@/data/mappings/sweetness-and-lightning.json"; +import mappingTaktOpDestiny from "@/data/mappings/takt-op-destiny.json"; +import mappingTamakoMarket from "@/data/mappings/tamako-market.json"; +import mappingTheAristocratsOtherworldlyAdventure from "@/data/mappings/the-aristocrats-otherworldly-adventure.json"; +import mappingTheDayIBecameAGod from "@/data/mappings/the-day-i-became-a-god.json"; +import mappingTheDreamingBoyIsARealist from "@/data/mappings/the-dreaming-boy-is-a-realist.json"; +import mappingTheElusiveSamurai from "@/data/mappings/the-elusive-samurai.json"; +import mappingTheGirlILikeForgotHerGlasses from "@/data/mappings/the-girl-i-like-forgot-her-glasses.json"; +import mappingTheGreatJahyWillNotBeDefeated from "@/data/mappings/the-great-jahy-will-not-be-defeated.json"; +import mappingTheIceGuyAndHisCoolFemaleColleague from "@/data/mappings/the-ice-guy-and-his-cool-female-colleague.json"; +import mappingTheKingdomsOfRuin from "@/data/mappings/the-kingdoms-of-ruin.json"; +import mappingTheMagicalRevolutionOfTheReincarnatedPrincessAndTheGeniusYoungLady from "@/data/mappings/the-magical-revolution-of-the-reincarnated-princess-and-the-genius-young-lady.json"; +import mappingTheStrongestSageWithTheWeakestCrest from "@/data/mappings/the-strongest-sage-with-the-weakest-crest.json"; +import mappingTheWaterMagician from "@/data/mappings/the-water-magician.json"; +import mappingThisArtClubHasAProblem from "@/data/mappings/this-art-club-has-a-problem.json"; +import mappingTokyoRavens from "@/data/mappings/tokyo-ravens.json"; +import mappingUndefeatedBahamutChronicle from "@/data/mappings/undefeated-bahamut-chronicle.json"; +import mappingUnwantedUndeadAdventurer from "@/data/mappings/unwanted-undead-adventurer.json"; +import mappingUzumaki from "@/data/mappings/uzumaki.json"; +import mappingVampireKnight from "@/data/mappings/vampire-knight.json"; +import mappingVillainessLevel99 from "@/data/mappings/villainess-level-99.json"; +import mappingVivyFluoriteEyesSong from "@/data/mappings/vivy-fluorite-eyes-song.json"; +import mappingWagnaria from "@/data/mappings/wagnaria.json"; +import mappingWaitingInTheSummer from "@/data/mappings/waiting-in-the-summer.json"; +import mappingWelcomeToTheBallroom from "@/data/mappings/welcome-to-the-ballroom.json"; +import mappingWitchCraftWorks from "@/data/mappings/witch-craft-works.json"; +import mappingWitchWatch from "@/data/mappings/witch-watch.json"; +import mappingWolfGirlAndBlackPrince from "@/data/mappings/wolf-girl-and-black-prince.json"; +import mappingWorldsEndHarem from "@/data/mappings/worlds-end-harem.json"; +import mappingYakuzasGuideToBabysitting from "@/data/mappings/yakuzas-guide-to-babysitting.json"; +import mappingYuruYuri from "@/data/mappings/yuru-yuri.json"; +import mappingYuunaAndTheHauntedHotSprings from "@/data/mappings/yuuna-and-the-haunted-hot-springs.json"; +import mappingZombieLandSaga from "@/data/mappings/zombie-land-saga.json"; +import mappingBeastTamer from "@/data/mappings/beast-tamer.json"; +import mappingSekirei from "@/data/mappings/sekirei.json"; +import mappingArakawaUnderTheBridge from "@/data/mappings/arakawa-under-the-bridge.json"; +import mappingBrynhildrInTheDarkness from "@/data/mappings/brynhildr-in-the-darkness.json"; +import mappingMagicalGirlSite from "@/data/mappings/magical-girl-site.json"; +import mappingTheHeroicLegendOfArslan from "@/data/mappings/the-heroic-legend-of-arslan.json"; // JSON imports lose tuple types — `[1, 100]` becomes `number[]` instead of // `[number, number]`. `normalizeMapping` rebuilds tuples literally. type RawEntry = { @@ -883,6 +1060,183 @@ const ALL_MAPPINGS: SeriesMapping[] = [ schoolBabysitters, pluto, ghostInTheShell, + mapping7thPrince, + mapping7thTimeLoop, + mapping8thSonAreYouKiddingMe, + mappingALullInTheSea, + mappingAPlaceFurtherThanTheUniverse, + mappingAdachiAndShimamura, + mappingAestheticaOfARogueHero, + mappingAfroSamurai, + mappingAfterTheRain, + mappingAkudamaDrive, + mappingAlderaminOnTheSky, + mappingAldnoahZero, + mappingAmIActuallyTheStrongest, + mappingAnArchdemonsDilemma, + mappingAnohana, + mappingAoChanCantStudy, + mappingAoashi, + mappingArmedGirlsMachiavellism, + mappingBeckMongolianChopSquad, + mappingBerserkOfGluttony, + mappingBlackSummoner, + mappingBladeDanceOfTheElementalers, + mappingBloodC, + mappingBna, + mappingBubble, + mappingBunnyDrop, + mappingBurnTheWitch, + mappingByTheGraceOfTheGods, + mappingCampione, + mappingCaroleTuesday, + mappingChaikaTheCoffinPrincess, + mappingCharlotte, + mappingChillinInAnotherWorld, + mappingChobits, + mappingClevatess, + mappingDFrag, + mappingDanganronpaTheAnimation, + mappingDarlingInTheFranxx, + mappingDaysWithMyStepsister, + mappingDeadMountDeathPlay, + mappingDemonKingDaimao, + mappingDemonLordRetry, + mappingDetectiveConan, + mappingDevilsLine, + mappingDoYouLoveYourMomAndHerTwoHitMultiTargetAttacks, + mappingDukeOfDeathAndHisMaid, + mappingDuskMaidenOfAmnesia, + mappingEdensZero, + mappingEngagedToTheUnidentified, + mappingFailureFrame, + mappingFateStrangeFake, + mappingFlyingWitch, + mappingFromOldCountryBumpkinToMasterSwordsman, + mappingFullDive, + mappingFullMetalPanic, + mappingGargantiaOnTheVerdurousPlanet, + mappingGirlsUndPanzer, + mappingGoGoLoserRanger, + mappingGoldenBoy, + mappingGuiltyCrown, + mappingGurrenLagann, + mappingGushingOverMagicalGirls, + mappingHanasakuIroha, + mappingHappySugarLife, + mappingHaremInTheLabyrinthOfAnotherWorld, + mappingHeavensLostProperty, + mappingHensuki, + mappingHentaiPrinceAndTheStonyCat, + mappingHighSchoolProdigiesHaveItEasyEvenInAnotherWorld, + mappingHokkaidoGalsAreSuperAdorable, + mappingHundred, + mappingICantUnderstandWhatMyHusbandIsSaying, + mappingIParryEverything, + mappingIcebladeSorcerer, + mappingImStandingOnAMillionLives, + mappingInuXBokuSecretService, + mappingIsekaiCheatMagician, + mappingJormungand, + mappingK, + mappingKabaneriOfTheIronFortress, + mappingKaijiUltimateSurvivor, + mappingKamikatsu, + mappingKawaiComplex, + mappingKazeNoStigma, + mappingKidsOnTheSlope, + mappingKillLaKill, + mappingKiznaiver, + mappingKotouraSan, + mappingKuboWontLetMeBeInvisible, + mappingLifeLessonsWithUramichiOniisan, + mappingLordMarksmanAndVanadis, + mappingLoveAfterWorldDomination, + mappingLoveTyrant, + mappingLycorisRecoil, + mappingMagicalSempai, + mappingMarriagetoxin, + mappingMayoChiki, + mappingMyGirlfriendIsShobitch, + mappingMyIsekaiLife, + mappingMyMentalChoices, + mappingMyStatusAsAnAssassin, + mappingMysteriousGirlfriendX, + mappingNanbaka, + mappingNoLongerAllowedInAnotherWorld, + mappingNoblesse, + mappingNyaruko, + mappingOddtaxi, + mappingOsamake, + mappingOssanNewbieAdventurer, + mappingOurDatingStory, + mappingOutbreakCompany, + mappingParallelWorldPharmacy, + mappingPenguindrum, + mappingPlasticMemories, + mappingPseudoHarem, + mappingRainbow, + mappingReCreators, + mappingRealGirl, + mappingRecordOfGrancrestWar, + mappingReincarnationOfTheStrongestExorcist, + mappingRestaurantToAnotherWorld, + mappingSabikuiBisco, + mappingSaintsMagicPowerIsOmnipotent, + mappingSasakiAndMiyano, + mappingSayonaraZetsubouSensei, + mappingSecondPrettiestGirlInMyClass, + mappingSecretsOfTheSilentWitch, + mappingShadowsHouse, + mappingShakuganNoShana, + mappingShowaGenrokuRakugoShinju, + mappingSingYesterdayForMe, + mappingSleepyPrincessInTheDemonCastle, + mappingSmokingBehindTheSupermarketWithYou, + mappingSoICantPlayH, + mappingSomaliAndTheForestSpirit, + mappingSpaceDandy, + mappingSsssGridman, + mappingSupposeAKidFromTheLastDungeonBooniesMovedToAStarterTown, + mappingSweetnessAndLightning, + mappingTaktOpDestiny, + mappingTamakoMarket, + mappingTheAristocratsOtherworldlyAdventure, + mappingTheDayIBecameAGod, + mappingTheDreamingBoyIsARealist, + mappingTheElusiveSamurai, + mappingTheGirlILikeForgotHerGlasses, + mappingTheGreatJahyWillNotBeDefeated, + mappingTheIceGuyAndHisCoolFemaleColleague, + mappingTheKingdomsOfRuin, + mappingTheMagicalRevolutionOfTheReincarnatedPrincessAndTheGeniusYoungLady, + mappingTheStrongestSageWithTheWeakestCrest, + mappingTheWaterMagician, + mappingThisArtClubHasAProblem, + mappingTokyoRavens, + mappingUndefeatedBahamutChronicle, + mappingUnwantedUndeadAdventurer, + mappingUzumaki, + mappingVampireKnight, + mappingVillainessLevel99, + mappingVivyFluoriteEyesSong, + mappingWagnaria, + mappingWaitingInTheSummer, + mappingWelcomeToTheBallroom, + mappingWitchCraftWorks, + mappingWitchWatch, + mappingWolfGirlAndBlackPrince, + mappingWorldsEndHarem, + mappingYakuzasGuideToBabysitting, + mappingYuruYuri, + mappingYuunaAndTheHauntedHotSprings, + mappingZombieLandSaga, + mappingBeastTamer, + mappingSekirei, + mappingArakawaUnderTheBridge, + mappingBrynhildrInTheDarkness, + mappingMagicalGirlSite, + mappingTheHeroicLegendOfArslan, ].map(normalizeMapping); export function findMappingByMediaId(mediaId: number): SeriesMapping | null { diff --git a/src/data/mappings/7th-prince.json b/src/data/mappings/7th-prince.json new file mode 100644 index 0000000..c74f84d --- /dev/null +++ b/src/data/mappings/7th-prince.json @@ -0,0 +1,22 @@ +{ + "anilistAnimeId": 156415, + "anilistMangaId": 123264, + "title": "I Was Reincarnated as the 7th Prince so I Can Take My Time Perfecting My Magical Ability", + "sourceNotes": "Cumulative episodes across S1 (12, AniList 156415) + S2 (12, AniList 178090) = 24. Sourced from Kodansha's manga adaptation (AniList 123264) of Kenkyo na Circle's ongoing light novel; the manga is ongoing at ch. 217 as of July 2026 (AniList lists no chapter count). Per community continue-reading guides, S1 adapts manga chapters 1-42 and S2 continues through chapter 85, with the manga resuming at ch. 86 for viewers who finish the anime. Arc names are approximate; the wiki documents an early \"Alchemy Festival\" arc and a \"Stampede\" arc within the S2 range, but full arc-by-arc chapter boundaries are not firmly documented, so episode ranges are grouped by season instead.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 42], + "arc": "Season 1 (Reincarnation and Magical Training)" + }, + { + "episodes": [13, 24], + "chapters": [43, 85], + "arc": "Season 2 (Alchemy Festival and Stampede)" + }, + { + "chapters": [86, 217], + "arc": "Later chapters to date (unadapted)" + } + ] +} diff --git a/src/data/mappings/7th-time-loop.json b/src/data/mappings/7th-time-loop.json new file mode 100644 index 0000000..0adf694 --- /dev/null +++ b/src/data/mappings/7th-time-loop.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 168374, + "anilistMangaId": 127008, + "title": "7th Time Loop: The Villainess Enjoys a Carefree Life Married to Her Worst Enemy!", + "sourceNotes": "Single season, 12 episodes, adapting Amamiya Touya's light novel (Kimi wa Bokuno...). AniList tracks neither the manga (id 127008) nor the light novel (id 129152) with a chapter count since both are still RELEASING; figures here are sourced from Seven Seas volume solicitations and a fan chapter-guide (epicstream.com, 'Where to Start Reading 7th Time Loop After the Anime'). The anime covers the light novel's first two volumes, ending partway into manga chapter 31. Manga ongoing (current ch. 42 as of late June 2026); unadapted continuation included at the tail.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 30], + "arc": "Season 1: Seventh Loop / Marriage to Arnold" + }, + { "chapters": [31, 42], "arc": "Unadapted continuation (ongoing)" } + ] +} diff --git a/src/data/mappings/8th-son-are-you-kidding-me.json b/src/data/mappings/8th-son-are-you-kidding-me.json new file mode 100644 index 0000000..3dcea21 --- /dev/null +++ b/src/data/mappings/8th-son-are-you-kidding-me.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 106319, + "anilistMangaId": 96344, + "title": "The 8th Son? Are You Kidding Me?", + "sourceNotes": "Single 12-episode season. Manga ongoing (current ch. 112); AniList does not track chapter/episode counts for this series so figures are sourced from tracking sites. The anime covers the succession-dispute opening storyline, ending around manga ch. 70 (community consensus continuation point). No widely-documented named-arc split exists for this stretch, so episode/chapter groupings below follow the anime's own episode-title beats and are approximate.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 22], + "arc": "Transmigration, Magic Awakening & Academy" + }, + { + "episodes": [5, 6], + "chapters": [23, 36], + "arc": "Betrothal & the Dragon-Slaying Bullet Tour" + }, + { + "episodes": [7, 9], + "chapters": [37, 54], + "arc": "Tournament, Ancient Ruins & Assassination Plot" + }, + { + "episodes": [10, 12], + "chapters": [55, 70], + "arc": "Undead Purification & Succession Climax" + }, + { + "chapters": [71, 112], + "arc": "Unadapted (manga ongoing)" + } + ] +} diff --git a/src/data/mappings/a-lull-in-the-sea.json b/src/data/mappings/a-lull-in-the-sea.json new file mode 100644 index 0000000..ebc7055 --- /dev/null +++ b/src/data/mappings/a-lull-in-the-sea.json @@ -0,0 +1,18 @@ +{ + "anilistAnimeId": 16067, + "anilistMangaId": 85063, + "title": "A Lull in the Sea", + "sourceNotes": "Single season, 26 episodes. Original P.A. Works anime; the manga (Project-118 / Risō Maeda) is a close tie-in adaptation, complete at 36 chapters across 6 volumes. No official episode-to-chapter sync guide exists, so the chapter split below approximates the anime's own time-skip divide (the Ofunehiki festival at the end of episode 13, followed by the 5-years-later second half) proportionally.", + "mappings": [ + { + "episodes": [1, 13], + "chapters": [1, 18], + "arc": "Before the Ofunehiki (Pre-Time Skip)" + }, + { + "episodes": [14, 26], + "chapters": [19, 36], + "arc": "Five Years Later (Post-Time Skip)" + } + ] +} diff --git a/src/data/mappings/a-place-further-than-the-universe.json b/src/data/mappings/a-place-further-than-the-universe.json new file mode 100644 index 0000000..b26afb2 --- /dev/null +++ b/src/data/mappings/a-place-further-than-the-universe.json @@ -0,0 +1,19 @@ +{ + "anilistAnimeId": 99426, + "anilistMangaId": 101415, + "title": "A Place Further Than the Universe", + "sourceNotes": "Single-cour anime, 13 episodes. Manga is a close tie-in retelling, complete at 17 chapters (15 main chapters plus two .5 bonus chapters, matching AniList's count) across 3 volumes, with each volume covering a clean four-to-five episode block.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 5], + "arc": "Forming the Yukihana Crew" + }, + { + "episodes": [5, 8], + "chapters": [6, 11], + "arc": "Voyage Aboard the Soya" + }, + { "episodes": [9, 13], "chapters": [12, 17], "arc": "Antarctica" } + ] +} diff --git a/src/data/mappings/adachi-and-shimamura.json b/src/data/mappings/adachi-and-shimamura.json new file mode 100644 index 0000000..090e944 --- /dev/null +++ b/src/data/mappings/adachi-and-shimamura.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 109287, + "anilistMangaId": 109302, + "title": "Adachi and Shimamura", + "sourceNotes": "Source is Hitoma Iruma's ongoing light novel (13+ volumes, still RELEASING on AniList). The 2020 Tezuka Productions anime (12 eps) adapts LN vols 1-4 in NON-CHRONOLOGICAL order (ep7 pulls from vol.3, ep8 from vol.2, before eps 9-12 return to vol.4 for the Christmas-date finale). Chapters here map to the current, ongoing Moke Yuzuhara manga (AniList id 109302, Yen Press-licensed), which fan guides use as the canonical continuation point: the anime's story tracks to approximately its chapter 21, after which the manga continues into unadapted LN vol.5+ material (current ch. ~44, ongoing as of late 2025 — APPROXIMATE, no official chapter total published). An earlier, unrelated/discontinued 2016 Mani manga (3 vols, 18 ch, AniList id 98797) is not used here. Chapter ranges within the anime's run are APPROXIMATE given the non-linear adaptation order.", + "mappings": [ + { + "episodes": [1, 6], + "chapters": [1, 11], + "arc": "Meeting on the Gym's Second Floor (LN Vol. 1)" + }, + { + "episodes": [7, 8], + "chapters": [12, 15], + "arc": "Growing Feelings, Out of Order (LN Vols. 2-3)" + }, + { + "episodes": [9, 12], + "chapters": [16, 21], + "arc": "Christmas Date & Confession (LN Vol. 4)" + }, + { + "chapters": [22, 44], + "arc": "Unadapted (LN Vol. 5+, Yuzuhara manga, ongoing)" + } + ] +} diff --git a/src/data/mappings/aesthetica-of-a-rogue-hero.json b/src/data/mappings/aesthetica-of-a-rogue-hero.json new file mode 100644 index 0000000..f4524f9 --- /dev/null +++ b/src/data/mappings/aesthetica-of-a-rogue-hero.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 13161, + "anilistMangaId": 70409, + "title": "Aesthetica of a Rogue Hero", + "sourceNotes": "Single-cour 12-episode TV anime (2012) adapting light novel volumes 1-3. The tie-in manga (Hagure Yuusha no Kichiku Bigaku) is a separate, condensed adaptation of the same light novel material, complete at 18 chapters across 3 volumes. No formally named story arcs; episode titles suggest a rough split between the early Babel/master-servant setup and the later BABEL ranking tournament, used as broad divisions here.", + "mappings": [ + { "episodes": [1, 7], "chapters": [1, 10], "arc": "Return to Babel" }, + { + "episodes": [8, 12], + "chapters": [11, 18], + "arc": "BABEL Ranking Tournament" + } + ] +} diff --git a/src/data/mappings/afro-samurai.json b/src/data/mappings/afro-samurai.json new file mode 100644 index 0000000..ae82049 --- /dev/null +++ b/src/data/mappings/afro-samurai.json @@ -0,0 +1,23 @@ +{ + "anilistAnimeId": 1292, + "anilistMangaId": 39935, + "title": "Afro Samurai", + "sourceNotes": "Anime is 5 TV episodes (2007): episodes 1-4 form the Number Two arc, episode 5 the Number One/Justice arc. Manga complete at 10 chapters (2 volumes) — a 2008 remake of Takashi Okazaki's original self-published doujinshi, split evenly between the two arcs; the creator calls it the closest version to the source doujinshi, though it also folds in some elements from the film sequel.", + "mappings": [ + { "episodes": [1, 4], "chapters": [1, 5], "arc": "Number Two Arc" }, + { + "episodes": [5, 5], + "chapters": [6, 10], + "arc": "Number One Arc (Justice)" + } + ], + "movies": [ + { + "anilistId": 4970, + "title": "Afro Samurai: Resurrection", + "year": 2009, + "afterEpisode": 5, + "note": "Canon sequel film continuing directly after the TV series; anime-original story, not covered by the 10-chapter manga." + } + ] +} diff --git a/src/data/mappings/after-the-rain.json b/src/data/mappings/after-the-rain.json new file mode 100644 index 0000000..4559330 --- /dev/null +++ b/src/data/mappings/after-the-rain.json @@ -0,0 +1,24 @@ +{ + "anilistAnimeId": 98385, + "anilistMangaId": 86639, + "title": "After the Rain", + "sourceNotes": "Single season, 12 episodes. Manga complete at 83 chapters. Episodes 1-8 track the manga closely up through the typhoon (~ch. 25); episodes 9-10 condense the following volumes; episodes 11-12 diverge into an anime-original ending that loosely parallels manga material into the mid-40s while resolving the central relationship differently. Chapters beyond that point were never adapted and exist only in the manga.", + "mappings": [ + { + "episodes": [1, 8], + "chapters": [1, 25], + "arc": "Meeting Through the Typhoon" + }, + { + "episodes": [9, 10], + "chapters": [26, 39], + "arc": "Condensed Later Volumes" + }, + { + "episodes": [11, 12], + "chapters": [40, 44], + "arc": "Anime-Original Ending" + }, + { "chapters": [45, 83], "arc": "Unadapted Continuation (manga only)" } + ] +} diff --git a/src/data/mappings/akudama-drive.json b/src/data/mappings/akudama-drive.json new file mode 100644 index 0000000..ae45d38 --- /dev/null +++ b/src/data/mappings/akudama-drive.json @@ -0,0 +1,29 @@ +{ + "anilistAnimeId": 116566, + "anilistMangaId": 118854, + "title": "Akudama Drive", + "sourceNotes": "Original anime (Too Kyo Games / Studio Pierrot); the 'Comicalize' manga by Rokurou Ogaki is a close tie-in adaptation that began serialization just before the anime aired and finished complete at 63 chapters across 9 volumes. The 12 TV episodes correspond to roughly the first 60 chapters; no official episode-by-episode chapter guide is published, so per-episode boundaries below are proportional estimates. The final 'Shikoku Arc' (ch. 61-63, vol. 9) is new manga-only material set after the anime's finale.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 15], + "arc": "The Swindler & the Cutthroat (the Job begins)" + }, + { + "episodes": [4, 6], + "chapters": [16, 30], + "arc": "Betrayals aboard the Shinkansen" + }, + { + "episodes": [7, 9], + "chapters": [31, 45], + "arc": "The Kansai government's pursuit" + }, + { + "episodes": [10, 12], + "chapters": [46, 60], + "arc": "Execution Site & the Cuffs' finale" + }, + { "chapters": [61, 63], "arc": "Shikoku Arc (manga-only epilogue)" } + ] +} diff --git a/src/data/mappings/alderamin-on-the-sky.json b/src/data/mappings/alderamin-on-the-sky.json new file mode 100644 index 0000000..8154e5a --- /dev/null +++ b/src/data/mappings/alderamin-on-the-sky.json @@ -0,0 +1,28 @@ +{ + "anilistAnimeId": 21410, + "anilistMangaId": 85885, + "title": "Alderamin on the Sky", + "sourceNotes": "13-episode 2016 anime adapts roughly the first 3 of Bokuto Uno's 14 light-novel volumes (eps 1-4 = LN vol.1's academy enrollment, ep5 = interlude/side material, eps 6-9 = LN vol.2's Katjvarna Civil War, eps 10-13 = LN vol.3's climactic Battle of Alderamin Fortress). Chapters here map to Taiki Kawakami's manga adaptation (7 vols, 32 ch, FINISHED 2017), which closely parallels this same span and concludes at the same story point as the anime. Exact per-episode chapter boundaries are not documented in available sources and are proportionally APPROXIMATED. LN vols 4-14 continue the story well past the anime/manga and are unadapted by either.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 10], + "arc": "Enrollment at the Officers' Academy (LN Vol. 1)" + }, + { + "episodes": [5, 5], + "chapters": [10, 11], + "arc": "Interlude" + }, + { + "episodes": [6, 9], + "chapters": [12, 20], + "arc": "The Katjvarna Rebellion / Civil War (LN Vol. 2)" + }, + { + "episodes": [10, 13], + "chapters": [21, 32], + "arc": "The Kioka War & Battle of Alderamin Fortress (LN Vol. 3)" + } + ] +} diff --git a/src/data/mappings/aldnoah-zero.json b/src/data/mappings/aldnoah-zero.json new file mode 100644 index 0000000..a217443 --- /dev/null +++ b/src/data/mappings/aldnoah-zero.json @@ -0,0 +1,23 @@ +{ + "anilistAnimeId": 20632, + "anilistMangaId": 87007, + "title": "ALDNOAH.ZERO", + "sourceNotes": "Cumulative episodes across S1 (12) + S2 (12) = 24. Original anime (Gen Urobuchi/A-1 Pictures/Troyca); manga is a close, roughly 1-chapter-per-episode tie-in released in two separate parts on AniList: \"Aldnoah.Zero Season One\" (anilistMangaId 87007, 12 chapters, art by Pinakes, covers S1 episodes 1-12) and \"Aldnoah.Zero 2nd Season\" (anilistMangaId 87008, 12 chapters, art by Fuyube Mahiro, covers S2 episodes 13-24); this mapping treats the two as one continuous 1-24 chapter range for cumulative navigation.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 12], + "arc": "Season One (Vers Empire Invasion)" + }, + { "episodes": [13, 24], "chapters": [13, 24], "arc": "2nd Season" } + ], + "movies": [ + { + "anilistId": 185714, + "title": "Aldnoah.Zero (Re+)", + "year": 2025, + "afterEpisode": 24, + "note": "Theatrical compilation film recapping all 24 TV episodes, bundled with new bonus content (\"Episode 24.5: Fragments of Rain -The Penultimate Truth-\") continuing the story after the finale." + } + ] +} diff --git a/src/data/mappings/am-i-actually-the-strongest.json b/src/data/mappings/am-i-actually-the-strongest.json new file mode 100644 index 0000000..8190e14 --- /dev/null +++ b/src/data/mappings/am-i-actually-the-strongest.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 154391, + "anilistMangaId": 110769, + "title": "Am I Actually the Strongest?", + "sourceNotes": "Single 12-episode season. Manga ongoing (current ch. 145); AniList does not track chapter counts for this series so figures are sourced from tracking sites. Confirmed boundaries: Volume 1 = ch. 1-6, Volume 5 = ch. 26-32, and the anime ends at ch. 36 (partway into Volume 6). Chapter splits for episodes 1-8 are approximate, extrapolated from those confirmed volume boundaries since per-episode chapter data isn't publicly documented.", + "mappings": [ + { + "episodes": [1, 6], + "chapters": [1, 18], + "arc": "Reincarnation & the Confrontation with Gizelotte" + }, + { + "episodes": [7, 8], + "chapters": [19, 25], + "arc": "Journey to the Royal Capital" + }, + { + "episodes": [9, 11], + "chapters": [26, 32], + "arc": "Magic Academy Enrollment" + }, + { + "episodes": [12, 12], + "chapters": [33, 36], + "arc": "Magic Academy - Opening Rivalries" + }, + { + "chapters": [37, 145], + "arc": "Unadapted (manga ongoing)" + } + ] +} diff --git a/src/data/mappings/an-archdemons-dilemma.json b/src/data/mappings/an-archdemons-dilemma.json new file mode 100644 index 0000000..c826630 --- /dev/null +++ b/src/data/mappings/an-archdemons-dilemma.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 156023, + "anilistMangaId": 101722, + "title": "An Archdemon's Dilemma: How to Love Your Elf Bride", + "sourceNotes": "Source is Hako Itagaki's manga adaptation (AniList 101722) of Fuminori Teshima's light novel; manga ongoing (~ch. 77 as of April 2026, 15 volumes). The 12-episode anime adapts through chapter 24 (four of manga Volume 5's five chapters), with the finale episode running slightly ahead of/original relative to the print pacing. No named story arcs; this is a single continuous romance narrative, so the anime run is grouped as one block with the unadapted tail left as chapters-only.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 24], + "arc": "Anime Run" + }, + { + "chapters": [25, 77], + "arc": "Post-Anime (Manga-Only)" + } + ] +} diff --git a/src/data/mappings/anohana.json b/src/data/mappings/anohana.json new file mode 100644 index 0000000..6ccf991 --- /dev/null +++ b/src/data/mappings/anohana.json @@ -0,0 +1,18 @@ +{ + "anilistAnimeId": 9989, + "anilistMangaId": 65733, + "title": "Anohana: The Flower We Saw That Day", + "sourceNotes": "Single-cour 11-episode series. Manga is a close tie-in adaptation running the same linear story with no distinct named arcs; complete at 13 chapters.", + "mappings": [ + { "episodes": [1, 11], "chapters": [1, 13], "arc": "Super Peace Busters" } + ], + "movies": [ + { + "anilistId": 15039, + "title": "Anohana the Movie: The Flower We Saw That Day", + "year": 2013, + "afterEpisode": 11, + "note": "Epilogue set a year after the TV series; new framing device (the group writing letters to Menma) around flashbacks to the show." + } + ] +} diff --git a/src/data/mappings/ao-chan-cant-study.json b/src/data/mappings/ao-chan-cant-study.json new file mode 100644 index 0000000..c212fd4 --- /dev/null +++ b/src/data/mappings/ao-chan-cant-study.json @@ -0,0 +1,10 @@ +{ + "anilistAnimeId": 105989, + "anilistMangaId": 105990, + "title": "Ao-chan Can't Study!", + "sourceNotes": "Single-cour, 12 episodes (TV_SHORT format). Manga complete at 39 chapters across 8 volumes. The anime adapts roughly chapters 1-20 (skipping a handful of chapters along the way, e.g. ch. 8, 10, 11, 13), leaving ch. 21-39 unadapted. No distinct named story arcs — episodic romantic-comedy chapters. A separate sequel manga ('Adult Arc') covering the characters' university years is not covered by this anime and is out of scope.", + "mappings": [ + { "episodes": [1, 12], "chapters": [1, 20], "arc": "Anime-Adapted Story" }, + { "chapters": [21, 39], "arc": "Unadapted Manga Continuation" } + ] +} diff --git a/src/data/mappings/aoashi.json b/src/data/mappings/aoashi.json new file mode 100644 index 0000000..2631cce --- /dev/null +++ b/src/data/mappings/aoashi.json @@ -0,0 +1,38 @@ +{ + "anilistAnimeId": 134732, + "anilistMangaId": 107279, + "title": "Aoashi", + "sourceNotes": "Season 1 (24 eps, Apr-Sep 2022) adapts manga chapters 1-117. Manga complete at 410 chapters (40 volumes). Aoashi 2nd Season (24 eps) is announced for October 2026 but has not yet aired, so its adaptation range is not yet mapped here; chapters 118-410 remain manga-only for now. Arc boundaries from the Ao Ashi fandom wiki's Story Arcs page.", + "mappings": [ + { "episodes": [1, 5], "chapters": [1, 22], "arc": "Selection Exams Arc" }, + { + "episodes": [6, 10], + "chapters": [23, 46], + "arc": "Esperion Beginnings Arc" + }, + { + "episodes": [11, 13], + "chapters": [47, 61], + "arc": "Tokyo Metropolis League Kicks Off! Arc" + }, + { + "episodes": [14, 17], + "chapters": [62, 75], + "arc": "Fullback Training Arc" + }, + { + "episodes": [17, 18], + "chapters": [76, 83], + "arc": "Esperion B vs. Tama Sports Arc" + }, + { + "episodes": [19, 24], + "chapters": [84, 117], + "arc": "Esperion B vs. Musashino Youth Arc" + }, + { + "chapters": [118, 410], + "arc": "A-Team / Premier League East and beyond (manga-only, not yet adapted)" + } + ] +} diff --git a/src/data/mappings/arakawa-under-the-bridge.json b/src/data/mappings/arakawa-under-the-bridge.json new file mode 100644 index 0000000..66abd5b --- /dev/null +++ b/src/data/mappings/arakawa-under-the-bridge.json @@ -0,0 +1,19 @@ +{ + "anilistAnimeId": 7647, + "anilistMangaId": 44154, + "title": "Arakawa Under the Bridge", + "sourceNotes": "Cumulative episodes across S1 (13) + S2 'x Bridge' (13) = 26, both by Shaft (2010). Manga complete at 410 chapters / 15 volumes; it is a gag/slice-of-life series told in short, loosely connected chapters. The anime does not adapt straight through — it skips around non-sequentially, picking the funniest/most plot-relevant bits — but by the end of S2 it has worked through roughly the first 267 chapters per fan chapter-guides, so the S1/S2 split below is an approximate midpoint rather than an official boundary. Chapters 268-410 are unadapted tail. A 2012 live-action film exists but is excluded (non-animated, not part of this anime/manga tracker).", + "mappings": [ + { + "episodes": [1, 13], + "chapters": [1, 135], + "arc": "Life Under the Bridge (Season 1)" + }, + { + "episodes": [14, 26], + "chapters": [136, 267], + "arc": "Life Under the Bridge (Season 2 / x Bridge)" + }, + { "chapters": [268, 410], "arc": "Unadapted continuation" } + ] +} diff --git a/src/data/mappings/armed-girls-machiavellism.json b/src/data/mappings/armed-girls-machiavellism.json new file mode 100644 index 0000000..cc9699b --- /dev/null +++ b/src/data/mappings/armed-girls-machiavellism.json @@ -0,0 +1,34 @@ +{ + "anilistAnimeId": 21851, + "anilistMangaId": 85892, + "title": "Armed Girl's Machiavellism", + "sourceNotes": "12-episode single-cour anime (2017) adapting roughly the first six of the manga's 13 tankobon volumes, up to about chapter 30. Manga complete at 90 chapters. The anime follows the manga's 'Five Swords' structure, spending two-to-three episodes per heroine (Rin Onigawara, Mary Kikakujo, Warabi Hanasaka, Satori Tamaba, Tsukuyo Inaba); exact chapter boundaries per arc are not individually published, so the ~30-chapter adapted range is divided evenly across the five arcs as an approximation.", + "mappings": [ + { + "episodes": [1, 2], + "chapters": [1, 6], + "arc": "Rin Onigawara, the Magnificent Blade" + }, + { + "episodes": [3, 4], + "chapters": [7, 12], + "arc": "Mary Kikakujo, the Fair Sword" + }, + { + "episodes": [5, 6], + "chapters": [13, 18], + "arc": "Warabi Hanasaka, the Love-Crazed Blade" + }, + { + "episodes": [7, 9], + "chapters": [19, 24], + "arc": "Satori Tamaba, the Dubious Sword" + }, + { + "episodes": [10, 12], + "chapters": [25, 30], + "arc": "Tsukuyo Inaba, the Terrifying Blade" + }, + { "chapters": [31, 90], "arc": "Unadapted Arcs" } + ] +} diff --git a/src/data/mappings/beast-tamer.json b/src/data/mappings/beast-tamer.json new file mode 100644 index 0000000..5e2d59f --- /dev/null +++ b/src/data/mappings/beast-tamer.json @@ -0,0 +1,10 @@ +{ + "anilistAnimeId": 150695, + "anilistMangaId": 108115, + "title": "Beast Tamer", + "sourceNotes": "Single-cour, 13 episodes, adapted primarily from the light novel (covering LN Vols. 1-2 plus the first two chapters of Vol. 3); the tie-in manga runs at a different pace, with manga ch. 69 marking the recommended restart point after the anime. Manga ongoing (current ch. 102, 11 volumes as of March 2026). No distinct named arcs — broad coverage entries used.", + "mappings": [ + { "episodes": [1, 13], "chapters": [1, 68], "arc": "Anime Adaptation" }, + { "chapters": [69, 102], "arc": "Post-Anime Story (Unadapted)" } + ] +} diff --git a/src/data/mappings/beck-mongolian-chop-squad.json b/src/data/mappings/beck-mongolian-chop-squad.json new file mode 100644 index 0000000..afceed4 --- /dev/null +++ b/src/data/mappings/beck-mongolian-chop-squad.json @@ -0,0 +1,15 @@ +{ + "anilistAnimeId": 57, + "anilistMangaId": 30145, + "title": "Beck: Mongolian Chop Squad", + "sourceNotes": "26 episodes. Manga complete at 103 chapters across 34 volumes. The anime is a close adaptation through episode 24, then compresses and diverges more freely from the start of the American tour arc (manga ch. 23) through its ch. 33 finale; chapters 34-103 (later albums, tours, and international record deals) are unadapted manga-only continuation.", + "mappings": [ + { + "episodes": [1, 24], + "chapters": [1, 22], + "arc": "Formation and Rise in Japan" + }, + { "episodes": [25, 26], "chapters": [23, 33], "arc": "American Tour" }, + { "chapters": [34, 103], "arc": "Unadapted manga continuation" } + ] +} diff --git a/src/data/mappings/berserk-of-gluttony.json b/src/data/mappings/berserk-of-gluttony.json new file mode 100644 index 0000000..180167e --- /dev/null +++ b/src/data/mappings/berserk-of-gluttony.json @@ -0,0 +1,34 @@ +{ + "anilistAnimeId": 156039, + "anilistMangaId": 101625, + "title": "Berserk of Gluttony", + "sourceNotes": "Single 12-episode season, adapted at a clean pace of 2 episodes per manga volume (5 chapters each). Adapts manga (THE COMIC) volumes 1-6, chapters 1-30; viewers are pointed to pick the manga back up at ch. 31. Manga ongoing (current ch. 79 as of July 2026, ~15 volumes released). Note: AniList's direct 'ADAPTATION' edge from the anime points to Isshiki Ichika's original light novel (id 100687), with the manga marked as an 'ALTERNATIVE' adaptation of that same novel — the manga is used here as the source of truth for chapters/arcs since it is the visual medium this repo's chapter-based navigation is built around. A second season has been announced but not yet released.", + "mappings": [ + { "episodes": [1, 2], "chapters": [1, 5], "arc": "Awakening of Gluttony" }, + { + "episodes": [3, 4], + "chapters": [6, 10], + "arc": "Hart Estate & the Crowned Beast" + }, + { + "episodes": [5, 6], + "chapters": [11, 15], + "arc": "Journey to Galia / The Girl of Wrath" + }, + { + "episodes": [7, 8], + "chapters": [16, 20], + "arc": "The Twilight Swordsman / Village of Lost Memories" + }, + { + "episodes": [9, 10], + "chapters": [21, 25], + "arc": "The Guardian of Lust" + }, + { + "episodes": [11, 12], + "chapters": [26, 30], + "arc": "Domain of E / Death March" + } + ] +} diff --git a/src/data/mappings/black-summoner.json b/src/data/mappings/black-summoner.json new file mode 100644 index 0000000..77c2545 --- /dev/null +++ b/src/data/mappings/black-summoner.json @@ -0,0 +1,19 @@ +{ + "anilistAnimeId": 145260, + "anilistMangaId": 101746, + "title": "Black Summoner", + "sourceNotes": "Single 12-episode season (2022). Manga ongoing (current ch. 194 as of July 2026); both anime and manga adapt the same Doufu Mayoi light novel. The anime adapts manga chapters 1-36 (all of LN Volume 1-2 material). Arc split follows the anime's own turn from the early Black Wind bandits material into the S-Rank Promotion Exam starting episode 7; chapter split within that range is approximate.", + "mappings": [ + { + "episodes": [1, 6], + "chapters": [1, 18], + "arc": "Reincarnation & the Black Wind Bandits" + }, + { + "episodes": [7, 12], + "chapters": [19, 36], + "arc": "S-Rank Promotion Exam" + }, + { "chapters": [37, 194], "arc": "Unadapted Manga (Post-Anime, Ongoing)" } + ] +} diff --git a/src/data/mappings/blade-dance-of-the-elementalers.json b/src/data/mappings/blade-dance-of-the-elementalers.json new file mode 100644 index 0000000..a2e8027 --- /dev/null +++ b/src/data/mappings/blade-dance-of-the-elementalers.json @@ -0,0 +1,13 @@ +{ + "anilistAnimeId": 20663, + "anilistMangaId": 73509, + "title": "Blade Dance of the Elementalers", + "sourceNotes": "Single season, 12 episodes. Adapted from Yu Shimizu's 20-volume light novel, but both the anime and the manga (Hyoju Issei, complete at 43 chapters / 6 volumes) cover only the Areishia Spirit Academy Arc (light novel Vol. 1-3), so the two are a clean 1:1 match with no unadapted tail.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 43], + "arc": "Areishia Spirit Academy Arc" + } + ] +} diff --git a/src/data/mappings/blood-c.json b/src/data/mappings/blood-c.json new file mode 100644 index 0000000..5e1595f --- /dev/null +++ b/src/data/mappings/blood-c.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 10490, + "anilistMangaId": 56182, + "title": "Blood-C", + "sourceNotes": "Single 12-episode TV season (2011, Production I.G / CLAMP). Paired with Ranmaru Kotone's tie-in manga (4 volumes, complete at 17 chapters), which was written alongside the anime and covers both the TV series and the follow-up film Blood-C: The Last Dark in its final volume. Original anime; manga is a close tie-in adaptation, not the source material. Chapter split between the TV story and the film is approximate since exact per-chapter tables were not available.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 13], + "arc": "Elder Bairn Hunt in Sonozaki Town (TV series)" + }, + { + "chapters": [14, 17], + "arc": "The Last Dark (film-only continuation, see movies)" + } + ], + "movies": [ + { + "anilistId": 10681, + "title": "BLOOD-C: The Last Dark", + "year": 2012, + "chapters": [14, 17], + "afterEpisode": 12, + "note": "Direct canon sequel film concluding the Blood-C story; adapted in the manga's fourth volume." + } + ] +} diff --git a/src/data/mappings/bna.json b/src/data/mappings/bna.json new file mode 100644 index 0000000..1929961 --- /dev/null +++ b/src/data/mappings/bna.json @@ -0,0 +1,13 @@ +{ + "anilistAnimeId": 110354, + "anilistMangaId": 119126, + "title": "BNA", + "sourceNotes": "Single season, 12 episodes. Original Trigger anime (directed by Yoh Yoshinari); the manga by Asano is a close, episodic tie-in adaptation running roughly one chapter per anime episode. It is incomplete relative to the TV series, ending at its sole collected volume (10 chapters, concluding September 2022) without covering the anime's final two episodes.", + "mappings": [ + { + "episodes": [1, 10], + "chapters": [1, 10], + "arc": "Anima City (episodic, ~1 chapter per episode)" + } + ] +} diff --git a/src/data/mappings/brynhildr-in-the-darkness.json b/src/data/mappings/brynhildr-in-the-darkness.json new file mode 100644 index 0000000..2adaada --- /dev/null +++ b/src/data/mappings/brynhildr-in-the-darkness.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 20534, + "anilistMangaId": 64377, + "title": "Brynhildr in the Darkness", + "sourceNotes": "Single-cour 13-episode TV anime (ARMS, 2014); a separate bonus OVA (AniList id 20866) is excluded as side content rather than counted as a 14th episode, matching this repo's OVA convention. Manga complete at 181 chapters / 18 volumes. The anime heavily compresses and reorders manga material to reach a stopping point around chapter 100 by its finale; no official or fan-sourced episode-by-episode breakdown exists, so the single TV-run entry below is an approximate aggregate rather than a scene-accurate boundary. Chapters 101-181 continue the manga-only story past where the anime ends.", + "mappings": [ + { + "episodes": [1, 13], + "chapters": [1, 100], + "arc": "TV Anime (heavily condensed adaptation)" + }, + { "chapters": [101, 181], "arc": "Unadapted continuation" } + ] +} diff --git a/src/data/mappings/bubble.json b/src/data/mappings/bubble.json new file mode 100644 index 0000000..6202eee --- /dev/null +++ b/src/data/mappings/bubble.json @@ -0,0 +1,7 @@ +{ + "anilistAnimeId": 142455, + "anilistMangaId": 146480, + "title": "Bubble", + "sourceNotes": "Original Netflix theatrical anime film (single ONA entry on AniList, 2022). The tie-in manga retells the same story as a close adaptation, complete at 8 chapters.", + "mappings": [{ "episodes": [1, 1], "chapters": [1, 8], "arc": "Full Story" }] +} diff --git a/src/data/mappings/bunny-drop.json b/src/data/mappings/bunny-drop.json new file mode 100644 index 0000000..ceae451 --- /dev/null +++ b/src/data/mappings/bunny-drop.json @@ -0,0 +1,10 @@ +{ + "anilistAnimeId": 10162, + "anilistMangaId": 33468, + "title": "Bunny Drop", + "sourceNotes": "Single season, 11 episodes. Manga complete at 62 chapters, split into two halves by a 10-year time skip at Chapter 25. The anime adapts only Part 1 (Daikichi raising young Rin), ending at Chapter 24; Part 2 (teenage Rin, chapters 25-62) is unadapted and manga-only.", + "mappings": [ + { "episodes": [1, 11], "chapters": [1, 24], "arc": "Raising Rin (Part 1)" }, + { "chapters": [25, 62], "arc": "Ten-Year Time Skip (Part 2)" } + ] +} diff --git a/src/data/mappings/burn-the-witch.json b/src/data/mappings/burn-the-witch.json new file mode 100644 index 0000000..9ce6a9f --- /dev/null +++ b/src/data/mappings/burn-the-witch.json @@ -0,0 +1,23 @@ +{ + "anilistAnimeId": 116673, + "anilistMangaId": 116827, + "title": "BURN THE WITCH", + "sourceNotes": "3-episode ONA (streamed format of the Oct. 2020 theatrical film) retelling Tite Kubo's Burn the Witch. Manga complete at 5 chapters (the redrawn 'Chapter 0.8' one-shot plus Chapters 1-4, collected in Volume 1); a second manga season has been announced but is not yet reflected in AniList's chapter count. Ep 1 adapts Chapter 0.8; Ep 2 adapts Chapters 1-2; Ep 3 adapts Chapters 3-4.", + "mappings": [ + { + "episodes": [1, 1], + "chapters": [1, 1], + "arc": "Chapter 0.8: Don't Judge a Book by Its Cover" + }, + { + "episodes": [2, 2], + "chapters": [2, 3], + "arc": "Witches Blow a New Pipe / Ghillie Suit" + }, + { + "episodes": [3, 3], + "chapters": [4, 5], + "arc": "She Makes Me Special / If a Lion Could Speak" + } + ] +} diff --git a/src/data/mappings/by-the-grace-of-the-gods.json b/src/data/mappings/by-the-grace-of-the-gods.json new file mode 100644 index 0000000..024d31e --- /dev/null +++ b/src/data/mappings/by-the-grace-of-the-gods.json @@ -0,0 +1,18 @@ +{ + "anilistAnimeId": 115740, + "anilistMangaId": 101793, + "title": "By the Grace of the Gods", + "sourceNotes": "Cumulative episodes across S1 (12) + S2 (12). Manga ongoing (current ch. 71 as of mid-2026, art by Ranran, serialized on Manga UP! since 2017); AniList does not track a live chapter count for this series, so the figures here are sourced from publisher chapter listings. Season 1 corresponds to roughly the manga's first 40 chapters (the manga only caught up to the Season 1 anime content around ch. 40); Season 2's precise endpoint within the manga is less well documented online and is approximated here as the current published chapter.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 40], + "arc": "Arrival & Laundry Business (Season 1)" + }, + { + "episodes": [13, 24], + "chapters": [41, 71], + "arc": "Expanding Business (Season 2)" + } + ] +} diff --git a/src/data/mappings/campione.json b/src/data/mappings/campione.json new file mode 100644 index 0000000..95600a3 --- /dev/null +++ b/src/data/mappings/campione.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 12293, + "anilistMangaId": 62735, + "title": "Campione!", + "sourceNotes": "Source is Jou Taketsuki's light novel (AniList 62735), complete at 168 chapters across 21 volumes plus an EX volume; a separate, shorter 3-volume/11-chapter manga adaptation (AniList 70363) also exists but tracks the anime far less closely and is not used here. The 13-episode anime adapts Volumes 1-5 (approx. ch. 1-40, estimated from AniList's continuous chapter count at ~8 chapters/volume) in a non-linear order: episode 1 is largely reconstructed from Volume 3's prologue material before episodes 2-4 cover Volume 1 and episodes 5-7 cover Volume 2, and episode 13 closes with an anime-original confrontation rather than following Volume 5's ending beat-for-beat. No named story arcs beyond the volume subtitles, so the anime run is grouped as one approximate block; the unadapted tail (Volumes 6-21) is left chapters-only.", + "mappings": [ + { + "episodes": [1, 13], + "chapters": [1, 40], + "arc": "TV Anime (Volumes 1-5)" + }, + { + "chapters": [41, 168], + "arc": "Post-Anime (Light Novel-Only)" + } + ] +} diff --git a/src/data/mappings/carole-tuesday.json b/src/data/mappings/carole-tuesday.json new file mode 100644 index 0000000..7f65937 --- /dev/null +++ b/src/data/mappings/carole-tuesday.json @@ -0,0 +1,13 @@ +{ + "anilistAnimeId": 101281, + "anilistMangaId": 111526, + "title": "Carole & Tuesday", + "sourceNotes": "Original 24-episode anime (2019, dir. Shinichirō Watanabe); the Morito Yamataka manga is a close tie-in adaptation of the anime (not the other way around) and only retells roughly the first half of the story, stopping after about anime episode 12. Manga complete at 16 chapters (ended July 2020); no manga content exists for the anime's back half (eps 13-24).", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 16], + "arc": "Alba City to Mars Brightest (Part 1)" + } + ] +} diff --git a/src/data/mappings/chaika-the-coffin-princess.json b/src/data/mappings/chaika-the-coffin-princess.json new file mode 100644 index 0000000..8c0b179 --- /dev/null +++ b/src/data/mappings/chaika-the-coffin-princess.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 20462, + "anilistMangaId": 62097, + "title": "Chaika -The Coffin Princess-", + "sourceNotes": "Cumulative episodes across Season 1 (12) + Avenging Battle (10) = 22. Manga (Shinta Sakayama, Monthly Shonen Ace, Oct. 2011-Dec. 2014) complete at 33 chapters across 5 volumes, finishing the same month as the TV anime's second season; treated here as the primary chapter source since it tracks the anime's two-cour pacing closely, rather than Ichiro Sakaki's original 12-volume/60-chapter light novel (AniList id 62831), which the anime does not fully adapt. Chapter boundaries between the two seasons are approximate, split proportionally to the manga's total length; no theatrical films exist for this franchise.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 18], + "arc": "Season 1: Gathering the Coffin's Contents" + }, + { "episodes": [13, 22], "chapters": [19, 33], "arc": "Avenging Battle" } + ] +} diff --git a/src/data/mappings/charlotte.json b/src/data/mappings/charlotte.json new file mode 100644 index 0000000..5520474 --- /dev/null +++ b/src/data/mappings/charlotte.json @@ -0,0 +1,23 @@ +{ + "anilistAnimeId": 20997, + "anilistMangaId": 105941, + "title": "Charlotte", + "sourceNotes": "Single-cour, 13-episode anime with a complete 45-chapter, 6-volume manga tie-in written by Jun Maeda (the anime's original creator), which follows the TV story faithfully. Charlotte tells one continuous story rather than discrete named arcs, so boundaries below are grouped by story beat and scaled proportionally (~3.5 chapters/episode) off the confirmed Volume 1 = Ch. 1-8 split; treat chapter numbers as approximate.", + "mappings": [ + { + "episodes": [1, 7], + "chapters": [1, 24], + "arc": "Hoshinoumi Student Council / Ayumi's Tragedy" + }, + { + "episodes": [8, 10], + "chapters": [25, 33], + "arc": "Sala Shane & the Stolen Ability" + }, + { + "episodes": [11, 13], + "chapters": [34, 45], + "arc": "Twilight Frontier / World Tour Finale" + } + ] +} diff --git a/src/data/mappings/chillin-in-another-world.json b/src/data/mappings/chillin-in-another-world.json new file mode 100644 index 0000000..dcfab8f --- /dev/null +++ b/src/data/mappings/chillin-in-another-world.json @@ -0,0 +1,10 @@ +{ + "anilistAnimeId": 170130, + "anilistMangaId": 107120, + "title": "Chillin' in Another World with Level 2 Super Cheat Powers", + "sourceNotes": "Single 12-episode season adapts manga chapters 1-26. Manga ongoing (current ch. 73); unadapted continuation included at the tail. Laid-back slice-of-life isekai with no distinct named story arcs.", + "mappings": [ + { "episodes": [1, 12], "chapters": [1, 26], "arc": "Anime Adaptation" }, + { "chapters": [27, 73], "arc": "Manga-Only Continuation" } + ] +} diff --git a/src/data/mappings/chobits.json b/src/data/mappings/chobits.json new file mode 100644 index 0000000..66703be --- /dev/null +++ b/src/data/mappings/chobits.json @@ -0,0 +1,15 @@ +{ + "anilistAnimeId": 59, + "anilistMangaId": 30107, + "title": "Chobits", + "sourceNotes": "Single-cour 26-episode TV anime (2002), a full faithful adaptation of the complete manga (88 chapters across 8 volumes). The manga has no formally named story arcs; broad divisions below are anchored to episodes 9 and 18, which Wikipedia notes are clip/recap episodes marking natural breaks in the story. The anime softens some of the manga's more philosophical tone and adds minor original material without altering the plot.", + "mappings": [ + { "episodes": [1, 9], "chapters": [1, 30], "arc": "Chi's Awakening" }, + { + "episodes": [10, 18], + "chapters": [31, 60], + "arc": "The Secret of Persocoms" + }, + { "episodes": [19, 26], "chapters": [61, 88], "arc": "The Truth About Chi" } + ] +} diff --git a/src/data/mappings/clevatess.json b/src/data/mappings/clevatess.json new file mode 100644 index 0000000..a078527 --- /dev/null +++ b/src/data/mappings/clevatess.json @@ -0,0 +1,22 @@ +{ + "anilistAnimeId": 178869, + "anilistMangaId": 122693, + "title": "Clevatess", + "sourceNotes": "Cumulative episodes across S1 (12) + S2 (13) = 25 total; anilistAnimeId is S1's id per convention. S1 adapts manga ch. 1-24 (resume post-anime at ch. 25); S2 began airing July 2026 adapting the Solsein Magic Academy arc onward, but it's too early in its run for confirmed per-episode chapter boundaries, so only S1 is mapped precisely for now. Manga ongoing (Yuji Iwahara, LINE Manga since Aug 2020), current ch. ~52 across 13 volumes as of mid-2026; AniList lists chapters as null so this figure is approximate. Arc names sourced from the Clevatess Fandom wiki.", + "mappings": [ + { + "episodes": [1, 1], + "chapters": [1, 3], + "arc": "Clevatess' Departure Arc" + }, + { + "episodes": [2, 12], + "chapters": [4, 24], + "arc": "Hiden Furnace War / Black Dragon & Black Tower / Legend of the Hero" + }, + { + "chapters": [25, 52], + "arc": "Solsein Magic Academy Arc (S2, ongoing) / unadapted" + } + ] +} diff --git a/src/data/mappings/d-frag.json b/src/data/mappings/d-frag.json new file mode 100644 index 0000000..fdd8697 --- /dev/null +++ b/src/data/mappings/d-frag.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 20031, + "anilistMangaId": 44721, + "title": "D-Frag!", + "sourceNotes": "Single-season, 12-episode TV anime (Brain's Base, 2014) adapts manga ch. 1-36 (~vol. 1-4), covering the Game Creation Club (Provisional)'s formation through its showdown with the ex-Student Council. Manga ongoing (current ch. ~176). Episodic gag-comedy source with no formally named story arcs beyond this stretch.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 36], + "arc": "Game Creation Club (Provisional) Founding" + }, + { + "chapters": [37, 176], + "arc": "Unadapted (manga continues past the anime)" + } + ] +} diff --git a/src/data/mappings/danganronpa-the-animation.json b/src/data/mappings/danganronpa-the-animation.json new file mode 100644 index 0000000..6ff29d5 --- /dev/null +++ b/src/data/mappings/danganronpa-the-animation.json @@ -0,0 +1,19 @@ +{ + "anilistAnimeId": 16592, + "anilistMangaId": 89313, + "title": "Danganronpa: The Animation", + "sourceNotes": "13-episode anime (Jul-Sep 2013). Manga complete at 17 chapters across 4 volumes (Shonen Ace, May 2013-Sep 2014), a close retelling of the same story. Arc boundaries follow the anime's own episode-title structure (Prologue / \"(Not) Normal Arc\" / Finale); precise chapter breakpoints within the middle block are approximate since no dedicated fan chapter guide was found.", + "mappings": [ + { + "episodes": [1, 1], + "chapters": [1, 1], + "arc": "Prologue (Welcome to Despair High School)" + }, + { "episodes": [2, 11], "chapters": [2, 14], "arc": "(Not) Normal Arc" }, + { + "episodes": [12, 13], + "chapters": [15, 17], + "arc": "Goodbye, Despair High School (Finale)" + } + ] +} diff --git a/src/data/mappings/darling-in-the-franxx.json b/src/data/mappings/darling-in-the-franxx.json new file mode 100644 index 0000000..7928e6f --- /dev/null +++ b/src/data/mappings/darling-in-the-franxx.json @@ -0,0 +1,23 @@ +{ + "anilistAnimeId": 99423, + "anilistMangaId": 100937, + "title": "DARLING in the FRANXX", + "sourceNotes": "Single-cour, 24-episode anime with a complete 60-chapter, 8-volume manga tie-in by Kentaro Yabuki. The manga parallels the anime's overall plot through roughly its midpoint (volume 5, ch. 36) despite scattered scene-level differences (e.g. the anime's Boys vs. Girls conflict in Ep. 8 never happens in the manga). From volume 6 (ch. 37) on, Yabuki rewrote the final act into an alternate, happier ending that skips the anime's back-half space-battle arcs entirely, so episode alignment for the tail is approximate and the two versions diverge in substance, not just detail.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 24], + "arc": "Plantation 13 / Squad 13 Formation" + }, + { + "episodes": [13, 15], + "chapters": [25, 36], + "arc": "The Nines / Plantation 26" + }, + { + "episodes": [16, 24], + "chapters": [37, 60], + "arc": "Manga-Original Final Act (diverges from the anime's ending)" + } + ] +} diff --git a/src/data/mappings/days-with-my-stepsister.json b/src/data/mappings/days-with-my-stepsister.json new file mode 100644 index 0000000..770edd9 --- /dev/null +++ b/src/data/mappings/days-with-my-stepsister.json @@ -0,0 +1,21 @@ +{ + "anilistAnimeId": 152681, + "anilistMangaId": 130837, + "title": "Days with My Stepsister", + "sourceNotes": "Single-cour 12-episode TV anime (2024). Source material is Mikawa Ghost's light novel; the official manga adaptation (AniList id 130837) tracks the story chapter-by-chapter and has since caught up past the anime's coverage, so it is used here for finer-grained chapter mapping instead of LN volumes. The anime adapts manga chapters 1-23 (roughly LN vols. 1-4). Manga ongoing (current ch. ~36 as of mid-2026).", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 7], + "arc": "Meeting as Stepsiblings (Vol. 1)" + }, + { "episodes": [4, 6], "chapters": [8, 11], "arc": "Settling In (Vol. 2)" }, + { + "episodes": [7, 9], + "chapters": [12, 17], + "arc": "Growing Closer (Vol. 2-3)" + }, + { "episodes": [10, 12], "chapters": [18, 23], "arc": "Vol. 4" }, + { "chapters": [24, 36], "arc": "Unadapted (manga ahead of anime)" } + ] +} diff --git a/src/data/mappings/dead-mount-death-play.json b/src/data/mappings/dead-mount-death-play.json new file mode 100644 index 0000000..605933e --- /dev/null +++ b/src/data/mappings/dead-mount-death-play.json @@ -0,0 +1,50 @@ +{ + "anilistAnimeId": 157198, + "anilistMangaId": 100868, + "title": "Dead Mount Death Play", + "sourceNotes": "Cumulative episodes across Part 1 (12) + Part 2 (12) = 24 total. Manga ongoing (current ch. 152 across 17+ volumes). The anime adapts manga chapters 1-81 (through the start of Vol. 10); viewers are pointed to pick the manga back up at ch. 82. Episode-to-chapter ranges are sourced directly from the fandom wiki's per-episode 'Adapted From' chapter listings; arc names are drawn from the manga's own in-story volume 'Episode' titles (e.g. Vol. 1 = 'Episode 1: The Calamity, Alive and Well'). A couple of episodes straddle two volumes' worth of material — the shared boundary chapter is credited to the earlier episode/arc for a clean split.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 8], + "arc": "The Calamity, Alive and Well" + }, + { + "episodes": [5, 6], + "chapters": [9, 17], + "arc": "The Energy of the Abandoned" + }, + { + "episodes": [7, 9], + "chapters": [18, 25], + "arc": "The Evil Bones of the Frontier" + }, + { "episodes": [10, 12], "chapters": [26, 34], "arc": "The Storage Attack" }, + { + "episodes": [13, 15], + "chapters": [35, 45], + "arc": "The Way of the Jesting Dragons" + }, + { + "episodes": [16, 17], + "chapters": [46, 52], + "arc": "The Sudden Turning of the Celestial Sphere" + }, + { + "episodes": [18, 20], + "chapters": [53, 64], + "arc": "Order of a Parallel World" + }, + { + "episodes": [21, 22], + "chapters": [65, 72], + "arc": "Barrier of Coursing Blood" + }, + { + "episodes": [23, 24], + "chapters": [73, 81], + "arc": "The Beautiful Woman's Pilgrimage / The Saint's Aid (partial)" + }, + { "chapters": [82, 152], "arc": "Manga-only continuation (unadapted arcs)" } + ] +} diff --git a/src/data/mappings/demon-king-daimao.json b/src/data/mappings/demon-king-daimao.json new file mode 100644 index 0000000..a6e8fbd --- /dev/null +++ b/src/data/mappings/demon-king-daimao.json @@ -0,0 +1,18 @@ +{ + "anilistAnimeId": 7088, + "anilistMangaId": 44923, + "title": "Demon King Daimao", + "sourceNotes": "Single-cour 12-episode TV anime (Artland, 2010). The story originates in a 13-volume light novel (AniList 48926), but the anime tracks most closely with the separate manga adaptation illustrated for Champion Red (AniList 44923), which ran Sept. 2008-Dec. 2013 and is complete at 5 volumes / 50 chapters, covering the same early-story ground as the anime's 12 episodes (roughly the first 5 of the light novel's 13 volumes). No distinct named story arcs are documented for this title; the anime is a straightforward chronological adaptation with no filler. The light novel continues for 8 more volumes beyond where the anime/manga end, but that content was never adapted into this manga.", + "mappings": [ + { + "episodes": [1, 6], + "chapters": [1, 25], + "arc": "Enrollment at Constant Magical Academy" + }, + { + "episodes": [7, 12], + "chapters": [26, 50], + "arc": "The Demon King's Trials" + } + ] +} diff --git a/src/data/mappings/demon-lord-retry.json b/src/data/mappings/demon-lord-retry.json new file mode 100644 index 0000000..7882a7a --- /dev/null +++ b/src/data/mappings/demon-lord-retry.json @@ -0,0 +1,28 @@ +{ + "anilistAnimeId": 104252, + "anilistMangaId": 104689, + "title": "Demon Lord, Retry!", + "sourceNotes": "12-episode 2019 adaptation of Kurone Kanzaki's light novel; the chapter source of truth is Amaru Minotake's manga (5 vols, 27 ch, FINISHED), which the anime fully adapts across its run. Chapter anchors come from community sync notes (ep1=ch1, ep2=ch2-3, ep3=ch4-5, ep8=ch11-12, ep9=ch12-14); remaining episode boundaries are extrapolated and APPROXIMATE. The 2024 sequel series 'Demon Lord, Retry! R' (AniList anime id 168500) adapts the separate 'R' manga continuity and is out of scope for this mapping.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 5], + "arc": "The Demon Lord's Descent & Founding Rabbi Village (Vol. 1)" + }, + { + "episodes": [4, 7], + "chapters": [6, 11], + "arc": "The Hot Spring Resort & the Satanist Cult's Attack (Vol. 2)" + }, + { + "episodes": [8, 9], + "chapters": [12, 14], + "arc": "The Bastille Dungeon Expedition (Vol. 3)" + }, + { + "episodes": [10, 12], + "chapters": [15, 27], + "arc": "The Hellgondo Front & Series Finale (Vols. 4-5)" + } + ] +} diff --git a/src/data/mappings/detective-conan.json b/src/data/mappings/detective-conan.json new file mode 100644 index 0000000..65bc890 --- /dev/null +++ b/src/data/mappings/detective-conan.json @@ -0,0 +1,240 @@ +{ + "anilistAnimeId": 235, + "anilistMangaId": 31061, + "title": "Detective Conan", + "sourceNotes": "Long-running case-of-the-week mystery series airing since 1996 (1,207+ episodes as of mid-2026, ~47% filler) alongside an ongoing manga (1,164+ chapters as of mid-2026). Because the anime interleaves original filler cases between canon manga adaptations rather than adapting story-by-story, this is an initial seed anchored on the well-known Black Organization mythology beats; the vast case-of-the-week middle is not individually mapped. Refine per-episode mappings via PR.", + "mappings": [ + { + "episodes": [1, 2], + "chapters": [1, 5], + "arc": "Shinichi Kudo Shrinks / Series Pilot" + }, + { + "episodes": [54, 58], + "chapters": [114, 121], + "arc": "First Black Organization Appearances (Gin & Vodka)" + }, + { + "episodes": [129, 129], + "chapters": [176, 181], + "arc": "Haibara Ai's Introduction" + }, + { + "episodes": [176, 178], + "chapters": [238, 242], + "arc": "Reunion with the Black Organization" + }, + { + "episodes": [188, 193], + "chapters": [251, 260], + "arc": "The Desperate Revival" + }, + { + "episodes": [309, 311], + "chapters": [380, 383], + "arc": "Contact with the Black Organization" + }, + { + "episodes": [385, 387], + "chapters": [470, 474], + "arc": "Black Organization Intelligence Gathering" + }, + { "episodes": [425, 425], "chapters": [499, 504], "arc": "Black Impact" }, + { + "episodes": [491, 504], + "chapters": [585, 609], + "arc": "Clash of Red and Black" + }, + { + "episodes": [701, 704], + "chapters": [818, 824], + "arc": "The Pitch-Black Mystery Train" + }, + { + "episodes": [779, 783], + "chapters": [891, 898], + "arc": "The Scarlet Series" + }, + { + "episodes": [784, 1207], + "chapters": [899, 1164], + "arc": "Modern Era: Rum Arc Onward (ongoing, approximate)" + } + ], + "movies": [ + { + "anilistId": 779, + "title": "Detective Conan: The Time-Bombed Skyscraper", + "year": 1997, + "note": "Side story (anime-original)." + }, + { + "anilistId": 780, + "title": "Detective Conan: The Fourteenth Target", + "year": 1998, + "note": "Side story (anime-original)." + }, + { + "anilistId": 781, + "title": "Detective Conan: The Last Wizard of the Century", + "year": 1999, + "note": "Side story (anime-original)." + }, + { + "anilistId": 1363, + "title": "Detective Conan: Captured in Her Eyes", + "year": 2000, + "note": "Side story (anime-original)." + }, + { + "anilistId": 1364, + "title": "Detective Conan: Countdown to Heaven", + "year": 2001, + "note": "Side story (anime-original)." + }, + { + "anilistId": 1365, + "title": "Detective Conan: The Phantom of Baker Street", + "year": 2002, + "note": "Side story (anime-original)." + }, + { + "anilistId": 1366, + "title": "Detective Conan: Crossroad in the Ancient Capital", + "year": 2003, + "note": "Side story (anime-original)." + }, + { + "anilistId": 1367, + "title": "Detective Conan: Magician of the Silver Sky", + "year": 2004, + "note": "Side story (anime-original)." + }, + { + "anilistId": 1505, + "title": "Detective Conan: Strategy Above the Depths", + "year": 2005, + "note": "Side story (anime-original)." + }, + { + "anilistId": 1506, + "title": "Detective Conan: The Private Eyes' Requiem", + "year": 2006, + "note": "Side story (anime-original)." + }, + { + "anilistId": 2171, + "title": "Detective Conan: Jolly Roger in the Deep Azure", + "year": 2007, + "note": "Side story (anime-original)." + }, + { + "anilistId": 4447, + "title": "Detective Conan: Full Score of Fear", + "year": 2008, + "note": "Side story (anime-original)." + }, + { + "anilistId": 5460, + "title": "Detective Conan: The Raven Chaser", + "year": 2009, + "note": "Side story (anime-original)." + }, + { + "anilistId": 6467, + "title": "Detective Conan: The Lost Ship in the Sky", + "year": 2010, + "note": "Side story (anime-original)." + }, + { + "anilistId": 9963, + "title": "Detective Conan: Quarter of Silence", + "year": 2011, + "note": "Side story (anime-original)." + }, + { + "anilistId": 12117, + "title": "Detective Conan: The Eleventh Striker", + "year": 2012, + "note": "Side story (anime-original)." + }, + { + "anilistId": 14735, + "title": "Detective Conan: Private Eye in the Distant Sea", + "year": 2013, + "note": "Side story (anime-original)." + }, + { + "anilistId": 20546, + "title": "Detective Conan: Dimensional Sniper", + "year": 2014, + "note": "Side story (anime-original)." + }, + { + "anilistId": 21646, + "title": "Detective Conan: Sunflowers of Inferno", + "year": 2015, + "note": "Side story (anime-original)." + }, + { + "anilistId": 21470, + "title": "Detective Conan: The Darkest Nightmare", + "year": 2016, + "note": "Side story (anime-original)." + }, + { + "anilistId": 98222, + "title": "Detective Conan: The Crimson Love Letter", + "year": 2017, + "note": "Side story (anime-original)." + }, + { + "anilistId": 100653, + "title": "Detective Conan: Zero the Enforcer", + "year": 2018, + "note": "Side story (anime-original)." + }, + { + "anilistId": 106206, + "title": "Detective Conan: The Fist of Blue Sapphire", + "year": 2019, + "note": "Side story (anime-original)." + }, + { + "anilistId": 113653, + "title": "Detective Conan: The Scarlet Bullet", + "year": 2021, + "note": "Side story (anime-original); no 2020 film due to COVID-19." + }, + { + "anilistId": 142219, + "title": "Detective Conan: The Bride of Halloween", + "year": 2022, + "note": "Side story (anime-original)." + }, + { + "anilistId": 156841, + "title": "Detective Conan: Black Iron Submarine", + "year": 2023, + "note": "Side story (anime-original)." + }, + { + "anilistId": 169754, + "title": "Detective Conan: The Million-Dollar Pentagram", + "year": 2024, + "note": "Side story (anime-original)." + }, + { + "anilistId": 185212, + "title": "Detective Conan: One-Eyed Flashback", + "year": 2025, + "note": "Side story (anime-original)." + }, + { + "anilistId": 198369, + "title": "Detective Conan: Fallen Angel of the Highway", + "year": 2026, + "note": "Side story (anime-original); 30th-anniversary commemorative film." + } + ] +} diff --git a/src/data/mappings/devils-line.json b/src/data/mappings/devils-line.json new file mode 100644 index 0000000..0235144 --- /dev/null +++ b/src/data/mappings/devils-line.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 99531, + "anilistMangaId": 86648, + "title": "Devils' Line", + "sourceNotes": "Single-cour, 12-episode anime adapting roughly the first six of fourteen manga volumes. Manga (Ryo Hanada, Morning Two) is complete at 80 chapters ('Lines'); no named-arc breakdown was found for this series (chapters are numbered, not titled by arc), so broad volume-range entries are used per episode-to-chapter sync guides, which place the anime's ending around chapter 38. A separate 2018 OVA, 'Anytime Anywhere,' bundled with manga volume 12, retells a parents' backstory side-story rather than continuing the main chapter sequence, so it is not folded into the cumulative episode numbering here.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 38], + "arc": "TV Anime Adaptation (Vols. 1-6)" + }, + { "chapters": [39, 80], "arc": "Unadapted (Vols. 7-14)" } + ] +} diff --git a/src/data/mappings/do-you-love-your-mom-and-her-two-hit-multi-target-attacks.json b/src/data/mappings/do-you-love-your-mom-and-her-two-hit-multi-target-attacks.json new file mode 100644 index 0000000..332d9ec --- /dev/null +++ b/src/data/mappings/do-you-love-your-mom-and-her-two-hit-multi-target-attacks.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 104723, + "anilistMangaId": 98280, + "title": "Do You Love Your Mom and Her Two-Hit Multi-Target Attacks?", + "sourceNotes": "Single-cour 12-episode TV anime (J.C. Staff, 2019). Sourced from Dachima Inaka's light novel (11 volumes, 79 chapters, complete) rather than the separate 5-volume/30-chapter manga adaptation, since AniList's ADAPTATION edge on the anime points to the novel. The finale wraps up with the tower-ascent climax, ending with light novel Volume 3; chapter boundary is approximated at ~7 chapters/volume since no official episode-to-chapter guide was found. A 1-episode OVA ('Do You Love Your Mom on the Shore?') was bundled with the Blu-ray release but is not a theatrical film, so it is omitted here. No distinct named story arcs, so broad season-based entries are used.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 22], + "arc": "Season 1 (Volumes 1-3)" + }, + { + "chapters": [23, 79], + "arc": "Unadapted (Volumes 4-11)" + } + ] +} diff --git a/src/data/mappings/duke-of-death-and-his-maid.json b/src/data/mappings/duke-of-death-and-his-maid.json new file mode 100644 index 0000000..8bf5696 --- /dev/null +++ b/src/data/mappings/duke-of-death-and-his-maid.json @@ -0,0 +1,11 @@ +{ + "anilistAnimeId": 129277, + "anilistMangaId": 100293, + "title": "The Duke of Death and His Maid", + "sourceNotes": "Cumulative episodes across S1 (12, 2021) + S2 (12, 2023) + S3 (12, 2024) = 36 eps. Manga complete at 223 chapters over 16 volumes (AniList's raw chapter count of 240 includes bonus .5-numbered omake chapters not part of the main numbered sequence). Episodic Victorian-fantasy romantic comedy with no named story arcs on the fandom wiki; boundaries follow the well-documented restart points where each new season resumes the manga: S1 adapts ch. 1-68, S2 resumes at ch. 69 through ch. 141, S3 resumes at ch. 142 through the finale at ch. 223, making the TV adaptation a complete one.", + "mappings": [ + { "episodes": [1, 12], "chapters": [1, 68], "arc": "Season 1" }, + { "episodes": [13, 24], "chapters": [69, 141], "arc": "Season 2" }, + { "episodes": [25, 36], "chapters": [142, 223], "arc": "Season 3" } + ] +} diff --git a/src/data/mappings/dusk-maiden-of-amnesia.json b/src/data/mappings/dusk-maiden-of-amnesia.json new file mode 100644 index 0000000..b416550 --- /dev/null +++ b/src/data/mappings/dusk-maiden-of-amnesia.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 12445, + "anilistMangaId": 45805, + "title": "Dusk Maiden of Amnesia", + "sourceNotes": "Single 12-episode TV season (2012, Silver Link); a bonus 13th episode included only on the season 6 BD/DVD is not counted here. Manga (Tasogare Otome x Amnesia) complete at 54 chapters (10 volumes, 2009-2013). The anime faithfully adapts the opening Seven Mysteries chapters through ch 24 (vol 6) across eps 1-6, then becomes anime-original for eps 7-12 with an invented ending that diverges from the manga's actual conclusion — those episodes are left unmapped. Chapters 25-54 (the manga's true back half and ending) were never adapted.", + "mappings": [ + { + "episodes": [1, 6], + "chapters": [1, 24], + "arc": "Seven Mysteries of Seikyou Academy (opening chapters)" + }, + { + "chapters": [25, 54], + "arc": "Later Seven Mysteries + true ending (unadapted; anime diverges from ep 7 onward)" + } + ] +} diff --git a/src/data/mappings/edens-zero.json b/src/data/mappings/edens-zero.json new file mode 100644 index 0000000..6ba949a --- /dev/null +++ b/src/data/mappings/edens-zero.json @@ -0,0 +1,37 @@ +{ + "anilistAnimeId": 119683, + "anilistMangaId": 101860, + "title": "EDENS ZERO", + "sourceNotes": "Cumulative episodes across S1 (25) + S2 (25) = 50 total; use the S1 anime id 119683. Manga complete at 293 chapters (33 volumes). Arc boundaries from the series' fandom wiki; S2 ends mid-Nero 66 arc (ep. 50 covers through ch. 140), leaving the remainder of the manga unadapted on TV.", + "mappings": [ + { "episodes": [1, 3], "chapters": [1, 3], "arc": "Intro Arc" }, + { "episodes": [4, 6], "chapters": [4, 11], "arc": "Norma Arc" }, + { "episodes": [7, 7], "chapters": [12, 14], "arc": "Skull Fairy Arc" }, + { "episodes": [8, 12], "chapters": [15, 28], "arc": "Guilst Arc" }, + { "episodes": [13, 17], "chapters": [29, 43], "arc": "Digitalis Arc" }, + { "episodes": [18, 18], "chapters": [44, 48], "arc": "Mildian Arc" }, + { + "episodes": [19, 25], + "chapters": [49, 68], + "arc": "Sun Jewel Arc (S1 finale)" + }, + { "episodes": [26, 36], "chapters": [69, 99], "arc": "Belial Gore Arc" }, + { "episodes": [37, 38], "chapters": [100, 104], "arc": "Edens One Arc" }, + { "episodes": [39, 40], "chapters": [105, 111], "arc": "Red Cave Arc" }, + { "episodes": [41, 48], "chapters": [112, 133], "arc": "Foresta Arc" }, + { + "episodes": [49, 50], + "chapters": [134, 140], + "arc": "Sandra Arc / Nero 66 Arc (S2 finale)" + }, + { "chapters": [141, 169], "arc": "Nero 66 Arc (unadapted tail)" }, + { "chapters": [170, 180], "arc": "X495 Arc (unadapted)" }, + { "chapters": [181, 220], "arc": "Lendard Arc (unadapted)" }, + { "chapters": [221, 247], "arc": "Edens Zero Reunion Arc (unadapted)" }, + { "chapters": [248, 255], "arc": "Miltz Arc (unadapted)" }, + { + "chapters": [256, 293], + "arc": "Edens One War Arc (unadapted, series finale)" + } + ] +} diff --git a/src/data/mappings/engaged-to-the-unidentified.json b/src/data/mappings/engaged-to-the-unidentified.json new file mode 100644 index 0000000..1430545 --- /dev/null +++ b/src/data/mappings/engaged-to-the-unidentified.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 20483, + "anilistMangaId": 51097, + "title": "Engaged to the Unidentified", + "sourceNotes": "Single 12-episode TV season (2014, Doga Kobo). Source is Cherry-Arai's 4-koma manga (16 volumes, complete at 187 chapters). 4-koma source — chapter ranges are approximate: the anime adapts roughly the first third of the manga, with its final episode largely anime-original; fan consensus places the resume point for continuing the story at chapter 57. The remainder of the manga (unadapted at the time the anime aired) is included at the tail.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 56], + "arc": "Kobeni moves in with the Mitsumine family (early slice-of-life vignettes)" + }, + { + "chapters": [57, 187], + "arc": "Continued slice-of-life (unadapted, manga concludes at ch. 187)" + } + ] +} diff --git a/src/data/mappings/failure-frame.json b/src/data/mappings/failure-frame.json new file mode 100644 index 0000000..318fb4e --- /dev/null +++ b/src/data/mappings/failure-frame.json @@ -0,0 +1,10 @@ +{ + "anilistAnimeId": 173694, + "anilistMangaId": 110989, + "title": "Failure Frame: I Became the Strongest and Annihilated Everything with Low-Level Spells", + "sourceNotes": "Single 12-episode season (Seven Arcs, 2024) adapts light novel volumes 1-4; the anilistMangaId here points at the separate manga adaptation (AniList's light-novel entry doesn't track a chapter count), which covers the same content through approx. chapter 44 (community continuation point cited as vol. 9, ch. 44.2). Manga ongoing (current ch. 70 as of mid-2026). No widely established named arcs for this fast-paced revenge-isekai story, so mapping uses broad coverage entries.", + "mappings": [ + { "episodes": [1, 12], "chapters": [1, 44], "arc": "TV Anime Adaptation" }, + { "chapters": [45, 70], "arc": "Unadapted Chapters" } + ] +} diff --git a/src/data/mappings/fate-strange-fake.json b/src/data/mappings/fate-strange-fake.json new file mode 100644 index 0000000..e234f41 --- /dev/null +++ b/src/data/mappings/fate-strange-fake.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 166617, + "anilistMangaId": 50006, + "title": "Fate/strange Fake", + "sourceNotes": "S1 anime is 13 episodes (2024-2026), adapting the Snowfield false Holy Grail War from Ryohgo Narita's light novel through roughly volume 6 (ep. 13 draws from ch. 20 of vol. 6). The Shidzuki Morii manga adaptation is far behind the anime (5 volumes published, only reaching early-series content), so this mapping uses LIGHT-NOVEL VOLUME NUMBERS as the 'chapters' axis instead, following the Ascendance of a Bookworm / Bottom-Tier Character Tomozaki convention. The light novel is ongoing at 9 published volumes (through March 2024) with a 10th and final volume expected in 2026; volume boundaries within S1 are approximate. No qualifying theatrical films — the 'Whispers of Dawn' special (July 2023) was a TV/con-screening prequel, not a Japanese theatrical release.", + "mappings": [ + { + "episodes": [1, 13], + "chapters": [1, 6], + "arc": "Snowfield False Holy Grail War (LN vols 1-6)" + }, + { + "chapters": [7, 9], + "arc": "War's climax, unadapted by the anime (LN vols 7-9)" + } + ] +} diff --git a/src/data/mappings/flying-witch.json b/src/data/mappings/flying-witch.json new file mode 100644 index 0000000..32b35b6 --- /dev/null +++ b/src/data/mappings/flying-witch.json @@ -0,0 +1,10 @@ +{ + "anilistAnimeId": 21284, + "anilistMangaId": 76258, + "title": "Flying Witch", + "sourceNotes": "12-episode anime is a slow, faithful slice-of-life adaptation with no distinct named arcs; it covers manga chapters 1-21 (through part of volume 4), skipping very little. Manga ongoing (current ch. ~90 as of early 2026).", + "mappings": [ + { "episodes": [1, 12], "chapters": [1, 21], "arc": "Anime Adaptation" }, + { "chapters": [22, 90], "arc": "Manga-only Continuation" } + ] +} diff --git a/src/data/mappings/from-old-country-bumpkin-to-master-swordsman.json b/src/data/mappings/from-old-country-bumpkin-to-master-swordsman.json new file mode 100644 index 0000000..5c6c202 --- /dev/null +++ b/src/data/mappings/from-old-country-bumpkin-to-master-swordsman.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 179955, + "anilistMangaId": 145675, + "title": "From Old Country Bumpkin to Master Swordsman", + "sourceNotes": "Single-cour S1 (12 eps, Apr-Jun 2025); S2 confirmed for 2026 (not covered here). Source is Shigeru Sagazaki's light novel (10 vols as of Dec 2025); the Kazuki Sato manga adaptation (9 vols / ch. 1-40 as of June 2026) tracks the light novel roughly one manga volume per LN volume. S1 corresponds to approximately the first two source volumes (manga ch. 1-10); precise episode-to-chapter boundaries are not documented anywhere yet, so this is an approximate seed — refine via PR.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 10], + "arc": "Beryl Becomes Special Instructor / Reunion with Former Students" + }, + { "chapters": [11, 40], "arc": "Unadapted continuation (ongoing)" } + ] +} diff --git a/src/data/mappings/full-dive.json b/src/data/mappings/full-dive.json new file mode 100644 index 0000000..5b651da --- /dev/null +++ b/src/data/mappings/full-dive.json @@ -0,0 +1,13 @@ +{ + "anilistAnimeId": 126791, + "anilistMangaId": 127668, + "title": "Full Dive: This Ultimate Next-Gen Full Dive RPG Is Even Shittier than Real Life!", + "sourceNotes": "Single-cour, 12-episode anime adapting the first light novel volume. The manga tie-in (Kino, Monthly Comic Alive) was cancelled after 11 chapters in Jan. 2022, covering only roughly the first half of the anime's run (through about episode 6); AniList does not track a chapter count for it since it stopped without a defined ending. Episodes 7-12 have no manga equivalent as a result. Original light novel; manga is a close but incomplete tie-in adaptation.", + "mappings": [ + { + "episodes": [1, 6], + "chapters": [1, 11], + "arc": "Kiwame Quest: First Login (Vol. 1)" + } + ] +} diff --git a/src/data/mappings/full-metal-panic.json b/src/data/mappings/full-metal-panic.json new file mode 100644 index 0000000..6f7a63a --- /dev/null +++ b/src/data/mappings/full-metal-panic.json @@ -0,0 +1,48 @@ +{ + "anilistAnimeId": 71, + "anilistMangaId": 40892, + "title": "Full Metal Panic!", + "sourceNotes": "Cumulative episodes across S1 (24) + The Second Raid (13) + Invisible Victory (12) = 49; Full Metal Panic? Fumoffu (12 eps) is a non-canon gag side-story and is excluded from arc numbering. Source is the light novel (72 chapters across 12 volumes, complete); chapter ranges assume an even ~6 chapters per volume since no published per-chapter table of contents was found, so boundaries are approximate. S1 adapts vol. 1-3 (Boy Meets Girl through Into the Blue); The Second Raid adapts vol. 4-5 (Ending Day by Day); vol. 6 (Dancing Very Merry Christmas) is a side story that was never animated; Invisible Victory adapts vol. 7-9. Vol. 10-12 (Forever Stand by Me) is the unadapted novel-only finale.", + "mappings": [ + { + "episodes": [1, 7], + "chapters": [1, 6], + "arc": "Fighting: Boy Meets Girl" + }, + { + "episodes": [8, 12], + "chapters": [7, 12], + "arc": "Running: One Night Stand" + }, + { + "episodes": [13, 24], + "chapters": [13, 18], + "arc": "Swaying: Into the Blue" + }, + { + "episodes": [25, 31], + "chapters": [19, 24], + "arc": "Ending Day by Day (Part 1)" + }, + { + "episodes": [32, 37], + "chapters": [25, 30], + "arc": "Ending Day by Day (Part 2)" + }, + { + "episodes": [38, 41], + "chapters": [37, 42], + "arc": "Continuing On My Own" + }, + { + "episodes": [42, 45], + "chapters": [43, 48], + "arc": "Burning One Man Force" + }, + { "episodes": [46, 49], "chapters": [49, 54], "arc": "Come Make My Day" }, + { + "chapters": [55, 72], + "arc": "Forever Stand by Me (unadapted novel finale)" + } + ] +} diff --git a/src/data/mappings/gargantia-on-the-verdurous-planet.json b/src/data/mappings/gargantia-on-the-verdurous-planet.json new file mode 100644 index 0000000..7e0abe1 --- /dev/null +++ b/src/data/mappings/gargantia-on-the-verdurous-planet.json @@ -0,0 +1,9 @@ +{ + "anilistAnimeId": 16524, + "anilistMangaId": 80169, + "title": "Gargantia on the Verdurous Planet", + "sourceNotes": "Original anime (13 episodes, Production I.G, 2013); the manga by Wataru Mitogawa is a close tie-in adaptation (complete at 13 chapters) that follows the TV series scene-for-scene with no distinct arcs. Two Blu-ray-exclusive OVA episodes and their own manga/novel side stories exist in a separate continuity and are not covered here.", + "mappings": [ + { "episodes": [1, 13], "chapters": [1, 13], "arc": "Original Series" } + ] +} diff --git a/src/data/mappings/girls-und-panzer.json b/src/data/mappings/girls-und-panzer.json new file mode 100644 index 0000000..802a549 --- /dev/null +++ b/src/data/mappings/girls-und-panzer.json @@ -0,0 +1,70 @@ +{ + "anilistAnimeId": 14131, + "anilistMangaId": 72223, + "title": "Girls und Panzer", + "sourceNotes": "Anime is 12 TV episodes (2012-2013; excludes the two non-canon .5 recap episodes). Manga (Ryōichi Saitaniya, complete at 21 chapters / 4 volumes) is a tie-in retelling from Yukari Akiyama's POV serialized concurrently with the TV broadcast; original anime, so chapter boundaries below are approximate proportional splits rather than a scene-exact adaptation.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 7], + "arc": "Introductions & St. Gloriana Practice Match" + }, + { + "episodes": [5, 6], + "chapters": [8, 10], + "arc": "Saunders University Match" + }, + { + "episodes": [7, 7], + "chapters": [11, 13], + "arc": "Anzio High School Match" + }, + { + "episodes": [8, 9], + "chapters": [14, 17], + "arc": "Pravda High School Match" + }, + { + "episodes": [10, 12], + "chapters": [18, 21], + "arc": "Kuromorimine Championship Final" + } + ], + "movies": [ + { + "anilistId": 18617, + "title": "Girls und Panzer der Film", + "year": 2015, + "afterEpisode": 12, + "note": "Canon sequel film: Ooarai faces the University Selection Team in an exhibition match to save the school." + }, + { + "anilistId": 99938, + "title": "Girls und Panzer das Finale - Part 1", + "year": 2017, + "afterEpisode": 12, + "note": "Part 1 of the six-part das Finale film series, canon continuation following der Film into the World Tank Selection Tournament." + }, + { + "anilistId": 107208, + "title": "Girls und Panzer das Finale - Part 2", + "year": 2019, + "afterEpisode": 12, + "note": "Part 2 of das Finale." + }, + { + "anilistId": 124115, + "title": "Girls und Panzer das Finale - Part 3", + "year": 2021, + "afterEpisode": 12, + "note": "Part 3 of das Finale." + }, + { + "anilistId": 132420, + "title": "Girls und Panzer das Finale - Part 4", + "year": 2023, + "afterEpisode": 12, + "note": "Part 4 of das Finale." + } + ] +} diff --git a/src/data/mappings/go-go-loser-ranger.json b/src/data/mappings/go-go-loser-ranger.json new file mode 100644 index 0000000..5359506 --- /dev/null +++ b/src/data/mappings/go-go-loser-ranger.json @@ -0,0 +1,37 @@ +{ + "anilistAnimeId": 158417, + "anilistMangaId": 127564, + "title": "Go! Go! Loser Ranger!", + "sourceNotes": "Cumulative episodes across S1 (12) + S2 (12) = 24. Manga ongoing in Weekly Shonen Magazine (currently on hiatus; ch. 221 as of July 2026). S1 adapts ch. 1-51 (Introduction / Pylon's Nest training arcs); S2 adapts ch. 52-124 (Green Squad / Dream School Life through the Monster Protection Society War and Three Way Melee climax), matching fan sync guides that place the post-S2 restart at Vol. 14 Ch. 125. Later manga-only arcs (Akabane, Sentoin Hunt, New Sentai) are unadapted. Anime pacing is uneven, compressing many chapters per episode especially late in each season, so within-season episode/chapter splits are approximate.", + "mappings": [ + { + "episodes": [1, 6], + "chapters": [1, 23], + "arc": "R1000 / Introduction Arc" + }, + { + "episodes": [7, 12], + "chapters": [24, 51], + "arc": "Pylon's Nest Arc" + }, + { + "episodes": [13, 16], + "chapters": [52, 72], + "arc": "Green Squad / Dream School Life Arc" + }, + { + "episodes": [17, 20], + "chapters": [73, 102], + "arc": "Monster Protection Society Arc" + }, + { + "episodes": [21, 24], + "chapters": [103, 124], + "arc": "Three Way Melee" + }, + { + "chapters": [125, 221], + "arc": "Post-anime arcs (Akabane, Sentoin Hunt, New Sentai; manga only, ongoing)" + } + ] +} diff --git a/src/data/mappings/golden-boy.json b/src/data/mappings/golden-boy.json new file mode 100644 index 0000000..7900d0d --- /dev/null +++ b/src/data/mappings/golden-boy.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 268, + "anilistMangaId": 31458, + "title": "GOLDEN BOY", + "sourceNotes": "6-episode 1995-96 OVA (Shueisha/KSS), each episode a self-contained job/adventure of Kintaro Oe. Manga by Tatsuya Egawa ran 1992-1997 (complete, 104 chapters, natively numbered Chapter 0-103; this mapping uses sequential position 1-104 to match AniList's total). Only the OVA's first four episodes draw directly from the manga's opening chapters (Lesson 0-4, positions 1-5), matching by title and plot; the manga's Chapter 2 (\"A Flower Troubles the Highlands\") and Chapter 5 (\"No Breaks Blue Sky\") were not adapted. Episode 5 has no confirmed manga source and episode 6 is explicitly anime-original per the Golden Boy Wiki. The remaining ~98 manga chapters (the \"Study\"-numbered chapters onward) were never adapted into the OVA at all.", + "mappings": [ + { + "episodes": [1, 1], + "chapters": [1, 1], + "arc": "Computer Studies (Lesson 0)" + }, + { + "episodes": [2, 2], + "chapters": [2, 2], + "arc": "Temptation of the Maiden (Lesson 1)" + }, + { + "episodes": [3, 3], + "chapters": [4, 4], + "arc": "Danger! The Virgin's First Love (Lesson 3)" + }, + { + "episodes": [4, 4], + "chapters": [5, 5], + "arc": "Swimming in the Sea of Love (Lesson 4)" + }, + { + "chapters": [6, 104], + "arc": "Unadapted manga (Lesson 2, Lesson 5, and all Study-numbered chapters)" + } + ] +} diff --git a/src/data/mappings/guilty-crown.json b/src/data/mappings/guilty-crown.json new file mode 100644 index 0000000..6f0e8b9 --- /dev/null +++ b/src/data/mappings/guilty-crown.json @@ -0,0 +1,18 @@ +{ + "anilistAnimeId": 10793, + "anilistMangaId": 60871, + "title": "Guilty Crown", + "sourceNotes": "22-episode series. Manga (7 volumes, complete at 26 chapters) adapts the full story with some events and character fates changed from the anime (notably Inori's ending); a published chapter-to-episode guide was not found, so chapter ranges are proportioned across the anime's two halves (the OP/mood shift between episodes 11 and 12 marks the split).", + "mappings": [ + { + "episodes": [1, 11], + "chapters": [1, 13], + "arc": "GHQ & the Void Genome" + }, + { + "episodes": [12, 22], + "chapters": [14, 26], + "arc": "Second Genesis Outbreak" + } + ] +} diff --git a/src/data/mappings/gurren-lagann.json b/src/data/mappings/gurren-lagann.json new file mode 100644 index 0000000..a303f2d --- /dev/null +++ b/src/data/mappings/gurren-lagann.json @@ -0,0 +1,23 @@ +{ + "anilistAnimeId": 2001, + "anilistMangaId": 31648, + "title": "Gurren Lagann", + "sourceNotes": "27-episode series (episode 16 is a clip-show recap and is not adapted). Manga (10 volumes, complete at 65 chapters) follows the same overall plotline as the anime with added backstory filling gaps; chapter ranges are proportioned across the anime's three well-known arcs since a published chapter-to-episode guide was not found. The two theatrical films (Gurren-hen, Lagann-hen) are compressed, partially-diverging retellings rather than the central continuity and are omitted.", + "mappings": [ + { + "episodes": [1, 8], + "chapters": [1, 20], + "arc": "Team Gurren & Kamina's Sacrifice" + }, + { + "episodes": [9, 15], + "chapters": [21, 38], + "arc": "Team Dai-Gurren vs. the Spiral King" + }, + { + "episodes": [17, 27], + "chapters": [39, 65], + "arc": "Post-Timeskip: The Anti-Spiral War" + } + ] +} diff --git a/src/data/mappings/gushing-over-magical-girls.json b/src/data/mappings/gushing-over-magical-girls.json new file mode 100644 index 0000000..185eced --- /dev/null +++ b/src/data/mappings/gushing-over-magical-girls.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 162780, + "anilistMangaId": 109017, + "title": "Gushing Over Magical Girls", + "sourceNotes": "Source is Akihiro Ononaka's manga (AniList 109017), ongoing (~ch. 63 as of June 2026, 12 volumes; the manga went on hiatus for the author's health from March 2024 to October 2025). The 13-episode Season 1 anime adapts chapters 1-24. No named story arcs; this is an episodic dark-comedy magical-girl parody, so the anime run is grouped as one block with the unadapted tail (including material for the announced Season 2) left as chapters-only.", + "mappings": [ + { + "episodes": [1, 13], + "chapters": [1, 24], + "arc": "Season 1" + }, + { + "chapters": [25, 63], + "arc": "Post-Season 1 (Manga-Only)" + } + ] +} diff --git a/src/data/mappings/hanasaku-iroha.json b/src/data/mappings/hanasaku-iroha.json new file mode 100644 index 0000000..2f96d88 --- /dev/null +++ b/src/data/mappings/hanasaku-iroha.json @@ -0,0 +1,18 @@ +{ + "anilistAnimeId": 9289, + "anilistMangaId": 55408, + "title": "Hanasaku Iroha ~Blossoms for Tomorrow~", + "sourceNotes": "Single-season 26-episode TV anime (2011). The manga tie-in (complete at 24 chapters across 5 volumes) was serialized concurrently with the anime but on an altered timeline and pacing - same core story and cast, different scene ordering - so the chapter alignment below is a loose approximation rather than a precise scene-for-scene match.", + "mappings": [ + { "episodes": [1, 26], "chapters": [1, 24], "arc": "Kissuiso Inn Story" } + ], + "movies": [ + { + "anilistId": 14175, + "title": "Hanasaku Iroha the Movie ~ HOME SWEET HOME ~", + "year": 2013, + "afterEpisode": 20, + "note": "Canon side story exploring Ohana's mother Satsuki's past at Kissuiso; set between eps 20-21. Anime-original content, not adapted from the manga." + } + ] +} diff --git a/src/data/mappings/happy-sugar-life.json b/src/data/mappings/happy-sugar-life.json new file mode 100644 index 0000000..4c1e0ae --- /dev/null +++ b/src/data/mappings/happy-sugar-life.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 101351, + "anilistMangaId": 86655, + "title": "Happy Sugar Life", + "sourceNotes": "Single season, 12 episodes. Manga complete at 62 chapters. The anime follows the manga closely but compresses pacing (roughly 1 chapter per episode early on, 3-4 chapters per episode by the finale) and skips Chapters 28-31 (Shio's parents backstory); ep. 12 ends at Chapter 48, leaving the manga's ending (Chapters 49-62) unadapted.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 48], + "arc": "Satou & Shio (TV Adaptation)" + }, + { "chapters": [49, 62], "arc": "Manga-Only Ending" } + ] +} diff --git a/src/data/mappings/harem-in-the-labyrinth-of-another-world.json b/src/data/mappings/harem-in-the-labyrinth-of-another-world.json new file mode 100644 index 0000000..b643a96 --- /dev/null +++ b/src/data/mappings/harem-in-the-labyrinth-of-another-world.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 127090, + "anilistMangaId": 99462, + "title": "Harem in the Labyrinth of Another World", + "sourceNotes": "Single-cour anime (12 eps, 2022). Manga adaptation ongoing (current ch. 108 as of June 2026); the anime finishes at ch. 17 / part of ch. 18 (a reader resumes at manga vol. 7 ch. 45), so ch. 1-44 is the anime-covered range. No distinct named story arcs are used by the source; boundaries are broad. The 2-episode OVA (AniList id 151632) bundles bonus/side content and is not included in the cumulative episode count.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 44], + "arc": "Kadan's Dungeon City / Harem Formation" + }, + { "chapters": [45, 108], "arc": "Unadapted continuation (ongoing)" } + ] +} diff --git a/src/data/mappings/heavens-lost-property.json b/src/data/mappings/heavens-lost-property.json new file mode 100644 index 0000000..d7b0a9f --- /dev/null +++ b/src/data/mappings/heavens-lost-property.json @@ -0,0 +1,33 @@ +{ + "anilistAnimeId": 5958, + "anilistMangaId": 38144, + "title": "Heaven's Lost Property", + "sourceNotes": "Cumulative episodes across S1 (13) + Forte S2 (12, eps 14-25). Manga complete at 97 chapters across 20 volumes per AniList; some fan chapter counts run only to ch. 77 plus extras, so boundaries below are approximate and scaled to the AniList numbering. S1 covers the Ikaros/Nymph introduction; Forte covers the Astraea/Chaos material before diverging into anime-original content near its finale. The Hiyori arc and the manga's ending were left unadapted by the TV series and are instead covered by two sequel films.", + "mappings": [ + { "episodes": [1, 13], "chapters": [1, 33], "arc": "Ikaros & Nymph Arc" }, + { + "episodes": [14, 25], + "chapters": [34, 56], + "arc": "Astraea & Chaos Arc" + }, + { "chapters": [57, 97], "arc": "Hiyori Arc / Final Arc (Unadapted on TV)" } + ], + "movies": [ + { + "anilistId": 9790, + "title": "Heaven's Lost Property the Movie: The Angeloid of Clockwork", + "year": 2011, + "chapters": [57, 75], + "afterEpisode": 25, + "note": "Adapts the Hiyori arc, which was skipped by the Forte TV adaptation." + }, + { + "anilistId": 12783, + "title": "Heaven's Lost Property Final: Eternally My Master", + "year": 2014, + "chapters": [76, 97], + "afterEpisode": 25, + "note": "Sequel film concluding Tomoki and Ikaros's story, adapting material through near the end of the manga." + } + ] +} diff --git a/src/data/mappings/hensuki.json b/src/data/mappings/hensuki.json new file mode 100644 index 0000000..30a061b --- /dev/null +++ b/src/data/mappings/hensuki.json @@ -0,0 +1,23 @@ +{ + "anilistAnimeId": 107961, + "anilistMangaId": 100827, + "title": "Hensuki: Are you willing to fall in love with a pervert, as long as she's a cutie?", + "sourceNotes": "Single 12-episode TV season (2019, Geek Toys), adapted from Ai Fuji's light novels. Mapped here against CHuN's manga adaptation (6 volumes, complete at 39 chapters), which follows the same heroine-by-heroine structure as the anime. Romantic-comedy harem with interleaved heroine vignettes rather than formal story arcs, so boundaries are coarse and follow manga volume breaks; chapter ranges are approximate.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 13], + "arc": "Sayuki, Yuika & Mao introduced (manga vols 1-2)" + }, + { + "episodes": [5, 8], + "chapters": [14, 26], + "arc": "Koharu & Ayano arcs; the panty investigation continues (manga vols 3-4)" + }, + { + "episodes": [9, 12], + "chapters": [27, 39], + "arc": "Identity reveals and the Mizuha finale (manga vols 5-6)" + } + ] +} diff --git a/src/data/mappings/hentai-prince-and-the-stony-cat.json b/src/data/mappings/hentai-prince-and-the-stony-cat.json new file mode 100644 index 0000000..3a7cf0e --- /dev/null +++ b/src/data/mappings/hentai-prince-and-the-stony-cat.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 15225, + "anilistMangaId": 55876, + "title": "Hentai Prince & the Stony Cat", + "sourceNotes": "Single-cour, 12 episodes (2013). Source is the light novel (complete at 78 chapters across 13 volumes); a separate manga adaptation also exists but the novel is the anime's direct source. Chapter ranges assume an even ~6 chapters per volume, since no published per-chapter table of contents was found, so boundaries are approximate. The anime adapts volumes 1-5 only (vol. 1 spans episodes 1-4, vol. 2-5 roughly two episodes apiece); volumes 6-13 were never animated.", + "mappings": [ + { "episodes": [1, 4], "chapters": [1, 6], "arc": "Volume 1" }, + { "episodes": [5, 6], "chapters": [7, 12], "arc": "Volume 2" }, + { "episodes": [7, 8], "chapters": [13, 18], "arc": "Volume 3" }, + { "episodes": [9, 10], "chapters": [19, 24], "arc": "Volume 4" }, + { "episodes": [11, 12], "chapters": [25, 30], "arc": "Volume 5" }, + { "chapters": [31, 78], "arc": "Unadapted novel volumes (6-13)" } + ] +} diff --git a/src/data/mappings/high-school-prodigies-have-it-easy-even-in-another-world.json b/src/data/mappings/high-school-prodigies-have-it-easy-even-in-another-world.json new file mode 100644 index 0000000..4abd255 --- /dev/null +++ b/src/data/mappings/high-school-prodigies-have-it-easy-even-in-another-world.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 108388, + "anilistMangaId": 98044, + "title": "High School Prodigies Have It Easy Even In Another World", + "sourceNotes": "Single-cour 12-episode TV anime (2019). Sourced from Riku Misora's light novel (10 volumes, 50 chapters, complete) rather than the separate 13-volume/104-chapter manga adaptation, since AniList's ADAPTATION edge on the anime points to the novel. Fan guides indicate the anime's story concludes at the end of light novel Volume 3, with Volume 4 picking up where the anime leaves off; chapter boundary is approximated at ~5 chapters/volume since no official episode-to-chapter guide was found. No distinct named story arcs, so broad season-based entries are used.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 15], + "arc": "Season 1 (Volumes 1-3)" + }, + { + "chapters": [16, 50], + "arc": "Unadapted (Volumes 4-10)" + } + ] +} diff --git a/src/data/mappings/hokkaido-gals-are-super-adorable.json b/src/data/mappings/hokkaido-gals-are-super-adorable.json new file mode 100644 index 0000000..a99c31a --- /dev/null +++ b/src/data/mappings/hokkaido-gals-are-super-adorable.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 155963, + "anilistMangaId": 111403, + "title": "Hokkaido Gals Are Super Adorable!", + "sourceNotes": "Single-season, 12-episode TV anime (SILVER LINK./Blade, 2024) adapts manga ch. 1-32 (~through vol. 4). Manga complete at 123 chapters (14 vols). Slice-of-life romance source with no formally named arcs — largely one-to-a-few chapters per episode pacing.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 32], + "arc": "Anime-Adapted Chapters" + }, + { + "chapters": [33, 123], + "arc": "Unadapted (manga continues past the anime)" + } + ] +} diff --git a/src/data/mappings/hundred.json b/src/data/mappings/hundred.json new file mode 100644 index 0000000..7d9df69 --- /dev/null +++ b/src/data/mappings/hundred.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 21362, + "anilistMangaId": 88159, + "title": "Hundred", + "sourceNotes": "Single-cour, 12-episode anime adapting the first four of sixteen light novel volumes. Novel is complete at 116 chapters (ongoing-style web-novel chapter numbering, not tankobon chapters); no chapter-precise anime guide was found, so the vol. 1-4 boundary is approximated from the ~7.25 chapters/volume average (116 chapters / 16 volumes), covering roughly chapters 1-29. A separate 2-volume/13-chapter manga tie-in (Sasayuki) exists but only covers volume 1, so the novel is used as the source of truth per AniList's direct ADAPTATION relation. Chapters 30-116 are the unadapted remainder of the light novel, never covered by the anime.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 29], + "arc": "Little Garden Enrollment / Savage Incursions (Vols. 1-4)" + }, + { "chapters": [30, 116], "arc": "Unadapted (Vols. 5-16)" } + ] +} diff --git a/src/data/mappings/i-cant-understand-what-my-husband-is-saying.json b/src/data/mappings/i-cant-understand-what-my-husband-is-saying.json new file mode 100644 index 0000000..363ad08 --- /dev/null +++ b/src/data/mappings/i-cant-understand-what-my-husband-is-saying.json @@ -0,0 +1,15 @@ +{ + "anilistAnimeId": 20735, + "anilistMangaId": 85408, + "title": "I Can't Understand What My Husband Is Saying", + "sourceNotes": "Cumulative episodes across Season 1 (13, Oct-Dec 2014) + Season 2 '2nd Thread' (13, Apr-Jun 2015) = 26 total, using the first season's AniList id (20735). Manga complete at 52 chapters (4-koma slice-of-life by Coolkyousinnjya) — episodic/anthology adaptation, so episode-to-chapter boundaries are approximate. Season 1 ends around Kaoru's positive pregnancy test; Season 2 ends around the couple choosing baby names. The manga's final chapters, depicting Kaoru giving birth to daughter Sayoko, are never animated and are included at the tail as unadapted.", + "mappings": [ + { "episodes": [1, 13], "chapters": [1, 24], "arc": "Season 1" }, + { + "episodes": [14, 26], + "chapters": [25, 48], + "arc": "Season 2 (2nd Thread)" + }, + { "chapters": [49, 52], "arc": "Unadapted Ending (Sayoko's Birth)" } + ] +} diff --git a/src/data/mappings/i-parry-everything.json b/src/data/mappings/i-parry-everything.json new file mode 100644 index 0000000..60f7016 --- /dev/null +++ b/src/data/mappings/i-parry-everything.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 170695, + "anilistMangaId": 131041, + "title": "I Parry Everything", + "sourceNotes": "Single 12-episode season (OLM, 2024). The anime adapts Nabeshiki's light novel (12 volumes as of June 2026); the separately-illustrated KRSG manga tracks the same story but lags behind the anime's pace, having reached only ~ch. 19 by the time the anime finished airing. Manga ongoing (current ~ch. 26, approximate — AniList does not track a chapter count for this title). No distinct named arcs are documented for the story's opening stretch, so the season is treated as one broad entry; the chapter endpoint for the finale is an approximation pending a precise sync guide.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 21], + "arc": "Season 1: Noor's Arrival Through the Deridas Empire Invasion" + }, + { "chapters": [22, 26], "arc": "Unadapted (manga continuation)" } + ] +} diff --git a/src/data/mappings/iceblade-sorcerer.json b/src/data/mappings/iceblade-sorcerer.json new file mode 100644 index 0000000..bb71416 --- /dev/null +++ b/src/data/mappings/iceblade-sorcerer.json @@ -0,0 +1,23 @@ +{ + "anilistAnimeId": 148116, + "anilistMangaId": 123093, + "title": "The Iceblade Sorcerer Shall Rule the World", + "sourceNotes": "Season 1 is 12 episodes. Manga complete at 132 chapters (16 volumes); it is the first of two manga adaptations of Nana Mikoshiba's light novel and covers the same three story arcs as anime Season 1 (Sword Sorcerer, Magic Chevalier, Sorcerer's Eyes / LN Vols 1-3) before ending in Jan 2024 — a separate 'reboot' manga (Hyouken no Majutsushi ga Sekai o Suberu II) began serialization in 2026 starting directly at the Magicks War arc (LN Vol 4), which Season 2 (announced for Oct 2026, not yet aired) will adapt, so it is out of scope here. No confirmed per-chapter arc breakdown was published for the first manga; chapter boundaries below are apportioned across the complete 132-chapter run in the same ratio as the episode counts of each arc (per the show's fandom wiki per-episode arc tags) and should be treated as approximate.", + "mappings": [ + { + "episodes": [1, 5], + "chapters": [1, 55], + "arc": "The Sword Sorcerer Arc" + }, + { + "episodes": [6, 9], + "chapters": [56, 99], + "arc": "The Magic Chevalier Arc" + }, + { + "episodes": [10, 12], + "chapters": [100, 132], + "arc": "Sorcerer's Eyes Arc" + } + ] +} diff --git a/src/data/mappings/im-standing-on-a-million-lives.json b/src/data/mappings/im-standing-on-a-million-lives.json new file mode 100644 index 0000000..236e26a --- /dev/null +++ b/src/data/mappings/im-standing-on-a-million-lives.json @@ -0,0 +1,22 @@ +{ + "anilistAnimeId": 116242, + "anilistMangaId": 97371, + "title": "I'm Standing on a Million Lives", + "sourceNotes": "Cumulative episodes across S1 (12) + S2 (12). Manga ongoing (~24 volumes / current ch. ~120 as of mid-2026). The anime follows the manga's numbered \"quest\" arcs closely through cumulative episode 18 (S2 episode 6), after which S2's back half (eps 19-24) becomes an anime-original alternate take on the manga's Quest 6 (the Ihar-Nemore drug-cartel war), altered due to restrictions on depicting drug content, so it is not mapped to further chapters.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 12], + "arc": "Quest 1 (Troll) & Quest 2 (Radodorbo Cargo Delivery)" + }, + { + "episodes": [13, 24], + "chapters": [13, 25], + "arc": "Quest 3-5 (Island Battles, New Recruits, Aoyu's Farewell)" + }, + { + "chapters": [26, 120], + "arc": "Quest 6 onward: Ihar-Nemore Drug War (unadapted on TV, manga ongoing)" + } + ] +} diff --git a/src/data/mappings/inu-x-boku-secret-service.json b/src/data/mappings/inu-x-boku-secret-service.json new file mode 100644 index 0000000..88db789 --- /dev/null +++ b/src/data/mappings/inu-x-boku-secret-service.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 11013, + "anilistMangaId": 47207, + "title": "Inu X Boku Secret Service", + "sourceNotes": "Single-cour 12-episode anime (David Production, 2012), a faithful no-filler adaptation of the early manga (Cocoa Fujiwara). Manga complete at 61 chapters / 11 volumes (2009-2014). The anime covers only the opening stretch of the story, ending roughly around chapter 14 (through volume 3); sources on the exact cutoff conflict (cited anywhere from ch. 10-14), so the boundary here is approximate - refine via PR. The manga continues well past the anime with a major unadapted Time Skip arc starting around chapter 19.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 14], + "arc": "Anime Story (Roppongi household, early spirit cases)" + }, + { + "chapters": [15, 61], + "arc": "Manga-only continuation (incl. Time Skip arc)" + } + ] +} diff --git a/src/data/mappings/isekai-cheat-magician.json b/src/data/mappings/isekai-cheat-magician.json new file mode 100644 index 0000000..cc56a5a --- /dev/null +++ b/src/data/mappings/isekai-cheat-magician.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 101547, + "anilistMangaId": 99763, + "title": "Isekai Cheat Magician", + "sourceNotes": "Single-cour 12-episode TV anime (Encourage Films, 2019), plus a 2021 OVA (anime-original, not adapted from the manga). Sourced from Karin Suzuragi's manga adaptation (AniList 99763) of Taro Hitsuji's ongoing light novel; the manga is ongoing at roughly 20 published tankobon volumes (AniList lists no chapter count; current chapter is approximately the high 80s/low 90s as of 2026, though chapter numbering is inconsistent across aggregators). The anime covers Taichi and Rin's arrival in Altia, their training and adventures in Azpire, and the Eristein civil war, corresponding to manga chapters 1-57 per community continue-reading guides (viewers are pointed to resume the manga at vol. 13, ch. 58). Chapter ranges are approximate given the numbering inconsistencies noted above.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 57], + "arc": "Arrival in Altia through the Eristein Rebellion" + }, + { + "chapters": [58, 90], + "arc": "Later manga chapters (unadapted, approximate)" + } + ] +} diff --git a/src/data/mappings/jormungand.json b/src/data/mappings/jormungand.json new file mode 100644 index 0000000..89c746c --- /dev/null +++ b/src/data/mappings/jormungand.json @@ -0,0 +1,50 @@ +{ + "anilistAnimeId": 12413, + "anilistMangaId": 34611, + "title": "Jormungand", + "sourceNotes": "Cumulative episodes across S1 (12) + S2 'Perfect Order' (12) = 24; the S2 clip-show recap (Episode 12.5) is not counted. Manga complete at 70 chapters (11 volumes); S1 adapts volumes 1-6 (ch. 1-36) and S2 adapts volumes 7-11 (ch. 37-70), matching per-volume episode counts reported by Wikipedia. Arc names and boundaries taken from the fandom wiki's chapter and episode lists. One manga chapter (49, 'Serpent Looking Up to the Heavens') is adapted out of numeric sequence as a flashback cold-open in Episode 13; the ranges below follow overall chapter order rather than air order for that handoff.", + "mappings": [ + { + "episodes": [1, 1], + "chapters": [1, 2], + "arc": "Fire Hare / Gun Metal, Calico Road" + }, + { "episodes": [2, 2], "chapters": [3, 5], "arc": "Pulsar" }, + { "episodes": [3, 4], "chapters": [6, 10], "arc": "Musica Ex Machina" }, + { "episodes": [5, 5], "chapters": [11, 14], "arc": "Vein / Sea Route" }, + { + "episodes": [6, 7], + "chapters": [15, 20], + "arc": "African Golden Butterflies / Air Route" + }, + { "episodes": [8, 8], "chapters": [21, 24], "arc": "Mondo Grosso" }, + { "episodes": [9, 10], "chapters": [25, 29], "arc": "Dragon Shooter" }, + { + "episodes": [11, 12], + "chapters": [30, 36], + "arc": "Hill of Destruction / Pendulum" + }, + { + "episodes": [13, 15], + "chapters": [37, 42], + "arc": "Dance with Undershaft" + }, + { + "episodes": [16, 16], + "chapters": [43, 44], + "arc": "Kasper in Asia / Kasper and Jonah" + }, + { "episodes": [17, 18], "chapters": [45, 48], "arc": "Castle of Lies" }, + { + "episodes": [19, 19], + "chapters": [49, 53], + "arc": "Serpent Looking Up to the Heavens / Pazuzu" + }, + { "episodes": [20, 22], "chapters": [54, 65], "arc": "New World" }, + { + "episodes": [23, 24], + "chapters": [66, 70], + "arc": "War Monger / Century of Shame" + } + ] +} diff --git a/src/data/mappings/k.json b/src/data/mappings/k.json new file mode 100644 index 0000000..4258995 --- /dev/null +++ b/src/data/mappings/k.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 14467, + "anilistMangaId": 85261, + "title": "K", + "sourceNotes": "Single-cour anime, 13 episodes. Anime-original story; \"K: THE FIRST\" is a manga reconstruction of the same TV series storyline, complete at 16 chapters. No official episode-to-chapter guide was found, so the split follows the anime's well-documented two-part structure (murder-mystery setup, then the Colorless/Silver King revelation) with chapter boundaries estimated proportionally — treat as approximate.", + "mappings": [ + { + "episodes": [1, 6], + "chapters": [1, 7], + "arc": "Homra and Scepter 4 / The Shiro Murder Case" + }, + { + "episodes": [7, 13], + "chapters": [8, 16], + "arc": "Colorless King / Silver King Revelation" + } + ], + "movies": [ + { + "anilistId": 16904, + "title": "K: Missing Kings", + "year": 2014, + "afterEpisode": 13, + "note": "Canon direct sequel film bridging Season 1 to Season 2 (K: Return of Kings)." + } + ] +} diff --git a/src/data/mappings/kabaneri-of-the-iron-fortress.json b/src/data/mappings/kabaneri-of-the-iron-fortress.json new file mode 100644 index 0000000..15ab80c --- /dev/null +++ b/src/data/mappings/kabaneri-of-the-iron-fortress.json @@ -0,0 +1,37 @@ +{ + "anilistAnimeId": 21196, + "anilistMangaId": 104517, + "title": "Kabaneri of the Iron Fortress", + "sourceNotes": "12-episode original anime (Wit Studio, 2016) paired with a concurrent 28-chapter (4-volume, complete) tie-in manga by Shiro Yoshida that follows the same story; a published chapter-to-episode guide was not found, so chapter ranges are proportioned across the anime's four major story beats (Aragane Station outbreak, the Black Fog at Yashiro Station, Biba Amatori's introduction, and the Kongokaku finale).", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 9], + "arc": "Aragane Station Outbreak / Birth of the Kabaneri" + }, + { + "episodes": [5, 6], + "chapters": [10, 14], + "arc": "The Black Fog at Yashiro Station" + }, + { + "episodes": [7, 8], + "chapters": [15, 19], + "arc": "Biba Amatori and the Hunters" + }, + { + "episodes": [9, 12], + "chapters": [20, 28], + "arc": "Biba's Betrayal / Kongokaku Showdown" + } + ], + "movies": [ + { + "anilistId": 97918, + "title": "Kabaneri of the Iron Fortress: The Battle of Unato", + "year": 2019, + "afterEpisode": 12, + "note": "Canon sequel film set six months after the TV series with entirely new story content, not adapted from the tie-in manga." + } + ] +} diff --git a/src/data/mappings/kaiji-ultimate-survivor.json b/src/data/mappings/kaiji-ultimate-survivor.json new file mode 100644 index 0000000..bdc311a --- /dev/null +++ b/src/data/mappings/kaiji-ultimate-survivor.json @@ -0,0 +1,24 @@ +{ + "anilistAnimeId": 3002, + "anilistMangaId": 33572, + "title": "Kaiji - Ultimate Survivor", + "sourceNotes": "Single 26-episode season adapting the complete first manga series, Gambling Apocalypse: Kaiji (Tobaku Mokushiroku Kaiji) — 158 chapters, complete. Arc boundaries follow the manga's well-known gambling arcs, cross-checked against Denpa's English omnibus subtitles (Survival of the Fittest/Machiavellianism = Espoir, Human Derby, Multistoried Funambulism = Brave Men's Road, Invincible Emperor/Counterattacking Slave = E-Card). The E-Card/Tissue Box Raffle split (ch. 144/145) is approximate since no precise chapter-level source was found; refine via PR if a definitive source turns up. The sequel anime/manga (Hakairoku-hen) draws on a wholly separate manga and is not covered by this mapping.", + "mappings": [ + { + "episodes": [1, 9], + "chapters": [1, 54], + "arc": "Espoir Arc (Restricted Rock-Paper-Scissors)" + }, + { + "episodes": [10, 14], + "chapters": [55, 93], + "arc": "Castle of Despair: Human Derby & Brave Men's Road" + }, + { "episodes": [15, 21], "chapters": [94, 144], "arc": "E-Card" }, + { + "episodes": [22, 26], + "chapters": [145, 158], + "arc": "Tissue Box Raffle (Finale)" + } + ] +} diff --git a/src/data/mappings/kamikatsu.json b/src/data/mappings/kamikatsu.json new file mode 100644 index 0000000..9c6a86d --- /dev/null +++ b/src/data/mappings/kamikatsu.json @@ -0,0 +1,16 @@ +{ + "anilistAnimeId": 148048, + "anilistMangaId": 130965, + "title": "KamiKatsu: Working for God in a Godless World", + "sourceNotes": "Single-cour, 12 episodes (Apr-Jul 2023), 0 filler. AniList reports null chapter/volume counts for both the anime and manga entries; manga is ongoing at ch. 69 across 13 volumes (~5.3 ch/volume) as of its official Hero's Web (Comiplex) serialization in July 2026. The anime adapts through ch. 38 (~vol. 7), covering Yukito founding the goddess Mitama's faith and her rival-god confrontations with Atar/Loki (eps 1-5), Dakini (eps 6-8), and Gaia (eps 9-12); per-episode chapter boundaries within each confrontation are approximate estimates from episode synopses, not a confirmed chapter-sync guide.", + "mappings": [ + { + "episodes": [1, 5], + "chapters": [1, 16], + "arc": "Founding the Faith / Atar & Loki" + }, + { "episodes": [6, 8], "chapters": [17, 27], "arc": "Dakini Arc" }, + { "episodes": [9, 12], "chapters": [28, 38], "arc": "Gaia Arc" }, + { "chapters": [39, 69], "arc": "Unadapted ongoing manga (post-anime)" } + ] +} diff --git a/src/data/mappings/kawai-complex.json b/src/data/mappings/kawai-complex.json new file mode 100644 index 0000000..95184cc --- /dev/null +++ b/src/data/mappings/kawai-complex.json @@ -0,0 +1,10 @@ +{ + "anilistAnimeId": 20529, + "anilistMangaId": 56769, + "title": "The Kawai Complex Guide to Manors and Hostel Behavior", + "sourceNotes": "Single-cour 12-episode TV anime (2014) adapting manga volumes 1-3 (chapters 1-28). Manga complete at 94 chapters across 11 volumes; the anime covers roughly the first third, leaving the remainder unadapted. A side-story OVA and 4-koma spinoff exist but are excluded here.", + "mappings": [ + { "episodes": [1, 12], "chapters": [1, 28], "arc": "TV Series" }, + { "chapters": [29, 94], "arc": "Unadapted (manga continuation)" } + ] +} diff --git a/src/data/mappings/kaze-no-stigma.json b/src/data/mappings/kaze-no-stigma.json new file mode 100644 index 0000000..9932c93 --- /dev/null +++ b/src/data/mappings/kaze-no-stigma.json @@ -0,0 +1,26 @@ +{ + "anilistAnimeId": 1691, + "anilistMangaId": 40312, + "title": "Kaze no Stigma", + "sourceNotes": "24-episode anime adapts all 6 main light novel volumes (39 chapters + epilogues total; author Takahiro Yamato died in 2009, leaving the 6 side-story 'Ignition' compilations as a separate, unadapted spin-off). Episodic structure runs ~4 episodes per volume, so arc boundaries are approximated at one volume per arc using the official volume subtitles; precise chapter-level guides were not available.", + "mappings": [ + { "episodes": [1, 4], "chapters": [1, 7], "arc": "Kaze no Stigma" }, + { "episodes": [5, 8], "chapters": [8, 14], "arc": "The Price of a Soul" }, + { + "episodes": [9, 12], + "chapters": [15, 21], + "arc": "The Confession Under the Moon" + }, + { + "episodes": [13, 16], + "chapters": [22, 26], + "arc": "The Lazuline Afterimage" + }, + { + "episodes": [17, 20], + "chapters": [27, 33], + "arc": "The Scarlet Contract" + }, + { "episodes": [21, 24], "chapters": [34, 39], "arc": "The Hurricane Pike" } + ] +} diff --git a/src/data/mappings/kids-on-the-slope.json b/src/data/mappings/kids-on-the-slope.json new file mode 100644 index 0000000..942d266 --- /dev/null +++ b/src/data/mappings/kids-on-the-slope.json @@ -0,0 +1,18 @@ +{ + "anilistAnimeId": 12531, + "anilistMangaId": 58393, + "title": "Kids on the Slope", + "sourceNotes": "Single season, 12 episodes. Manga complete at 53 chapters. The anime is a compressed but essentially complete adaptation, reaching the same 'eight years later' epilogue as the manga rather than stopping mid-story; it drops many subplots and chapter-level detail to fit the runtime, so the split below is approximate — refine via PR.", + "mappings": [ + { + "episodes": [1, 11], + "chapters": [1, 40], + "arc": "Sasebo High School Days" + }, + { + "episodes": [12, 12], + "chapters": [41, 53], + "arc": "Graduation & Eight Years Later" + } + ] +} diff --git a/src/data/mappings/kill-la-kill.json b/src/data/mappings/kill-la-kill.json new file mode 100644 index 0000000..f7837bd --- /dev/null +++ b/src/data/mappings/kill-la-kill.json @@ -0,0 +1,18 @@ +{ + "anilistAnimeId": 18679, + "anilistMangaId": 88609, + "title": "Kill la Kill", + "sourceNotes": "24-episode anime with a 17-chapter manga tie-in by Ryo Akizuki that was cancelled before finishing the story. Chapters 1-7 follow the anime closely through Ep. 4 (roughly two chapters per episode); Ep. 6 is skipped outright and Eps. 8-11 are heavily abridged (no Elite Four backstories, shortened fights). The manga ends partway through Ep. 12's events (Mako talking Ryuko down) and never reaches the anime's Naturals Election finale or any of the later arcs.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 7], + "arc": "Honnouji Academy Uniform Hierarchy" + }, + { + "episodes": [5, 12], + "chapters": [8, 17], + "arc": "Naturals Election / Elite Four (manga ends unfinished)" + } + ] +} diff --git a/src/data/mappings/kiznaiver.json b/src/data/mappings/kiznaiver.json new file mode 100644 index 0000000..f365485 --- /dev/null +++ b/src/data/mappings/kiznaiver.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 21421, + "anilistMangaId": 87447, + "title": "Kiznaiver", + "sourceNotes": "12-episode original anime (Studio Trigger, written by Mari Okada, 2016) paired with a concurrent 9-chapter (2-volume, complete) tie-in manga by Roji Karegishi that retells the same story; a published chapter-to-episode guide was not found, so chapter ranges are proportioned across the anime's two halves.", + "mappings": [ + { + "episodes": [1, 6], + "chapters": [1, 5], + "arc": "The Kizna Program Begins" + }, + { "episodes": [7, 12], "chapters": [6, 9], "arc": "Bonds and Resolution" } + ] +} diff --git a/src/data/mappings/kotoura-san.json b/src/data/mappings/kotoura-san.json new file mode 100644 index 0000000..6d3dce9 --- /dev/null +++ b/src/data/mappings/kotoura-san.json @@ -0,0 +1,13 @@ +{ + "anilistAnimeId": 15379, + "anilistMangaId": 73443, + "title": "The Troubled Life of Miss Kotoura", + "sourceNotes": "Single season, 12 episodes. Manga complete at 39 chapters (7 volumes, 2010-2015) — a 4-koma gag/comedy series. The anime restructures the material into its own continuous, more dramatic narrative (e.g. the confession/reconciliation beat lands in the finale, versus as early as Ch. 3 in the manga), so episode-to-chapter correspondence is not sequential. 4-koma source — chapter ranges are approximate.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 39], + "arc": "Full Series (Anime-Original Narrative Order)" + } + ] +} diff --git a/src/data/mappings/kubo-wont-let-me-be-invisible.json b/src/data/mappings/kubo-wont-let-me-be-invisible.json new file mode 100644 index 0000000..55a7078 --- /dev/null +++ b/src/data/mappings/kubo-wont-let-me-be-invisible.json @@ -0,0 +1,10 @@ +{ + "anilistAnimeId": 148969, + "anilistMangaId": 112981, + "title": "Kubo Won't Let Me Be Invisible", + "sourceNotes": "Single 12-episode season (2023). Manga complete at 158 chapters per AniList (12 volumes, Weekly Young Jump). The anime adapts through roughly chapter 47, reordering some material for pacing. Slice-of-life romantic comedy with no distinct named arcs, so mapping uses one broad anime-adapted range plus the unadapted post-anime tail.", + "mappings": [ + { "episodes": [1, 12], "chapters": [1, 47], "arc": "Anime-Adapted Story" }, + { "chapters": [48, 158], "arc": "Unadapted Manga (Post-Anime)" } + ] +} diff --git a/src/data/mappings/life-lessons-with-uramichi-oniisan.json b/src/data/mappings/life-lessons-with-uramichi-oniisan.json new file mode 100644 index 0000000..8121405 --- /dev/null +++ b/src/data/mappings/life-lessons-with-uramichi-oniisan.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 112802, + "anilistMangaId": 100704, + "title": "Life Lessons with Uramichi Oniisan", + "sourceNotes": "Anime is 13 TV episodes (2020-2021), adapting Volumes 1-4 of the manga (through roughly chapter 36) with some anime-exclusive scenes woven in. Manga ongoing (current ch. ~76). Episodic workplace comedy with no distinct named story arcs.", + "mappings": [ + { + "episodes": [1, 13], + "chapters": [1, 36], + "arc": "Season 1 (TV) — Volumes 1-4" + }, + { "chapters": [37, 76], "arc": "Manga-only chapters (post-anime)" } + ] +} diff --git a/src/data/mappings/lord-marksman-and-vanadis.json b/src/data/mappings/lord-marksman-and-vanadis.json new file mode 100644 index 0000000..97ead38 --- /dev/null +++ b/src/data/mappings/lord-marksman-and-vanadis.json @@ -0,0 +1,15 @@ +{ + "anilistAnimeId": 20809, + "anilistMangaId": 73391, + "title": "Lord Marksman and Vanadis", + "sourceNotes": "Single-cour, 13-episode anime adapting the first five light novel volumes in full. Manga (Nobuhiko Yanai, Comic Flapper) is complete at 51 chapters covering the same span as the anime, so the whole manga is adapted with no unadapted tail. Arc names come from the fandom wiki's 'Arc One' breakdown (Archer and Vanadis / Two Vanadis / Roland); exact chapter boundaries are approximated from the wiki's episode synopses since no chapter-precise guide was found, so treat them as approximate.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 12], + "arc": "Archer and Vanadis Arc" + }, + { "episodes": [4, 5], "chapters": [13, 20], "arc": "Two Vanadis Arc" }, + { "episodes": [6, 13], "chapters": [21, 51], "arc": "Roland Arc" } + ] +} diff --git a/src/data/mappings/love-after-world-domination.json b/src/data/mappings/love-after-world-domination.json new file mode 100644 index 0000000..976c9ac --- /dev/null +++ b/src/data/mappings/love-after-world-domination.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 132010, + "anilistMangaId": 111390, + "title": "Love After World Domination", + "sourceNotes": "Single-cour 12-episode TV anime (Project No.9, 2022). Manga complete at 37 chapters across 6 volumes, though the series was cancelled and ended without a full narrative conclusion. Fan continue-reading guides indicate the anime adapts all but the last chapter of Volume 4, i.e. chapters 1-24; the remaining chapters were never adapted. No distinct named story arcs, so broad season/volume-based entries are used.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 24], + "arc": "Season 1 (Volumes 1-4)" + }, + { + "chapters": [25, 37], + "arc": "Unadapted (Volumes 4-6, manga ended unresolved)" + } + ] +} diff --git a/src/data/mappings/love-tyrant.json b/src/data/mappings/love-tyrant.json new file mode 100644 index 0000000..df43378 --- /dev/null +++ b/src/data/mappings/love-tyrant.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 21517, + "anilistMangaId": 71949, + "title": "Love Tyrant", + "sourceNotes": "Single 12-episode TV season (2017). Manga (Renai Boukun) complete at 61 chapters (14 volumes, 2013-2018) — only ~11 volumes (ch 1-44) were published by the time the anime finished airing. The anime adapts the manga's opening arc faithfully through ch 32 across its 12 episodes, condensing/omitting some minor manga chapters and side characters along the way; chapters 33-61 (the manga's back half, including characters and plotlines never introduced in the anime) remain unadapted.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 32], + "arc": "Cupid's Contract / Harem Formation Arc" + }, + { + "chapters": [33, 61], + "arc": "Later chapters (unadapted; anime does not continue)" + } + ] +} diff --git a/src/data/mappings/lycoris-recoil.json b/src/data/mappings/lycoris-recoil.json new file mode 100644 index 0000000..7552812 --- /dev/null +++ b/src/data/mappings/lycoris-recoil.json @@ -0,0 +1,19 @@ +{ + "anilistAnimeId": 143270, + "anilistMangaId": 151808, + "title": "Lycoris Recoil", + "sourceNotes": "13-episode anime (2022). Original anime; manga tie-in by Yasunori Bizen is ongoing (current ch. 40 across 8 volumes as of Jan 2026), retelling the anime at roughly 3 chapters per episode. The TV story wraps around ch. 39, with ch. 40+ moving into new original material beyond the anime's ending. Arc split follows the series' well-documented structural turn at episode 6/7 from episodic slice-of-life to the Majima/DA conspiracy plot.", + "mappings": [ + { + "episodes": [1, 6], + "chapters": [1, 18], + "arc": "Direct Attack Missions / Cafe LycoReco (Episodic)" + }, + { + "episodes": [7, 13], + "chapters": [19, 39], + "arc": "Alan Institute Conspiracy / Chisato's Past" + }, + { "chapters": [40, 40], "arc": "Original Continuation (Post-Anime)" } + ] +} diff --git a/src/data/mappings/magical-girl-site.json b/src/data/mappings/magical-girl-site.json new file mode 100644 index 0000000..0e7c3ae --- /dev/null +++ b/src/data/mappings/magical-girl-site.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 100010, + "anilistMangaId": 85666, + "title": "MAGICAL GIRL SITE", + "sourceNotes": "Single-cour 12-episode TV anime (production doA, 2018). Manga complete at 141 chapters / 16 volumes per AniList (some fan sources cite 139 for the same complete run; the discrepancy is bonus/renumbered installments). The anime follows the manga fairly closely through roughly chapter 46 (Nijimin's funeral), then diverges into an anime-original ending for its final episode(s) rather than adapting further chapters. Chapters 47-141 continue the manga-only story past that divergence point.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 46], + "arc": "Magical Girl Site (TV adaptation, diverges before the finale)" + }, + { "chapters": [47, 141], "arc": "Unadapted continuation" } + ] +} diff --git a/src/data/mappings/magical-sempai.json b/src/data/mappings/magical-sempai.json new file mode 100644 index 0000000..d1e82ad --- /dev/null +++ b/src/data/mappings/magical-sempai.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 105074, + "anilistMangaId": 87056, + "title": "Magical Sempai", + "sourceNotes": "12-episode single-cour anime (Liden Films, 2019); each ~12-minute episode strings together 3-5 short skits drawn non-sequentially from the manga (the finale alone pulls from ch. 78, 24, 10, and 15). Manga complete at 134 chapters (8 volumes, Weekly Young Magazine, 2016-2021). The anime's material is drawn from up through roughly ch. 78; chs. 79-134 (the manga's final two volumes) are unadapted. Chapter ranges are approximate given the non-linear episode-to-chapter drawing.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 78], + "arc": "Magic Club Antics (Season 1 material)" + }, + { "chapters": [79, 134], "arc": "Post-anime (unadapted)" } + ] +} diff --git a/src/data/mappings/marriagetoxin.json b/src/data/mappings/marriagetoxin.json new file mode 100644 index 0000000..73613a8 --- /dev/null +++ b/src/data/mappings/marriagetoxin.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 199547, + "anilistMangaId": 147329, + "title": "MARRIAGETOXIN", + "sourceNotes": "Single 13-episode season. Manga ongoing (current ch. 171); AniList does not track chapter counts for this series so figures are sourced from tracking sites. Arc names and chapter boundaries from the series' fandom wiki, cross-checked against per-episode adaptation notes (e.g. Episode 4 = ch. 10-12, Episode 7 = ch. 20-23, Episode 13 = ch. 45-48). The finale straddles the Beast User and Teruaki arcs.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 9], + "arc": "Intro Arc / Water User Arc" + }, + { + "episodes": [4, 6], + "chapters": [10, 19], + "arc": "Sound User Arc" + }, + { + "episodes": [7, 7], + "chapters": [20, 23], + "arc": "Bug User's Wedding Arc" + }, + { + "episodes": [8, 13], + "chapters": [24, 48], + "arc": "Beast User Arc" + }, + { + "chapters": [49, 171], + "arc": "Teruaki Arc onward (unadapted)" + } + ] +} diff --git a/src/data/mappings/mayo-chiki.json b/src/data/mappings/mayo-chiki.json new file mode 100644 index 0000000..996e2ca --- /dev/null +++ b/src/data/mappings/mayo-chiki.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 10110, + "anilistMangaId": 51860, + "title": "Mayo Chiki!", + "sourceNotes": "Single-cour 13-episode TV anime (2011) adapting Hajime Asano's light novel; paired here with the NEET-illustrated manga adaptation (complete at 39 chapters across 7 volumes). Anime covers through roughly manga chapter 18 (readers are pointed to Vol. 4 Ch. 19 to continue after the anime); episode 13 is a largely anime-original epilogue. Continuous rom-com without formally named story arcs.", + "mappings": [ + { + "episodes": [1, 13], + "chapters": [1, 18], + "arc": "TV Anime Adaptation (Subaru's Secret → Butler Reinstatement)" + }, + { + "chapters": [19, 39], + "arc": "Unadapted manga chapters (never adapted in the TV anime)" + } + ] +} diff --git a/src/data/mappings/my-girlfriend-is-shobitch.json b/src/data/mappings/my-girlfriend-is-shobitch.json new file mode 100644 index 0000000..87a68f3 --- /dev/null +++ b/src/data/mappings/my-girlfriend-is-shobitch.json @@ -0,0 +1,10 @@ +{ + "anilistAnimeId": 98951, + "anilistMangaId": 87186, + "title": "My Girlfriend is Shobitch", + "sourceNotes": "10-episode anime adapts the start of the 4-koma romance manga (complete at 87 chapters + a special). The anime jumps around the manga's loosely-connected gag chapters rather than following a strict order, with a noticeably faithful stretch through the first ~55 chapters; readers continuing after the anime pick up around volume 5, chapter 56. Chapter ranges are approximate given the anthology-style source.", + "mappings": [ + { "episodes": [1, 10], "chapters": [1, 55], "arc": "Anime Adaptation" }, + { "chapters": [56, 87], "arc": "Manga-only Continuation" } + ] +} diff --git a/src/data/mappings/my-isekai-life.json b/src/data/mappings/my-isekai-life.json new file mode 100644 index 0000000..3fbcc4b --- /dev/null +++ b/src/data/mappings/my-isekai-life.json @@ -0,0 +1,19 @@ +{ + "anilistAnimeId": 129192, + "anilistMangaId": 106144, + "title": "My Isekai Life: I Gained a Second Character Class and Became the Strongest Sage in the World!", + "sourceNotes": "Single-cour, 12 episodes (Jul-Sep 2022). Source is Shinkoshoto's web/light novel (SB Creative, 19 LN volumes as of March 2026); AniList reports null chapter/volume counts for both the LN and its 'Manga UP!' manga tie-in, so the manga (used here as the chaptered 'chapters' axis) is tracked externally at ch. 93 across 32 volumes as of mid-2026 and is ongoing (Manga UP! splits most numbered chapters into .1/.2 parts). The anime heavily abridges and reorders the early story; per community anime-to-manga sync guides it corresponds to manga ch. 1-19 (through eps 1-9), after which eps 10-12 are mostly anime-original and adapt no further chapters.", + "mappings": [ + { + "episodes": [1, 9], + "chapters": [1, 19], + "arc": "Isekai Arrival / Adventurer's Guild / Sage Awakening" + }, + { + "episodes": [10, 12], + "chapters": [19, 19], + "arc": "Anime-original epilogue (no manga source)" + }, + { "chapters": [20, 93], "arc": "Unadapted ongoing manga" } + ] +} diff --git a/src/data/mappings/my-mental-choices.json b/src/data/mappings/my-mental-choices.json new file mode 100644 index 0000000..681f992 --- /dev/null +++ b/src/data/mappings/my-mental-choices.json @@ -0,0 +1,13 @@ +{ + "anilistAnimeId": 19221, + "anilistMangaId": 84593, + "title": "My Mental Choices Are Completely Interfering With My School Romantic Comedy", + "sourceNotes": "Single-cour, 10 episodes total. Original source is a 12-volume light novel (AniList id 84431, chapters untracked); this mapping instead uses the closely-following manga adaptation by Sayaka Itsuki (5 volumes, complete at 23 chapters), which is the entry AniList tracks by chapter count. Episodic girl-of-the-week comedy format with no distinct named story arcs, so a single broad mapping is used; chapter boundaries are approximate.", + "mappings": [ + { + "episodes": [1, 10], + "chapters": [1, 23], + "arc": "Series (episodic comedy, no distinct arcs)" + } + ] +} diff --git a/src/data/mappings/my-status-as-an-assassin.json b/src/data/mappings/my-status-as-an-assassin.json new file mode 100644 index 0000000..22dcfcb --- /dev/null +++ b/src/data/mappings/my-status-as-an-assassin.json @@ -0,0 +1,13 @@ +{ + "anilistAnimeId": 186794, + "anilistMangaId": 103655, + "title": "My Status as an Assassin Obviously Exceeds the Hero's", + "sourceNotes": "12-episode single-cour anime (TMS Entertainment/Sunrise, Oct-Dec 2025) adapts the Matsuri Akai light novel directly; the Hiroyuki Aigamo manga (Comic Gardo, since July 2018) is a parallel adaptation of the same novel rather than the anime's source, and lags well behind the anime's pace. Manga ongoing, current ch. 37 as of July 2026; AniList lists chapters as null. By the time the manga catches up to ch. 37 the story has only reached roughly the midpoint of episode 7, so episodes 8-12 have no manga equivalent yet and aren't mapped. Chapter boundaries are approximate; no distinct named arcs are documented for this series.", + "mappings": [ + { + "episodes": [1, 7], + "chapters": [1, 37], + "arc": "Retice Kingdom Summoning & Early Assassin Missions" + } + ] +} diff --git a/src/data/mappings/mysterious-girlfriend-x.json b/src/data/mappings/mysterious-girlfriend-x.json new file mode 100644 index 0000000..84a3908 --- /dev/null +++ b/src/data/mappings/mysterious-girlfriend-x.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 12467, + "anilistMangaId": 31926, + "title": "Mysterious Girlfriend X", + "sourceNotes": "Single season: 12 TV episodes (Hoods Entertainment, 2012) plus a 13th-episode OVA bundled with Volume 9 of the manga, matching AniList's 13-episode total. Manga complete at 101 chapters per AniList (frequently cited elsewhere as 92 chapters across 12 volumes; the discrepancy likely reflects raw serialized vs. tankobon-collected chapter counts). The anime adapts roughly the first third of the story, commonly cited as ending around chapter 36 of the 92-chapter count (~chapter 40 scaled to AniList's total) with the OVA functioning as a bundled side story rather than the immediate next chapter, so chapter ranges are approximate.", + "mappings": [ + { + "episodes": [1, 13], + "chapters": [1, 40], + "arc": "TV Series + OVA (Tsubaki & Urabe)" + }, + { "chapters": [41, 101], "arc": "Unadapted continuation (manga-only)" } + ] +} diff --git a/src/data/mappings/nanbaka.json b/src/data/mappings/nanbaka.json new file mode 100644 index 0000000..58877bb --- /dev/null +++ b/src/data/mappings/nanbaka.json @@ -0,0 +1,22 @@ +{ + "anilistAnimeId": 21051, + "anilistMangaId": 86693, + "title": "NANBAKA", + "sourceNotes": "Cumulative episodes across S1 (13) + 'NANBAKA - Part Two' ONA (12) = 25. Manga complete at 423 chapters (short, densely paced comico webcomic chapters, collected into 8 volumes). Arc boundaries follow the fandom wiki's 'Part One'-'Part Five' story groupings; S1 covers all of Part One (New Year's Cooperation Tournament and its aftermath). S2 covers only the first portion of Part Two, ending mid-arc around ch. 94 per community consensus on where to resume reading — the remainder of Part Two plus Parts Three-Five are unadapted.", + "mappings": [ + { + "episodes": [1, 13], + "chapters": [1, 37], + "arc": "Part One — New Year's Cooperation Tournament" + }, + { + "episodes": [14, 25], + "chapters": [38, 94], + "arc": "Part Two — Receiving Rewards / Building 5 (partial)" + }, + { + "chapters": [95, 423], + "arc": "Unadapted (rest of Part Two through Part Five)" + } + ] +} diff --git a/src/data/mappings/no-longer-allowed-in-another-world.json b/src/data/mappings/no-longer-allowed-in-another-world.json new file mode 100644 index 0000000..2a6e0f9 --- /dev/null +++ b/src/data/mappings/no-longer-allowed-in-another-world.json @@ -0,0 +1,10 @@ +{ + "anilistAnimeId": 152137, + "anilistMangaId": 112253, + "title": "No Longer Allowed in Another World", + "sourceNotes": "Single 12-episode season (Atelier Pontdarc, 2024) adapts manga chapters 1-29 (through volume 5). Manga ongoing (current ch. 62 translated / vol. 15 raw as of mid-2026); episodic dark-comedy structure with no widely established named story arcs, so mapping uses broad coverage entries.", + "mappings": [ + { "episodes": [1, 12], "chapters": [1, 29], "arc": "TV Anime Adaptation" }, + { "chapters": [30, 62], "arc": "Unadapted Chapters" } + ] +} diff --git a/src/data/mappings/noblesse.json b/src/data/mappings/noblesse.json new file mode 100644 index 0000000..b708e7b --- /dev/null +++ b/src/data/mappings/noblesse.json @@ -0,0 +1,11 @@ +{ + "anilistAnimeId": 116005, + "anilistMangaId": 59983, + "title": "Noblesse", + "sourceNotes": "13-episode TV series picks up after the separate Noblesse: Awakening ONA and begins at webtoon 'Season 2' (chapter 93); episode 8 opens the visit to Lukedonia. Series runs through the end of the Lukedonia arc (chapter 200); readers are pointed to resume the manhwa at chapter 201. Manga complete at 544 chapters. Episode/chapter split at the arc boundary is approximate.", + "mappings": [ + { "episodes": [1, 7], "chapters": [93, 154], "arc": "DA-5 Arc" }, + { "episodes": [8, 13], "chapters": [155, 200], "arc": "Lukedonia Arc" }, + { "chapters": [201, 544], "arc": "Manga-Only Continuation" } + ] +} diff --git a/src/data/mappings/nyaruko.json b/src/data/mappings/nyaruko.json new file mode 100644 index 0000000..3121404 --- /dev/null +++ b/src/data/mappings/nyaruko.json @@ -0,0 +1,11 @@ +{ + "anilistAnimeId": 11785, + "anilistMangaId": 53485, + "title": "Nyaruko: Crawling with Love!", + "sourceNotes": "Cumulative episodes across S1 (12) + Season W (12) = 24. Source is Manta Aisora's light novel, complete at 12 volumes / 65 chapters per AniList. S1 loosely adapts volumes 1-4 (~chapters 1-22); Season W draws mainly from volumes 5-7 (~chapters 23-40) but sprinkles in material out of order, and its finale adapts a short story from volume 11. The adaptation is a gag/comedy series that reorders and omits content freely, so chapter ranges are approximate. Chapters 41-65 (most of volumes 8-10 and 12) are unadapted. A separate flash-animated OVA series (Haiyoru! Nyaruani, 2009-2010) predates this TV adaptation and is a different production; a 1-episode OVA (\"F\", 2015) also exists but is not included in this mapping's episode numbering.", + "mappings": [ + { "episodes": [1, 12], "chapters": [1, 22], "arc": "Season 1" }, + { "episodes": [13, 24], "chapters": [23, 40], "arc": "Season W" }, + { "chapters": [41, 65], "arc": "Unadapted (Volumes 8-10, 12)" } + ] +} diff --git a/src/data/mappings/oddtaxi.json b/src/data/mappings/oddtaxi.json new file mode 100644 index 0000000..bde8890 --- /dev/null +++ b/src/data/mappings/oddtaxi.json @@ -0,0 +1,34 @@ +{ + "anilistAnimeId": 128547, + "anilistMangaId": 128564, + "title": "ODDTAXI", + "sourceNotes": "Original anime (13 episodes, written by Kazuya Konomoto); the manga adaptation by Konomoto and artist Takeichi Abaraya began serialization before the anime aired and ran roughly a year past it, closely tracking the same story chapter-for-chapter. Manga complete at 37 chapters (5 volumes); the fandom wiki's chapter list marks which chapter each episode's material starts at, used directly below. The final 2 chapters (36-37) are manga-only bonus/epilogue content with no TV counterpart.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 9], + "arc": "Odokawa's fares & the missing girl" + }, + { + "episodes": [4, 6], + "chapters": [10, 16], + "arc": "The investigation widens" + }, + { "episodes": [7, 9], "chapters": [17, 24], "arc": "Threads converge" }, + { + "episodes": [10, 13], + "chapters": [25, 35], + "arc": "Endgame & Odokawa's secret" + }, + { "chapters": [36, 37], "arc": "Bonus epilogue (manga-only)" } + ], + "movies": [ + { + "anilistId": 143080, + "title": "ODDTAXI In The Woods", + "year": 2022, + "afterEpisode": 13, + "note": "Documentary-style 'reconstruction' of the TV series' events with new epilogue content set after the finale." + } + ] +} diff --git a/src/data/mappings/osamake.json b/src/data/mappings/osamake.json new file mode 100644 index 0000000..ddbb626 --- /dev/null +++ b/src/data/mappings/osamake.json @@ -0,0 +1,16 @@ +{ + "anilistAnimeId": 124675, + "anilistMangaId": 114015, + "title": "Osamake: Romcom Where The Childhood Friend Won't Lose", + "sourceNotes": "Single 12-episode season (Doga Kobo, 2021), adapted from the light novel (13 volumes, complete 2025); the anime covers light novel volumes 1-4 at roughly 3 episodes per volume. The separate main manga (complete, 51 chapters / 8 volumes, ~2 manga volumes per light-novel volume) covers that same story span rather than continuing past it, so its full run is mapped across the season. Per-episode LN volume checkpoints are documented (ep. 1 opens vol. 1, ep. 9 closes vol. 3, ep. 12 closes vol. 4); manga chapter boundaries within each LN volume are proportional approximations.", + "mappings": [ + { "episodes": [1, 3], "chapters": [1, 13], "arc": "Light Novel Volume 1" }, + { "episodes": [4, 6], "chapters": [14, 26], "arc": "Light Novel Volume 2" }, + { "episodes": [7, 9], "chapters": [27, 38], "arc": "Light Novel Volume 3" }, + { + "episodes": [10, 12], + "chapters": [39, 51], + "arc": "Light Novel Volume 4" + } + ] +} diff --git a/src/data/mappings/ossan-newbie-adventurer.json b/src/data/mappings/ossan-newbie-adventurer.json new file mode 100644 index 0000000..b6b8734 --- /dev/null +++ b/src/data/mappings/ossan-newbie-adventurer.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 163292, + "anilistMangaId": 114048, + "title": "The Ossan Newbie Adventurer, Trained to Death by the Most Powerful Party, Became Invincible", + "sourceNotes": "Single season, 12 episodes. Adapted from Kiraku Kishima's light novel; the manga (Ken Ogino, id 114048) is used as the chapter source. Manga ongoing (13 volumes as of May 2026, approx. ch. 75 as of mid-2026). The anime adapts through roughly manga Vol. 6 Ch. 35 (Rookie Examiner / Fist King Tournament arcs), with remaining chapters unadapted continuation.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 35], + "arc": "Rookie Examiner / Fist King Tournament Arc" + }, + { + "chapters": [36, 75], + "arc": "Unadapted continuation (ongoing)" + } + ] +} diff --git a/src/data/mappings/our-dating-story.json b/src/data/mappings/our-dating-story.json new file mode 100644 index 0000000..4861405 --- /dev/null +++ b/src/data/mappings/our-dating-story.json @@ -0,0 +1,10 @@ +{ + "anilistAnimeId": 154459, + "anilistMangaId": 144718, + "title": "Our Dating Story: The Experienced You and The Inexperienced Me", + "sourceNotes": "Single-cour, 12 episodes. Original source is a light novel (finished at 10 volumes); this mapping uses the same-story manga adaptation (ongoing, current ch. ~50) for concrete chapter numbers since AniList does not track the novel's chapter count. The anime's 12 episodes adapt roughly manga chapters 1-30 (viewers are pointed to continue from ch. 31 after the finale, though the manga diverges from the anime's ending). No distinct named story arcs — a straightforward romance chronology.", + "mappings": [ + { "episodes": [1, 12], "chapters": [1, 30], "arc": "Anime-Adapted Story" }, + { "chapters": [31, 50], "arc": "Unadapted Manga Continuation" } + ] +} diff --git a/src/data/mappings/outbreak-company.json b/src/data/mappings/outbreak-company.json new file mode 100644 index 0000000..94e18f6 --- /dev/null +++ b/src/data/mappings/outbreak-company.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 19369, + "anilistMangaId": 84983, + "title": "Outbreak Company", + "sourceNotes": "Single-cour, 12-episode anime (2013) has a semi-original storyline that compresses and rearranges events from light novel volumes 1-4 and 7 (of an eventual 18, ~75 chapters total per AniList). Because Ichiro Sakaki's separate manga adaptation by Kiri Kajiya only ran 4 volumes/25 chapters (2012-2014) and doesn't track the anime's rearranged order, this mapping uses light-novel chapter numbers as the 'chapters' unit instead (same approach as realist-hero.json). Chapter boundaries for the compressed/rearranged span are approximate. Light novel finished at 18 volumes (Aug 2017); unadapted volumes included at the tail. No movies.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 30], + "arc": "TV Anime (LN Vols 1-4 & 7, compressed/rearranged)" + }, + { "chapters": [31, 75], "arc": "Unadapted Light Novel (Vols 5-6, 8-18)" } + ] +} diff --git a/src/data/mappings/parallel-world-pharmacy.json b/src/data/mappings/parallel-world-pharmacy.json new file mode 100644 index 0000000..321f33e --- /dev/null +++ b/src/data/mappings/parallel-world-pharmacy.json @@ -0,0 +1,22 @@ +{ + "anilistAnimeId": 136707, + "anilistMangaId": 99024, + "title": "Parallel World Pharmacy", + "sourceNotes": "Single-season, 12-episode TV anime (Diomedéa, 2022) adapts manga ch. 1-39, ending with the resolution of the Black Death outbreak. Manga (art: Sei Takano) ongoing, current ch. 68; the source light novel (10 vols, Liz Takayama) completed in Jan. 2024, but the manga trails the novel's pacing considerably.", + "mappings": [ + { + "episodes": [1, 9], + "chapters": [1, 23], + "arc": "Royal Physician & Parallel World Pharmacy Founding" + }, + { + "episodes": [10, 12], + "chapters": [24, 39], + "arc": "Black Death Outbreak" + }, + { + "chapters": [40, 68], + "arc": "Unadapted (manga continues past the anime)" + } + ] +} diff --git a/src/data/mappings/penguindrum.json b/src/data/mappings/penguindrum.json new file mode 100644 index 0000000..bafece1 --- /dev/null +++ b/src/data/mappings/penguindrum.json @@ -0,0 +1,18 @@ +{ + "anilistAnimeId": 10721, + "anilistMangaId": 88512, + "title": "Penguindrum", + "sourceNotes": "Original anime (Brain's Base, dir. Kunihiko Ikuhara, 2011, 24 episodes); the manga by Isuzu Shibata began serialization nearly two years later (2013-2017) as a close tie-in retelling of the same story, complete at 34 chapters / 5 volumes. Volume 1 is confirmed to adapt episodes 1-6; beyond that, no published source breaks down the remaining volume-to-episode pacing precisely, so the back half is split evenly across the two broad halves of the story (the 'Survival Strategy' opening and the 'Fate/Penguindrum' back half). Boundaries beyond episode 6 are APPROXIMATE.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 17], + "arc": "Survival Strategy / Child Broiler" + }, + { + "episodes": [13, 24], + "chapters": [18, 34], + "arc": "Fate / The Penguindrum" + } + ] +} diff --git a/src/data/mappings/plastic-memories.json b/src/data/mappings/plastic-memories.json new file mode 100644 index 0000000..38c6f4b --- /dev/null +++ b/src/data/mappings/plastic-memories.json @@ -0,0 +1,9 @@ +{ + "anilistAnimeId": 20872, + "anilistMangaId": 122492, + "title": "Plastic Memories", + "sourceNotes": "Original 13-episode anime; the closest tie-in print source is the 'Heartfelt Thanks' light novel, a novelization following the same protagonist (Tsukasa Mizugaki) and story, complete at 5 chapters. Dense novelization — chapter ranges are approximate (~2-3 episodes per chapter). The 'Say to Good-bye' spin-off manga is a prequel told from a different character's (Michiru's) perspective and is not used here since it does not map onto the anime's episode-by-episode plot.", + "mappings": [ + { "episodes": [1, 13], "chapters": [1, 5], "arc": "Terminal Service No. 1" } + ] +} diff --git a/src/data/mappings/pseudo-harem.json b/src/data/mappings/pseudo-harem.json new file mode 100644 index 0000000..804b565 --- /dev/null +++ b/src/data/mappings/pseudo-harem.json @@ -0,0 +1,9 @@ +{ + "anilistAnimeId": 163623, + "anilistMangaId": 105577, + "title": "Pseudo Harem", + "sourceNotes": "Single 12-episode season (Nomad, 2024) adapts the complete manga, a former Twitter webcomic parallel-serialized in Monthly Shonen Sunday (Jan 2019-Mar 2021) and collected into 6 volumes. Manga complete at 157 chapters; the anime covers the full story through its epilogue, so a single broad mapping entry is used (no distinct named arcs).", + "mappings": [ + { "episodes": [1, 12], "chapters": [1, 157], "arc": "Complete Adaptation" } + ] +} diff --git a/src/data/mappings/rainbow.json b/src/data/mappings/rainbow.json new file mode 100644 index 0000000..95f7cc4 --- /dev/null +++ b/src/data/mappings/rainbow.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 6114, + "anilistMangaId": 37482, + "title": "Rainbow", + "sourceNotes": "26 episodes, single season. Manga complete at 235 chapters across 22 volumes. The manga's story is split into four chronological parts (1955-56, 1957-58, 1960-64, and 1953-55/1964-68); per Japanese fan sources the anime finale ends partway through Crime 118 (vol. 12), the close of Part 2 (1957-58), leaving Parts 3-4 unadapted. Chapter boundary is approximate (mid-chapter cutoff rounded to the chapter start).", + "mappings": [ + { + "episodes": [1, 26], + "chapters": [1, 118], + "arc": "Shonan Reform School (Parts 1-2: 1955-58)" + }, + { + "chapters": [119, 235], + "arc": "Life After Release (Parts 3-4: 1953-55 & 1960-68, unadapted)" + } + ] +} diff --git a/src/data/mappings/re-creators.json b/src/data/mappings/re-creators.json new file mode 100644 index 0000000..8a99922 --- /dev/null +++ b/src/data/mappings/re-creators.json @@ -0,0 +1,18 @@ +{ + "anilistAnimeId": 97980, + "anilistMangaId": 99260, + "title": "Re:CREATORS", + "sourceNotes": "Single season, 22 episodes. Original TROYCA anime (concept by Rei Hiroe, directed by Ei Aoki); the manga by Daiki Kase is a close tie-in adaptation that ran in parallel with the broadcast, complete at 29 chapters across 6 volumes. The story has no distinct named arcs, but splits naturally at the mid-series turn from gathering the Creations to the confrontation with Altair; chapters are split proportionally to match.", + "mappings": [ + { + "episodes": [1, 13], + "chapters": [1, 17], + "arc": "Gathering of the Creations" + }, + { + "episodes": [14, 22], + "chapters": [18, 29], + "arc": "Confrontation with Altair" + } + ] +} diff --git a/src/data/mappings/real-girl.json b/src/data/mappings/real-girl.json new file mode 100644 index 0000000..b3b5acd --- /dev/null +++ b/src/data/mappings/real-girl.json @@ -0,0 +1,10 @@ +{ + "anilistAnimeId": 100526, + "anilistMangaId": 80767, + "title": "Real Girl", + "sourceNotes": "Cumulative episodes across S1 (12) + S2 (12). Manga complete; AniList lists 51 chapters across 13 volumes (some sources cite 47 numbered chapters across 12 volumes, likely due to how bonus/special chapters are split — AniList's count is used here). A faithful, 0%-filler adaptation covering the full story; S1 ends around the manga's halfway point, S2 covers the remainder through the ending.", + "mappings": [ + { "episodes": [1, 12], "chapters": [1, 23], "arc": "Season 1" }, + { "episodes": [13, 24], "chapters": [24, 51], "arc": "Season 2" } + ] +} diff --git a/src/data/mappings/record-of-grancrest-war.json b/src/data/mappings/record-of-grancrest-war.json new file mode 100644 index 0000000..13d6064 --- /dev/null +++ b/src/data/mappings/record-of-grancrest-war.json @@ -0,0 +1,23 @@ +{ + "anilistAnimeId": 97768, + "anilistMangaId": 88547, + "title": "Record of Grancrest War", + "sourceNotes": "24 episodes, attempting to cover the entire 10-volume, 46-chapter light novel series (complete) in one cour. The separate manga adaptation by Makoto Yotsuba only covers the first two light novel volumes, so the light novel itself (AniList type MANGA, format NOVEL) is used here as the source of truth. Chapter cut points are estimated proportionally from the light novel's volume synopses (e.g. vol. 5 covers the Altirk Treaty/liberation of Theo's hometown, vol. 10 covers Theo's coronation and the final battle with Pandora) and should be treated as approximate.", + "mappings": [ + { + "episodes": [1, 9], + "chapters": [1, 19], + "arc": "Siluca and Theo's Rise Against the Coalition" + }, + { + "episodes": [10, 19], + "chapters": [20, 36], + "arc": "The Altirk Treaty and the Fall of Milza" + }, + { + "episodes": [20, 24], + "chapters": [37, 46], + "arc": "The Final War and the Empire of Leon" + } + ] +} diff --git a/src/data/mappings/reincarnation-of-the-strongest-exorcist.json b/src/data/mappings/reincarnation-of-the-strongest-exorcist.json new file mode 100644 index 0000000..65c780f --- /dev/null +++ b/src/data/mappings/reincarnation-of-the-strongest-exorcist.json @@ -0,0 +1,10 @@ +{ + "anilistAnimeId": 144553, + "anilistMangaId": 123544, + "title": "The Reincarnation of the Strongest Exorcist in Another World", + "sourceNotes": "Single 13-episode season. Manga ongoing (current ch. 52); the anime fast-paces through the light novel's early volumes, concluding at manga chapter 30, with skipped worldbuilding/character depth noted by fans. Unadapted continuation included at the tail.", + "mappings": [ + { "episodes": [1, 13], "chapters": [1, 30], "arc": "Anime Adaptation" }, + { "chapters": [31, 52], "arc": "Manga-Only Continuation" } + ] +} diff --git a/src/data/mappings/restaurant-to-another-world.json b/src/data/mappings/restaurant-to-another-world.json new file mode 100644 index 0000000..edc6cc9 --- /dev/null +++ b/src/data/mappings/restaurant-to-another-world.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 97617, + "anilistMangaId": 98911, + "title": "Restaurant to Another World", + "sourceNotes": "Cumulative episodes across S1 (12) + S2 (12). Manga complete at 29 chapters (4 volumes, Young Gangan, 2016-2019). The manga is an alternative adaptation of the same light novel source the anime draws from, rather than the anime's direct source, so episode order and chapter order diverge somewhat even though both cover the same 'dish of the week' stories. Episodic anthology adaptation, roughly 1 chapter per episode; chapter ranges are approximate.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 12], + "arc": "Season 1 (Nekoya Restaurant)" + }, + { "episodes": [13, 24], "chapters": [13, 29], "arc": "Season 2" } + ] +} diff --git a/src/data/mappings/sabikui-bisco.json b/src/data/mappings/sabikui-bisco.json new file mode 100644 index 0000000..9f1f013 --- /dev/null +++ b/src/data/mappings/sabikui-bisco.json @@ -0,0 +1,13 @@ +{ + "anilistAnimeId": 130591, + "anilistMangaId": 111620, + "title": "Sabikui Bisco", + "sourceNotes": "Season 1, 12 episodes. Source is a 10-volume light novel series (AniList does not track its chapter count), so this mapping uses the 'Rust-Eater Bisco' manga adaptation instead — complete at 22 chapters across 4 volumes, covering the same content as the anime (both adapt only Light Novel Volume 1). A separately-numbered sequel manga ('Rust-Eater Bisco 2', drawn by a new artist) covers the Sabikui Bisco 2nd Season anime and is out of scope for this file.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 22], + "arc": "Imihama (Novel Volume 1)" + } + ] +} diff --git a/src/data/mappings/saints-magic-power-is-omnipotent.json b/src/data/mappings/saints-magic-power-is-omnipotent.json new file mode 100644 index 0000000..9efcc9d --- /dev/null +++ b/src/data/mappings/saints-magic-power-is-omnipotent.json @@ -0,0 +1,18 @@ +{ + "anilistAnimeId": 123802, + "anilistMangaId": 101503, + "title": "The Saint's Magic Power is Omnipotent", + "sourceNotes": "Cumulative episodes across S1 (12) + S2 (12) = 24. Adapted from Yuka Tachibana's light novel; the manga comic (Fujiazuki, id 101503) is used here as the chapter source since it tracks episode content more granularly than the light novel's volume structure. Manga ongoing (11 volumes, approx. ch. 47 as of Feb 2026). S1 covers manga Vol. 1-6 (ch. 1-27), ending with the Klausner Domain arc. S2 continues into Vol. 7 onward; the manga's release pace lags the anime (which is novel-based), so the S2 chapter boundary is approximate and the tail may not yet fully cover S2's ending content.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 27], + "arc": "Season 1: Saint Summoning to the Klausner Domain" + }, + { + "episodes": [13, 24], + "chapters": [28, 47], + "arc": "Season 2 (manga ongoing, chapter boundary approximate)" + } + ] +} diff --git a/src/data/mappings/sasaki-and-miyano.json b/src/data/mappings/sasaki-and-miyano.json new file mode 100644 index 0000000..0e74310 --- /dev/null +++ b/src/data/mappings/sasaki-and-miyano.json @@ -0,0 +1,23 @@ +{ + "anilistAnimeId": 126288, + "anilistMangaId": 98370, + "title": "Sasaki and Miyano", + "sourceNotes": "Single-cour TV anime (12 episodes, 2022) covering manga volumes 1-6 (roughly chapters 1-33). Manga ongoing (current ch. ~54 as of 2026, having resumed serialization in 2025 after a hiatus); the Graduation film adapts the vol. 7-8 content that follows the TV series and was never animated for TV (see movies[]). Low-arc slice-of-life romance without distinct named story arcs.", + "mappings": [ + { "episodes": [1, 12], "chapters": [1, 33], "arc": "Season 1" }, + { + "chapters": [34, 54], + "arc": "Unadapted on TV (Graduation film covers ch. 34-39; manga continues beyond)" + } + ], + "movies": [ + { + "anilistId": 146743, + "title": "Sasaki and Miyano: Graduation", + "year": 2023, + "chapters": [34, 39], + "afterEpisode": 12, + "note": "Canon continuation covering volume 7 and part of volume 8 (the graduation arc); never adapted on TV." + } + ] +} diff --git a/src/data/mappings/sayonara-zetsubou-sensei.json b/src/data/mappings/sayonara-zetsubou-sensei.json new file mode 100644 index 0000000..ab46f84 --- /dev/null +++ b/src/data/mappings/sayonara-zetsubou-sensei.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 2605, + "anilistMangaId": 30661, + "title": "Sayonara, Zetsubou-Sensei", + "sourceNotes": "Cumulative episodes across S1 (12) + Zoku/S2 (13) + Goku OVA (3) + Zan/S3 (13) + Zan Bangaichi OVA (2) + a 2012 Blu-ray bonus episode (1) = 44. Manga by Koji Kumeta complete at 301 serialized chapters (ch. 268 was never collected in tankobon). Satirical gag/anthology manga — Shaft's adaptation (dir. Akiyuki Shinbo) heavily shuffles and skips chapters rather than adapting in reading order, with most episodes splicing together two to four unrelated chapter-length gags pulled from across the run, so per-season chapter ranges are not cleanly separable; the single adapted range below is a coarse approximation of the chapter span touched across the whole TV+OVA run, not a strict sequence. The manga's true, never-animated finale begins at chapter 290.", + "mappings": [ + { + "episodes": [1, 44], + "chapters": [1, 289], + "arc": "TV Series + OVAs (non-linear anthology adaptation)" + }, + { "chapters": [290, 301], "arc": "Finale (never adapted)" } + ] +} diff --git a/src/data/mappings/second-prettiest-girl-in-my-class.json b/src/data/mappings/second-prettiest-girl-in-my-class.json new file mode 100644 index 0000000..ab39cd2 --- /dev/null +++ b/src/data/mappings/second-prettiest-girl-in-my-class.json @@ -0,0 +1,24 @@ +{ + "anilistAnimeId": 169580, + "anilistMangaId": 145940, + "title": "I Made Friends with the Second Prettiest Girl in My Class", + "sourceNotes": "The anime is an ADAPTATION of the light novel (id 145940) on AniList, not of the ongoing manga (id 148082), which is a separate, parallel ALTERNATIVE adaptation of the same novel. Because the LN doesn't expose chapter numbers on AniList, the chapters[] ranges here are LN VOLUME numbers (same convention as campfire-cooking-in-another-world.json). Single 12-episode season adapting light novel volumes 1-3, with volume 3 compressed/rushed into the final two episodes. Light novel complete at 11 volumes (10 main volumes + 1 side-story volume, per its April 2026 ending announcement); volumes 4-11 are unadapted.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 1], + "arc": "Volume 1 — Meeting Umi Asanagi" + }, + { + "episodes": [5, 8], + "chapters": [2, 2], + "arc": "Volume 2 — Into School Territory" + }, + { + "episodes": [9, 12], + "chapters": [3, 3], + "arc": "Volume 3 — Compressed Coverage" + }, + { "chapters": [4, 11], "arc": "Unadapted (Vol. 4 onward)" } + ] +} diff --git a/src/data/mappings/secrets-of-the-silent-witch.json b/src/data/mappings/secrets-of-the-silent-witch.json new file mode 100644 index 0000000..a36ba22 --- /dev/null +++ b/src/data/mappings/secrets-of-the-silent-witch.json @@ -0,0 +1,23 @@ +{ + "anilistAnimeId": 179966, + "anilistMangaId": 136834, + "title": "Secrets of the Silent Witch", + "sourceNotes": "Single-cour 13-episode TV anime (2025) adapting light novel volumes 1-3. Manga ongoing (current ch. 32); per fan tracking, manga chapters 1-26 cover light novel volumes 1-2 and chapter 27 begins volume 3, matching the anime's coverage, though the manga has not yet caught up to the anime's volume-3 endpoint. Chapter boundaries for the volume 1/volume 2 split (~ch. 13) are estimated proportionally since no official per-chapter breakdown was found; treat as approximate.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 13], + "arc": "Serendia Academy Enrollment (Vol. 1)" + }, + { + "episodes": [5, 8], + "chapters": [14, 26], + "arc": "Chess Tournament & Assassination Plot (Vol. 2)" + }, + { + "episodes": [9, 13], + "chapters": [27, 32], + "arc": "Bernie Jones & the Barrier Mage (Vol. 3, ongoing)" + } + ] +} diff --git a/src/data/mappings/sekirei.json b/src/data/mappings/sekirei.json new file mode 100644 index 0000000..fe905d3 --- /dev/null +++ b/src/data/mappings/sekirei.json @@ -0,0 +1,15 @@ +{ + "anilistAnimeId": 4063, + "anilistMangaId": 30873, + "title": "Sekirei", + "sourceNotes": "Cumulative episodes across S1 (12) + Pure Engagement S2 (13). Manga complete at 187 chapters (18 volumes). S2's back half and finale are largely anime-original and diverge from the manga (notably skipping canon material in ch. 70-73), so the S2 chapter range is an approximation; the manga continues well beyond both seasons.", + "mappings": [ + { "episodes": [1, 12], "chapters": [1, 55], "arc": "Season 1" }, + { + "episodes": [13, 25], + "chapters": [56, 74], + "arc": "Pure Engagement (Season 2)" + }, + { "chapters": [75, 187], "arc": "Post-Anime Story (Unadapted)" } + ] +} diff --git a/src/data/mappings/shadows-house.json b/src/data/mappings/shadows-house.json new file mode 100644 index 0000000..e84106c --- /dev/null +++ b/src/data/mappings/shadows-house.json @@ -0,0 +1,11 @@ +{ + "anilistAnimeId": 125038, + "anilistMangaId": 104063, + "title": "SHADOWS HOUSE", + "sourceNotes": "Cumulative episodes across S1 (13) + S2 (12). Manga ongoing (current ch. ~240). S1's final 2-3 episodes (the anime-only \"Kidnapping\" detour) diverge from the manga, and S2 compresses/skips material while staying broadly faithful; the combined anime settles back into the manga around Chapter 79, so chapter boundaries below are approximate.", + "mappings": [ + { "episodes": [1, 13], "chapters": [1, 50], "arc": "Debut Arc" }, + { "episodes": [14, 25], "chapters": [51, 79], "arc": "Master Robe Arc" }, + { "chapters": [80, 240], "arc": "Unadapted (Manga-Only)" } + ] +} diff --git a/src/data/mappings/shakugan-no-shana.json b/src/data/mappings/shakugan-no-shana.json new file mode 100644 index 0000000..95040f8 --- /dev/null +++ b/src/data/mappings/shakugan-no-shana.json @@ -0,0 +1,38 @@ +{ + "anilistAnimeId": 355, + "anilistMangaId": 33074, + "title": "Shakugan no Shana", + "sourceNotes": "Cumulative episodes across Season 1 (24) + Season II (24) + Season III/Final (24) = 72. Adapts the light novel (AniList tracks it as a 123-'chapter' entry, counting each of the 22 main volumes' prologue/numbered-chapters/epilogue as discrete chapters). Chapter ranges here are a proportional conversion from the fandom wiki's volume-level arc breakdown, since per-volume chapter counts aren't uniformly published for every volume — treat exact boundaries as approximate and refine via PR. The standalone theatrical Shakugan no Shana: The Movie is an alternate-continuity retelling of Volume 1 and is excluded from movies.", + "mappings": [ + { "episodes": [1, 2], "chapters": [1, 7], "arc": "Chance Meeting" }, + { "episodes": [3, 8], "chapters": [8, 15], "arc": "Disturbance" }, + { "episodes": [9, 13], "chapters": [16, 25], "arc": "Aizen Siblings" }, + { "episodes": [14, 16], "chapters": [26, 31], "arc": "Birth" }, + { "episodes": [17, 19], "chapters": [32, 41], "arc": "Mania" }, + { "episodes": [20, 24], "chapters": [42, 52], "arc": "Bal Masqué" }, + { + "episodes": [25, 31], + "chapters": [53, 57], + "arc": "Village of Jestful Slumber" + }, + { "episodes": [32, 35], "chapters": [58, 62], "arc": "Omens of a Storm" }, + { "episodes": [36, 39], "chapters": [63, 73], "arc": "Colorful Wave" }, + { + "episodes": [40, 48], + "chapters": [74, 84], + "arc": "Scars from the Storm / Grand Order" + }, + { "episodes": [49, 52], "chapters": [85, 89], "arc": "Blackout" }, + { "episodes": [53, 55], "chapters": [90, 95], "arc": "Biding Time" }, + { + "episodes": [56, 63], + "chapters": [96, 112], + "arc": "Battle of Seireiden" + }, + { + "episodes": [64, 72], + "chapters": [113, 123], + "arc": "Final Battle of Misaki City" + } + ] +} diff --git a/src/data/mappings/showa-genroku-rakugo-shinju.json b/src/data/mappings/showa-genroku-rakugo-shinju.json new file mode 100644 index 0000000..984b9c9 --- /dev/null +++ b/src/data/mappings/showa-genroku-rakugo-shinju.json @@ -0,0 +1,18 @@ +{ + "anilistAnimeId": 20972, + "anilistMangaId": 56704, + "title": "Showa Genroku Rakugo Shinju", + "sourceNotes": "Cumulative episodes across S1 (13) + S2/Sukeroku Futatabi-hen (12) = 25. Manga by Haruko Kumota complete at 10 volumes; AniList lists 32 chapters (the fandom wiki's chapter list runs 1-31, with AniList's count likely including a bonus/epilogue chapter). S1 covers volumes 1-5 (chapters 1-16), spanning the \"Yotaro's Odyssey\" present-day frame and the \"Yakumo and Sukeroku\" flashback arc; S2 covers volumes 6-10 (chapters 17-32), the \"Sukeroku Again\" arc following Yotaro in the present day. A 2-episode OVA (\"Yotaro Hourou-hen\", 2015) predates and was later re-adapted into S1's extended 48-minute premiere, so it is not counted separately in this mapping's episode numbering.", + "mappings": [ + { + "episodes": [1, 13], + "chapters": [1, 16], + "arc": "Yakumo to Sukeroku-hen (Kikuhiko & Sukeroku's Youth)" + }, + { + "episodes": [14, 25], + "chapters": [17, 32], + "arc": "Sukeroku Futatabi-hen (Yotaro's Present Day)" + } + ] +} diff --git a/src/data/mappings/sing-yesterday-for-me.json b/src/data/mappings/sing-yesterday-for-me.json new file mode 100644 index 0000000..2b8b14c --- /dev/null +++ b/src/data/mappings/sing-yesterday-for-me.json @@ -0,0 +1,10 @@ +{ + "anilistAnimeId": 109020, + "anilistMangaId": 31155, + "title": "SING \"YESTERDAY\" FOR ME", + "sourceNotes": "Single-cour 12-episode TV series (Doga Kobo, 2020); a separate 6-episode ONA short series ('Yesterday wo Utatte Extras', AniList id 117496) aired alongside it but is not counted here. Manga (Kei Toume, 1997-2015) complete at 113 chapters across 11 volumes. Reviewers note the anime covers roughly the first two-thirds of the manga before diverging into a mostly-original ending for its finale, skipping the manga's final act, so the adapted-range boundary below is an approximation rather than a confirmed chapter cut.", + "mappings": [ + { "episodes": [1, 12], "chapters": [1, 75], "arc": "Main Story" }, + { "chapters": [76, 113], "arc": "Unadapted Ending (manga-only)" } + ] +} diff --git a/src/data/mappings/sleepy-princess-in-the-demon-castle.json b/src/data/mappings/sleepy-princess-in-the-demon-castle.json new file mode 100644 index 0000000..3b9ef07 --- /dev/null +++ b/src/data/mappings/sleepy-princess-in-the-demon-castle.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 111428, + "anilistMangaId": 87510, + "title": "Sleepy Princess in the Demon Castle", + "sourceNotes": "Single season, 12 episodes. Manga ongoing (current ch. 445 as of July 2026, serialized in Weekly Shonen Sunday since 2016). Gag/vignette comedy format — the anime does not adapt chapters in sequence; individual episodes cherry-pick and reorder unrelated chapters (the finale alone draws from Ch. 33 and Ch. 84). Chapter ranges are approximate: the anime's 12 episodes loosely cover material through roughly Ch. 89 (through vol. 7) before the manga moves into territory the anime never touched.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 89], + "arc": "Anime Adaptation (Non-Linear Vignette Order)" + }, + { "chapters": [90, 445], "arc": "Unadapted (Ongoing)" } + ] +} diff --git a/src/data/mappings/smoking-behind-the-supermarket-with-you.json b/src/data/mappings/smoking-behind-the-supermarket-with-you.json new file mode 100644 index 0000000..0c2fd87 --- /dev/null +++ b/src/data/mappings/smoking-behind-the-supermarket-with-you.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 196187, + "anilistMangaId": 147149, + "title": "Smoking Behind the Supermarket with You", + "sourceNotes": "The anime is currently RELEASING (Summer 2026 season, 12 planned episodes at ~24 min each). The first 6 episodes were released early as twelve ~10-minute mini-episodes on ABEMA/Crunchyroll ahead of the standard TV broadcast, adapting manga chapters 1-20. Manga (by Jinushi) is ongoing, at roughly chapter 58 as of early 2026 per Anime-Planet. Episodes 7-12 had not yet aired at the time this mapping was drafted, so their chapter coverage is left as an unadapted tail; revisit once the season completes and per-episode chapter data becomes available.", + "mappings": [ + { + "episodes": [1, 6], + "chapters": [1, 20], + "arc": "Season 1 (Early Mini-Episode Release)" + }, + { "chapters": [21, 58], "arc": "Unadapted (Episodes 7-12 not yet aired)" } + ] +} diff --git a/src/data/mappings/so-i-cant-play-h.json b/src/data/mappings/so-i-cant-play-h.json new file mode 100644 index 0000000..983ab63 --- /dev/null +++ b/src/data/mappings/so-i-cant-play-h.json @@ -0,0 +1,9 @@ +{ + "anilistAnimeId": 12549, + "anilistMangaId": 55547, + "title": "So, I Can't Play H!", + "sourceNotes": "Anime is 12 TV episodes (2012); a 13th episode aired separately as an OVA in 2013 continuing the story and is not counted in the cumulative range. Manga (Shou Okagiri, complete at 28 chapters / 5 volumes) is a parallel adaptation of the same Pan Tachibana light novels rather than a direct novelization of the anime, but covers the same overall plot through its swimsuit-competition climax. Continuous romantic comedy with no distinct named arcs.", + "mappings": [ + { "episodes": [1, 12], "chapters": [1, 28], "arc": "Main Story" } + ] +} diff --git a/src/data/mappings/somali-and-the-forest-spirit.json b/src/data/mappings/somali-and-the-forest-spirit.json new file mode 100644 index 0000000..f50d579 --- /dev/null +++ b/src/data/mappings/somali-and-the-forest-spirit.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 108617, + "anilistMangaId": 86788, + "title": "Somali and the Forest Spirit", + "sourceNotes": "Single 12-episode season. Manga cut short at 39 chapters (6 volumes) — serialization ended in 2019, then officially concluded in December 2020 after author Yako Gureishi's worsening health forced an early wrap-up. The anime notably adapts chapters out of chronological order to suit its own pacing (e.g. episode 7 draws from chapters 6-11 while episode 6 draws from chapters 20-21), so a precise per-episode chapter correspondence isn't meaningful; this mapping instead spans the overall range of chapters the anime draws from (ch. 1-31, matching episode 12's use of ch. 31) with the unadapted final chapters (32-39) at the tail. Episode 12's ending is anime-original and not present in the manga.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 31], + "arc": "Somali & Golem's Journey (anime run; chapters adapted out of order)" + }, + { + "chapters": [32, 39], + "arc": "Final Chapters (unadapted manga-only epilogue)" + } + ] +} diff --git a/src/data/mappings/space-dandy.json b/src/data/mappings/space-dandy.json new file mode 100644 index 0000000..a8f9f98 --- /dev/null +++ b/src/data/mappings/space-dandy.json @@ -0,0 +1,10 @@ +{ + "anilistAnimeId": 20057, + "anilistMangaId": 85537, + "title": "Space Dandy", + "sourceNotes": "Cumulative episodes across S1 (13) + S2 (13) = 26. Manga complete at 16 chapters / 2 volumes (Masafumi Harada/BONES, Young Gangan, 2013-2014), covering both TV seasons. Episodic/anthology anime with self-contained, often-reset episodes; the manga retells select episodes rather than adapting all 26 1:1 (e.g. chapter 1 diverges noticeably from anime episode 1), so the chapter split below is an approximate, roughly even distribution across the two seasons rather than a strict scene-for-scene correspondence.", + "mappings": [ + { "episodes": [1, 13], "chapters": [1, 8], "arc": "Season 1" }, + { "episodes": [14, 26], "chapters": [9, 16], "arc": "Season 2" } + ] +} diff --git a/src/data/mappings/ssss-gridman.json b/src/data/mappings/ssss-gridman.json new file mode 100644 index 0000000..9c1dba8 --- /dev/null +++ b/src/data/mappings/ssss-gridman.json @@ -0,0 +1,9 @@ +{ + "anilistAnimeId": 99424, + "anilistMangaId": 116192, + "title": "SSSS.GRIDMAN", + "sourceNotes": "Single-cour 12-episode series (Studio Trigger, 2018). Manga by Yuki Konno (Shonen Jump+, Nov 2019 - Dec 2021) is a close tie-in adaptation of the same story with no distinct named arcs; complete at 52 chapters. Original anime; manga is a close tie-in adaptation.", + "mappings": [ + { "episodes": [1, 12], "chapters": [1, 52], "arc": "Gridman Alliance" } + ] +} diff --git a/src/data/mappings/suppose-a-kid-from-the-last-dungeon-boonies-moved-to-a-starter-town.json b/src/data/mappings/suppose-a-kid-from-the-last-dungeon-boonies-moved-to-a-starter-town.json new file mode 100644 index 0000000..be1e531 --- /dev/null +++ b/src/data/mappings/suppose-a-kid-from-the-last-dungeon-boonies-moved-to-a-starter-town.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 112649, + "anilistMangaId": 100311, + "title": "Suppose a Kid from the Last Dungeon Boonies moved to a starter town?", + "sourceNotes": "Single-cour 12-episode anime (Liden Films, 2021) compresses roughly five light novels into one season, skipping large stretches of story. Manga (Hajime Fusemachi, Gangan Online) complete at 52 chapters / 12 volumes (2017-2023), adapting through Novel 6 before ending. The anime's finale lines up with approximately chapter 44 of the manga; the manga continues a bit further with unadapted material before its own conclusion.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 44], + "arc": "Anime Story (Season 1)" + }, + { "chapters": [45, 52], "arc": "Manga-only continuation" } + ] +} diff --git a/src/data/mappings/sweetness-and-lightning.json b/src/data/mappings/sweetness-and-lightning.json new file mode 100644 index 0000000..eaaf019 --- /dev/null +++ b/src/data/mappings/sweetness-and-lightning.json @@ -0,0 +1,10 @@ +{ + "anilistAnimeId": 21659, + "anilistMangaId": 86044, + "title": "Sweetness & Lightning", + "sourceNotes": "Single-cour, 12-episode anime (2016) adapts roughly the first 19 of the manga's 78 chapters (~volumes 1-3), with the anime skipping and reordering a few chapters typical of a slice-of-life adaptation. Manga complete at 78 chapters (12 volumes, finished Aug 2018). Chronological cooking/slice-of-life story with no distinct named arcs; unadapted material included at the tail for readers continuing past the anime.", + "mappings": [ + { "episodes": [1, 12], "chapters": [1, 19], "arc": "TV Anime Adaptation" }, + { "chapters": [20, 78], "arc": "Unadapted (Manga-only)" } + ] +} diff --git a/src/data/mappings/takt-op-destiny.json b/src/data/mappings/takt-op-destiny.json new file mode 100644 index 0000000..252df28 --- /dev/null +++ b/src/data/mappings/takt-op-destiny.json @@ -0,0 +1,13 @@ +{ + "anilistAnimeId": 131565, + "anilistMangaId": 151578, + "title": "takt op.Destiny", + "sourceNotes": "Single-cour anime, 12 episodes. \"takt op.Destiny: Haruka Tsuioku no Anna - Harmony of Hope\" is a companion manga covering the same story and timeline from Anna Schneider's point of view, complete at 14 chapters. No official episode-to-chapter guide was found for this POV retelling, so it is mapped as one broad range spanning the full series — treat the chapter split as approximate.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 14], + "arc": "Anna's Perspective (Full Series Retelling)" + } + ] +} diff --git a/src/data/mappings/tamako-market.json b/src/data/mappings/tamako-market.json new file mode 100644 index 0000000..2475b38 --- /dev/null +++ b/src/data/mappings/tamako-market.json @@ -0,0 +1,18 @@ +{ + "anilistAnimeId": 16417, + "anilistMangaId": 88044, + "title": "Tamako Market", + "sourceNotes": "Single season, 12 episodes (excludes the separate 6-episode Blu-ray special set). Original Kyoto Animation anime; the tie-in light novel is a close novelization of the TV series, complete at 11 chapters. The 2014 sequel film Tamako Love Story has its own separate novelization and is not covered by these chapter ranges.", + "mappings": [ + { "episodes": [1, 12], "chapters": [1, 11], "arc": "Full series" } + ], + "movies": [ + { + "anilistId": 20519, + "title": "Tamako -love story-", + "year": 2014, + "afterEpisode": 12, + "note": "Canon sequel film continuing directly after the TV series; own separate light novelization, not covered by the TV chapter ranges above." + } + ] +} diff --git a/src/data/mappings/the-aristocrats-otherworldly-adventure.json b/src/data/mappings/the-aristocrats-otherworldly-adventure.json new file mode 100644 index 0000000..7313a70 --- /dev/null +++ b/src/data/mappings/the-aristocrats-otherworldly-adventure.json @@ -0,0 +1,19 @@ +{ + "anilistAnimeId": 153332, + "anilistMangaId": 103238, + "title": "The Aristocrat's Otherworldly Adventure: Serving Gods Who Go Too Far", + "sourceNotes": "Single-cour, 12 episodes. The manga (illustrated by Nini) is ongoing at 15+ volumes, current ch. ~77; AniList does not track a chapter count for the source light novel, so the manga is used as the reference here. Volume synopses confirm the 5-year training arc (vol. 5) lands at ep. 9 and Cain becoming a domain lord (vol. 6) lands at eps. 11-12, so the anime's 12 episodes cover roughly the first 6 volumes; exact chapter cut points are estimated from an average chapters-per-volume rate and should be refined via PR if a fan chapter guide surfaces.", + "mappings": [ + { + "episodes": [1, 8], + "chapters": [1, 20], + "arc": "Reincarnation, the Royal Capital, and the Academy" + }, + { + "episodes": [9, 12], + "chapters": [21, 31], + "arc": "Five Years of Training and Becoming a Domain Lord" + }, + { "chapters": [32, 77], "arc": "Unadapted manga continuation" } + ] +} diff --git a/src/data/mappings/the-day-i-became-a-god.json b/src/data/mappings/the-day-i-became-a-god.json new file mode 100644 index 0000000..834ced4 --- /dev/null +++ b/src/data/mappings/the-day-i-became-a-god.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 118419, + "anilistMangaId": 135190, + "title": "The Day I Became a God", + "sourceNotes": "Single-cour, 12 episodes. Original anime story from Jun Maeda/Key; the manga (complete at 16 chapters across 2 volumes) is a close tie-in adaptation rather than the source, so pacing is approximate. No distinct named story arcs exist for this drama, so it is split into two broad halves that roughly track the two collected volumes.", + "mappings": [ + { "episodes": [1, 6], "chapters": [1, 8], "arc": "Hina and the Prophecy" }, + { + "episodes": [7, 12], + "chapters": [9, 16], + "arc": "The Truth Behind the Miracle" + } + ] +} diff --git a/src/data/mappings/the-dreaming-boy-is-a-realist.json b/src/data/mappings/the-dreaming-boy-is-a-realist.json new file mode 100644 index 0000000..998eeb3 --- /dev/null +++ b/src/data/mappings/the-dreaming-boy-is-a-realist.json @@ -0,0 +1,9 @@ +{ + "anilistAnimeId": 157397, + "anilistMangaId": 132664, + "title": "The Dreaming Boy is a Realist", + "sourceNotes": "Single-cour, 12-episode anime (2023) adapts the early volumes of Okemaru's light novel non-linearly, interleaving scenes between different characters' perspectives out of strict chronological order. The direct manga adaptation by Popuri Yoshikita (5 volumes, complete at 33 chapters, finished March 2024) covers roughly the same span of story as the anime. Because the anime jumps between threads rather than following the manga chapter-by-chapter, precise per-episode chapter boundaries are not documented anywhere; this mapping treats the manga's full run as corresponding to the anime's full run. No movies.", + "mappings": [ + { "episodes": [1, 12], "chapters": [1, 33], "arc": "TV Anime Adaptation" } + ] +} diff --git a/src/data/mappings/the-elusive-samurai.json b/src/data/mappings/the-elusive-samurai.json new file mode 100644 index 0000000..1e2f23c --- /dev/null +++ b/src/data/mappings/the-elusive-samurai.json @@ -0,0 +1,18 @@ +{ + "anilistAnimeId": 162896, + "anilistMangaId": 128666, + "title": "The Elusive Samurai", + "sourceNotes": "Season 1 only (12 episodes + a recap special not counted in the episode range); Season 2 begins airing July 17, 2026 and is not yet covered. Manga complete at 238 chapters. Arc boundaries from the fandom wiki's Story Arcs page; Season 1 covers chapters 1-31, through the VS Kokushi arc.", + "mappings": [ + { "episodes": [1, 3], "chapters": [1, 3], "arc": "Intro Arc" }, + { "episodes": [4, 4], "chapters": [4, 6], "arc": "Gathering Allies Arc" }, + { "episodes": [5, 5], "chapters": [7, 10], "arc": "Archery Arc" }, + { "episodes": [6, 6], "chapters": [11, 15], "arc": "Rinji Seizure Arc" }, + { "episodes": [7, 9], "chapters": [16, 23], "arc": "Pincer Arc" }, + { "episodes": [10, 12], "chapters": [24, 31], "arc": "VS Kokushi Arc" }, + { + "chapters": [32, 238], + "arc": "Unadapted on TV as of Season 1 (Verbal Battle Arc onward)" + } + ] +} diff --git a/src/data/mappings/the-girl-i-like-forgot-her-glasses.json b/src/data/mappings/the-girl-i-like-forgot-her-glasses.json new file mode 100644 index 0000000..cb3864f --- /dev/null +++ b/src/data/mappings/the-girl-i-like-forgot-her-glasses.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 160188, + "anilistMangaId": 105641, + "title": "The Girl I Like Forgot Her Glasses", + "sourceNotes": "Single-season, 13-episode TV anime (GoHands, 2023) adapts manga ch. 1-68 (~through vol. 7). Manga complete at 120 chapters (12 vols). Slice-of-life romance/comedy source with no formally named arcs — roughly 5 chapters per episode.", + "mappings": [ + { + "episodes": [1, 13], + "chapters": [1, 68], + "arc": "Anime-Adapted Chapters" + }, + { + "chapters": [69, 120], + "arc": "Unadapted (manga continues past the anime)" + } + ] +} diff --git a/src/data/mappings/the-great-jahy-will-not-be-defeated.json b/src/data/mappings/the-great-jahy-will-not-be-defeated.json new file mode 100644 index 0000000..6b22d4d --- /dev/null +++ b/src/data/mappings/the-great-jahy-will-not-be-defeated.json @@ -0,0 +1,10 @@ +{ + "anilistAnimeId": 132456, + "anilistMangaId": 100207, + "title": "The Great Jahy Will Not Be Defeated!", + "sourceNotes": "20-episode anime (2021, single cour split across two half-seasons under one AniList entry). Manga ongoing (current ch. ~107 as of mid-2026; 12 tankobon volumes as of Nov 2025, with a 13th and final volume slated for Q4 2026). Skit/gag-based comedy manga, so the anime adapts a high density of chapters per episode while skipping some pure joke chapters; a viewer resumes reading at chapter 68. No movies.", + "mappings": [ + { "episodes": [1, 20], "chapters": [1, 67], "arc": "TV Anime Adaptation" }, + { "chapters": [68, 107], "arc": "Unadapted (Manga-only, ongoing)" } + ] +} diff --git a/src/data/mappings/the-heroic-legend-of-arslan.json b/src/data/mappings/the-heroic-legend-of-arslan.json new file mode 100644 index 0000000..a81d94c --- /dev/null +++ b/src/data/mappings/the-heroic-legend-of-arslan.json @@ -0,0 +1,22 @@ +{ + "anilistAnimeId": 20935, + "anilistMangaId": 81233, + "title": "The Heroic Legend of Arslan", + "sourceNotes": "Cumulative episodes across S1 (25) + S2 'Dust Storm Dance' (8) = 33; anilistAnimeId is the S1 TV entry (20935) per this repo's sequel convention. Manga (Hiromu Arakawa, ongoing) is at roughly 155 chapters / 24+ volumes as of mid-2026 per Kodansha's K Manga chapter listing — AniList itself does not report a chapter count for this entry. The anime tracks the manga at first but runs out of adapted material partway through and shifts to directly adapting Yoshiki Tanaka's source novels; S1 (eps 1-25) covers through manga vol. 12 ch. 71, and S2 (eps 26-33, 'Dust Storm Dance' = Novel 6 'A Frenzy of Dust') covers through vol. 18 ch. 107, per fan chapter-guides. Chapters 108+ continue the manga-only story past where the anime ends, and the current chapter count will drift as the ongoing series updates.", + "mappings": [ + { + "episodes": [1, 25], + "chapters": [1, 71], + "arc": "Novels 1-5 (The Capital Ablaze - Shadow of a Lone Rider)" + }, + { + "episodes": [26, 33], + "chapters": [72, 107], + "arc": "Dust Storm Dance (Novel 6: A Frenzy of Dust)" + }, + { + "chapters": [108, 155], + "arc": "Unadapted continuation (manga-only, ongoing)" + } + ] +} diff --git a/src/data/mappings/the-ice-guy-and-his-cool-female-colleague.json b/src/data/mappings/the-ice-guy-and-his-cool-female-colleague.json new file mode 100644 index 0000000..c2bc2c5 --- /dev/null +++ b/src/data/mappings/the-ice-guy-and-his-cool-female-colleague.json @@ -0,0 +1,10 @@ +{ + "anilistAnimeId": 151252, + "anilistMangaId": 109728, + "title": "The Ice Guy and His Cool Female Colleague", + "sourceNotes": "Single 12-episode season (2024). Manga ongoing (current ch. 71 as of July 2026, GanGan pixiv). The anime adapts manga chapters 1-40. Workplace slice-of-life romantic comedy with no distinct named arcs, so mapping uses one broad anime-adapted range plus the unadapted ongoing tail.", + "mappings": [ + { "episodes": [1, 12], "chapters": [1, 40], "arc": "Anime-Adapted Story" }, + { "chapters": [41, 71], "arc": "Unadapted Manga (Post-Anime, Ongoing)" } + ] +} diff --git a/src/data/mappings/the-kingdoms-of-ruin.json b/src/data/mappings/the-kingdoms-of-ruin.json new file mode 100644 index 0000000..b41ea2e --- /dev/null +++ b/src/data/mappings/the-kingdoms-of-ruin.json @@ -0,0 +1,29 @@ +{ + "anilistAnimeId": 160900, + "anilistMangaId": 112203, + "title": "The Kingdoms of Ruin", + "sourceNotes": "Single-cour, 12 episodes. Manga complete at 66 chapters across 15 volumes. The anime adapts the first 33 chapters (through roughly vol. 6-7); chapters 34-66 are unadapted manga-only continuation. Chapter titles from the manga's own chapter list corroborate the episode groupings below (e.g. ch. 10 'The Resurrection of the Witch' opens the Lunamilia arc, ch. 24 'Mamuta, the Ruined Country' opens the Mamuta arc).", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 9], + "arc": "Adonis's Escape and Revenge" + }, + { + "episodes": [4, 6], + "chapters": [10, 19], + "arc": "Resurrection and the Invasion of Lunamilia" + }, + { + "episodes": [7, 9], + "chapters": [20, 24], + "arc": "Journey to the Ruined Kingdom of Mamuta" + }, + { + "episodes": [10, 12], + "chapters": [25, 33], + "arc": "Shirousagi and Dorothea's Betrayal" + }, + { "chapters": [34, 66], "arc": "Unadapted manga continuation" } + ] +} diff --git a/src/data/mappings/the-magical-revolution-of-the-reincarnated-princess-and-the-genius-young-lady.json b/src/data/mappings/the-magical-revolution-of-the-reincarnated-princess-and-the-genius-young-lady.json new file mode 100644 index 0000000..b4db8c0 --- /dev/null +++ b/src/data/mappings/the-magical-revolution-of-the-reincarnated-princess-and-the-genius-young-lady.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 153629, + "anilistMangaId": 122344, + "title": "The Magical Revolution of the Reincarnated Princess and the Genius Young Lady", + "sourceNotes": "Single-cour anime (12 eps, Jan-Mar 2023), adapted primarily from the light novel (13 volumes, complete). The manga adaptation finished serialization in March 2026 and is complete at 53 chapters (9 volumes); it follows the same early story beats as the anime rather than the full 13-volume light novel, with episode 12 corresponding to roughly manga chapter 50 and the final chapters extending slightly past the anime's ending. No theatrical films.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 50], + "arc": "Main Story (Anime Adaptation)" + }, + { "chapters": [51, 53], "arc": "Epilogue (manga-only ending, unadapted)" } + ] +} diff --git a/src/data/mappings/the-strongest-sage-with-the-weakest-crest.json b/src/data/mappings/the-strongest-sage-with-the-weakest-crest.json new file mode 100644 index 0000000..0721eee --- /dev/null +++ b/src/data/mappings/the-strongest-sage-with-the-weakest-crest.json @@ -0,0 +1,20 @@ +{ + "anilistAnimeId": 129191, + "anilistMangaId": 99931, + "title": "The Strongest Sage with the Weakest Crest", + "sourceNotes": "Single-cour, 12 episodes (Jan-Mar 2022). Originally a web novel; the Manga UP! manga is used here as the 'chapters' source since AniList reports null volume/chapter counts for both the novel and the manga. Manga is ongoing, at 30 tankobon volumes as of May 2026 per Anime News Network; chapter numbering is inconsistent across scanlation aggregators (chapter-split conventions vary by source), so chapter figures use an approximate ~5 chapters/volume and should be treated as rough estimates. The anime's 12 episodes appear to cover roughly the first 5-6 volumes (GN 5 released Sept. 2021, mid-broadcast) -- approx. ch. 1-30; the remaining ~120 chapters (vol. 7+) are unadapted.", + "mappings": [ + { "episodes": [1, 4], "chapters": [1, 10], "arc": "Academy Enrollment" }, + { + "episodes": [5, 8], + "chapters": [11, 20], + "arc": "Demon Threat / City Defense" + }, + { + "episodes": [9, 12], + "chapters": [21, 30], + "arc": "Duel and the Powerful Enemy" + }, + { "chapters": [31, 150], "arc": "Unadapted ongoing manga (Vol. 7+)" } + ] +} diff --git a/src/data/mappings/the-water-magician.json b/src/data/mappings/the-water-magician.json new file mode 100644 index 0000000..b69ed2c --- /dev/null +++ b/src/data/mappings/the-water-magician.json @@ -0,0 +1,28 @@ +{ + "anilistAnimeId": 186052, + "anilistMangaId": 142688, + "title": "The Water Magician", + "sourceNotes": "Single season, 12 episodes ('Part 1: Central Provinces'). Direct source is Tadashi Kubo's light novel; the manga adaptation lags far behind (only ch. 36 by the anime's midpoint) so this maps by LIGHT NOVEL VOLUME instead of manga chapter, matching the ascendance-of-a-bookworm convention -- the `chapters` tuples below are LN volume numbers, not manga chapters. Part 1 (vols 1-7) is complete and fully adapted by the 12-episode season; Part 2 'Western Nations' (vols 8-12) is complete but unadapted on TV, and Part 3 'Eastern Nations' (vols 13-18+) is ongoing. Per-episode volume boundaries are approximate.", + "mappings": [ + { + "episodes": [1, 2], + "chapters": [1, 1], + "arc": "Introduction Arc (Reincarnation & Training in Rondo Forest)" + }, + { + "episodes": [3, 8], + "chapters": [2, 5], + "arc": "Adventure Guild / Dungeon Crisis Arc (Lune, the Great Tidal Bore, the Gate)" + }, + { + "episodes": [9, 12], + "chapters": [6, 7], + "arc": "Whitnash Festival Arc (Confrontation with Oscar, the Inferno Magician)" + }, + { "chapters": [8, 12], "arc": "Part 2: Western Nations Arc (unadapted)" }, + { + "chapters": [13, 18], + "arc": "Part 3: Eastern Nations Arc (unadapted, ongoing)" + } + ] +} diff --git a/src/data/mappings/this-art-club-has-a-problem.json b/src/data/mappings/this-art-club-has-a-problem.json new file mode 100644 index 0000000..621b675 --- /dev/null +++ b/src/data/mappings/this-art-club-has-a-problem.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 21457, + "anilistMangaId": 80331, + "title": "This Art Club Has a Problem!", + "sourceNotes": "12-episode single-cour anime (Feel, 2016) is an episodic 4-koma-adjacent gag comedy; each episode strings together several short, largely self-contained vignettes drawn non-sequentially from the manga. Resume reading post-anime at ch. 35. Manga ongoing since Oct 2012 (Dengeki Maoh), current ch. ~112 (vol. 16) as of 2026; AniList lists chapters as null. Chapter ranges are approximate given the non-linear episode-to-chapter drawing and the series' lack of named story arcs.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 34], + "arc": "Art Club Antics (Season 1)" + }, + { "chapters": [35, 112], "arc": "Post-anime (ongoing, unadapted)" } + ] +} diff --git a/src/data/mappings/tokyo-ravens.json b/src/data/mappings/tokyo-ravens.json new file mode 100644 index 0000000..15e8dba --- /dev/null +++ b/src/data/mappings/tokyo-ravens.json @@ -0,0 +1,28 @@ +{ + "anilistAnimeId": 16011, + "anilistMangaId": 54037, + "title": "Tokyo Ravens", + "sourceNotes": "Single-cour 24-episode TV anime (2013-14) adapting the first 9 volumes of Kōhei Azano's light novel; paired here with Atsushi Suzumi's manga adaptation, which follows the same story at roughly 5 chapters per volume (complete at 82 chapters across 15 volumes). Anime episode groupings mirror the light novel's volume subtitles (SHAMAN*CLAN, RAVEN'S NEST, etc.); some minor side-story content from volumes 4-5 is skipped in the TV adaptation, so that boundary is approximate. Manga volumes 10-15 (ch 47-82) cover the light novel's second story arc and were never animated.", + "mappings": [ + { "episodes": [1, 3], "chapters": [1, 5], "arc": "SHAMAN*CLAN" }, + { "episodes": [4, 6], "chapters": [6, 10], "arc": "RAVEN'S NEST" }, + { "episodes": [7, 9], "chapters": [11, 15], "arc": "cHImAirA DanCE" }, + { + "episodes": [10, 14], + "chapters": [16, 25], + "arc": "GIRL RETURN / days in nest" + }, + { + "episodes": [15, 17], + "chapters": [26, 30], + "arc": "Black Shaman ASSAULT" + }, + { "episodes": [18, 19], "chapters": [31, 35], "arc": "_DARKNESS_EMERGE_" }, + { "episodes": [20, 21], "chapters": [36, 41], "arc": "over-cry" }, + { "episodes": [22, 24], "chapters": [42, 46], "arc": "to The DarkSky" }, + { + "chapters": [47, 82], + "arc": "Second Arc (Volumes 10-15, unadapted in the TV anime)" + } + ] +} diff --git a/src/data/mappings/undefeated-bahamut-chronicle.json b/src/data/mappings/undefeated-bahamut-chronicle.json new file mode 100644 index 0000000..5775379 --- /dev/null +++ b/src/data/mappings/undefeated-bahamut-chronicle.json @@ -0,0 +1,25 @@ +{ + "anilistAnimeId": 21188, + "anilistMangaId": 85613, + "title": "Undefeated Bahamut Chronicle", + "sourceNotes": "12-episode single-cour anime (Lerche, 2016) adapting light novel volumes 1-5 (of 20 total). Episode-to-light-novel-volume boundaries are well documented (vol 1 = ep 1-2, vol 2 = ep 3-5, vol 3 = ep 6-7, vol 4 = ep 8-9, vol 5 = ep 10-12). The anilistMangaId here points at the separate manga adaptation (complete at 46 chapters across 11 volumes, itself only covering part of the light novel's story), since AniList's light-novel entry does not track a chapter count. No published chapter-level breakdown of the manga exists, so chapter ranges are proportionally estimated against the known volume boundaries and should be treated as approximate. Arc names follow the heroine-focused structure of the source material.", + "mappings": [ + { + "episodes": [1, 2], + "chapters": [1, 4], + "arc": "Lisesharte / The Crimson War Princess" + }, + { "episodes": [3, 5], "chapters": [5, 9], "arc": "Krulcifer's Engagement" }, + { + "episodes": [6, 9], + "chapters": [10, 18], + "arc": "Celestia's Challenge / Philuffy's Ragnarok" + }, + { + "episodes": [10, 12], + "chapters": [19, 23], + "arc": "Academy Festival / The Imperial Assassin" + }, + { "chapters": [24, 46], "arc": "Unadapted Arcs" } + ] +} diff --git a/src/data/mappings/unwanted-undead-adventurer.json b/src/data/mappings/unwanted-undead-adventurer.json new file mode 100644 index 0000000..cfbd58c --- /dev/null +++ b/src/data/mappings/unwanted-undead-adventurer.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 147642, + "anilistMangaId": 100693, + "title": "The Unwanted Undead Adventurer", + "sourceNotes": "Single 12-episode season (ONA). Manga ongoing (current ch. 70); AniList does not track chapter counts for this series so figures are sourced from tracking sites. Anime-continuation guides agree the season covers manga chapters 1-29, with readers directed to pick the manga back up at ch. 30. No widely-documented named-arc split exists for the adapted stretch beyond the Bronze-Class Exam and Garden Labyrinth story beats named in the anime's own episode titles, so the intervening groupings below are approximate.", + "mappings": [ + { + "episodes": [1, 4], + "chapters": [1, 6], + "arc": "Unwanted Undead (Death & Awakening)" + }, + { + "episodes": [5, 6], + "chapters": [7, 14], + "arc": "Undead Adventurer / Bronze-Class Exam" + }, + { + "episodes": [7, 10], + "chapters": [15, 24], + "arc": "Magical Contract & Dragonblood Flower" + }, + { + "episodes": [11, 12], + "chapters": [25, 29], + "arc": "The Garden Labyrinth" + }, + { + "chapters": [30, 70], + "arc": "Unadapted (manga ongoing)" + } + ] +} diff --git a/src/data/mappings/uzumaki.json b/src/data/mappings/uzumaki.json new file mode 100644 index 0000000..4268c98 --- /dev/null +++ b/src/data/mappings/uzumaki.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 111314, + "anilistMangaId": 30436, + "title": "Uzumaki", + "sourceNotes": "Single season, 4 episodes (Adult Swim, 2024), adapting Junji Ito's complete 19-chapter, 3-volume horror manga (serialized 1998-1999) at roughly 5 chapters per 23-minute episode. Chapter boundaries are approximate, sourced from the manga's per-volume chapter-title breakdown and episode-airdate synopses (Wikipedia, CBR) rather than a dedicated fan sync guide. Manga complete at 19 core chapters; AniList's chapters count of 20 also includes the standalone bonus story 'Uzumaki Tokubetsu-hen: Ginga' (Lost Chapter: Galaxies), which the anime does not adapt and is listed here as an unadapted tail entry.", + "mappings": [ + { + "episodes": [1, 1], + "chapters": [1, 5], + "arc": "The Spiral Obsession / The Scar / The Firing Effect / Twisted Souls" + }, + { + "episodes": [2, 2], + "chapters": [6, 9], + "arc": "Medusa / Jack-in-the-Box / The Snail / The Black Lighthouse" + }, + { + "episodes": [3, 3], + "chapters": [10, 13], + "arc": "Mosquitoes / The Umbilical Cord / The Storm / The House" + }, + { + "episodes": [4, 4], + "chapters": [14, 19], + "arc": "Butterflies / Chaos / Erosion / Escape / The Labyrinth / Completion" + }, + { + "chapters": [20, 20], + "arc": "Lost Chapter: Galaxies (unadapted bonus story)" + } + ] +} diff --git a/src/data/mappings/vampire-knight.json b/src/data/mappings/vampire-knight.json new file mode 100644 index 0000000..f298d18 --- /dev/null +++ b/src/data/mappings/vampire-knight.json @@ -0,0 +1,22 @@ +{ + "anilistAnimeId": 3457, + "anilistMangaId": 30618, + "title": "Vampire Knight", + "sourceNotes": "Cumulative episodes across S1 \"Vampire Knight\" (13, AniList 3457) + S2 \"Vampire Knight: Guilty\" (13, AniList 4752) = 26. Manga by Matsuri Hino is complete; AniList lists 108 total chapters, though the tankobon volumes collect the main story as 93 numbered \"Nights\" (1st Night - 93rd Night across 19 volumes) - the AniList total likely folds in bonus/omake chapters interspersed between volumes, so treat exact chapter numbers as approximate. Season 1 adapts roughly the first 5 volumes (through the 24th Night); Guilty continues through roughly the 43rd-47th Night as the anime caught up to ongoing serialization by late 2008. The manga continues well past the anime's ending into the Kuran family's full backstory and the Rido conflict.", + "mappings": [ + { + "episodes": [1, 13], + "chapters": [1, 24], + "arc": "Cross Academy (Season 1)" + }, + { + "episodes": [14, 26], + "chapters": [25, 43], + "arc": "Yuki's Awakening (Guilty / Season 2)" + }, + { + "chapters": [44, 108], + "arc": "Rest of the manga (unadapted, approximate)" + } + ] +} diff --git a/src/data/mappings/villainess-level-99.json b/src/data/mappings/villainess-level-99.json new file mode 100644 index 0000000..7c23963 --- /dev/null +++ b/src/data/mappings/villainess-level-99.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 163076, + "anilistMangaId": 122786, + "title": "Villainess Level 99: I May Be the Hidden Boss but I'm Not the Demon Lord", + "sourceNotes": "Mapped by LIGHT NOVEL VOLUME, not chapter. Satori Tanabata's light novel is the anime's actual source; the illustrated manga by Nokomi (AniList id 118519) is a separate, much slower retelling — by the time the 12-episode anime finished airing in March 2024 the manga had only reached chapter 19 (roughly episode 9's content), and it was still at chapter ~25 as of mid-2026 — so it cannot supply a usable chapter mapping. The `chapters` tuples below hold LN VOLUME numbers and `anilistMangaId` points to the light novel itself (AniList id 122786), the work these volumes index. The single-cour anime (12 eps) adapts all of LN Volume 1 but diverges into an anime-original finale not found in the source. The light novel is ongoing at 6 published Japanese volumes (as of late 2024, unchanged through mid-2026); Volumes 2-6 are the unadapted tail.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 1], + "arc": "Volume 1: Yumiella's academy life as the game's secret final boss, ending with an anime-original finale" + }, + { + "chapters": [2, 6], + "arc": "Volumes 2-6: unadapted continuation of the light novel" + } + ] +} diff --git a/src/data/mappings/vivy-fluorite-eyes-song.json b/src/data/mappings/vivy-fluorite-eyes-song.json new file mode 100644 index 0000000..05815af --- /dev/null +++ b/src/data/mappings/vivy-fluorite-eyes-song.json @@ -0,0 +1,18 @@ +{ + "anilistAnimeId": 128546, + "anilistMangaId": 131940, + "title": "Vivy -Fluorite Eye's Song-", + "sourceNotes": "13-episode original anime (Wit Studio, story by Tappei Nagatsuki, 2021) paired with a concurrent 23-chapter (4-volume, complete) tie-in manga by Morito Yamataka that adapts the same story; the anime is a continuous narrative without distinct named arcs, so chapter ranges are proportioned across the story's two halves, split at the Ophelia/Antonio reveal in episode 8.", + "mappings": [ + { + "episodes": [1, 8], + "chapters": [1, 14], + "arc": "First Singularity Points: Elysium to the Zodiac Signs Fes" + }, + { + "episodes": [9, 13], + "chapters": [15, 23], + "arc": "Final Singularity / Vivy's Choice" + } + ] +} diff --git a/src/data/mappings/wagnaria.json b/src/data/mappings/wagnaria.json new file mode 100644 index 0000000..78097a1 --- /dev/null +++ b/src/data/mappings/wagnaria.json @@ -0,0 +1,23 @@ +{ + "anilistAnimeId": 6956, + "anilistMangaId": 33044, + "title": "Wagnaria!!", + "sourceNotes": "Cumulative episodes across 3 TV seasons sharing the same source manga: Wagnaria!! S1 (13, 2010) + Wagnaria!!2 / Working'!! (13, 2011) + Wagnaria!!3 / Working!!! (13, 2015) = 39 eps. (The 2016 spinoff WWW.Wagnaria!! is excluded — it adapts a different, unrelated web-manga continuity, not Karino Takatsu's Young Gangan series.) Manga complete at 252 chapters (13 volumes, 2005-2014, plus a short run of Extra Chapters). Working!! is a 4-koma-style gag/slice-of-life comedy with no continuous story arcs, and fan sources note the anime pulls chapters out of publication order rather than adapting them sequentially — so the per-season chapter ranges below are approximate proportional estimates (roughly a third of the manga per season), not a precise sequential mapping.", + "mappings": [ + { + "episodes": [1, 13], + "chapters": [1, 84], + "arc": "Season 1 (Wagnaria!!)" + }, + { + "episodes": [14, 26], + "chapters": [85, 168], + "arc": "Season 2 (Wagnaria!!2 / Working'!!)" + }, + { + "episodes": [27, 39], + "chapters": [169, 252], + "arc": "Season 3 (Wagnaria!!3 / Working!!!)" + } + ] +} diff --git a/src/data/mappings/waiting-in-the-summer.json b/src/data/mappings/waiting-in-the-summer.json new file mode 100644 index 0000000..c2b7fc8 --- /dev/null +++ b/src/data/mappings/waiting-in-the-summer.json @@ -0,0 +1,18 @@ +{ + "anilistAnimeId": 11433, + "anilistMangaId": 65713, + "title": "Waiting in the Summer", + "sourceNotes": "Single season, 12 episodes. The 12-episode 2012 TV anime is an anime-original story; the 3-volume, 11-chapter manga by Pepako Dokuta (serialized in Dengeki Daioh, Mar. 2012-Feb. 2013) is a close tie-in adaptation that ran concurrently with the TV broadcast, compressing roughly one chapter per episode. Manga complete at 11 chapters. A separate light-novel adaptation (AniList id 84597, 30 chapters/2 volumes) also exists but is not used here. No distinct named story arcs; the show is a single continuous slice-of-life romance plot.", + "mappings": [ + { + "episodes": [1, 6], + "chapters": [1, 5], + "arc": "Ichika's Arrival / Filmmaking Club Forms" + }, + { + "episodes": [7, 12], + "chapters": [6, 11], + "arc": "Confessions / Ichika's Secret Revealed" + } + ] +} diff --git a/src/data/mappings/welcome-to-the-ballroom.json b/src/data/mappings/welcome-to-the-ballroom.json new file mode 100644 index 0000000..043adff --- /dev/null +++ b/src/data/mappings/welcome-to-the-ballroom.json @@ -0,0 +1,27 @@ +{ + "anilistAnimeId": 98005, + "anilistMangaId": 78347, + "title": "Welcome to the Ballroom", + "sourceNotes": "Single 24-episode season (Production I.G, 2017). Manga ongoing (current ch. 72, ~12 volumes). The anime adapts through ch. 54 (roughly volume 7), with its final two episodes running slightly ahead of the manga's pace at the time (anime-original beats covering content the manga hadn't yet drawn). Arc names and chapter ranges from the fandom wiki's Story Arcs / Chapters and Volumes pages; per-episode boundaries beyond the confirmed anchor points (ep. 7 opens the Tenpei Cup at ch. 8, ep. 11 closes it, ep. 18 opens the Metropolitan Tournament at ch. 35) are approximate reconstructions.", + "mappings": [ + { "episodes": [1, 2], "chapters": [1, 2], "arc": "Introduction" }, + { + "episodes": [3, 6], + "chapters": [3, 7], + "arc": "Mikasa Cup / Regional Qualifiers" + }, + { "episodes": [7, 11], "chapters": [8, 17], "arc": "Tenpei Cup" }, + { "episodes": [12, 14], "chapters": [18, 27], "arc": "Meeting Arc" }, + { "episodes": [15, 16], "chapters": [28, 30], "arc": "Grand Prix" }, + { "episodes": [17, 17], "chapters": [31, 34], "arc": "Camp Arc" }, + { + "episodes": [18, 24], + "chapters": [35, 54], + "arc": "Metropolitan Tournament" + }, + { + "chapters": [55, 72], + "arc": "Unadapted (manga continuation, incl. the eye-disease storyline)" + } + ] +} diff --git a/src/data/mappings/witch-craft-works.json b/src/data/mappings/witch-craft-works.json new file mode 100644 index 0000000..b732264 --- /dev/null +++ b/src/data/mappings/witch-craft-works.json @@ -0,0 +1,15 @@ +{ + "anilistAnimeId": 20503, + "anilistMangaId": 49896, + "title": "Witch Craft Works", + "sourceNotes": "Single-cour, 12 episodes. Manga complete (AniList lists 119 chapters across 17 volumes; some chapter-list aggregators count ~108 due to differing bonus-chapter tallies). The anime adapts roughly the first 29 chapters, climaxing with the manga's 'vs. Weekend' arc (ch. 18-27, vol. 5-6), leaving the bulk of the manga (ch. 30-119) unadapted. Chapter boundaries approximated from volume tables of contents — refine via PR.", + "mappings": [ + { + "episodes": [1, 9], + "chapters": [1, 17], + "arc": "Takamiya-kun and the Workshop Witches" + }, + { "episodes": [10, 12], "chapters": [18, 29], "arc": "Weekend Arc" }, + { "chapters": [30, 119], "arc": "Unadapted Manga Continuation" } + ] +} diff --git a/src/data/mappings/witch-watch.json b/src/data/mappings/witch-watch.json new file mode 100644 index 0000000..3496f7f --- /dev/null +++ b/src/data/mappings/witch-watch.json @@ -0,0 +1,22 @@ +{ + "anilistAnimeId": 180367, + "anilistMangaId": 128896, + "title": "WITCH WATCH", + "sourceNotes": "Season 1 only (25 episodes); a Season 2 has been announced but not yet aired, so it is excluded from episode counts. Manga ongoing (current ch. 253, 27 volumes released). Anime adapts manga chapters 1-98 essentially 1:1 with no filler; episodes compile multiple short chapters into anthology-style installments (~4 chapters/episode). The episode 13 cour/OP break aligns with the start of Volume 6 (ch. 45) and is used as the internal split point.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 44], + "arc": "Part 1: Otogi House / Kanshi Kazamatsuri" + }, + { + "episodes": [13, 25], + "chapters": [45, 98], + "arc": "Part 2: Keigo Magami / Miharu Kiryu" + }, + { + "chapters": [99, 253], + "arc": "Unadapted Continuation (manga only, ongoing)" + } + ] +} diff --git a/src/data/mappings/wolf-girl-and-black-prince.json b/src/data/mappings/wolf-girl-and-black-prince.json new file mode 100644 index 0000000..d13cb99 --- /dev/null +++ b/src/data/mappings/wolf-girl-and-black-prince.json @@ -0,0 +1,14 @@ +{ + "anilistAnimeId": 20701, + "anilistMangaId": 58825, + "title": "Wolf Girl and Black Prince", + "sourceNotes": "Single season, 12 episodes. Manga complete; AniList lists 69 chapters (16 volumes, including bonus/extra stories woven into the main numbering used by most fan guides, which top out around ch. 58). The anime adapts the early relationship through roughly the main-numbering equivalent of Chapter 21-22 (end of Volume 6); the remainder of the romance plays out manga-only.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 25], + "arc": "Fake Boyfriend / Early Relationship" + }, + { "chapters": [26, 69], "arc": "Manga-Only Continuation" } + ] +} diff --git a/src/data/mappings/worlds-end-harem.json b/src/data/mappings/worlds-end-harem.json new file mode 100644 index 0000000..400661f --- /dev/null +++ b/src/data/mappings/worlds-end-harem.json @@ -0,0 +1,32 @@ +{ + "anilistAnimeId": 118465, + "anilistMangaId": 87260, + "title": "World's End Harem", + "sourceNotes": "11-episode 2021-2022 anime adapts the first part of LINK's manga (12 vols, 87 ch, complete since 2020) up through ch.54 'Reunion' in Vol.8. Arc boundaries are inferred from matching episode/volume titles (ep2 'Two Women' = Vol.2's title; ep8 'Revenge' = Vol.6's title) since no official per-episode guide exists; ranges within the anime's run are APPROXIMATE. The sequel manga 'World's End Harem: After World' (AniList id 133871) and spin-off titles (Fantasia, Britannia Lumiere) continue/branch the story and are out of scope for this mapping.", + "mappings": [ + { + "episodes": [1, 2], + "chapters": [1, 14], + "arc": "Cold Sleep & The New World (Vols. 1-2)" + }, + { + "episodes": [3, 5], + "chapters": [15, 28], + "arc": "Academy Secrets & Assassination Plots (Vols. 3-4)" + }, + { + "episodes": [6, 8], + "chapters": [29, 41], + "arc": "Refugee District Conspiracy & Revenge (Vols. 5-6)" + }, + { + "episodes": [9, 11], + "chapters": [42, 54], + "arc": "World Headquarters Plot & Reunion with Elisa (Vols. 7-8)" + }, + { + "chapters": [55, 87], + "arc": "Unadapted Part 1 finale (Vols. 8-12)" + } + ] +} diff --git a/src/data/mappings/yakuzas-guide-to-babysitting.json b/src/data/mappings/yakuzas-guide-to-babysitting.json new file mode 100644 index 0000000..866550e --- /dev/null +++ b/src/data/mappings/yakuzas-guide-to-babysitting.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 138882, + "anilistMangaId": 107896, + "title": "The Yakuza's Guide to Babysitting", + "sourceNotes": "Single-cour 12-episode TV anime (Feel/Gaina, 2022). Manga ongoing (16 tankobon volumes, current ch. ~64 as of 2026; AniList lists no fixed chapter count for the ongoing series). Fan continue-reading guides point viewers to resume the manga at chapter 37 after the anime, putting the season's coverage at chapters 1-36. No distinct named story arcs are used by the source material, so broad season-based entries are used instead.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 36], + "arc": "Season 1" + }, + { + "chapters": [37, 64], + "arc": "Unadapted (manga continues, approximate)" + } + ] +} diff --git a/src/data/mappings/yuru-yuri.json b/src/data/mappings/yuru-yuri.json new file mode 100644 index 0000000..8dcfc0f --- /dev/null +++ b/src/data/mappings/yuru-yuri.json @@ -0,0 +1,17 @@ +{ + "anilistAnimeId": 10495, + "anilistMangaId": 41593, + "title": "YuruYuri", + "sourceNotes": "Cumulative episodes across S1 (12) + S2 ‘♪♪’ (12) + S3 ‘San☆Hai!’ (12) = 36. Manga ongoing (current ch. 235; no new volume since 2022), an episodic 4-koma-adjacent gag comedy with no named story arcs — finishing all three TV seasons leaves off around chapter 98, after which the manga continues unadapted. OVAs/specials (Nachuyachumi!, Ten, MiniYuri) are bonus anime-original content not mapped to specific chapters; the Ōmuro-ke films are a separate spin-off manga/continuity and are excluded.", + "mappings": [ + { + "episodes": [1, 36], + "chapters": [1, 98], + "arc": "TV Series (Seasons 1-3)" + }, + { + "chapters": [99, 235], + "arc": "Post-anime material (manga-only, ongoing)" + } + ] +} diff --git a/src/data/mappings/yuuna-and-the-haunted-hot-springs.json b/src/data/mappings/yuuna-and-the-haunted-hot-springs.json new file mode 100644 index 0000000..d827672 --- /dev/null +++ b/src/data/mappings/yuuna-and-the-haunted-hot-springs.json @@ -0,0 +1,30 @@ +{ + "anilistAnimeId": 100483, + "anilistMangaId": 87213, + "title": "Yuuna and the Haunted Hot Springs", + "sourceNotes": "Single 12-episode TV series (Xebec, 2018); manga by Tadahiro Miura is ongoing (222 chapters as of AniList). The anime is an ecchi harem adaptation that frequently interleaves and reorders manga chapters for pacing (e.g. episode 6 splices in chapter 19 alongside chapter 7), so boundaries below are APPROXIMATE and grouped by the manga's own named arcs rather than a strict linear chapter count; the anime adapts up to roughly chapter 29 by its finale, with some anime-original content in the last three episodes. The 4-episode OVA (AniList id 101581) is a separate, non-contiguous bonus release bundled with specific volumes (adapting scattered chapters like 12, 35-36, 99, and 141) and is excluded from this cumulative episode count. Manga is far ahead of the anime and the unadapted tail is included as chapters-only.", + "mappings": [ + { + "episodes": [1, 3], + "chapters": [1, 6], + "arc": "Yuragi Inn / Yukemuri High School Arc" + }, + { + "episodes": [4, 6], + "chapters": [7, 11], + "arc": "Nonko & the Youkai of Yuragi-sou" + }, + { "episodes": [7, 8], "chapters": [13, 16], "arc": "Ryuuga Family Arc" }, + { + "episodes": [9, 9], + "chapters": [17, 18], + "arc": "A Night at Yuragi Inn Arc" + }, + { + "episodes": [10, 12], + "chapters": [19, 29], + "arc": "Chisaki of the Yuragi Inn / Finale" + }, + { "chapters": [30, 222], "arc": "Unadapted (ongoing)" } + ] +} diff --git a/src/data/mappings/zombie-land-saga.json b/src/data/mappings/zombie-land-saga.json new file mode 100644 index 0000000..35f3ce2 --- /dev/null +++ b/src/data/mappings/zombie-land-saga.json @@ -0,0 +1,19 @@ +{ + "anilistAnimeId": 103871, + "anilistMangaId": 104714, + "title": "ZOMBIE LAND SAGA", + "sourceNotes": "Original anime (12 episodes); the tie-in manga by Megumu Soramichi is complete at 30 chapters (4 volumes). The manga is a Kotaro-focused companion retelling, not a scene-for-scene adaptation: its first 4 chapters compile events already seen across the 12 TV episodes, while chapters 5-30 follow Kotaro's own original side-story (his search for 'Saga', the Three Wise Men, and the climactic battle) that runs parallel to, rather than adapting, the anime's S1 timeline. Chapter boundaries past ch. 4 are therefore approximate volume-level estimates. The 'Revenge' sequel (S2), 'Gaiden: The First Zombie' prequel manga, and the Anthology spin-off are separate adaptations and are out of scope here.", + "mappings": [ + { + "episodes": [1, 12], + "chapters": [1, 4], + "arc": "Franchouchou's Formation (compiled from the TV anime)" + }, + { "chapters": [5, 16], "arc": "Kotaro's Search for Saga (manga-original)" }, + { + "chapters": [17, 23], + "arc": "The Three Wise Men & the Battle for Saga (manga-original)" + }, + { "chapters": [24, 30], "arc": "Ekimae Fudosan (manga-original epilogue)" } + ] +}