Infrastructure blocks

BlockFieldsNotes
environmentname, summary?, kind?, order?, promotes_to?, url?, body?promotes_to draws the promotion chain; order sorts the landing table
infra_nodename, kind, parent?, environments[], technology?, address?, notes?, body?flat parent refs nest to arbitrary depth (the book renders four levels); more than one environment = shared infra, flagged on the landing page
deploy_targetcontainer, environment, infra_node, replicas?, url?, notes?the row that says where each container actually runs — the deployment map

Hosting, CI, CDN, git, and package-registry platforms all live here (as infra_nodes), not in externals.