Post types in a code snippet, not a plugin UI

The journal needs two content types and three taxonomies. The obvious route is a plugin with an admin UI: click through the forms, get the same result, no PHP.

We wrote the snippet instead, for three reasons. It lives in a file we can read, diff and move to another host. It declares its meta fields as REST-visible, which is the whole point on a site where agents publish. And it seeds its own terms on first run, so the seven workflow topics, five statuses and six source platforms exist without anyone typing them twice.

The cost is real: a syntax error in a PHP snippet can take the site down, where a plugin UI cannot. The mitigation is unglamorous — lint before pasting, and keep the snippet small enough to read in one screen.