A world map is a path per country plus one border mesh; a country map fits the projection to one feature, here Australia ("036") in a conic equal-area projection rotated to its longitude:
<script src="https://cdn.jsdelivr.net/npm/d3@7.9.0/dist/d3.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/topojson-client@3.1.0"></script>
<svg width="720" height="200" font-family="Arial" font-size="11"></svg>
<script type="module">
const url = 'https://cdn.jsdelivr.net/npm/world-atlas@2.0.2/countries-110m.json';
const topo = await d3.json(url), svg = d3.select('svg');
const countries = topojson.feature(topo, topo.objects.countries).features;
const borders = topojson.mesh(topo, topo.objects.countries, (a, b) => a !== b);
const world = d3.geoPath(d3.geoEqualEarth()
.fitExtent([[0, 5], [440, 195]], { type: 'Sphere' }));
svg.append('g').selectAll('path').data(countries, d => d.id).join('path')
.attr('d', world).attr('fill', d => d.id === '036' ? '#e09a10' : '#cfd8dc');
svg.append('path').attr('d', world(borders)).attr('fill', 'none').attr('stroke', 'white');
const australia = countries.find(d => d.id === '036');
const oz = d3.geoPath(d3.geoConicEqualArea().parallels([-18, -36]).rotate([-132, 0])
.fitExtent([[470, 5], [710, 195]], australia));
svg.append('path').attr('d', oz(australia)).attr('fill', '#e09a10');
window.__done = true;
</script>
d3.geoArea(australia) in steradians times 6,371² gives 7.70 million km² (official: 7.69). path.centroid() and path.bounds() place labels and zoom boxes.