MTGA pushes everything to a log file, you don’t need to do image mapping or whatever.
For example:
[UnityCrossThreadLogger]12/15/2021 10:23:18 PM
<== Event_GetCourses(d9ce961e-855e-449c-a94a-f5b405fa3c95)
{"Courses":[{"CourseId":"96ff92bd-d305-4ac8-9008-92f70a2ab41e","InternalEventName":"Constructed_BestOf3","CurrentModule":4,"ModulePayload":"","CourseDeckSummary":{"DeckId":"6f0c40ac-bd96-4186-9303-50cce2817c8a","Name":"Rakdos Midrange","Attributes":[{"name":"lastPlayed","value":"10/17/2020 8:03:29 PM"},{"name":"Format","value":"TraditionalStandard"}],"Description":"","DeckTileId":70262,"FormatLegalities":{"TraditionalStandard":true},"CardBack":"CardBack_Default","DeckValidationSummaries":[],"UnownedCards":{}},"CourseDeck":{"MainDeck":[{"cardId":70262,"quantity":4},{"cardId":70732,"quantity":4},{"cardId":73350,"quantity":4},{"cardId":70616,"quantity":3},{"cardId":70244,"quantity":2},{"cardId":70248,"quantity":2},{"cardId":71946,"quantity":2},{"cardId":73284,"quantity":2},{"cardId":73290,"quantity":3},{"cardId":73363,"quantity":2},{"cardId":70598,"quantity":1},{"cardId":73302,"quantity":2},{"cardId":71158,"quantity":3},{"cardId":71203,"quantity":1},{"cardId":73370,"quantity":2},{"cardId":70602,"quantity":1},{"cardId":70629,"quantity":3},{"cardId":70388,"quantity":1},{"cardId":72028,"quantity":1},{"cardId":70391,"quantity":3},{"cardId":75555,"quantity":4},{"cardId":75557,"quantity":6},{"cardId":70758,"quantity":4}],"ReducedSideboard":[],"Sideboard":[{"cardId":70598,"quantity":1},{"cardId":71203,"quantity":2},{"cardId":70594,"quantity":3},{"cardId":70269,"quantity":1},{"cardId":71155,"quantity":2},{"cardId":73324,"quantity":3},{"cardId":70748,"quantity":3}],"CommandZone":[],"Companions":[],"CardSkins":[]},"CardPool":[]},{"CourseId":"3b7046bd-2727-4b6e-a659-6d83a361b631","InternalEventName":"Play","CurrentModule":4,"ModulePayload":"","CourseDeckSummary":{"DeckId":"4f943673-633f-4864-bb01-285ea06a587f","Name":"Izzet","Attributes":[{"name":"Format","value":"Standard"}],"Description":"","DeckTileId":66057,"FormatLegalities":{"Standard":true},"DeckValidationSummaries":[],"UnownedCards":{}},"CourseDeck":{"MainDeck":[{"cardId":66057,"quantity":4},{"cardId":67017,"quantity":7},{"cardId":67021,"quantity":8},{"cardId":67992,"quantity":4},{"cardId":68112,"quantity":3},{"cardId":68732,"quantity":4},{"cardId":67598,"quantity":1},{"cardId":68186,"quantity":2},{"cardId":66091,"quantity":4},{"cardId":68624,"quantity":4},{"cardId":68688,"quantity":4},{"cardId":68738,"quantity":2},{"cardId":68569,"quantity":3},{"cardId":68615,"quantity":2},{"cardId":68653,"quantity":2},{"cardId":66067,"quantity":3},{"cardId":66125,"quantity":2},{"cardId":66109,"quantity":1}],"ReducedSideboard":[],"Sideboard":[],"CommandZone":[],"Companions":[],"CardSkins":[]},"CardPool":[]},{"CourseId":"ac0d0654-84d3-4080-81b9-1031fb0e2d42","InternalEventName":"Play_Brawl_Historic","CurrentModule":7,"ModulePayload":"","CourseDeckSummary":{"DeckId":"d40a8478-5aad-42b8-8a83-9222ed4e47b7","Mana":"UG","Name":"New Deck (6)","Attributes":[{"name":"Version","value":"11"},{"name":"TileID","value":"69323"},{"name":"LastPlayed","value":"\"2021-08-25T23:06:46.6436021\""},{"name":"LastUpdated","value":"\"2021-08-25T23:06:42.0205417\""},{"name":"IsFavorite","value":"false"},{"name":"Format","value":"HistoricBrawl"}],"DeckTileId":69323,"FormatLegalities":{},"DeckValidationSummaries":[],"UnownedCards":{}},"CourseDeck":{"MainDeck":[{"cardId":69828,"quantity":1},{"cardId":77467,"quantity":16},{"cardId":50873,"quantity":1},{"cardId":73976,"quantity":1},{"cardId":77479,"quantity":16},{"cardId":70456,"quantity":1},{"cardId":72447,"quantity":1},{"cardId":68164,"quantity":1},{"cardId":69600,"quantity":1},{"cardId":69501,"quantity":1},{"cardId":61419,"quantity":1},{"cardId":75231,"quantity":1},{"cardId":73402,"quantity":1},{"cardId":77305,"quantity":1},{"cardId":72504,"quantity":1},{"cardId":73827,"quantity":1},{"cardId":69839,"quantity":1},{"cardId":67790,"quantity":1},{"cardId":73249,"quantity":1},{"cardId":68040,"quantity":1},{"cardId":66889,"quantity":1},{"cardId":71975,"quantity":1},{"cardId":68072,"quantity":1},{"cardId":69519,"quantity":1},{"cardId":76626,"quantity":1},{"cardId":69302,"quantity":1},{"cardId":72021,"quantity":1},{"cardId":50943,"quantity":1},{"cardId":69837,"quantity":1},{"cardId":69250,"quantity":1},{"cardId":69952,"quantity":1},{"cardId":72498,"quantity":1},{"cardId":71229,"quantity":1},{"cardId":73985,"quantity":1},{"cardId":70389,"quantity":1},{"cardId":73267,"quantity":1},{"cardId":70387,"quantity":1},{"cardId":73420,"quantity":1},{"cardId":73386,"quantity":1},{"cardId":73425,"quantity":1},{"cardId":75859,"quantity":1},{"cardId":69394,"quantity":1},{"cardId":67584,"quantity":1},{"cardId":70040,"quantity":1},{"cardId":76682,"quantity":1},{"cardId":77494,"quantity":1},{"cardId":75268,"quantity":1},{"cardId":76625,"quantity":1},{"cardId":76585,"quantity":1},{"cardId":71856,"quantity":1},{"cardId":71137,"quantity":1},{"cardId":77495,"quantity":1},{"cardId":73849,"quantity":1},{"cardId":69683,"quantity":1},{"cardId":70002,"quantity":1},{"cardId":76613,"quantity":1},{"cardId":75780,"quantity":1},{"cardId":77343,"quantity":1},{"cardId":67516,"quantity":1},{"cardId":69311,"quantity":1},{"cardId":66429,"quantity":1},{"cardId":77540,"quantity":1},{"cardId":70466,"quantity":1},{"cardId":70464,"quantity":1},{"cardId":69259,"quantity":1},{"cardId":69622,"quantity":1},{"cardId":70685,"quantity":1},{"cardId":75223,"quantity":1},{"cardId":70307,"quantity":1}],"ReducedSideboard":[],"Sideboard":[],"CommandZone":[{"cardId":69323,"quantity":1}],"Companions":[],"CardSkins":[{"GrpId":69323,"CCV":"DA"},{"GrpId":69828,"CCV":"DA"},{"GrpId":70456,"CCV":"DA"},{"GrpId":68164,"CCV":"DA"},{"GrpId":69394,"CCV":"DA"},{"GrpId":76625,"CCV":"DA"},{"GrpId":76585,"CCV":"DA"},{"GrpId":70002,"CCV":"DA"},{"GrpId":77540,"CCV":"JP"},{"GrpId":69259,"CCV":"DA"}]},"CurrentWins":1,"CardPool":[]},{"CourseId":"5b8d23f0-678b-4630-a467-79a327a9cd47","InternalEventName":"Traditional_Historic_Ladder","CurrentModule":4,"ModulePayload":"","CourseDeckSummary":{"DeckId":"77b78d67-a363-44ee-8d21-2ec12bd89e9d","Mana":"WU","Name":"UW Historic","Attributes":[{"name":"Version","value":"11"},{"name":"TileID","value":"75272"},{"name":"LastPlayed","value":"\"2021-12-12T23:56:00.8389562\""},{"name":"LastUpdated","value":"\"2021-12-12T23:55:36.3321552\""},{"name":"IsFavorite","value":"false"},{"name":"Format","value":"TraditionalAlchemy"}],"DeckTileId":75272,"FormatLegalities":{},"DeckValidationSummaries":[],"UnownedCards":{}},"CourseDeck":{"MainDeck":[{"cardId":75272,"quantity":1},{"cardId":79092,"quantity":5},{"cardId":79093,"quantity":4},{"cardId":78612,"quantity":2},{"cardId":73194,"quantity":1},{"cardId":77138,"quantity":2},{"cardId":78345,"quantity":2},{"cardId":78825,"quantity":2},{"cardId":75044,"quantity":4},{"cardId":78374,"quantity":3},{"cardId":73254,"quantity":3},{"cardId":76434,"quantity":4},{"cardId":76452,"quantity":2},{"cardId":79918,"quantity":2},{"cardId":75115,"quantity":2},{"cardId":78396,"quantity":2},{"cardId":79965,"quantity":3},{"cardId":78850,"quantity":2},{"cardId":77362,"quantity":2},{"cardId":78629,"quantity":4},{"cardId":75310,"quantity":4},{"cardId":79969,"quantity":2},{"cardId":66487,"quantity":2}],"ReducedSideboard":[{"cardId":77138,"quantity":2},{"cardId":78782,"quantity":1},{"cardId":78791,"quantity":1},{"cardId":78367,"quantity":2},{"cardId":75057,"quantity":1}],"Sideboard":[{"cardId":77138,"quantity":2},{"cardId":78782,"quantity":1},{"cardId":78367,"quantity":2},{"cardId":75057,"quantity":1},{"cardId":78791,"quantity":1},{"cardId":78394,"quantity":2},{"cardId":68498,"quantity":1},{"cardId":76450,"quantity":1},{"cardId":76393,"quantity":1},{"cardId":76397,"quantity":1},{"cardId":78825,"quantity":1},{"cardId":79920,"quantity":1}],"CommandZone":[],"Companions":[],"CardSkins":[{"GrpId":73254,"CCV":"DA"},{"GrpId":76434,"CCV":"DA"},{"GrpId":77362,"CCV":"DA"},{"GrpId":75057,"CCV":"DA"}]},"CardPool":[]},{"CourseId":"7ef909ae-7556-4e7f-9bc5-dae44a18561e","InternalEventName":"Traditional_Alchemy_Ladder","CurrentModule":7,"ModulePayload":"","CourseDeckSummary":{"DeckId":"77b78d67-a363-44ee-8d21-2ec12bd89e9d","Mana":"WU","Name":"UW Historic","Attributes":[{"name":"Version","value":"11"},{"name":"TileID","value":"75272"},{"name":"LastPlayed","value":"\"2021-12-14T19:51:52.3041242\""},{"name":"LastUpdated","value":"\"2021-12-12T23:55:36.3321552\""},{"name":"IsFavorite","value":"false"},{"name":"Format","value":"TraditionalAlchemy"}],"DeckTileId":75272,"FormatLegalities":{},"DeckValidationSummaries":[],"UnownedCards":{}},"CourseDeck":{"MainDeck":[{"cardId":75272,"quantity":1},{"cardId":79092,"quantity":5},{"cardId":79093,"quantity":4},{"cardId":78612,"quantity":2},{"cardId":73194,"quantity":1},{"cardId":77138,"quantity":2},{"cardId":78345,"quantity":2},{"cardId":78825,"quantity":2},{"cardId":75044,"quantity":4},{"cardId":78374,"quantity":3},{"cardId":73254,"quantity":3},{"cardId":76434,"quantity":4},{"cardId":76452,"quantity":2},{"cardId":79918,"quantity":2},{"cardId":75115,"quantity":2},{"cardId":78396,"quantity":2},{"cardId":79965,"quantity":3},{"cardId":78850,"quantity":2},{"cardId":77362,"quantity":2},{"cardId":78629,"quantity":4},{"cardId":75310,"quantity":4},{"cardId":79969,"quantity":2},{"cardId":66487,"quantity":2}],"ReducedSideboard":[{"cardId":77138,"quantity":2},{"cardId":78782,"quantity":1},{"cardId":78791,"quantity":1},{"cardId":78367,"quantity":2},{"cardId":75057,"quantity":1}],"Sideboard":[{"cardId":77138,"quantity":2},{"cardId":78782,"quantity":1},{"cardId":78367,"quantity":2},{"cardId":75057,"quantity":1},{"cardId":78791,"quantity":1},{"cardId":78394,"quantity":2},{"cardId":68498,"quantity":1},{"cardId":76450,"quantity":1},{"cardId":76393,"quantity":1},{"cardId":76397,"quantity":1},{"cardId":78825,"quantity":1},{"cardId":79920,"quantity":1}],"CommandZone":[],"Companions":[],"CardSkins":[{"GrpId":73254,"CCV":"DA"},{"GrpId":76434,"CCV":"DA"},{"GrpId":77362,"CCV":"DA"},{"GrpId":75057,"CCV":"DA"}]},"CurrentWins":1,"CardPool":[]}]}
Here’s a GitHub of someone who did a draft overlay: https://github.com/HearthSim/LotusTracker/blob/d49ae6c1e88c77fbcb10f6f3ceec0759c3d5c790/src/ui/deckoverlaydraft.cpp
It would probably take you around 100+ hours to do this as a total noob, and probably wouldn’t conform to good programming standards. You might be able to fork one of these git repositories and make small changes that use 17lands (instead of their LSV rating class), and in that case may be on the order of 10-40 hours.
Either way, I’d chat to the 17 lands folks and ask them about if anyone is attempting this and if you can collab.
Sounds like somebody did a workaround using another tracker here: Reddit - Dive into anything