Faits :
A.
A.a. Le 7 juillet 2012, D._ Sàrl (alors dénommée E._ Sàrl), représentée par H.F._, d'une part, et K.C._ et B._, d'autre part, ont conclu une convention "de partenariat" (ci-après: la convention) dont le but était de "développer des projets immobiliers en tant que promoteurs et commercialisateurs dans le bassin lémanique".
En exécution de la convention, K.C._ et B._ devaient verser à un notaire un montant de 115'000 fr. à titre d'acompte pour l'achat d'une parcelle, propriété de G._, "dans le but de développer un projet de 3 villas mitoyennes ou jumelles". Cette somme comprenait un acompte de 100'000 fr. exigé par le vendeur, dont il était prévu qu'il leur soit restitué par le notaire "au fur et à mesure des ventes", ainsi que des frais inhérents à la promesse de vente par 15'000 fr.; ces derniers coûts devaient être "supportés par Madame K.C._ et Monsieur B._ et restitués lors de la signature définitive " directement par le notaire, selon les mêmes modalités. Les parties avaient également prévu de quelle manière elles se répartiraient le bénéfice, calculé après déduction des "frais de commercialisation réservés à E._ Sàrl" et des "frais de courtage" dus au courtier, rôle qui était dévolu à cette société à moins qu'elle se substituât quelqu'un d'autre.
L'article 5 de la convention a la teneur suivante:
"Il est accepté de manière irrévocable que les frais forfaitairement fixés à 20'000 fr. inhérents à l'avant-projet architectural, développé par l'architecte A1._ seront supportés par Madame K.C._ et Monsieur B._, et restitués lors de la transaction finale.
En outre, les frais de commercialisation et de publicité seront pris en charge intégralement par la E._ Sàrl."
La promesse de vente et d'achat de la parcelle susmentionnée a été signée par B._ et K.C._ en date des 26 juillet et 7 août 2012. L'acte de vente devait, selon cet accord, être signé à première réquisition de l'une ou l'autre des parties, dès l'entrée en force de l'autorisation de construire, moyennant un préavis écrit de 30 jours minimum, mais le 30 septembre 2013 au plus tard. Le prix de vente était fixé à 2'450'000 fr.
Ce contrat était soumis à une "condition suspensive", tenant en ce que les promettants -acquéreurs eussent obtenu, avant le 30 septembre 2013, l'autorisation de démolir le bâtiment existant et l'autorisation de construire, dûment entrée en force, la demande devant être déposée jusqu'au 30 septembre 2012. Si cette condition n'était pas réalisée, l'acompte de 100'000 fr. serait acquis aux promettants-vendeurs.
A.b. A._ SA - avec laquelle D._ Sàrl avait déjà travaillé par le passé à tout le moins sur deux projets immobiliers en collaboration avec l'entrepreneur H._ SA - prétend avoir été mandatée par B._ et K.C._ pour effectuer différentes prestations d'architecte en lien avec la promotion immobilière prévue. À ses dires, il s'agissait de préparer le dossier et les plans en vue d'obtenir l'autorisation de démolir la villa existante sur la parcelle concernée et l'autorisation d'y construire trois villas groupées, ainsi que de préparer, après la délivrance desdites autorisations, les calculs et la documentation pour le chiffrage du projet de construction des trois villas, de même que tous documents nécessaires en vue de l'ouverture du chantier. B._ et K.C._ contestent l'existence d'un tel accord, raison d'être de la présente procédure.
Après avoir préparé le dossier et les plans y relatifs, A._ SA a déposé, le 28 septembre 2012, auprès de l'Office de l'urbanisme une demande d'autorisation de démolir la villa existante ainsi qu'une demande d'autorisation de construire trois villas sur la parcelle en cause. Les demandes mentionnaient A._ SA comme mandataire, H._ SA comme requérante et B._ comme propriétaire; elles étaient signées par ce dernier sous la rubrique "propriétaire". La publication dans la Feuille d'avis officielle est intervenue le xxx 2012.
A1._, administrateur de la société éponyme, et B._ se sont rencontrés à une seule occasion, soit le 27 septembre 2012, lorsque le second nommé est venu dans les locaux de la société du premier cité pour signer les demandes en question.
Le 4 octobre 2012, A._ SA a adressé à D._ Sàrl "à l'attention de Monsieur B._ et Madame K.C._" une facture d'un montant de 41'040 fr. TTC - soit 38'000 fr. HT - correspondant au premier acompte demandé et équivalant à 40% des prestations liées à la phase d'autorisation de construire de 94'500 fr. HT (lesquelles correspondaient à 26,5% des prestations totales). En annexe à cette facture figurait une estimation détaillée du calcul des honoraires de A._ SA pour chacune des prestations, sur laquelle la date du 13 mars 2012 était apposée.
Le 29 octobre 2012, A._ SA a renvoyé par e-mail intitulé "Copie B._/ Acompte N° autorisation" la facture susmentionnée à l'adresse électronique de H.F._, qui l'a fait suivre, avec l'e-mail d'accompagnement, à B._. Celui-ci a répondu le lendemain qu'il présenterait cette facture à V.C._, père de K.C._, le 12 novembre suivant, mais qu'il souhaitait voir H.F._ auparavant pour discuter de l'évolution du dossier compte tenu de la conjoncture de l'époque. H.F._ lui a écrit le même jour que la conjoncture n'était pas mauvaise et qu'il était confiant.
B._ et K.C._ ont payé l'acompte exigé.
Le 21 janvier 2013, A._ SA a adressé à D._ Sàrl "Monsieur B._ et Madame K.C._" un courrier accompagné des autorisations de démolir et de construire qui avaient été accordées le 14 janvier 2013, ainsi que leurs annexes. Le 2 avril 2013, elle a envoyé à "I._ Association A l'attention de M. B._ et Mme K.C._" une facture de 61'020 fr. TTC - représentant le solde des honoraires pour la phase d'autorisation de construire après déduction du premier acompte payé (94'500 fr. ÷ 38'000 fr. HT) - ainsi qu'une facture de 8'100 fr. TTC pour les activités déployées en lien avec le dossier de commercialisation. Le 31 mai 2013, elle a fait parvenir à la même adresse deux nouvelles factures, l'une de 46'332 fr. TTC représentant un acompte pour les prestations effectuées dans le cadre de la phase d'exécution totalisant 103'500 fr. HT, et l'autre de 892 fr.83 TTC correspondant aux frais de photocopie et d'héliographie. A la même date, elle a écrit à "I._ Association A l'attention de M. B._" que le solde qui lui était encore dû s'élevait à 116'344 fr.83 TTC.
Le 12 juin 2013, A._ SA a rappelé à B._, lui écrivant à l'adresse de la I._ Association, que les factures de 61'020 fr. et 8'100 fr., soit au total 69'120 fr., n'étaient toujours pas réglées.
Dans un nouveau rappel du 26 juin 2013, A._ SA a attiré l'attention de B._ et K.C._ sur le fait qu'ils s'étaient formellement engagés envers elle en apposant leurs signatures sur le dossier de demande d'autorisation de construire, ainsi que "selon (sa) facture du 4 octobre 2012 et (leur) règlement du 14 novembre 2012". Les interpellés lui ont répondu, le 5 juillet 2013, qu'ils n'étaient pas concernés par les montants qu'elle réclamait.
A.c. Le 10 juillet 2013, B._ et K.C._ ont écrit à D._ Sàrl pour lui demander l'état d'avancement des projets de vente des villas, vu l'échéance prochaine de la promesse d'achat et de vente; ils lui ont également fait savoir qu'ils avaient payé plus que le montant de 20'000 fr. convenu; ils estimaient que le trop payé à A._ SA devait leur être restitué et annonçaient qu'ils ne verseraient pas les montants supplémentaires réclamés par cette société.
Fin septembre 2013, D._ Sàrl a informé les prénommés qu'aucune des villas n'était encore vendue.
La promesse de vente et d'achat est arrivée à échéance sans que l'une ou l'autre des parties se manifeste, de sorte que la vente du bien immobilier aux promettants-acquéreurs n'a pas eu lieu.
A.d. Le 21 janvier 2014, dans le cadre d'un autre projet qui ne concerne pas B._ et K.C._, une demande d'autorisation de construire trois villas sur la même parcelle a été publiée dans la Feuille d'avis officielle; la publication mentionne J._ Sàrl comme requérante, A._ SA comme architecte et les époux G._ comme propriétaires de la parcelle.
J._ Sàrl - dont l'associée gérante est F.F._, également associée de D._ Sàrl - a racheté le terrain en question. Les villas projetées ont été vendues.
B.
Par demande déposée le 29 octobre 2013, A._ SA a assigné B._ et K.C._, pris conjointement et solidairement, en paiement de la somme de 116'345 fr. avec intérêts.
Les défendeurs ont appelé en cause D._ Sàrl. Ils ont conclu au rejet de la demande et au déboutement de la demanderesse et de l'appelée en cause de toutes autres conclusions. Subsidiairement, ils ont sollicité la condamnation de l'appelée en cause au paiement à la demanderesse de tout montant dont eux-mêmes devraient par impossible être débiteurs envers la demanderesse.
Dans son jugement du 20 décembre 2018, le Tribunal de première instance du canton de Genève a retenu que A._ SA, qui avait considérablement varié dans ses explications en cours de procédure, n'avait pas apporté la preuve de la conclusion d'un contrat d'architecte avec B._ et K.C._. En particulier, la demanderesse n'avait pas démontré que l'appelée en cause disposait des pouvoirs pour représenter les défendeurs, ni qu'elle avait contracté - expressément ou par actes concluants - au nom des défendeurs; il n'était pas plus établi que les défendeurs auraient ratifié les commandes faites auprès de la demanderesse, ni que les factures litigieuses auraient fait l'objet d'une reprise de dette dans le cadre de la société simple formée des défendeurs et de D._ Sàrl. En conséquence, le tribunal a débouté A._ SA.
Statuant le 29 août 2019 sur appel de la demanderesse, la Chambre civile de la Cour de justice du canton de Genève a confirmé le jugement de première instance. Ses motifs seront évoqués ci-après, dans les considérants en droit.
C.
A._ SA (la recourante ou la demanderesse) interjette un "recours civil". Principalement, elle demande au Tribunal fédéral d'annuler l'arrêt cantonal, puis de condamner les défendeurs, solidairement entre eux, à lui payer la somme de 61'020 fr. plus intérêts à 5% dès le 1er juin 2013.
B._ (l'intimé 1) et K.C._ (l'intimée 2) (ou les défendeurs) concluent au déboutement de la recourante, non sans observer que la somme qui leur est réclamée à présent a été ramenée à un montant correspondant au poste "dossier d'autorisation" et ne concerne donc plus la phase de pré-exécution dont les travaux avaient été commandés par H._ SA, dont la recourante était la sous-traitante.
D._ Sàrl (l'intimée 3 ou l'appelée en cause) propose le rejet du recours.
Pour sa part, la cour cantonale se réfère aux considérants de son arrêt.

Considérant en droit :
1.
Le recours est dirigé contre un arrêt final (<ref-law>) rendu en matière civile (<ref-law>) par le tribunal supérieur institué comme autorité cantonale de dernière instance, lequel a statué sur recours (<ref-law>). La cause atteint la valeur litigieuse de 30'000 fr. ouvrant le recours en matière civile dans les affaires pécuniaires qui ne relèvent ni du droit du travail, ni du droit du bail à loyer (<ref-law>). La recourante, dont les conclusions condamnatoires ont été rejetées, a qualité pour recourir (<ref-law>). Déposé dans le délai (<ref-law>) et la forme (<ref-law>) prévus par la loi, le recours est en principe recevable, sous réserve de l'examen des griefs particuliers.
2.
2.1. Le recours en matière civile peut être exercé pour violation du droit fédéral (<ref-law>), y compris le droit constitutionnel (<ref-ruling> consid. 2.1 p. 247; <ref-ruling> consid. 2.4 p. 313). Le Tribunal fédéral applique le droit d'office (<ref-law>). Compte tenu de l'exigence de motivation contenue à l'art. 42 al. 1 et 2 LTF, sous peine d'irrecevabilité (<ref-law>), le Tribunal fédéral n'examine en principe que les griefs invoqués, sauf en cas d'erreurs juridiques manifestes. Il n'est pas tenu de traiter, comme le ferait une autorité de première instance, toutes les questions juridiques qui se posent, lorsque celles-ci ne sont plus discutées devant lui (<ref-ruling> consid. 2, 115 consid. 2; <ref-ruling> consid. 1.3). Par exception à la règle selon laquelle il applique le droit d'office, il n'examine la violation d'un droit constitutionnel que si le grief a été invoqué et motivé de façon détaillée (<ref-law>; <ref-ruling> consid. 2.3; <ref-ruling> consid. 1.3; <ref-ruling> consid. 1.4 in fine).
2.2. Le Tribunal fédéral statue sur la base des faits établis par l'autorité précédente (<ref-law>). Il ne peut rectifier ou compléter les constatations de l'autorité précédente que si elles sont manifestement inexactes ou découlent d'une violation du droit au sens de l'<ref-law> (<ref-law>). "Manifestement inexactes" signifie ici "arbitraires" (<ref-ruling> consid. 1.3.1 p. 253; <ref-ruling> consid. 2 p. 117; <ref-ruling> consid. 1.5). Encore faut-il que la correction du vice soit susceptible d'influer sur le sort de la cause (<ref-law>).
La critique de l'état de fait retenu est soumise au principe strict de l'allégation énoncé par l'<ref-law> (<ref-ruling> consid. 2.3 p. 266 et les références). La partie qui entend attaquer les faits constatés par l'autorité précédente doit expliquer clairement et de manière circonstanciée en quoi les conditions précitées seraient réalisées (<ref-ruling> consid. 1.3.1 p. 18 et les références). Si elle souhaite obtenir un complètement de l'état de fait, elle doit aussi démontrer, par des renvois précis aux pièces du dossier, qu'elle a présenté aux autorités précédentes en conformité avec les règles de procédure les faits juridiquement pertinents à cet égard et les moyens de preuve adéquats (<ref-ruling> consid. 2 p. 90). Si la critique ne satisfait pas à ces exigences, les allégations relatives à un état de fait qui s'écarterait de celui de la décision attaquée ne pourront pas être prises en considération (<ref-ruling> consid. 1.3.1 p. 18). Aucun fait nouveau ni preuve nouvelle ne peut être présenté à moins de résulter de la décision de l'autorité précédente (<ref-law>).
3.
Le litige porte sur l'existence d'un contrat d'architecte entre la demanderesse et les défendeurs.
Le contrat d'architecte n'est pas réglé spécifiquement dans la loi et peut recouvrir différentes prestations, telles que l'établissement de plans et d'autres documents concernant des travaux de construction ou de transformation d'un immeuble (sur ce contrat, cf. <ref-ruling> consid. 4.2 p. 197; <ref-ruling> consid. 5.1; <ref-ruling> consid. 2a p. 545; arrêts 4A_89/2017 du 2 octobre 2017 consid. 4, 4A_90/2013 du 10 juin 2013 consid. 3, 4A_55/2012 du 31 juillet 2012 consid. 4.4)
En l'absence d'une disposition spéciale, la conclusion du contrat d'architecte n'est soumise à aucune forme particulière, par exemple la forme écrite (cf. <ref-law>).
Comme tout contrat, le contrat d'architecte exige un accord des volontés. Il n'est valablement conclu que lorsque les parties ont, réciproquement et d'une manière concordante, manifesté leur volonté (<ref-law>). C'est le cas lorsque chacune d'elles a fait connaître à l'autre sa volonté de conclure un contrat d'architecte et qu'elles sont tombées d'accord sur tous les points objectivement et subjectivement essentiels (<ref-law>), à savoir en tout cas sur les prestations que l'architecte devra fournir (PIERRE TERCIER, La formation du contrat et les clauses d'architecte, in Le droit de l'architecte, 3e éd. 1995, ch. 110 p. 41 et ch. 112/113 p. 42).
Pour déterminer si un contrat d'architecte a été passé par actes concluants, le juge doit tout d'abord s'efforcer de dégager la commune et réelle intention des parties (interprétation subjective), le cas échéant empiriquement, sur la base d'indices (<ref-ruling> consid. 2.3.2 p. 274, 626 consid. 3.1 p. 632; <ref-ruling> consid. 4.1). Constituent des indices en ce sens non seulement la teneur des déclarations de volonté - écrites ou orales -, mais encore le contexte général, soit toutes les circonstances permettant de découvrir la volonté des parties, qu'il s'agisse de déclarations antérieures à la prétendue conclusion du contrat ou de faits postérieurs à celle-ci, en particulier le comportement ultérieur des parties établissant quelles étaient à l'époque les conceptions des intéressés eux-mêmes (<ref-ruling> consid. 5.2.2 p. 98; <ref-ruling> consid. 4.1). L'appréciation de ces indices concrets par le juge, selon son expérience générale de la vie, relève du fait. Si le juge parvient à la conclusion que les parties se sont comprises ou, au contraire, qu'elles ne se sont pas comprises, il s'agit d'une constatation de fait qui lie le Tribunal fédéral (<ref-law>), à moins qu'elle ne soit manifestement inexacte (art. 97 al. 1 et 105 al. 2 LTF), c'est-à-dire arbitraire au sens de l'art. 9 Cst. (<ref-ruling> consid. 5.2.2 p. 98 et les arrêts cités).
S'il ne parvient pas à déterminer la volonté réelle et commune des parties ou constate qu'une partie n'a pas compris la volonté exprimée par l'autre, le juge recherchera leur volonté objective, en déterminant le sens que, d'après les règles de la bonne foi, chaque partie pouvait et devait raisonnablement prêter aux déclarations de volonté de l'autre (interprétation objective; <ref-ruling> consid. 2.3.2 p. 274/275, 626 consid. 3.1 p. 632). Il s'agit d'une interprétation selon le principe de la confiance (<ref-ruling> consid. 5.2.3 p. 99). Les circonstances déterminantes sont alors celles qui ont précédé ou accompagné la manifestation de volonté, mais non les événements postérieurs (<ref-ruling> consid. 2.2.1 p. 67; <ref-ruling> consid. 4.2.1; <ref-ruling> consid. 3a; <ref-ruling> consid. 2b). La détermination de la volonté des parties selon le principe de la confiance est une question de droit que le Tribunal fédéral examine librement. Cependant, pour trancher cette question, il faut s'appuyer sur le contenu des manifestations de volonté et sur les circonstances, qui relèvent du fait (<ref-ruling> consid. 5.2.3 p. 99; <ref-ruling> consid. 2.5 p. 122/123 et les arrêts cités).
Il incombe à l'architecte qui réclame des honoraires de prouver les circonstances permettant de conclure à l'existence d'un accord des parties (<ref-law>).
4.
La recourante se plaint d'arbitraire dans la constatation des faits, respectivement dans l'appréciation des preuves, ainsi que d'une violation du droit fédéral.
A l'enseigne de l'arbitraire dans la constatation des faits, elle expose que les défendeurs auraient "marqué leur accord " "d'intervenir comme mandant client, et d'honorer les prestations de l'architecte" en signant les demandes d'autorisation de construire et de démolir relatives à l'immeuble litigieux, de même qu'en payant l'acompte qu'elle avait réclamé, lequel était détaillé sous l'angle des prestations qu'il recouvrait.
Sous l'égide de la violation du droit fédéral, respectivement des art. 1, 18, 374 et 394 al. 3 CO, la recourante reprend en boucle le même argument, expliquant qu'"en signant la demande d'autorisation accompagnant les plans établis pour l'architecte pour ensuite payer la demande d'acompte qui précisait le calcul des honoraires, et le solde dû dès la délivrance de l'autorisation de construire, les intimés ont marqué leur accord avec le travail effectué (par elle) (ainsi que) leur accord avec la rémunération due à l'architecte". Elle prétend l'avoir déduit de bonne foi de l'attitude des défendeurs.
4.1. La cour cantonale a constaté, d'une manière qui lie le Tribunal fédéral, que la demanderesse et les défendeurs n'avaient pas formalisé un quelconque accord en la forme écrite. Certes, ils pouvaient fort bien l'avoir conclu oralement ou par actes concluants, aucune forme n'étant imposée par la loi, respectivement réservée par les parties dans le cas d'espèce. Les juges cantonaux ont toutefois écarté cette hypothèse, en raisonnant en deux temps.
En premier lieu, la recourante prétendait avoir conclu le contrat d'architecte après la signature de la promesse de vente et d'achat des 26 juillet et 7 août 2012. Elle n'alléguait pas que les défendeurs aient été représentés par qui que ce soit. Or, la recourante n'avait rencontré l'intimé 1 qu'à une seule reprise, lors de la signature des demandes d'autorisation de démolir et de construire le 27 septembre 2012, alors qu'elle avait débuté son activité - pour laquelle elle réclamait une rémunération - bien auparavant. Sachant qu'il fallait entre trois et cinq mois pour déposer une demande d'autorisation de construire dans un projet tel que celui-là et que la signature des demandes était intervenue le 27 septembre 2012, la recourante avait donc commencé à y travailler avant même que les défendeurs ne signent la promesse d'achat et de vente des 26 juillet et 7 août 2012. La date du 13 mars 2012 figurant sur l'estimation des honoraires, annexe au courrier du 4 octobre 2012, venait conforter cette appréciation. La version des faits de la recourante était dès lors incohérente.
En second lieu, le comportement des défendeurs ne révélait pas une intention de leur part de s'engager vis-à-vis de la demanderesse. Certes, ils avaient payé un acompte de 38'000 fr., signé des demandes d'autorisations de construire et s'étaient portés acquéreurs de la parcelle à bâtir, ce qui pouvait constituer des indices en ce sens. Ces éléments n'étaient toutefois pas suffisants dans ce contexte, sachant que les défendeurs avaient été incités à régler l'acompte en raison du manque de liquidités allégué de l'appelée en cause, qu'ils n'avaient pas activement participé au projet immobilier et que l'appelée en cause avait continué à gérer seule l'avancement du projet auprès de la recourante; ainsi, le rôle des intimés 1 et 2 s'était limité à l'apport d'un financement total de l'ordre de 173'000 fr. (115'000 fr. + 20'000 fr. + 38'000 fr.). Une conclusion identique s'imposait au terme d'une interprétation objective.
4.2. En préambule, il convient de recadrer le débat. La question n'est pas de savoir si la recourante a établi des plans qui ont servi à une mise à l'enquête publique et si elle a droit à une rémunération pour son travail. Les arguments que la recourante soulève s'agissant de ce dernier aspect sont hors de propos, tout autant que la jurisprudence à laquelle elle se réfère (<ref-ruling>); ses griefs tirés d'une violation des art. 374 et 394 al. 3 CO sont mal fondés. La recourante ne saurait déduire un accord avec les intimés 1 et 2 du simple constat que ceux-ci avaient l'utilité des plans qu'elle a réalisés. Les défendeurs n'étaient pas seuls dans cette situation. La question est bien plutôt de déterminer si la recourante a réalisé les plans en exécution d'un accord passé avec les intimés 1 et 2 (et nul autre).
La recourante ne tente pas d'expliquer les raisons qui justifieraient qu'elle ait débuté ses travaux - pour laquelle elle prétend être rémunérée - largement avant de rencontrer pour la première et unique fois l'intimé 1, à l'occasion de la signature des demandes de permis de construire, respectivement de démolir. Elle laisse ainsi intactes les considérations des juges genevois selon lesquelles sa version des faits est incohérente d'un point de vue temporel. Elle ne remet pas non plus en cause les constatations souveraines de la cour cantonale, sur le seul et unique contact qu'elle a eu avec l'intimé 1 et sur sa renonciation à soutenir que les défendeurs auraient été représentés.
Il faut donc croire, si l'on épouse la thèse de la recourante, que celle-ci a réalisé des plans sans y avoir été invitée par les défendeurs et a attendu de rencontrer l'un d'entre eux pour être mandatée, leur volonté se traduisant par la signature de la demande de permis de construire, respectivement de démolir. Un tel scénario n'est guère convaincant dans ce contexte, si l'on sait que les intimés 1 et 2 n'ont pas participé activement au projet immobilier. A suivre la recourante, le paiement de l'acompte demandé viendrait accréditer - voire fonder - l'existence de cet accord. En réalité, la cour cantonale a constaté que c'était le manque de liquidités de l'appelée en cause qui avait motivé les défendeurs à régler cette facture. La recourante se plaint en vain d'arbitraire dans la constatation d'une prétendue volonté subjective concordante des parties, grief qu'au demeurant elle n'étaie guère autrement que par une appréciation divergente des faits.
La signature des documents nécessaires à la mise à l'enquête, respectivement le paiement de l'acompte demandé le 4 octobre 2012 fonderaient-ils un contrat sur la base d'une interprétation objective? La cour de céans en est tout aussi peu convaincue que l'autorité précédente. Une demande d'autorisation s'inscrit dans une relation de droit public entre un requérant et l'État; l'intimé 1 l'a signée sous la rubrique "propriétaire", qualité qu'il ne revêtait au demeurant pas (encore) puisqu'il était uniquement au bénéfice d'une promesse de vente et d'achat conditionnelle. Comme c'était la seule et unique fois que la recourante rencontrait le premier nommé, qu'aucun des défendeurs n'avait participé activement au projet, l'appelée en cause ayant en effet continué à en gérer seule l'avancement auprès de la recourante et de H._ SA, il n'est guère concevable que la signature en question puisse légitimement susciter le sentiment que les défendeurs entendaient se lier en qualité de mandants à la demanderesse. En raisonnant comme la recourante, il faudrait du reste considérer au même titre H._ SA, qui a signé les formules en tant que "requérante". La recourante ne se hasarde toutefois pas sur ce terrain.
Quant au versement de l'acompte, il n'a pas non plus une signification univoque, différentes raisons pouvant justifier le paiement par un tiers dans un contexte où la volonté de mener à bien un projet prend le pas sur les difficultés de liquidités des uns ou des autres. Dans les circonstances de l'espèce, la facture d'acompte avait été envoyée à l'appelée en cause "à l'attention de Monsieur B._ et Madame K.C._", ce qui est ambigu. La recourante s'est à nouveau adressée à l'appelée en cause - et non directement aux intimés 1 et/ou 2 - le 29 octobre 2012 pour lui renvoyer ladite facture. Il régnait ainsi un certain flou dans l'adressage qui se concilie mal avec la confiance que la demanderesse affirme pouvoir placer dans le paiement de l'acompte par les défendeurs. D'autant que la facture en cause a été adressée, respectivement a transité, par l'appelée en cause et que, selon les constatations des juges cantonaux, cette dernière avait également suggéré à H._ SA de se tourner vers les défendeurs pour obtenir le règlement d'une autre facture que "personne ne voulait payer" et dont les intimés 1 et 2 n'étaient pas - à tout le moins directement - redevables.
Le grief de violation des art. 1 et 18 CO soulevé par la recourante doit donc également être écarté.
5.
Sur le vu ce qui précède, le recours sera rejeté, aux frais de la recourante (<ref-law>). Celle-ci versera des dépens aux intimés (art. 68 al. 1 et 2 LTF); le montant dû à l'appelée en cause sera fonction de la brièveté de sa réponse.

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 4'000 fr., sont mis à la charge de la recourante.
3.
La recourante versera aux intimés 1 et 2, créanciers solidaires, une indemnité de 5'000 fr. à titre de dépens.
La recourante versera à l'intimée 3 (appelée en cause) une indemnité de 2'000 fr. à titre de dépens.
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 9 juillet 2020
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente : Kiss
La Greffière : Godat Zimmermann