Faits :
A.
A.a. D._, originaire du Kosovo et domicilié à Genève, était le détenteur d'un véhicule automobile Fiat à raison duquel il avait souscrit une assurance en responsabilité civile auprès de C._ SA (ci-après: la compagnie d'assurance).
La police établie le 30 mai 2007 se réfère aux conditions générales d'assurance (CGA). Sur le plan territorial, l'art. 6 CGA énonce ce qui suit:
"L'assurance est valable pour les dommages causés pendant la durée du contrat et qui surviennent:
- en Suisse et dans la Principauté du Liechtenstein;
- dans les autres Etats européens qui figurent sur la 'carte verte' (Carte internationale d'assurance pour les véhicules automobiles) et qui ne sont pas biffés."
La carte verte délivrée au preneur d'assurance D._ comporte une liste de pays désignés par leur sigle officiel. Y figure notamment le sigle "SCG", correspondant à l'Etat de Serbie-et-Monténégro; ce sigle n'a pas été biffé. Au verso figure la mention "SCG (...) Serbie et Monténégro", avec l'adresse du Bureau d'assurance à Belgrade. Le Kosovo n'est pas mentionné sur cette carte.
La carte verte comporte en outre une note n° 4 ayant la teneur suivante:
"La couverture d'assurance fournie par les cartes vertes délivrées pour Serbie et Monténégro est limitée aux parties géographiques de Serbie et Monténégro qui sont sous le contrôle du gouvernement de Serbie et Monténégro."
L'Etat de Serbie-et-Monténégro a succédé en 2003 à l'ancienne République fédérale de Yougoslavie. Cet Etat a été dissous après la déclaration d'indépendance du Monténégro survenue le 3 juin 2006, suivie par celle de la Serbie le 5 juin 2006. Lorsque l'assurance a été conclue et la carte verte délivrée en mai 2007, l'Etat de Serbie-et-Monténégro n'existait donc plus.
Le Kosovo était une province de Serbie. Il a été placé sous administration internationale intérimaire chapeautée par l'ONU, en vertu d'une résolution 1244 adoptée par le Conseil de sécurité de l'ONU le 10 juin 1999. E n mai 2007, le Kosovo faisait toujours l'objet de cette mesure. Il s'est proclamé unilatéralement indépendant le 17 février 2008. Nonobstant cet événement, la carte verte n'accorde à ce jour aucune couverture d'assurance pour le territoire du Kosovo.
A l'occasion de la procédure qui sera exposée ci-dessous (infra let. B), le détenteur du véhicule et preneur d'assurance a donné les explications suivantes en qualité de témoin: il était déjà assuré auprès de la même compagnie d'assurance avant de conclure un nouveau contrat en mai 2007. Il avait toujours eu une carte verte qu'il n'avait jamais lue attentivement. Il se rendait régulièrement au Kosovo avec sa voiture, dès avant 2007. A chaque fois, il devait contracter à la frontière une assurance de transit couvrant la responsabilité civile pour son véhicule pendant toute la durée de son séjour. Il essayait d'éviter celle-ci en expliquant qu'il était déjà assuré, mais l'autorité compétente lui disait que le paiement était obligatoire. Avant de signer le contrat en mai 2007, il avait un doute sur le point de savoir s'il était également assuré au Kosovo par son contrat; il pensait que c'était peut-être le cas car le Kosovo n'était pas tracé sur la carte verte. Au moment de conclure le contrat, il n'était pas sûr que la couverture s'étende au Kosovo.
A.b. En été 2007, le détenteur et preneur d'assurance a prêté son véhicule à son gendre A._, qui l'a utilisé pour se rendre au Kosovo. A la frontière du Kosovo, le gendre a dû contracter une assurance intitulée "transit insurance policy" pour la période du 19 juillet au 19 août 2007.
Le 25 juillet 2007, le gendre du détenteur circulait au Kosovo dans le véhicule Fiat comme passager sur la banquette arrière. Le conducteur a perdu le contrôle de la voiture, qui a fait plusieurs tonneaux pour finir sa course dans un champ. A._ a souffert d'une fracture et de lésions thoraciques; il est devenu paraplégique.
Par courrier du 18 avril 2008, la compagnie d'assurance a refusé de donner suite aux prétentions émises par l'accidenté, au motif que la couverture d'assurance était "limitée aux parties géographiques de Serbie et Monténégro qui [étaie]nt sous le contrôle du gouvernement de cet Etat", ce qui n'était pas le cas du Kosovo, placé sous l'administration de l'ONU au moment de l'accident.
L'accidenté a été indemnisé à raison de 90'000 euros par l'assurance de transit contractée à la frontière du Kosovo. Il touche des rentes AI pour lui-même et ses enfants, ainsi que des prestations complémentaires fédérales. Il a en outre obtenu un capital de quelque 42'300 fr. de sa caisse LPP.
B.
Après avoir saisi l'autorité de conciliation le 28 juin 2012, l'accidenté a déposé une demande en paiement devant le Tribunal de première instance du canton de Genève. Il concluait à ce que la compagnie d'assurance lui verse 53'880 fr. plus intérêts.
Le tribunal, d'entente avec les parties, a limité la procédure à la question de la couverture d'assurance. Par jugement du 21 août 2014, il a rejeté la demande en paiement au motif que l'assurance ne s'appliquait pas au Kosovo.
L'accidenté a saisi la Chambre civile de la Cour de justice genevoise, qui a confirmé le jugement attaqué par arrêt du 20 février 2015.
C.
L'accidenté saisit le Tribunal fédéral d'un "recours en matière de droit privé" tendant à faire constater que la compagnie d'assurance doit entièrement prendre en charge les suites de l'accident du 25 juillet 2007 à son égard, et à obtenir le renvoi de la cause à l'autorité précédente pour qu'elle statue sur le dommage subi.
Le recourant sollicite par ailleurs l'assistance judiciaire.
La compagnie d'assurance intimée et l'autorité précédente n'ont pas été invitées à se déterminer.
D.
Le 30 avril 2015, C._ SA a été radiée du registre du commerce par suite de fusion avec B._ SA.

Considérant en droit :
1.
D'après le registre du commerce, B._ SA a repris les actifs et passifs de C._ SA dans le cadre d'une fusion. Elle lui a dès lors succédé ex lege en qualité de partie à la procédure (<ref-law> en liaison avec l'<ref-law>; arrêt 4A_434/2012 du 7 novembre 2012 consid. 1; sous l'OJ, <ref-ruling> consid. 1). Le rubrum du présent arrêt tient compte de cette modification.
2.
Le Tribunal de première instance a limité la procédure à la question de savoir si l'assurance couvrait un accident survenu au Kosovo (cf. <ref-law>). Répondant par la négative, il a rejeté la demande en paiement formée par l'accidenté, décision qui a été confirmée par la Cour de justice. Dès lors qu'elle met fin à la procédure, cette décision doit être qualifiée de finale (<ref-law>). Pour le surplus, la valeur litigieuse minimale de 30'000 fr. est atteinte (<ref-law>). Partant, la voie du recours en matière civile est ouverte.
3.
3.1. Le recourant dénonce une fausse application des art. 1 et 18 CO, 33 LCA et 2 al. 1 CC. En substance, il plaide que l'art. 6 CGA et les indications figurant sur la carte verte laissaient subsister un doute certain quant à la couverture d'assurance au Kosovo; l'exclusion de cette région n'étant pas suffisamment précise, elle ne serait pas opposable au preneur d'assurance et aux ayants droit.
3.2. La jurisprudence fédérale a développé des règles d'interprétation en s'appuyant principalement sur les art. 1 et 18 CO, ainsi que sur l'<ref-law>. Le recourant admet qu'il n'était pas possible de dégager une réelle et commune intention des parties (cf. <ref-law>), de sorte qu'il était légitime de recourir à l'interprétation objective, comme l'a fait la Cour de justice.
L'interprétation objective, ou interprétation selon le principe de la confiance, consiste à rechercher comment la manifestation de volonté émise par un cocontractant pouvait de bonne foi être comprise par son destinataire, en fonction de l'ensemble des circonstances (<ref-ruling> consid. 3.2 p. 413; <ref-ruling> consid. 3.3 p. 681). Ce principe permet d'imputer à l'émetteur d'une manifestation de volonté le sens objectif de sa déclaration ou de son comportement, même s'il ne correspond pas à sa volonté intime (<ref-ruling> consid. 3.2). Sont déterminantes les circonstances ayant précédé ou accompagné la manifestation de volonté, à l'exclusion des événements postérieurs (<ref-ruling> consid. 2.2.1).
Les conditions générales préformulées qui sont intégrées au contrat doivent être interprétées selon les mêmes principes que les autres dispositions contractuelles. A titre subsidiaire, soit lorsque l'interprétation selon les règles habituelles laisse subsister un doute sur leur sens, les conditions générales doivent être interprétées en défaveur de leur auteur, conformément à la règle dite des clauses ambiguës (Unklarheitsregel, in dubio contra stipulatorem; <ref-ruling> consid. 2.2.2.3 p. 69; <ref-ruling> consid. 1b p. 158; <ref-ruling> consid. 2a). Pour que cette règle s'applique, il ne suffit pas que les parties soient en litige sur le sens d'une déclaration; encore faut-il que celle-ci puisse être comprise de différentes façons et qu'il soit impossible de lever le doute au moyen d'une interprétation ordinaire (arrêt 5C.11/2005 du 27 mai 2005 consid. 3.3, in RNRF 2008 46; <ref-ruling> consid. 1a; <ref-ruling> consid. 5).
Dans la loi fédérale sur le contrat d'assurance (LCA; RS 221.229.1), l'art. 33 énonce que l'assureur répond de tous les événements qui présentent le caractère du risque contre les conséquences duquel l'assurance a été conclue, à moins que le contrat n'exclue certains événements d'une manière précise, non équivoque. Il en résulte que le preneur d'assurance est couvert contre le risque tel qu'il peut le comprendre de bonne foi à la lecture du contrat et des conditions générales incorporées à celui-ci. Si l'assureur entend apporter des restrictions ou des exceptions, il doit les exprimer clairement, faute de quoi elles ne seront pas opposables au cocontractant ou à son ayant droit (ATF <ref-ruling> consid. 3.3 p. 682; cf. aussi <ref-ruling> consid. 3.2 i.f. p. 413).
3.3. En l'occurrence, l'art. 6 CGA prévoit que l'assurance vaut pour les dommages survenant dans les Etats européens qui figurent sur la carte verte et ne sont pas biffés. La carte verte contient les abréviations officielles de divers pays, dont "SCG", correspondant à l'Etat de Serbie-et-Monténégro; ce sigle n'est pas biffé. Une note n° 4 précise que la couverture d'assurance est limitée aux parties géographiques de Serbie et Monténégro qui sont sous le contrôle du gouvernement de Serbie et Monténégro.
Le Kosovo était une province de Serbie, elle-même fédérée à d'autres entités formant un Etat jusqu'à ce que la Serbie proclame son indépendance en juin 2006. Doté d'une certaine autonomie qui lui a été retirée en 1989, le Kosovo a lutté pour son indépendance, la région étant alors notoirement en proie à de violents conflits. Dès 1999, le Kosovo a fait l'objet d'une administration civile internationale, sous l'égide de l'ONU. Le Kosovo était ainsi rattaché à la Serbie, mais contrôlé provisoirement par l'ONU, et non par le gouvernement étatique dirigeant notamment la Serbie. Sachant cela, il faut comprendre la note n° 4 en ce sens que le Kosovo était exclu de la couverture d'assurance, ce qui correspond à l'intention de la compagnie d'assurance, selon les constatations de la cour cantonale.
Il est vrai que la carte verte a été délivrée en mai 2007, alors que l'Etat de Serbie-et-Monténégro n'existait plus depuis une année. Mais le statut du Kosovo n'avait pas évolué, en ce sens qu'il était considéré comme partie intégrante du territoire de la Serbie, selon la Constitution de ce nouvel Etat, sans que le gouvernement serbe n'exerce le contrôle sur cette province, toujours administrée par l'ONU.
Le recourant objecte que le sigle "SCG" n'était pas biffé et qu'en vertu de l'art. 6 CGA, le preneur d'assurance pouvait partir du principe que la couverture d'assurance valait pour la Serbie et Monténégro, et donc pour le Kosovo comme région de la Serbie. La lecture de la note n° 4 révèle toutefois que la couverture ne valait pas pour toute la surface géographique de l'entité Serbie et Monténégro; se pose donc la question de savoir si l'on pouvait attendre du preneur qu'il lise cette note, respectivement s'il disposait de connaissances géopolitiques suffisantes pour comprendre que le Kosovo était exclu de la couverture d'assurance.
L'arrêt attaqué précise que le preneur est originaire du Kosovo et qu'avant 2007, année où il a conclu une nouvelle police au sein de la même compagnie d'assurance, il retournait déjà régulièrement dans son pays en voiture. A chaque fois, il était obligé de contracter une assurance de transit lorsqu'il arrivait à la frontière du Kosovo; il essayait vainement d'arguer du fait qu'il était déjà couvert. Au moment de signer le contrat en mai 2007, il n'était pas sûr que la couverture d'assurance inclue le Kosovo.
Le preneur, par ses voyages réguliers au Kosovo, ne pouvait ignorer la situation politique de celui-ci et de l'ex-Yougoslavie, situation au demeurant abondamment médiatisée; en particulier, il ne pouvait ignorer que le Kosovo était sous administration onusienne depuis 1999, et que cette situation persistait malgré la dislocation de l'Etat de Serbie-et-Monténégro en 2006. Il s'est de surcroît heurté à la nécessité de contracter systématiquement une assurance de transit lorsqu'il retournait au Kosovo; il a du reste admis éprouver des doutes sur une couverture d'assurance au Kosovo lorsqu'il a signé une nouvelle police en 2007. Dans de telles circonstances, l'on pouvait raisonnablement attendre du preneur d'assurance qu'il lise attentivement la carte verte et sa note n° 4. A tout le moins, la bonne foi commandait au preneur d'assurance, dans ces circonstances concrètes, de se renseigner auprès de la compagnie d'assurance.
La Cour de justice n'a donc pas enfreint le droit fédéral en concluant que l'assurance ne couvrait pas les accidents survenus au Kosovo. L'on ne se trouve manifestement pas en présence d'une clause revêtant deux ou plusieurs sens, seule situation qui justifierait d'adopter la solution la plus favorable au preneur d'assurance.
4.
En définitive, le recours doit être rejeté. Au regard des arguments présentés, il faut admettre qu'il était voué à l'échec au sens de l'<ref-law> (cf. <ref-ruling> consid. 1.2; <ref-ruling> consid. 2.2.4). La demande d'assistance judiciaire doit donc être rejetée.
Le recourant supportera les frais judiciaires (<ref-law>), fixés conformément à l'<ref-law>, qui prescrit de tenir compte notamment de la situation financière du justiciable. Aucune indemnité de dépens n'est due à l'intimée, qui n'a pas été invitée à déposer une réponse.

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
La demande d'assistance judiciaire est rejetée.
3.
Les frais judiciaires, arrêtés à 1'500 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux mandataires des parties et à la Chambre civile de la Cour de justice du canton de Genève.
Lausanne, le 16 juin 2015
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente : Kiss
La Greffière : Monti