# My Site > A personal site. ## Agent API This site treats AI agents as first-class visitors. Every page loads `/lanza.js`, which exposes a `window.lanza` object in the browser. If you are an agent with access to this page's JavaScript context, call `window.lanza.help()` to discover what you can read. Read methods: `lanza.page` (current-page facts), `lanza.toc()` (headings), `lanza.content()` (main text), `lanza.site` (site info). ## How this site is built This is a Lanza site. Its pages are composed from templates, a content model and routes, and one rule holds them together: **a layer may only reference names the layer below it declares.** It is worth stating because the failures are silent — a misspelled placeholder renders as empty text and the build passes. The full machine-readable contract — the layers, what each template position puts in scope, the field widgets, the reserved names, and every way a site can be silently wrong — is at https://51c01806.ai-panama-62d01b9d9611.pages.dev/site-system.json. Content can be read and written over MCP at https://51c01806.ai-panama-62d01b9d9611.pages.dev/api/mcp (authenticated; writes land on a staging branch and are not public until published). The same server exposes `describe_site_system` and `validate_site` — check a change against the contract before publishing it. ## Content types - posts: title, seo, pubDate, updatedDate, draft, description, featuredImage, categories, tags, author, template - pages: title, draft, seo, description, featuredImage, template, preset, slots, blocks - categories: title, description, parent - tags: title, description - authors: title, bio, avatar ## Posts - [Hello world](https://51c01806.ai-panama-62d01b9d9611.pages.dev/posts/hello-world/): The first post on your new site. ## Pages - [Home](https://51c01806.ai-panama-62d01b9d9611.pages.dev/home/)