Sachverhalt:
A.
A.a. A._, Staatsangehörige von Burkina Faso, und B._ sind die Eltern von C._ (geb. 2008) und D._ (geb. 2012). Die unverheirateten Eltern leben getrennt. Der Vater ist ein in der Schweiz wohnhafter österreichischer Staatsbürger. Die Mutter ist im Jahr 2006 von Ghana aus in die Schweiz eingereist. Sie verfügt hier über keinen Aufenthaltstitel und hält sich seit Februar 2015 in einem Durchgangszentrum für Asylbewerber in U._ auf. Anfänglich verfügte die Mutter über die alleinige elterliche Sorge beider Kinder. Die Kindes- und Erwachsenenschutzbehörde (KESB) der Stadt Zürich ordnete im Herbst 2013 indessen eine Fremdplatzierung der Kinder sowie die Errichtung einer Beistandschaft nach Art. 308 Abs. 1 und 2 ZGB an.
A.b. B._ stellte im Februar 2014 das Gesuch, die Kinder seien in seine Obhut zu geben; zudem beantragte er das alleinige oder geteilte Sorgerecht. Nach umfangreichen Abklärungen beschloss die KESB am 25. Juni 2015, die Kinder C._ und D._ zwar unter die gemeinsame elterliche Sorge von A._ und B._, aber unter die alleinige Obhut des Vaters zu stellen. Seither leben die beiden Kinder im väterlichen Haushalt. Die Beistandschaft nach Art. 308 Abs. 1 und 2 ZGB wurde beibehalten.
Auf Beschwerde beider Eltern hin schränkte der Bezirksrat Zürich die Aufgaben der Beistandschaft ein. Im Übrigen bestätigte er die Anordnungen der KESB (Entscheid vom 17. März 2016).
B.
Dagegen erhob A._ Beschwerde beim Obergericht des Kantons Zürich mit dem Antrag, die Obhut hinsichtlich beider Kinder sei ihr zuzuweisen; eventuell sei die Sache zur Sachverhaltsabklärung und Neubeurteilung zurückzuweisen. Das Obergericht wies die Beschwerde ab (Urteil vom 25. Mai 2016).
C.
A._ führte am 27. Juni 2016 Beschwerde in Zivilsachen. Sie schliesst, die Sache sei zur Neubeurteilung an die Vorinstanz zurückzuweisen. Ausserdem beantragt sie die unentgeltliche Rechtspflege.
Das Bundesgericht hat die kantonalen Akten, aber keine Vernehmlassungen eingeholt.

Erwägungen:
1.
1.1. Die Beschwerdeführerin wehrt sich dagegen, dass die zuvor fremdplatzierten Kinder unter die alleinige Obhut des Beschwerdegegners gestellt werden. Die Vorinstanz habe aufgrund eines unvollständigen Sachverhalts entschieden.
1.2. Angefochten ist ein kantonal letztinstanzlicher Entscheid über die Zuweisung der Obhut (<ref-law>). Dagegen steht die Beschwerde in Zivilsachen offen (Art. 72 Abs. 2 lit. b Ziff. 6, Art. 75 Abs. 1 und Art. 90 BGG).
1.3. In rechtlicher Hinsicht sind alle Rügen gemäss Art. 95 f. BGG zulässig. Das Bundesgericht wendet das Recht von Amtes wegen an (<ref-law>), was heisst, dass es behauptete Rechtsverletzungen (<ref-law>) mit freier Kognition prüft (Urteil 5A_401/2015 vom 7. September 2015 E. 1).
2.
Die Beschwerdeschrift muss ein Rechtsbegehren enthalten (<ref-law>). Die Beschwerde in Zivilsachen ist reformatorischer Natur (<ref-law>). Daher ist grundsätzlich ein Antrag in der Sache erforderlich. Anträge auf Rückweisung der Sache an die Vorinstanz zur neuen Entscheidung oder Aufhebungsanträge genügen allein nicht und machen die Beschwerde unzulässig. Ein blosser Rückweisungsantrag reicht ausnahmsweise aus, wenn das Bundesgericht im Falle einer Gutheissung in der Sache nicht selbst entscheiden könnte, weil die erforderlichen Sachverhaltsfeststellungen der Vorinstanz fehlen (vgl. <ref-ruling> E. 3.1 S. 490 mit Hinweisen). Davon ist im vorliegenden Fall insoweit auszugehen, als die Beschwerdeführerin der Vorinstanz in verschiedener Hinsicht vorwirft, den Sachverhalt unzureichend abgeklärt zu haben (vgl. Urteil 5A_995/2014 vom 16. April 2015 E. 4).
3.
Das Rechtsmittel ist mithin hinsichtlich derjenigen Punkte an die Hand zu nehmen, welche die Beschwerdeführerin als unzureichend abgeklärt rügt.
3.1. Die Beschwerdeführerin macht geltend, im kantonalen Verfahren hätte eine aktuelle kinderpsychiatrische Expertise eingeholt werden müssen. Indem die Vorinstanz ein bald zwei Jahre altes, überholtes Gutachten vom 24. Juli 2014 genügen liess, habe sie ihren Gehörsanspruch (<ref-law>) verletzt.
Aus den Akten ergeben sich indessen keine Hinweise auf zwischenzeitlich veränderte Verhältnisse, die eine neue gutachterliche Einschätzung der Erziehungsfähigkeit der Beschwerdeführerin nahelegen würden. Die Beschwerdeführerin macht selber keine derartigen Entwicklungen geltend. Abgesehen davon beruht die strittige Obhutsregelung auf breiter Entscheidungsgrundlage aus verschiedenen Quellen, namentlich auch eigener Wahrnehmung der beteiligten Fachbehörden (vgl. dazu das angefochtene Urteil E. 1 S. 2 ff. und E. 4.3 S. 11 ff.).
3.2. Der Sachverhalt ist nach Auffassung der Beschwerdeführerin sodann insofern unvollständig, als jedenfalls der ältere, achtjährige Sohn C._ hätte angehört werden müssen. Da dies nicht geschehen sei, habe die Vorinstanz Bundesrecht (vgl. <ref-law>) sowie Art. 12 der UNO-Kinderrechtekonvention verletzt. C._ hätte insbesondere zu seiner Gefährdung im väterlichen Haushalt Auskunft geben können; beim Vater und dessen neuer Partnerin werden die Kinder nach Ansicht der Beschwerdeführerin schlecht behandelt.
Dazu ist zum einen festzuhalten, dass der Sohn C._ am 18. März 2015 von der KESB angehört worden ist. Zum andern widerspricht das Vorbringen, die Kinder würden beim Vater und dessen neuer Partnerin schlecht behandelt, den Feststellungen der Vorinstanz, die auf die detaillierten Ausführungen des Bezirksrats verweist. Auf das nicht näher begründete Vorbringen ist nicht einzutreten (vgl. Art. 42 Abs. 2 und Art. 106 Abs. 2 BGG).
3.3. Schliesslich bringt die Beschwerdeführerin vor, der angefochtene Entscheid verletze die Grundrechte von Mutter und Kindern, weil die migrationsrechtlichen Aspekte, welchen hier zentrale Bedeutung zukomme, völlig ausgeblendet blieben. Sie habe während des Verfahrens vor KESB, Bezirksrat und Obergericht wiederholt geltend gemacht, es wäre sinnvoll, wenn vorab die Frage geklärt werde, wie der aufenthaltsrechtliche Status der beiden Söhne und derjenige von ihr selbst definitiv zu regeln seien. Solange sie weder eine Aufenthalts- noch Arbeitsbewilligung habe, sei sie nicht in der Lage, konkrete Vorschläge etwa zur Wohnsituation oder zur Kinderbetreuung zu machen oder sich gegen den behördlichen Vorhalt zu wehren, sie verfüge nicht über genügend persönliche Ressourcen, um die Kinder zu betreuen und ihnen ein stabiles Umfeld zu bieten.
Dabei handelt es sich nicht um eine Frage der Sachverhaltsfeststellung, so dass darauf nicht einzutreten ist (oben E. 2 und 3 Ingress). Im Übrigen liegen die Gründe für die strittige Obhutsregelung ganz überwiegend in persönlichen Eigenschaften der Beschwerdeführerin, welche durch eine Klärung des Aufenthaltsstatus nicht beeinflusst würden. Insofern ist auch die in diesem Zusammenhang erhobene Rüge betreffend eine Verletzung des rechtlichen Gehörs (<ref-law>) und eines fairen Verfahrens (Art. 6 EMRK) gegenstandslos; ohnehin wird diese nur unzureichend substantiiert (Art. 106 Abs. 2 in Verbindung mit <ref-law>).
4.
4.1. Zusammenfassend ergibt sich, dass die Beschwerde abzuweisen ist, soweit darauf eingetreten werden kann. Wie die vorstehenden Erwägungen zeigen, muss das Rechtsmittel als von Anfang an aussichtslos bezeichnet werden, weshalb es an einer materiellen Voraussetzung für die unentgeltliche Rechtspflege fehlt (<ref-law>). Das entsprechende Gesuch ist abzuweisen.
4.2. Ausgangsgemäss sind die Gerichtskosten der Beschwerdeführerin aufzuerlegen (<ref-law>). Bei deren Festsetzung wird ihren finanziellen Verhältnissen Rechnung getragen.

Demnach erkennt das Bundesgericht:
1.
Die Beschwerde wird abgewiesen, soweit darauf einzutreten ist.
2.
Das Gesuch um unentgeltliche Rechtspflege wird abgewiesen.
3.
Die Gerichtskosten von Fr. 500.-- werden der Beschwerdeführerin auferlegt.
4.
Dieses Urteil wird den Parteien und dem Obergericht des Kantons Zürich, II. Zivilkammer, schriftlich mitgeteilt.
Lausanne, 18. Januar 2017
Im Namen der II. zivilrechtlichen Abteilung
des Schweizerischen Bundesgerichts
Der Präsident: von Werdt
Der Gerichtsschreiber: Traub