{"classes":[{"name":"ActivityChart","namespace":"Minn\\Admin","kind":"final readonly class","lines":65,"band":"51–100","usedBy":2,"summary":"The overview's activity chart: published posts and pages plus every comment, counted per bar.","path":"/api/admin/activitychart/"},{"name":"ActivityFeed","namespace":"Minn\\Admin","kind":"final readonly class","lines":212,"band":"201–400","usedBy":3,"summary":"What happened lately, as the overview and the bell tell it: the caller's own recent posts and the latest comments, and the events behind one chart bar.","path":"/api/admin/activityfeed/"},{"name":"AdminTypes","namespace":"Minn\\Admin","kind":"final class","lines":85,"band":"51–100","usedBy":4,"summary":"Admin-facing type facts (viewable, labels, supports, the edit gate) live beside, not inside, the wp/v2 registry, so the types route's payload stays byte-faithful.","path":"/api/admin/admintypes/"},{"name":"App","namespace":"Minn\\Admin","kind":"final readonly class","lines":98,"band":"51–100","usedBy":7,"summary":"The Minn Admin app on disk: the symlinked dev copy the engine serves the shell and assets from.","path":"/api/admin/app/"},{"name":"AppController","namespace":"Minn\\Admin","kind":"final readonly class","lines":149,"band":"101–200","usedBy":1,"summary":"Serves Minn Admin from the engine: the path-routed shell (every sub-path renders the same page) and the app's assets.","path":"/api/admin/appcontroller/"},{"name":"Appearance","namespace":"Minn\\Admin","kind":"final readonly class","lines":82,"band":"51–100","usedBy":5,"summary":"A person's Minn Admin appearance: the colour scheme and its custom token maps, stored where the app stores them (user meta minn_admin_appearance, a serialized array) so the choice survives an eject.","path":"/api/admin/appearance/"},{"name":"BootPayload","namespace":"Minn\\Admin","kind":"final readonly class","lines":245,"band":"201–400","usedBy":2,"summary":"The window.MINN boot payload, assembled from the engine: the keys app.js needs to boot and drive the wp/v2 surface, with capabilities from the engine's own model.","path":"/api/admin/bootpayload/"},{"name":"BundleController","namespace":"Minn\\Admin","kind":"final readonly class","lines":45,"band":"26–50","usedBy":1,"summary":"What the app bundle answers for: the user guide it carries, the translation offers (none: the engine polls no translation channel), and the two changelogs, Minn Admin's and the engine's, read from GitHub because a release carries neither.","path":"/api/admin/bundlecontroller/"},{"name":"Dashboard","namespace":"Minn\\Admin","kind":"final readonly class","lines":273,"band":"201–400","usedBy":2,"summary":"The overview payload: stat cards, the activity chart, and the recent activity feed, plus the per-bar activity drill-down.","path":"/api/admin/dashboard/"},{"name":"EditorController","namespace":"Minn\\Admin","kind":"final readonly class","lines":45,"band":"26–50","usedBy":1,"summary":"The editor's helpers in minn-admin/v1: the edit lock, and the template and pattern lists (honestly empty: the engine carries no theme content).","path":"/api/admin/editorcontroller/"},{"name":"Format","namespace":"Minn\\Admin","kind":"final class","lines":51,"band":"51–100","usedBy":4,"summary":"The dashboard's number, size, age, and title formatting.","path":"/api/admin/format/"},{"name":"HiddenIntegrations","namespace":"Minn\\Admin","kind":"final readonly class","lines":94,"band":"51–100","usedBy":4,"summary":"What a person hid from their own Minn Admin: the app's per-user map (user meta minn_admin_hidden_integrations, \"kind:id\" => hidden-at) read and written in the app's own shape so a choice made under WordPress survives the swap and vice versa.","path":"/api/admin/hiddenintegrations/"},{"name":"LanguageChoices","namespace":"Minn\\Admin","kind":"final class","lines":42,"band":"26–50","usedBy":0,"summary":"The language picker's markup.","path":"/api/admin/languagechoices/"},{"name":"LanguageController","namespace":"Minn\\Admin","kind":"final readonly class","lines":99,"band":"51–100","usedBy":1,"summary":"Languages: what is installed, what a person reads in, what the site defaults to.","path":"/api/admin/languagecontroller/"},{"name":"Notifications","namespace":"Minn\\Admin","kind":"final readonly class","lines":191,"band":"101–200","usedBy":2,"summary":"The bell feed: pending and recent comments, translation offers and a newer Minn, and new registrations.","path":"/api/admin/notifications/"},{"name":"OverviewController","namespace":"Minn\\Admin","kind":"final readonly class","lines":141,"band":"101–200","usedBy":1,"summary":"The Overview of minn-admin/v1: the payload, the drill-down behind one chart bar, and the pick of cards, the person's own and the site's default.","path":"/api/admin/overviewcontroller/"},{"name":"PackagesController","namespace":"Minn\\Admin","kind":"final readonly class","lines":113,"band":"101–200","usedBy":1,"summary":"Adding and removing themes and extensions from the Extensions view.","path":"/api/admin/packagescontroller/"},{"name":"PostListMarkup","namespace":"Minn\\Admin","kind":"final class","lines":39,"band":"26–50","usedBy":0,"summary":"The markup a post list writes beside each post, as the reference writes it (probe placeholders-admin): the states after a title (an em dash, then each state in its span, a comma inside every span but the last), and the hidden fields quick edit reads, one div each, in its order.","path":"/api/admin/postlistmarkup/"},{"name":"PreferencesController","namespace":"Minn\\Admin","kind":"final readonly class","lines":115,"band":"101–200","usedBy":1,"summary":"A person's own settings in minn-admin/v1: their appearance, the views they hid, and an administrator's reach into another person's, for the user edit page.","path":"/api/admin/preferencescontroller/"},{"name":"RenderController","namespace":"Minn\\Admin","kind":"final readonly class","lines":52,"band":"51–100","usedBy":1,"summary":"The editor's island previews: block markup rendered by the same renderer the public site uses, with the stylesheets that site loads (the engine's block stylesheet, the theme's, and the theme.json rules) so a preview looks like the page will.","path":"/api/admin/rendercontroller/"},{"name":"SessionsController","namespace":"Minn\\Admin","kind":"final readonly class","lines":72,"band":"51–100","usedBy":1,"summary":"A person's sign-in sessions, read from the same session_tokens store the login endpoint writes.","path":"/api/admin/sessionscontroller/"},{"name":"SiteController","namespace":"Minn\\Admin","kind":"final readonly class","lines":87,"band":"51–100","usedBy":1,"summary":"The small Settings-view routes of minn-admin/v1: the site logo, the permalink structure, the spam queue, and the months the library spans.","path":"/api/admin/sitecontroller/"},{"name":"StructureController","namespace":"Minn\\Admin","kind":"final readonly class","lines":131,"band":"101–200","usedBy":1,"summary":"The Structure view of minn-admin/v1: post types, taxonomies, and the terms switcher, each with its live counts, answered from the registries.","path":"/api/admin/structurecontroller/"},{"name":"SystemController","namespace":"Minn\\Admin","kind":"final readonly class","lines":73,"band":"51–100","usedBy":1,"summary":"The System view: diagnostics, the scheduled-post list, autoloaded options, and the logs.","path":"/api/admin/systemcontroller/"},{"name":"ThemesController","namespace":"Minn\\Admin","kind":"final readonly class","lines":100,"band":"51–100","usedBy":1,"summary":"The theme inventory of minn-admin/v1: every theme on disk with its headers, screenshot, and update offer, and the switch of the active one.","path":"/api/admin/themescontroller/"},{"name":"Translations","namespace":"Minn\\Admin","kind":"final readonly class","lines":237,"band":"201–400","usedBy":4,"summary":"Languages for the admin.","path":"/api/admin/translations/"},{"name":"UpdatesController","namespace":"Minn\\Admin","kind":"final readonly class","lines":129,"band":"101–200","usedBy":1,"summary":"The minn-admin/v1 update routes: offers, directory meta, the check, the installs, the auto-update lists.","path":"/api/admin/updatescontroller/"},{"name":"UploadsSize","namespace":"Minn\\Admin","kind":"final readonly class","lines":93,"band":"51–100","usedBy":1,"summary":"How much the uploads folder holds, as Minn Admin 0.43 works it out and shares it through the minn_admin_uploads_size transient: the cached figure in either shape it has had ({bytes, partial}, or a bare count from before the budget), else a walk only an administrator may start, one at a time behind a two-minute lock, stopped after four seconds and kept as partial for an hour instead of twelve.","path":"/api/admin/uploadssize/"},{"name":"V1Controller","namespace":"Minn\\Admin","kind":"final readonly class","lines":81,"band":"51–100","usedBy":1,"summary":"The boot burst of minn-admin/v1: the bell feed and its read marker, the core status, and the one-round-trip boot-status the app starts from.","path":"/api/admin/v1controller/"},{"name":"ApplicationPasswords","namespace":"Minn\\Auth","kind":"final readonly class","lines":153,"band":"101–200","usedBy":5,"summary":"Application passwords as the reference stores them: a serialized list in the user's _application_passwords meta, each entry uuid, app_id, name, password (a hash), created, last_used, last_ip.","path":"/api/auth/applicationpasswords/"},{"name":"AuthCookies","namespace":"Minn\\Auth","kind":"final readonly class","lines":53,"band":"51–100","usedBy":2,"summary":"The three cookies a sign-in sets: the auth cookie on the admin and plugins paths (the secure variant over HTTPS, keyed off that scheme's salt) and the logged_in cookie on the site root, which is the one REST reads.","path":"/api/auth/authcookies/"},{"name":"AuthFailure","namespace":"Minn\\Auth","kind":"final readonly class","lines":18,"band":"1–25","usedBy":2,"summary":"Why a request is not authenticated, as the reference's error code: a missing or invalid cookie, or a good one sent without a nonce, is rest_not_logged_in (the request is simply anonymous); a good cookie with a nonce that does not verify is rest_cookie_invalid_nonce.","path":"/api/auth/authfailure/"},{"name":"Authenticated","namespace":"Minn\\Auth","kind":"final readonly class","lines":16,"band":"1–25","usedBy":10,"summary":"A validated session: the user row and the raw session token behind it.","path":"/api/auth/authenticated/"},{"name":"Authenticator","namespace":"Minn\\Auth","kind":"final readonly class","lines":149,"band":"101–200","usedBy":7,"summary":"Resolves the current user two ways.","path":"/api/auth/authenticator/"},{"name":"Capabilities","namespace":"Minn\\Auth","kind":"final readonly class","lines":260,"band":"201–400","usedBy":17,"summary":"The capability engine: a user's roles from {prefix}capabilities usermeta, what those roles and the user's own capabilities grant, and the meta-capability mapping for edit_post, delete_post, and read_post.","path":"/api/auth/capabilities/"},{"name":"Cookie","namespace":"Minn\\Auth","kind":"final readonly class","lines":92,"band":"51–100","usedBy":3,"summary":"The sign-in cookies: username|expiration|token|hmac, with key = HMAC-md5(username|fragment|expiration|token, the scheme's salt) hmac = HMAC-sha256(username|expiration|token, key) and the session live in the user's session_tokens store.","path":"/api/auth/cookie/"},{"name":"FastHash","namespace":"Minn\\Auth","kind":"final class","lines":23,"band":"1–25","usedBy":2,"summary":"The reference's hash for high-entropy secrets (\"$generic$\", WordPress 6.8 and later): a 30-byte keyed BLAKE2b digest (sodium's generic hash, keyed by the scheme's fixed label) in URL-safe base64 without padding.","path":"/api/auth/fasthash/"},{"name":"LoginThrottle","namespace":"Minn\\Auth","kind":"final readonly class","lines":78,"band":"51–100","usedBy":2,"summary":"Failed sign-ins per address, so a password guesser meets a wall: twenty failures in fifteen minutes and the address waits out the window.","path":"/api/auth/loginthrottle/"},{"name":"Nonce","namespace":"Minn\\Auth","kind":"final class","lines":34,"band":"26–50","usedBy":6,"summary":"The wp_rest nonce: ten characters of HMAC-md5(tick|wp_rest|uid|token) under the nonce salt, accepted for the current tick and the one before.","path":"/api/auth/nonce/"},{"name":"Password","namespace":"Minn\\Auth","kind":"final class","lines":59,"band":"51–100","usedBy":7,"summary":"The stored password scheme.","path":"/api/auth/password/"},{"name":"PasswordReset","namespace":"Minn\\Auth","kind":"final readonly class","lines":69,"band":"51–100","usedBy":3,"summary":"Password reset keys in the reference's storage shape: user_activation_key holds \"time:hash\", the key itself travels in the email link and is good for a day.","path":"/api/auth/passwordreset/"},{"name":"PortableHash","namespace":"Minn\\Auth","kind":"final class","lines":61,"band":"51–100","usedBy":5,"summary":"The portable phpass hash (\"$P$\"), from the published algorithm: an iteration count character, an eight character salt, and MD5 iterated over salt and password, encoded in phpass's own base64 alphabet.","path":"/api/auth/portablehash/"},{"name":"RegisteredCaps","namespace":"Minn\\Auth","kind":"final class","lines":22,"band":"1–25","usedBy":3,"summary":"The capability names a plugin's post type or taxonomy registered, read from the runtime's registry once plugins are loaded (probe rest-plugin-caps): a type's cap object (create_posts, edit_posts, publish_posts...) and whether it maps meta capabilities, a taxonomy's term capabilities.","path":"/api/auth/registeredcaps/"},{"name":"Roles","namespace":"Minn\\Auth","kind":"final class","lines":68,"band":"51–100","usedBy":4,"summary":"Role definitions from the site's {prefix}user_roles option, parsed by a bounded scan of the serialized blob, with the seeded contract copy as the fallback for a fresh install.","path":"/api/auth/roles/"},{"name":"Salts","namespace":"Minn\\Auth","kind":"final class","lines":41,"band":"26–50","usedBy":4,"summary":"The site's own secret material, read from the constants wp-config.php defines, so the engine keys off exactly what the install used.","path":"/api/auth/salts/"},{"name":"Sessions","namespace":"Minn\\Auth","kind":"final readonly class","lines":166,"band":"101–200","usedBy":5,"summary":"The session_tokens usermeta store: {sha256(token): {expiration, ip, ua, login}}.","path":"/api/auth/sessions/"},{"name":"SignIn","namespace":"Minn\\Auth","kind":"final readonly class","lines":70,"band":"51–100","usedBy":2,"summary":"The door itself: what a sign-in surface needs beyond checking a password.","path":"/api/auth/signin/"},{"name":"TypeCapabilities","namespace":"Minn\\Auth","kind":"final readonly class","lines":51,"band":"51–100","usedBy":5,"summary":"The capability names a post type's permissions are built from.","path":"/api/auth/typecapabilities/"},{"name":"Autoloader","namespace":"Minn","kind":"final class","lines":16,"band":"1–25","usedBy":0,"summary":"PSR-4 for the Minn namespace: Minn\\Http\\Request lives at src/Minn/Http/Request.php.","path":"/api/minn/autoloader/"},{"name":"Attributes","namespace":"Minn\\Blocks","kind":"final readonly class","lines":30,"band":"26–50","usedBy":2,"summary":"The JSON object a block delimiter carries, read in place.","path":"/api/blocks/attributes/"},{"name":"Bindings","namespace":"Minn\\Blocks","kind":"final class","lines":138,"band":"101–200","usedBy":1,"summary":"Block bindings (probe block-bindings): a block attribute bound to a source registered with register_block_bindings_source takes the source's value as the block renders.","path":"/api/blocks/bindings/"},{"name":"Block","namespace":"Minn\\Blocks","kind":"final readonly class","lines":63,"band":"51–100","usedBy":26,"summary":"One parsed block.","path":"/api/blocks/block/"},{"name":"BlockName","namespace":"Minn\\Blocks","kind":"final class","lines":17,"band":"1–25","usedBy":0,"summary":"The block name rules: a string, lower-case, `namespace/name`.","path":"/api/blocks/blockname/"},{"name":"BlockStream","namespace":"Minn\\Blocks","kind":"final class","lines":285,"band":"201–400","usedBy":0,"summary":"Block markup read one token at a time, as the reference's streaming block processor reads it (probe block-processor).","path":"/api/blocks/blockstream/"},{"name":"Context","namespace":"Minn\\Blocks","kind":"final class","lines":76,"band":"51–100","usedBy":3,"summary":"What the template blocks render against: the resolution, the main query's posts, and a stack of \"current post\" frames pushed by post templates and comment templates as they loop.","path":"/api/blocks/context/"},{"name":"CoreBlocks","namespace":"Minn\\Blocks","kind":"final class","lines":26,"band":"26–50","usedBy":3,"summary":"The core block types' metadata as the reference registers them (data/blocks.json): their supports and selectors, read once.","path":"/api/blocks/coreblocks/"},{"name":"Duotone","namespace":"Minn\\Blocks","kind":"final class","lines":79,"band":"51–100","usedBy":0,"summary":"Duotone filters (probe block-supports): a CSS color read into its red, green, blue (0 to 255) and alpha (0 to 1, to two places) channels, and the hidden SVG filter that maps an image's shades onto a list of colors, one table of values per channel.","path":"/api/blocks/duotone/"},{"name":"Archives","namespace":"Minn\\Blocks\\Dynamic","kind":"final readonly class","lines":29,"band":"26–50","usedBy":1,"summary":"core/archives: the months that have published posts, newest first, with their counts when asked (showPostCounts).","path":"/api/blocks-dynamic/archives/"},{"name":"Dates","namespace":"Minn\\Blocks\\Dynamic","kind":"final class","lines":16,"band":"1–25","usedBy":4,"summary":"Site-local dates the way the dynamic blocks print them.","path":"/api/blocks-dynamic/dates/"},{"name":"LatestComments","namespace":"Minn\\Blocks\\Dynamic","kind":"final readonly class","lines":68,"band":"51–100","usedBy":1,"summary":"core/latest-comments: the newest approved comments with avatar, meta, and a 20-word excerpt.","path":"/api/blocks-dynamic/latestcomments/"},{"name":"LatestPosts","namespace":"Minn\\Blocks\\Dynamic","kind":"final readonly class","lines":34,"band":"26–50","usedBy":1,"summary":"core/latest-posts: the newest published posts as a list, optionally dated.","path":"/api/blocks-dynamic/latestposts/"},{"name":"Search","namespace":"Minn\\Blocks\\Dynamic","kind":"final readonly class","lines":48,"band":"26–50","usedBy":1,"summary":"core/search: the site search form.","path":"/api/blocks-dynamic/search/"},{"name":"SocialLinks","namespace":"Minn\\Blocks\\Dynamic","kind":"final class","lines":79,"band":"51–100","usedBy":1,"summary":"core/social-links and core/social-link.","path":"/api/blocks-dynamic/sociallinks/"},{"name":"SyncedPattern","namespace":"Minn\\Blocks\\Dynamic","kind":"final readonly class","lines":26,"band":"26–50","usedBy":1,"summary":"core/block: a synced pattern, rendered from the wp_block post it references.","path":"/api/blocks-dynamic/syncedpattern/"},{"name":"TagCloud","namespace":"Minn\\Blocks\\Dynamic","kind":"final readonly class","lines":36,"band":"26–50","usedBy":1,"summary":"core/tag-cloud: non-empty tags by name, sized from 8pt to 22pt in proportion to their counts (every tag at 8pt when the counts are equal).","path":"/api/blocks-dynamic/tagcloud/"},{"name":"Comments","namespace":"Minn\\Blocks\\Dynamic\\Theme","kind":"final readonly class","lines":257,"band":"201–400","usedBy":1,"summary":"comments, comments-title, comment-template, the comment-* blocks, and the comment form.","path":"/api/blocks-dynamic-theme/comments/"},{"name":"Navigation","namespace":"Minn\\Blocks\\Dynamic\\Theme","kind":"final readonly class","lines":368,"band":"201–400","usedBy":0,"summary":"navigation, navigation-link, page-list.","path":"/api/blocks-dynamic-theme/navigation/"},{"name":"PostBlocks","namespace":"Minn\\Blocks\\Dynamic\\Theme","kind":"final readonly class","lines":259,"band":"201–400","usedBy":1,"summary":"The post-* blocks: they render the context's current post.","path":"/api/blocks-dynamic-theme/postblocks/"},{"name":"QueryBlocks","namespace":"Minn\\Blocks\\Dynamic\\Theme","kind":"final class","lines":283,"band":"201–400","usedBy":1,"summary":"query, post-template, query-title, query-no-results, query-pagination, query-total.","path":"/api/blocks-dynamic-theme/queryblocks/"},{"name":"Structure","namespace":"Minn\\Blocks\\Dynamic\\Theme","kind":"final readonly class","lines":105,"band":"101–200","usedBy":2,"summary":"template-part, pattern, site-title, site-tagline, site-logo.","path":"/api/blocks-dynamic-theme/structure/"},{"name":"TermBlocks","namespace":"Minn\\Blocks\\Dynamic\\Theme","kind":"final readonly class","lines":71,"band":"51–100","usedBy":1,"summary":"term-name, term-count and term-description: the term a block's context names (termId and taxonomy, as a terms query provides them), else the term archive being viewed; nothing for neither (probe core-blocks).","path":"/api/blocks-dynamic-theme/termblocks/"},{"name":"Elements","namespace":"Minn\\Blocks","kind":"final class","lines":121,"band":"101–200","usedBy":1,"summary":"Per-block element styles (style.elements in a block's attributes, the link colour most often; probe block-supports).","path":"/api/blocks/elements/"},{"name":"ImageTags","namespace":"Minn\\Blocks","kind":"final readonly class","lines":263,"band":"201–400","usedBy":1,"summary":"The attributes the reference adds to an <img> that carries a wp-image-{id} class: loading, decoding, width and height (prepended, in that order), and srcset plus sizes (appended).","path":"/api/blocks/imagetags/"},{"name":"Layout","namespace":"Minn\\Blocks","kind":"final class","lines":167,"band":"101–200","usedBy":5,"summary":"The layout support's classes and rules (wp_render_layout_support_flag, probe block-supports), for core and plugin blocks alike: - is-layout-{type} and {block}-is-layout-{type} for the layout the block uses (its own over its type's default), with has-global-padding for a constrained layout under a theme with root-padding-aware alignments; - is-vertical or is-horizontal, is-content-justification-* and is-nowrap from the layout the block itself stores; - a wp-container-{block}-is-layout-* class when the layout writes CSS (LayoutStyle), and wp-container-content-* for a child's own size or place in its parent's layout.","path":"/api/blocks/layout/"},{"name":"LayoutStyle","namespace":"Minn\\Blocks","kind":"final class","lines":193,"band":"101–200","usedBy":1,"summary":"The CSS rules a block's layout writes (wp_get_layout_style, probe block-supports), as selector => declarations pairs the style engine turns into a stylesheet: - flow: only the gap between children (none, then the gap, on each); - constrained: the content width on the children that are not aligned left, right or full, the wide width on wide ones, no limit on full ones (justifyContent pushes the children to a side: both margins with a width, the one side alone without), negative margins on full ones for a block with side padding, then the children's gap; - flex: nowrap, the gap, then the direction and alignments the orientation reads from justifyContent and verticalAlignment; - grid: the column template (a count, a minimum width, or both folded together with the gap, or the fallback gap without one), then the gap.","path":"/api/blocks/layoutstyle/"},{"name":"Parser","namespace":"Minn\\Blocks","kind":"final class","lines":91,"band":"51–100","usedBy":9,"summary":"Parses block markup into a tree.","path":"/api/blocks/parser/"},{"name":"QueryVars","namespace":"Minn\\Blocks","kind":"final class","lines":122,"band":"101–200","usedBy":0,"summary":"The query variables a Query Loop block's context asks for, the way the reference's build_query_vars_from_query_block builds them (probe query-loop): a viewable post type; stickies only, left out, or ignored; exclusions; a page size and offset for the page asked for; the old category and tag ids and each viewable taxonomy's terms, merged; formats (standard as no format) OR'd, beside the terms in a group of their own; order, orderby, authors (a list, a comma list, or one id), a search, and parents for a hierarchical type.","path":"/api/blocks/queryvars/"},{"name":"RenderState","namespace":"Minn\\Blocks","kind":"final class","lines":335,"band":"201–400","usedBy":14,"summary":"Per-request rendering state, owned by the renderer.","path":"/api/blocks/renderstate/"},{"name":"Renderer","namespace":"Minn\\Blocks","kind":"final class","lines":350,"band":"201–400","usedBy":14,"summary":"Renders a block tree the way the reference renders post_content: delimiters gone, each block's own HTML kept with inner blocks rendered in place, then the per-block render-time additions (layout classes, the paragraph class, image attributes, gallery ids, style-variation counters), and finally texturize over the whole.","path":"/api/blocks/renderer/"},{"name":"Selector","namespace":"Minn\\Blocks","kind":"final class","lines":42,"band":"26–50","usedBy":0,"summary":"The CSS selector a block type declares for its root or for one feature, from its `selectors` map or the older per-support keys.","path":"/api/blocks/selector/"},{"name":"Serializer","namespace":"Minn\\Blocks","kind":"final class","lines":46,"band":"26–50","usedBy":1,"summary":"Parsed blocks back to markup.","path":"/api/blocks/serializer/"},{"name":"States","namespace":"Minn\\Blocks","kind":"final class","lines":160,"band":"101–200","usedBy":0,"summary":"Block state styles (a block's style[\":hover\"] and the like, probe block-supports): the selector arithmetic and the fallbacks the reference applies when it writes a state's rules.","path":"/api/blocks/states/"},{"name":"StyleEngine","namespace":"Minn\\Blocks","kind":"final class","lines":195,"band":"101–200","usedBy":1,"summary":"What a block's style object comes to, as the reference's style engine reads it (probe style-engine): the declarations each style property makes and the class names a preset or a set colour earns. - Groups in the order background, colour, border, shadow, dimensions, spacing, typography, and properties in their order within a group. - A value goes into the declarations as given.","path":"/api/blocks/styleengine/"},{"name":"Styles","namespace":"Minn\\Blocks","kind":"final class","lines":155,"band":"101–200","usedBy":11,"summary":"The inline style and class names a block's \"style\" and preset attributes produce at render time, for the dynamic blocks that build their own wrapper (static blocks already carry them in stored markup).","path":"/api/blocks/styles/"},{"name":"TemplatePartVariations","namespace":"Minn\\Blocks","kind":"final class","lines":41,"band":"26–50","usedBy":0,"summary":"The template part block's variations as the reference builds them (probes rest-block-types, tabs-and-parts): one per area, the general and the navigation overlay areas aside (by name), carrying the area's label, description and icon, offered in the inserter only while no part variation belongs to it; and one per template part, in the order the parts are listed, offered in the inserter with the part's slug, theme and area as its attributes and its example.","path":"/api/blocks/templatepartvariations/"},{"name":"Wrapper","namespace":"Minn\\Blocks","kind":"final class","lines":59,"band":"51–100","usedBy":5,"summary":"The opening tag of a dynamic block's wrapper, in the reference's class order: text alignment, the link-colour marker (for the blocks that carry it), the block's own extra classes (a taxonomy, an alignment), the custom class and its numbered style companion, the element-style class, the block's class, colour presets, font size and family, and the layout classes last; the style attribute inline.","path":"/api/blocks/wrapper/"},{"name":"AssetUpdate","namespace":"Minn\\Cli","kind":"final class","lines":329,"band":"201–400","usedBy":2,"summary":"Shared wording for `wp plugin update` and `wp theme update`.","path":"/api/cli/assetupdate/"},{"name":"CacheCommand","namespace":"Minn\\Cli","kind":"final class","lines":15,"band":"1–25","usedBy":1,"summary":"`wp cache flush`: the engine has no object cache, so this is a no-op success.","path":"/api/cli/cachecommand/"},{"name":"Commands","namespace":"Minn\\Cli","kind":"final class","lines":100,"band":"51–100","usedBy":0,"summary":"The verbs the engine answers to.","path":"/api/cli/commands/"},{"name":"CoreCommand","namespace":"Minn\\Cli","kind":"final class","lines":112,"band":"101–200","usedBy":1,"summary":"WP-CLI's core verbs where a host's automation meets a Minn site.","path":"/api/cli/corecommand/"},{"name":"CronCommand","namespace":"Minn\\Cli","kind":"final class","lines":277,"band":"201–400","usedBy":1,"summary":"`wp cron`: the events, schedules, and spawn test a host and a fleet ask for.","path":"/api/cli/croncommand/"},{"name":"DirectorySearch","namespace":"Minn\\Cli","kind":"final class","lines":37,"band":"26–50","usedBy":2,"summary":"Shared wording for `wp theme search` and `wp plugin search`.","path":"/api/cli/directorysearch/"},{"name":"Installer","namespace":"Minn\\Cli","kind":"final class","lines":339,"band":"201–400","usedBy":2,"summary":"The swap, both ways.","path":"/api/cli/installer/"},{"name":"MaintenanceCommand","namespace":"Minn\\Cli","kind":"final class","lines":65,"band":"51–100","usedBy":1,"summary":"`wp maintenance-mode`: the `.maintenance` marker in the webroot.","path":"/api/cli/maintenancecommand/"},{"name":"MinnCommand","namespace":"Minn\\Cli","kind":"final class","lines":319,"band":"201–400","usedBy":1,"summary":"Identifies the engine. ## EXAMPLES wp minn version wp minn info wp minn probe","path":"/api/cli/minncommand/"},{"name":"OptionCommand","namespace":"Minn\\Cli","kind":"final class","lines":185,"band":"101–200","usedBy":1,"summary":"Options, read and written straight to the options table.","path":"/api/cli/optioncommand/"},{"name":"PackageInstaller","namespace":"Minn\\Cli","kind":"final readonly class","lines":142,"band":"101–200","usedBy":2,"summary":"Puts a theme or a plugin on disk for `wp theme install` and `wp plugin install`: a directory slug, a local zip, or a zip URL, saying along the way what WP-CLI says.","path":"/api/cli/packageinstaller/"},{"name":"PluginCommand","namespace":"Minn\\Cli","kind":"final class","lines":405,"band":"401+","usedBy":1,"summary":"`wp plugin list|install|update|activate|deactivate|delete`: the inventory and the fleet's install/update/delete.","path":"/api/cli/plugincommand/"},{"name":"Preflight","namespace":"Minn\\Cli","kind":"final class","lines":360,"band":"201–400","usedBy":1,"summary":"What a site will and will not get from the engine, before anything moves: the config it can read, the database it can reach, the theme's kind, the plugins the extensions cover, and the content survey (the shortcodes, third-party blocks, menus, extra tables, and extra post types in the database).","path":"/api/cli/preflight/"},{"name":"RewriteCommand","namespace":"Minn\\Cli","kind":"final class","lines":52,"band":"51–100","usedBy":1,"summary":"`wp rewrite flush|structure`: permalink_structure is the engine's resolver input; there is no .htaccess rewrite file to regenerate.","path":"/api/cli/rewritecommand/"},{"name":"Runtime","namespace":"Minn\\Cli","kind":"final class","lines":80,"band":"51–100","usedBy":12,"summary":"The engine, booted for a command: reads the site's wp-config.php (which ends in wp-settings.php, whose engine boot stops short of serving under WP-CLI) so the database constants and table prefix are known.","path":"/api/cli/runtime/"},{"name":"SearchReplaceCommand","namespace":"Minn\\Cli","kind":"final class","lines":143,"band":"101–200","usedBy":1,"summary":"`wp search-replace`: walks every string column, including serialized PHP arrays, and reports replacements the way the reference does.","path":"/api/cli/searchreplacecommand/"},{"name":"ThemeCommand","namespace":"Minn\\Cli","kind":"final class","lines":332,"band":"201–400","usedBy":1,"summary":"`wp theme list|install|update|activate|delete`: the inventory CaptainCore reads, and the install/update the fleet's `wp theme` verbs run.","path":"/api/cli/themecommand/"},{"name":"UserCommand","namespace":"Minn\\Cli","kind":"final class","lines":366,"band":"201–400","usedBy":1,"summary":"Users: the list and get views, and the one-time login link.","path":"/api/cli/usercommand/"},{"name":"AdjacentScope","namespace":"Minn\\Content","kind":"final readonly class","lines":16,"band":"1–25","usedBy":1,"summary":"Which posts count as a post's neighbours (get_adjacent_post, probe link-template-tags): published ones, and private ones the reader may see (all of them, or only their own); kept to posts sharing one of $sameTerms when given, and away from any post in $excludedTerms, both in $taxonomy.","path":"/api/content/adjacentscope/"},{"name":"Autop","namespace":"Minn\\Content","kind":"final class","lines":168,"band":"101–200","usedBy":0,"summary":"Classic-content paragraphing (wpautop): blank lines become paragraphs, single newlines become line breaks when asked, and block-level tags are never wrapped.","path":"/api/content/autop/"},{"name":"Blocks","namespace":"Minn\\Content","kind":"final class","lines":46,"band":"26–50","usedBy":10,"summary":"The content pipeline's front door: block markup goes through the block renderer (Minn\\Blocks), classic content rides the paragraph pipeline.","path":"/api/content/blocks/"},{"name":"Clickable","namespace":"Minn\\Content","kind":"final class","lines":64,"band":"51–100","usedBy":0,"summary":"Bare addresses in text made links (make_clickable, probe formatting-callbacks).","path":"/api/content/clickable/"},{"name":"CommentClasses","namespace":"Minn\\Content","kind":"final class","lines":26,"band":"26–50","usedBy":0,"summary":"The class tokens a rendered comment carries: its type, its author, odd/even and thread alternation, depth, then the caller's extras.","path":"/api/content/commentclasses/"},{"name":"CommentModeration","namespace":"Minn\\Content","kind":"final readonly class","lines":43,"band":"26–50","usedBy":0,"summary":"Whether a comment may be stored and in what state: the duplicate and flood refusals first, then the site's moderation settings, with a moderator's own comment always approved.","path":"/api/content/commentmoderation/"},{"name":"CommentRecord","namespace":"Minn\\Content","kind":"final readonly class","lines":114,"band":"101–200","usedBy":8,"summary":"One row of the comments table, read by name: $comment->author, ->content, ->postId, ->parentId, and isApproved() for the status the reference stores as '1'.","path":"/api/content/commentrecord/"},{"name":"Comments","namespace":"Minn\\Content","kind":"final readonly class","lines":268,"band":"201–400","usedBy":5,"summary":"Reads and writes over the comments table.","path":"/api/content/comments/"},{"name":"ContentScan","namespace":"Minn\\Content","kind":"final class","lines":196,"band":"101–200","usedBy":1,"summary":"What a site's stored content asks of the engine: shortcodes, block names, extra tables, extra post types.","path":"/api/content/contentscan/"},{"name":"Emoji","namespace":"Minn\\Content","kind":"final class","lines":68,"band":"51–100","usedBy":0,"summary":"Emoji as the reference's mail and feeds carry them, from the list the reference ships (data/emoji.json, read from it): encode() turns each emoji character into its entity; staticize() turns each listed sequence in the text (outside tags, and outside code and pre) into a CDN image, longest sequence first.","path":"/api/content/emoji/"},{"name":"Excerpt","namespace":"Minn\\Content","kind":"final class","lines":101,"band":"101–200","usedBy":2,"summary":"The reference's generated excerpt, as captured from probe posts: - Only text-bearing blocks contribute.","path":"/api/content/excerpt/"},{"name":"Inventory","namespace":"Minn\\Content","kind":"final readonly class","lines":253,"band":"201–400","usedBy":10,"summary":"Plugins, themes, must-use plugins, and drop-ins as they sit on disk.","path":"/api/content/inventory/"},{"name":"Links","namespace":"Minn\\Content","kind":"final readonly class","lines":102,"band":"101–200","usedBy":0,"summary":"The links manager's table, as get_bookmarks and wp_insert_link read and write it (probe plugin-queue4).","path":"/api/content/links/"},{"name":"MediaShortcodes","namespace":"Minn\\Content","kind":"final class","lines":187,"band":"101–200","usedBy":0,"summary":"The [video] and [audio] shortcodes as the reference prints them: a plugin may take either over first (wp_*_shortcode_override, handed the shortcode's own attributes and its instance number), then the source by src or by each format's attribute (a file of another kind is only a link; YouTube and Vimeo addresses are video of their own; with none, the post's first attached video or audio), the player's attributes (a video no wider than the content, its height in proportion; the flags bare), each source numbered by the instance, a fallback link, and the class, library and final HTML through their filters.","path":"/api/content/mediashortcodes/"},{"name":"MenuItem","namespace":"Minn\\Content","kind":"final readonly class","lines":22,"band":"1–25","usedBy":2,"summary":"One classic nav_menu_item, fields resolved from the post, its `_menu_item_*` meta, and the object it points at.","path":"/api/content/menuitem/"},{"name":"Menus","namespace":"Minn\\Content","kind":"final readonly class","lines":511,"band":"401+","usedBy":5,"summary":"Classic nav_menu terms and nav_menu_item posts.","path":"/api/content/menus/"},{"name":"MoreTag","namespace":"Minn\\Content","kind":"final class","lines":20,"band":"1–25","usedBy":0,"summary":"The `<!--more-->` marker that splits a post into the part a listing shows and the part only the single view does.","path":"/api/content/moretag/"},{"name":"NoteMarkers","namespace":"Minn\\Content","kind":"final class","lines":34,"band":"26–50","usedBy":0,"summary":"The markers the block editor's notes leave in content: a mark element whose class list holds \"wp-note\".","path":"/api/content/notemarkers/"},{"name":"ObjectLabels","namespace":"Minn\\Content","kind":"final class","lines":24,"band":"1–25","usedBy":0,"summary":"A post type's or taxonomy's labels from its own and the defaults (_get_custom_object_labels, probe post-more): the name from its label when unset, the singular from the name, the admin bar from the singular (else the object's name), the menu from the name, all items from the menu, archives from all items; then the defaults (the caller picks the flat or the hierarchical set) under those, in the defaults' order.","path":"/api/content/objectlabels/"},{"name":"Page","namespace":"Minn\\Content","kind":"final readonly class","lines":49,"band":"26–50","usedBy":3,"summary":"One page of a listing: the rows on it and how many rows the whole listing has, which is what pagination is counted from.","path":"/api/content/page/"},{"name":"PasswordGate","namespace":"Minn\\Content","kind":"final class","lines":34,"band":"26–50","usedBy":5,"summary":"A password-protected post on the front end: its body is the password form, its excerpt a fixed sentence, its title prefixed, exactly as the reference shows them to a reader who has not entered the password.","path":"/api/content/passwordgate/"},{"name":"PersonalData","namespace":"Minn\\Content","kind":"final class","lines":36,"band":"26–50","usedBy":0,"summary":"Personal data as the privacy tools hand it over (probe privacy): an exported item is a labelled group of name and value rows in which a row without a value is left out, and an export file is old once it was last written before the cut-off (the folder's index.php and hidden files are never old).","path":"/api/content/personaldata/"},{"name":"Playlist","namespace":"Minn\\Content","kind":"final class","lines":25,"band":"1–25","usedBy":0,"summary":"The [playlist] shortcode's markup as the reference prints it (probe plugin-queue5): the player for audio (with the current-item box) or for video (with its height), the next and previous controls, a noscript list of links to the files, and the tracks as JSON for wp-playlist; and the two Underscore templates the script draws them with (data/playlist-templates.html).","path":"/api/content/playlist/"},{"name":"PluginState","namespace":"Minn\\Content","kind":"final readonly class","lines":72,"band":"51–100","usedBy":2,"summary":"Switching plugins on and off: a WordPress plugin file goes through the reference's activation and deactivation (PluginActivation: requirements, the plugin loaded, its hooks, the sorted active_plugins list); a Minn extension joins or leaves minn_active_extensions, and deactivating one also releases, silently, the plugin files it stood in for.","path":"/api/content/pluginstate/"},{"name":"PostClasses","namespace":"Minn\\Content","kind":"final class","lines":52,"band":"51–100","usedBy":1,"summary":"The class list a post carries on its article element, in the reference's order: caller extras, identity, type, status, format, password state, thumbnail, sticky, hentry, then one class per term of every public taxonomy (post_tag reads as \"tag-\"; the format's term counts too, as post_format-post-format-aside; probe post-template-remaining).","path":"/api/content/postclasses/"},{"name":"PostRecord","namespace":"Minn\\Content","kind":"final readonly class","lines":156,"band":"101–200","usedBy":45,"summary":"One row of the posts table, read by name.","path":"/api/content/postrecord/"},{"name":"PostSlugs","namespace":"Minn\\Content","kind":"final readonly class","lines":75,"band":"51–100","usedBy":2,"summary":"Which slug a live post may take beside the others, as the reference settles it (probe insert-defaults).","path":"/api/content/postslugs/"},{"name":"PostStatus","namespace":"Minn\\Content","kind":"enum","lines":42,"band":"26–50","usedBy":3,"summary":"The statuses a post row can hold; the value is the column's own spelling.","path":"/api/content/poststatus/"},{"name":"PostWriter","namespace":"Minn\\Content","kind":"final readonly class","lines":498,"band":"401+","usedBy":12,"summary":"Every write to the posts table and its satellites: rows, meta, term links with the published counts the reference trusts on read, sticky and format side effects, and revision snapshots.","path":"/api/content/postwriter/"},{"name":"Posts","namespace":"Minn\\Content","kind":"final readonly class","lines":406,"band":"401+","usedBy":40,"summary":"Reads over the posts table.","path":"/api/content/posts/"},{"name":"Reader","namespace":"Minn\\Content","kind":"final class","lines":72,"band":"51–100","usedBy":11,"summary":"Who is reading this request: their user id, whether they may read private content, whether they may edit a given post, and the post-password cookie they carry.","path":"/api/content/reader/"},{"name":"Revisions","namespace":"Minn\\Content","kind":"final readonly class","lines":95,"band":"51–100","usedBy":4,"summary":"Revision rows: the plain snapshots and the per-author autosave slots.","path":"/api/content/revisions/"},{"name":"Site","namespace":"Minn\\Content","kind":"final readonly class","lines":93,"band":"51–100","usedBy":70,"summary":"Site-wide options and the site's clock.","path":"/api/content/site/"},{"name":"SiteIcon","namespace":"Minn\\Content","kind":"final readonly class","lines":63,"band":"51–100","usedBy":7,"summary":"The site icon: the attachment the site_icon option names, as the file under uploads it points at.","path":"/api/content/siteicon/"},{"name":"Slug","namespace":"Minn\\Content","kind":"final class","lines":81,"band":"51–100","usedBy":4,"summary":"","path":"/api/content/slug/"},{"name":"TagBalancer","namespace":"Minn\\Content","kind":"final class","lines":82,"band":"51–100","usedBy":0,"summary":"Closes what markup leaves open and drops what it closes without opening, as the reference's force_balance_tags does, from its observed rules (contracts/runtime.md \"The content filters\"): tag names are lowercased; a void element is written self-closed (bare as <br />, with attributes as <img src=\"x\"/>, one already self-closed as given); reopening the innermost open element closes it first unless it is one of the ten that may contain themselves; a closer shuts every element opened inside its own; a closer with nothing to close goes; what is still open at the end closes in reverse.","path":"/api/content/tagbalancer/"},{"name":"TermLinks","namespace":"Minn\\Content","kind":"final class","lines":37,"band":"26–50","usedBy":0,"summary":"A post's terms rendered as links, in the two shapes the reference emits: a plain joined run for a taxonomy, and the category list, which becomes a `post-categories` unordered list when the caller names no separator and a joined run when it does.","path":"/api/content/termlinks/"},{"name":"TermRecord","namespace":"Minn\\Content","kind":"final readonly class","lines":88,"band":"51–100","usedBy":16,"summary":"One term with its taxonomy row, read by name: $term->name, ->slug, ->taxonomy, ->parentId, ->count.","path":"/api/content/termrecord/"},{"name":"Terms","namespace":"Minn\\Content","kind":"final readonly class","lines":221,"band":"201–400","usedBy":16,"summary":"","path":"/api/content/terms/"},{"name":"TextFilters","namespace":"Minn\\Content","kind":"final class","lines":161,"band":"101–200","usedBy":0,"summary":"The small text filters the reference runs over content, titles and comments, each from its observed rules (contracts/runtime.md \"The content filters\", \"The comment form\"): smilies, the capital P, insecure home addresses, the feed's embed clean-up, and a comment's links and spans.","path":"/api/content/textfilters/"},{"name":"Texturize","namespace":"Minn\\Content","kind":"final class","lines":182,"band":"101–200","usedBy":15,"summary":"The texturize subset the reference applies to rendered text: straight quotes, apostrophes, ellipses, dashes, and primes become numeric entities, outside the skip elements only.","path":"/api/content/texturize/"},{"name":"UserRecord","namespace":"Minn\\Content","kind":"final readonly class","lines":96,"band":"51–100","usedBy":18,"summary":"One row of the users table, read by name.","path":"/api/content/userrecord/"},{"name":"Users","namespace":"Minn\\Content","kind":"final readonly class","lines":291,"band":"201–400","usedBy":28,"summary":"","path":"/api/content/users/"},{"name":"Context","namespace":"Minn","kind":"final readonly class","lines":41,"band":"26–50","usedBy":3,"summary":"One request, as a value: the database door, who is asking, what they may do, and where the site's files are.","path":"/api/minn/context/"},{"name":"Cron","namespace":"Minn\\Cron","kind":"final readonly class","lines":172,"band":"101–200","usedBy":4,"summary":"The engine's scheduled work: scheduled posts go live when their time comes, the cron option's due events fire, expired throttle rows and transients are swept, and the daily auto-update check runs.","path":"/api/cron/cron/"},{"name":"Db","namespace":"Minn","kind":"final class","lines":287,"band":"201–400","usedBy":75,"summary":"The one door to the database.","path":"/api/minn/db/"},{"name":"Engine","namespace":"Minn","kind":"final readonly class","lines":285,"band":"201–400","usedBy":2,"summary":"The engine's front door.","path":"/api/minn/engine/"},{"name":"Extension","namespace":"Minn\\Extension","kind":"interface","lines":5,"band":"1–25","usedBy":1,"summary":"What a Minn extension is: a class the engine constructs once per request and asks to register what it provides.","path":"/api/extension/extension/"},{"name":"Extensions","namespace":"Minn\\Extension","kind":"final class","lines":14,"band":"1–25","usedBy":5,"summary":"Where the engine looks for the seams an extension registered.","path":"/api/extension/extensions/"},{"name":"Loader","namespace":"Minn\\Extension","kind":"final class","lines":129,"band":"101–200","usedBy":7,"summary":"Finds extensions under wp-content/plugins and wp-content/mu-plugins, decides which are active, autoloads them, and asks each to register.","path":"/api/extension/loader/"},{"name":"Manifest","namespace":"Minn\\Extension","kind":"final readonly class","lines":78,"band":"51–100","usedBy":6,"summary":"minn.json, read as data.","path":"/api/extension/manifest/"},{"name":"Registrations","namespace":"Minn\\Extension","kind":"final readonly class","lines":25,"band":"1–25","usedBy":2,"summary":"Everything the extensions registered for this request, handed from Seams to the runner once.","path":"/api/extension/registrations/"},{"name":"SeamRunner","namespace":"Minn\\Extension","kind":"final readonly class","lines":79,"band":"51–100","usedBy":3,"summary":"The engine's side of the seams: what the loader collected, called at the right moment and in registration order.","path":"/api/extension/seamrunner/"},{"name":"Seams","namespace":"Minn\\Extension","kind":"final class","lines":145,"band":"101–200","usedBy":6,"summary":"Where an extension can take part in a request: eight typed registrations, the request they run in, and the outgoing HTTP its minn.json asks for.","path":"/api/extension/seams/"},{"name":"Shortcodes","namespace":"Minn\\Extension","kind":"final class","lines":54,"band":"51–100","usedBy":1,"summary":"The shortcode syntax in rendered content: [tag], [tag attr=\"v\" flag], [tag]inner[/tag], and [[tag]] as the escaped literal.","path":"/api/extension/shortcodes/"},{"name":"Charset","namespace":"Minn\\Feed","kind":"final class","lines":45,"band":"26–50","usedBy":1,"summary":"A feed document as UTF-8.","path":"/api/feed/charset/"},{"name":"Dates","namespace":"Minn\\Feed","kind":"final class","lines":16,"band":"1–25","usedBy":0,"summary":"Feed dates (RFC 822, W3C, and the looser forms feeds carry) as Unix timestamps; a date without a zone is UTC.","path":"/api/feed/dates/"},{"name":"Document","namespace":"Minn\\Feed","kind":"final readonly class","lines":114,"band":"101–200","usedBy":0,"summary":"A parsed feed: the tree and the format it was recognized as (the reference's type bits: RSS 0.90 1, the 0.9x versions 2 to 32, RSS 1.0 64, RSS 2.0 128, Atom 0.3 256, Atom 1.0 512), with the lookups the feed object is built on: the root's children, the channel's, the image's, and the items of every format the document carries.","path":"/api/feed/document/"},{"name":"FeedError","namespace":"Minn\\Feed","kind":"final class","lines":3,"band":"1–25","usedBy":1,"summary":"A feed that could not be read: the message is the one the reference reports.","path":"/api/feed/feederror/"},{"name":"Iri","namespace":"Minn\\Feed","kind":"final class","lines":109,"band":"101–200","usedBy":2,"summary":"URLs in feeds: a reference resolved against its base (RFC 3986), then normalized the way the reference prints them: scheme and host in lower case, the default port dropped, dot segments removed, and every byte a URL may not carry (spaces, angle brackets, non-ASCII) percent-encoded.","path":"/api/feed/iri/"},{"name":"Locator","namespace":"Minn\\Feed","kind":"final class","lines":54,"band":"51–100","usedBy":0,"summary":"Feed autodiscovery: the feeds an HTML page names in its <link rel=\"alternate\"> elements with a feed type, in page order, each resolved against the page (or its <base href>).","path":"/api/feed/locator/"},{"name":"Parts","namespace":"Minn\\Feed","kind":"final class","lines":140,"band":"101–200","usedBy":0,"summary":"The repeating parts of a feed element read out of the tree as raw values: links by relation, categories, and enclosures (Media RSS contents, Atom enclosure links, RSS enclosures).","path":"/api/feed/parts/"},{"name":"Tree","namespace":"Minn\\Feed","kind":"final class","lines":146,"band":"101–200","usedBy":2,"summary":"A feed document parsed into the nested arrays plugin code reads through get_item_tags() and friends: each element is a node holding its own text (\"data\", whitespace between children included), its attributes grouped by namespace, the xml:base and xml:lang in force, and its children by namespace and local name.","path":"/api/feed/tree/"},{"name":"AdminBar","namespace":"Minn\\Front","kind":"final readonly class","lines":318,"band":"201–400","usedBy":3,"summary":"The Minn bar on the public site: the same server-rendered chrome the app ships (assets/js/bar.js and assets/css/bar.css from the bundle), built here for a signed-in reader who can edit.","path":"/api/front/adminbar/"},{"name":"ArchiveAddresses","namespace":"Minn\\Front","kind":"final readonly class","lines":97,"band":"51–100","usedBy":2,"summary":"The archives an address may stand for, as the reference answers them: the front, a search, a term's (a category's, a tag's, a plugin taxonomy's), an author's and a date's.","path":"/api/front/archiveaddresses/"},{"name":"Archives","namespace":"Minn\\Front","kind":"final readonly class","lines":62,"band":"51–100","usedBy":0,"summary":"The archive periods wp_get_archives lists: months, years, days and weeks that hold a published post of a type, newest first, each with its post count and archive URL, plus the post-by-post and alphabetical listings.","path":"/api/front/archives/"},{"name":"AssetsController","namespace":"Minn\\Front","kind":"final readonly class","lines":32,"band":"26–50","usedBy":1,"summary":"The engine's own static assets, served under a reserved path.","path":"/api/front/assetscontroller/"},{"name":"AttachmentAddresses","namespace":"Minn\\Front","kind":"final readonly class","lines":80,"band":"51–100","usedBy":2,"summary":"The addresses an attachment's page answers to besides those its rules find (Front\\RuleTable: a loose one by its slug at the top, any by its slug under another address, \"attachment/\" between or not): by id or slug in the query (?attachment_id=, ?attachment=), and as a post (?p=, ?page_id=), which moves to its own page.","path":"/api/front/attachmentaddresses/"},{"name":"Calendar","namespace":"Minn\\Front","kind":"final readonly class","lines":99,"band":"51–100","usedBy":0,"summary":"One month as the calendar widget and block draw it: a table whose caption names the month, whose head lists the week from the site's first day, and whose cells link the days a post was published on to that day's archive; today's cell carries the id the stylesheet lights; the nav below links the nearest months with posts on either side.","path":"/api/front/calendar/"},{"name":"CalendarLabels","namespace":"Minn\\Front","kind":"final readonly class","lines":44,"band":"26–50","usedBy":1,"summary":"The words a calendar prints: weekday names Sunday first, the short form each column shows (an initial or an abbreviation), month names by number, and the abbreviation the month navigation uses.","path":"/api/front/calendarlabels/"},{"name":"Canonical","namespace":"Minn\\Front","kind":"final class","lines":28,"band":"26–50","usedBy":0,"summary":"Where a URL should redirect to, by the engine's own resolution: the canonical form of a request (trailing slash, `?p=` to permalink, doubled slashes, former slugs).","path":"/api/front/canonical/"},{"name":"CommentPostController","namespace":"Minn\\Front","kind":"final readonly class","lines":52,"band":"51–100","usedBy":1,"summary":"wp-comments-post.php: the comment form's target.","path":"/api/front/commentpostcontroller/"},{"name":"CustomLogo","namespace":"Minn\\Front","kind":"final class","lines":27,"band":"26–50","usedBy":0,"summary":"The site logo a theme prints, as get_custom_logo builds it (probe plugin-helpers): the custom_logo theme mod's image at full size, never lazy, its alt its own or else the site's name, linked home (marked the current page on the front page).","path":"/api/front/customlogo/"},{"name":"EmbedCard","namespace":"Minn\\Front","kind":"final class","lines":95,"band":"51–100","usedBy":0,"summary":"The parts of a post's embed card the reference's embed template prints, as markup: the featured image and its shape (the widest of the image's sizes; wide enough and it sits above the title, else beside it, both by filter), the site's name and icon, the comments and sharing buttons, and the sharing dialog (its ids the post's and a random number, as on the reference).","path":"/api/front/embedcard/"},{"name":"FeedController","namespace":"Minn\\Front","kind":"final readonly class","lines":60,"band":"51–100","usedBy":2,"summary":"The feeds, wherever a request asks for one: the feed var of the rule its address matched (the site's at /feed/, the comments' at /comments/feed/, a post's or an archive's after its address, a plugin's own) or ?feed= on any page.","path":"/api/front/feedcontroller/"},{"name":"FeedTags","namespace":"Minn\\Front","kind":"final class","lines":140,"band":"101–200","usedBy":1,"summary":"The template tags a feed is written with that take more than a line, as the reference answers them in a feed's loop (probe feed-tags): a post's categories and tags in each feed's markup, its enclosures for RSS and Atom, the link to its comments feed, the feed's build date, and the site icon a feed carries.","path":"/api/front/feedtags/"},{"name":"FeedTemplates","namespace":"Minn\\Front","kind":"final class","lines":295,"band":"201–400","usedBy":0,"summary":"The feed templates do_feed_* loads, written from the reference's output (suite feed-hooks, probes feed-templates): RSS 2.0, Atom, RDF and RSS 0.92 for posts, RSS 2.0 and Atom for comments.","path":"/api/front/feedtemplates/"},{"name":"FeedWriter","namespace":"Minn\\Front","kind":"final class","lines":57,"band":"51–100","usedBy":2,"summary":"A feed as it is written: text as given, and what each template tag and action prints, in the order the template asks for them.","path":"/api/front/feedwriter/"},{"name":"FrontController","namespace":"Minn\\Front","kind":"final readonly class","lines":105,"band":"101–200","usedBy":1,"summary":"The public site.","path":"/api/front/frontcontroller/"},{"name":"Kind","namespace":"Minn\\Front","kind":"enum","lines":17,"band":"1–25","usedBy":22,"summary":"What a public URL resolved to.","path":"/api/front/kind/"},{"name":"ListingLinks","namespace":"Minn\\Front","kind":"final class","lines":53,"band":"51–100","usedBy":0,"summary":"The prev/next links a paged listing prints: which page sits either side of the one being read, and the anchor that points at it.","path":"/api/front/listinglinks/"},{"name":"Maintenance","namespace":"Minn\\Front","kind":"final class","lines":28,"band":"26–50","usedBy":0,"summary":"Maintenance mode, as hosting tools and updaters switch it on: a .maintenance file in the webroot whose $upgrading is less than ten minutes old.","path":"/api/front/maintenance/"},{"name":"PageLinks","namespace":"Minn\\Front","kind":"final class","lines":40,"band":"26–50","usedBy":0,"summary":"The links between the pages of a post split with <!--nextpage-->, as wp_link_pages writes them (probe placeholders-a).","path":"/api/front/pagelinks/"},{"name":"Pagination","namespace":"Minn\\Front","kind":"final class","lines":62,"band":"51–100","usedBy":0,"summary":"Numbered page links in the reference's shape: previous, the end and middle runs with one ellipsis per gap, the current page as a span, next.","path":"/api/front/pagination/"},{"name":"Permalinks","namespace":"Minn\\Front","kind":"final readonly class","lines":248,"band":"201–400","usedBy":49,"summary":"Builds public URLs from the site's permalink structure.","path":"/api/front/permalinks/"},{"name":"PostEmbed","namespace":"Minn\\Front","kind":"final class","lines":105,"band":"101–200","usedBy":0,"summary":"A post as other sites embed it, the oEmbed provider side, as the reference answers (probe oembed): the data (version, the site as provider, the author or else the site, the title) through oembed_response_data, whose default makes it \"rich\" with the embed markup: a blockquote linking the post, a sandboxed iframe of its /embed/ page carrying a fresh secret, and the inline script that sizes it.","path":"/api/front/postembed/"},{"name":"PostNavigation","namespace":"Minn\\Front","kind":"final class","lines":36,"band":"26–50","usedBy":0,"summary":"The links to the posts either side of this one, and the nav block that wraps them.","path":"/api/front/postnavigation/"},{"name":"PrintedResponse","namespace":"Minn\\Front","kind":"final class","lines":39,"band":"26–50","usedBy":3,"summary":"A response WordPress's handlers print themselves (a sitemap, robots.txt), as the reference serves them: the main query stood with the request's own variables and the front-end steps around it, then $print; what was printed, under the status and headers the handlers sent.","path":"/api/front/printedresponse/"},{"name":"ProbeController","namespace":"Minn\\Front","kind":"final readonly class","lines":66,"band":"51–100","usedBy":1,"summary":"The surface monitors, crawlers, and hosting checks hit that is not a page: robots.txt, the XML-RPC and cron endpoints, the admin entry point, and the favicon.","path":"/api/front/probecontroller/"},{"name":"QueryMoves","namespace":"Minn\\Front","kind":"final readonly class","lines":119,"band":"101–200","usedBy":1,"summary":"Where the root's archive query forms move under pretty permalinks, as the reference's canonical redirect answers them (suite permalinks): a feed (?feed=) first, then a date (?m=, ?year=), then an author by id, then a term when the query names exactly one taxonomy (?cat= or ?category_name=, ?tag=, ?taxonomy= with ?term=, a registered taxonomy's own var; ?post_format= counts as one but never moves itself), each to its pretty address with the other arguments along.","path":"/api/front/querymoves/"},{"name":"Redirects","namespace":"Minn\\Front","kind":"enum","lines":23,"band":"1–25","usedBy":4,"summary":"Whether a resolution may answer with a canonical redirect.","path":"/api/front/redirects/"},{"name":"Renderer","namespace":"Minn\\Front","kind":"final readonly class","lines":90,"band":"51–100","usedBy":2,"summary":"The interim public theme: one clean template until the block-theme reader lands.","path":"/api/front/renderer/"},{"name":"RequestParse","namespace":"Minn\\Front","kind":"final class","lines":42,"band":"26–50","usedBy":1,"summary":"The query vars the reference's request parse sets for an address (WP::parse_request), which plugins read off $wp->query_vars and get_query_var: each public var the query string or form carries, else the one the matched rewrite rule set (Front\\RuleTable), all in the public vars' order (a plugin's own after the core ones); a post type's own var brings post_type and name; a path no rule matches is error=404 (the query string's error is ignored).","path":"/api/front/requestparse/"},{"name":"Resolution","namespace":"Minn\\Front","kind":"final readonly class","lines":116,"band":"101–200","usedBy":24,"summary":"The outcome of resolving a public URL: which kind of thing it names, the record behind it, the page number for paginated views, and the query vars of the rewrite rule the address matched (what the request parse hands plugins).","path":"/api/front/resolution/"},{"name":"Resolver","namespace":"Minn\\Front","kind":"final readonly class","lines":325,"band":"201–400","usedBy":3,"summary":"Turns a public URL into a Resolution the way the reference's request parse does: the root by its query string, any other path by the first of the site's rewrite rules it fits (Front\\RuleTable), whose query vars name what it is (Front\\RuleRoutes).","path":"/api/front/resolver/"},{"name":"RuleRoutes","namespace":"Minn\\Front","kind":"final readonly class","lines":151,"band":"101–200","usedBy":1,"summary":"What a matched rewrite rule's query vars name, as the reference's main query reads them (suites permalinks, plugin-rules, request-vars): a post or page by id, an attachment by name, a page (or an attachment) by its path, a post by name (of the type the vars give), a registered type's item by its own var; else a search, a category's, tag's, post format's or registered taxonomy's archive, an author's, a date's, a post type's; else the front.","path":"/api/front/ruleroutes/"},{"name":"RuleTable","namespace":"Minn\\Front","kind":"final class","lines":86,"band":"51–100","usedBy":1,"summary":"An address read as WordPress's request parse reads it (suites permalinks, request-vars, plugin-rules): against the site's rewrite rules (made and stored when there are none, a plugin's own among them, each place's endpoints too), the first rule the address fits winning, as typed or decoded; a page's rule fits only when a page stands at the path it captured, under verbose page rules.","path":"/api/front/ruletable/"},{"name":"SingleAddresses","namespace":"Minn\\Front","kind":"final readonly class","lines":67,"band":"51–100","usedBy":2,"summary":"The addresses a single answers to besides its own, as the reference treats them: a slug the post used to have (alone, with a page number, or with an embed or trackback suffix), and an address that puts it under a category it is not in.","path":"/api/front/singleaddresses/"},{"name":"SingleQueries","namespace":"Minn\\Front","kind":"final readonly class","lines":100,"band":"51–100","usedBy":1,"summary":"The single a query string asks for, as the reference's request parse and canonical redirect answer it: by id (?p=, ?page_id=, any viewable type's; an attachment's goes to its own page), an attachment by id or slug (?attachment_id=, ?attachment=), a post by slug (?name=), a page by path (?pagename=).","path":"/api/front/singlequeries/"},{"name":"SitemapController","namespace":"Minn\\Front","kind":"final readonly class","lines":65,"band":"51–100","usedBy":2,"summary":"The sitemap index, its pages, and the two stylesheets, as the reference serves them: the request's sitemap variables stand in the main query and the sitemaps server answers at template_redirect (SitemapRequest), through every filter a plugin hooks, any provider it registers among them; what it does not print, the theme renders (a 404, or the page a stray address amounts to).","path":"/api/front/sitemapcontroller/"},{"name":"SitemapRequest","namespace":"Minn\\Front","kind":"final class","lines":71,"band":"51–100","usedBy":1,"summary":"A sitemap request at template_redirect, as the reference's sitemaps server answers it: a sitemap address asked for another way (the query form, page 0) moves to its own; with the sitemaps off, a provider nobody registered, or a subtype or page that has nothing, the request is a 404 the theme renders; otherwise the stylesheet, the index or the provider's page is printed and the request ends.","path":"/api/front/sitemaprequest/"},{"name":"SitemapXml","namespace":"Minn\\Front","kind":"final class","lines":49,"band":"26–50","usedBy":0,"summary":"The two sitemap documents, index and URL set, from entry maps; one builder for the engine's routes and the facade's renderer.","path":"/api/front/sitemapxml/"},{"name":"Sitemaps","namespace":"Minn\\Front","kind":"final class","lines":34,"band":"26–50","usedBy":0,"summary":"What the sitemaps share with WP_Sitemaps, which serves them: the two stylesheets browsers get when they open a sitemap, their CSS (wp_sitemaps_stylesheet_css filters it), and the date form an entry's lastmod takes.","path":"/api/front/sitemaps/"},{"name":"TermLists","namespace":"Minn\\Front","kind":"final class","lines":97,"band":"51–100","usedBy":0,"summary":"A term's parent chain and the tag cloud, built from term rows the caller already fetched and links the caller resolves.","path":"/api/front/termlists/"},{"name":"ToolbarMarkup","namespace":"Minn\\Front","kind":"final class","lines":57,"band":"51–100","usedBy":0,"summary":"WP_Admin_Bar's markup, piece by piece, as the reference prints it (probe admin-bar): the wrapper (a skip link until the page has opened its body, a class for phones), a group's list (named by the menu it opens from), and an item: a link or an empty div, its focus order, its attributes from meta, an arrow when it opens a menu below the top level, and any markup a plugin hangs after it.","path":"/api/front/toolbarmarkup/"},{"name":"ToolbarMenus","namespace":"Minn\\Front","kind":"final class","lines":339,"band":"201–400","usedBy":0,"summary":"The nodes WordPress puts on the toolbar itself, as the reference adds them on the front end for whoever is signed in (probe admin-bar): the account menu, the WordPress menu, the site menu with its appearance group, the site editor and customizer links, updates, comments, new content, the edit link for what the page shows, the shortlink, the secondary groups, and the search box.","path":"/api/front/toolbarmenus/"},{"name":"ToolbarTree","namespace":"Minn\\Front","kind":"final class","lines":90,"band":"51–100","usedBy":0,"summary":"WP_Admin_Bar's nodes bound into the tree they print as, as the reference binds them (probe admin-bar): each gains its children and its type; an item's children go into its \"-default\" group, made when the first one arrives; a group inside a group sits next to it in a \"-container\", put where the outer group was; a node whose parent is missing is left out.","path":"/api/front/toolbartree/"},{"name":"Html","namespace":"Minn","kind":"final class","lines":107,"band":"101–200","usedBy":46,"summary":"HTML, the front door for escaping and cutting markup: plain static calls, one import away (use Minn\\Html;), the way Minn\\Http and Minn\\Json are.","path":"/api/minn/html/"},{"name":"Decoder","namespace":"Minn\\Html","kind":"final class","lines":129,"band":"101–200","usedBy":5,"summary":"Character reference decoding for text and attribute values: numeric and named references, the legacy names that work without a semicolon (not in an attribute when an \"=\" or alphanumeric follows), unknown ones left as is.","path":"/api/html/decoder/"},{"name":"Edits","namespace":"Minn\\Html","kind":"final class","lines":336,"band":"201–400","usedBy":1,"summary":"The edits pending on the current token: attribute sets and removals, class additions and removals, and a text replacement, in call order.","path":"/api/html/edits/"},{"name":"Escaped","namespace":"Minn\\Html","kind":"final readonly class","lines":6,"band":"1–25","usedBy":1,"summary":"An attribute value that comes already escaped (a URL through esc_url), written as it is.","path":"/api/html/escaped/"},{"name":"Scanner","namespace":"Minn\\Html","kind":"final class","lines":291,"band":"201–400","usedBy":2,"summary":"Reads one token's shape out of raw HTML at an offset: a tag with its name and attributes, a comment of one of the reference's kinds, a doctype, or a processing instruction.","path":"/api/html/scanner/"},{"name":"TagQuery","namespace":"Minn\\Html","kind":"final readonly class","lines":37,"band":"26–50","usedBy":1,"summary":"A tag processor's next_tag() query: a tag name (any case), a class, the nth match to stop at, and whether closers count.","path":"/api/html/tagquery/"},{"name":"Tags","namespace":"Minn\\Html","kind":"final class","lines":584,"band":"401+","usedBy":3,"summary":"A streaming HTML tokenizer with in-place edits: tags, text, comments, doctypes, and processing instructions in document order, attribute reads with character references decoded, attribute and class edits applied to the source without reserialising anything else, bookmarks to seek back to.","path":"/api/html/tags/"},{"name":"TokenMap","namespace":"Minn\\Html","kind":"final class","lines":87,"band":"51–100","usedBy":0,"summary":"A map from words to replacements that reads the longest word at a place in a text (as character reference names are read): words shorter than the key length stand alone, the others are grouped by their first bytes, longest first.","path":"/api/html/tokenmap/"},{"name":"BodyRules","namespace":"Minn\\Html\\Tree","kind":"final class","lines":418,"band":"401+","usedBy":3,"summary":"The \"in body\" insertion mode, with select handled in body as the current spec does (no \"in select\" mode).","path":"/api/html-tree/bodyrules/"},{"name":"Builder","namespace":"Minn\\Html\\Tree","kind":"final class","lines":551,"band":"401+","usedBy":4,"summary":"The HTML tree construction algorithm over the engine's tokenizer, as the reference's HTML processor runs it: tokens go through the insertion modes (HeadRules, BodyRules, TableRules) or the foreign content rules, and every node opened or closed becomes an Event with its breadcrumbs.","path":"/api/html-tree/builder/"},{"name":"Compat","namespace":"Minn\\Html\\Tree","kind":"final class","lines":79,"band":"51–100","usedBy":1,"summary":"The compatibility mode a doctype indicates, by the identifier lists in the HTML standard: quirks for legacy and missing doctypes, limited quirks for the XHTML 1.0 transitional and frameset ones (and HTML 4.01's with a system identifier), no quirks otherwise.","path":"/api/html-tree/compat/"},{"name":"Event","namespace":"Minn\\Html\\Tree","kind":"final readonly class","lines":17,"band":"1–25","usedBy":1,"summary":"One step of the walk the HTML processor reports: a node opened (pushed) or closed (popped), the breadcrumbs at that moment, and the offset of the token behind it when the document wrote it (null when implied).","path":"/api/html-tree/event/"},{"name":"ForeignRules","namespace":"Minn\\Html\\Tree","kind":"final class","lines":73,"band":"51–100","usedBy":1,"summary":"The rules for content in SVG and MathML: text and comments stay in the foreign namespace, an HTML-only start tag (or a font with color, face or size) breaks out back to HTML, other start tags open elements in the current foreign namespace, and an end tag closes the nearest element of its name or falls through to the HTML rules.","path":"/api/html-tree/foreignrules/"},{"name":"Formatting","namespace":"Minn\\Html\\Tree","kind":"final class","lines":89,"band":"51–100","usedBy":1,"summary":"The list of active formatting elements, with its markers (null): the formatting elements opened since the last marker that may need reopening, three of a kind at most (the \"Noah's Ark\" clause).","path":"/api/html-tree/formatting/"},{"name":"HeadRules","namespace":"Minn\\Html\\Tree","kind":"final class","lines":276,"band":"201–400","usedBy":3,"summary":"The insertion modes around the body: initial (doctype and the compatibility mode it indicates), before html, before head, in head, in head noscript, after head, in template, after body, the frameset modes, and after after body (where a comment would land outside the html element, which the reference does not support).","path":"/api/html-tree/headrules/"},{"name":"Node","namespace":"Minn\\Html\\Tree","kind":"final class","lines":109,"band":"101–200","usedBy":6,"summary":"A node the tree builder places: an element (named as the HTML API reports it, upper-cased, with its namespace) or a text, comment, doctype or other leaf.","path":"/api/html-tree/node/"},{"name":"OpenElements","namespace":"Minn\\Html\\Tree","kind":"final class","lines":125,"band":"101–200","usedBy":2,"summary":"The stack of open elements and the spec's scope tests over it: an element is in scope when it is reached walking down from the current node before any of the scope's boundary elements.","path":"/api/html-tree/openelements/"},{"name":"Serializer","namespace":"Minn\\Html\\Tree","kind":"final class","lines":72,"band":"51–100","usedBy":0,"summary":"Normalized HTML for the processor's walk, token by token: tag names lower-cased (SVG's mixed-case names and attributes restored), the first of repeated attributes kept and double-quoted, text and attribute values escaped (& < > \" '), RCDATA escaped and raw text left alone, a line break after the PRE, LISTING and TEXTAREA openers, self-closed foreign elements written \" />\", funky comments and doctypes in a body dropped.","path":"/api/html-tree/serializer/"},{"name":"TableRules","namespace":"Minn\\Html\\Tree","kind":"final class","lines":292,"band":"201–400","usedBy":1,"summary":"The table insertion modes: in table (and its text), in caption, in column group, in table body, in row, in cell.","path":"/api/html-tree/tablerules/"},{"name":"Token","namespace":"Minn\\Html\\Tree","kind":"final readonly class","lines":45,"band":"26–50","usedBy":6,"summary":"A token as the tree builder reads it: a tag (name upper-cased), a run of text (one kind at a time: NUL bytes, white space, or anything else), a comment-like leaf, or the end of the input.","path":"/api/html-tree/token/"},{"name":"Unsupported","namespace":"Minn\\Html\\Tree","kind":"final class","lines":16,"band":"1–25","usedBy":1,"summary":"Where the reference's HTML processor stops: markup whose tree it does not build (foster parenting, the adoption agency's hard cases, PLAINTEXT, content after </html>), with the token it stopped at and the state then.","path":"/api/html-tree/unsupported/"},{"name":"Http","namespace":"Minn","kind":"final readonly class","lines":184,"band":"101–200","usedBy":46,"summary":"Outgoing HTTP, a client handed to the code that uses it.","path":"/api/minn/http/"},{"name":"Access","namespace":"Minn\\Http","kind":"enum","lines":17,"band":"1–25","usedBy":53,"summary":"Who a route is for.","path":"/api/http/access/"},{"name":"Args","namespace":"Minn\\Http","kind":"final class","lines":148,"band":"101–200","usedBy":24,"summary":"The parameters a route accepts, as the reference describes them in the REST index: name => {description, type, ...}.","path":"/api/http/args/"},{"name":"CertificateName","namespace":"Minn\\Http","kind":"final class","lines":56,"band":"51–100","usedBy":0,"summary":"Whether a TLS certificate names a host: a wildcard only as a whole first label with at least two labels after it, matching exactly one label; an IP address never matches by name; the subjectAltName DNS entries win over the common name when present.","path":"/api/http/certificatename/"},{"name":"CookieText","namespace":"Minn\\Http","kind":"final class","lines":94,"band":"51–100","usedBy":0,"summary":"Set-Cookie text and the matching rules a cookie jar applies: parsing a header into name, value and attributes; normalizing attributes (expires and max-age as timestamps, the domain without its leading dot); whether a cookie belongs to a domain and a path (RFC 6265).","path":"/api/http/cookietext/"},{"name":"Destination","namespace":"Minn\\Http","kind":"final readonly class","lines":102,"band":"101–200","usedBy":3,"summary":"Where Minn\\Http lets a request go.","path":"/api/http/destination/"},{"name":"DiePage","namespace":"Minn\\Http","kind":"final class","lines":126,"band":"101–200","usedBy":0,"summary":"The page wp_die shows a browser, as the reference draws it (probe functions-remaining): its stylesheet word for word, the html element's language (or dir='rtl' for a right-to-left message, which also sets a Tahoma font), the charset, the robots tag, the title and the message as given, then any links.","path":"/api/http/diepage/"},{"name":"Download","namespace":"Minn\\Http","kind":"final readonly class","lines":36,"band":"26–50","usedBy":4,"summary":"A file the engine fetches for itself (a package, a language pack), over its Minn\\Http client with the rules a download needs: https at every hop, one of the caller's host prefixes when given, no private address, and a body over the cap fails rather than being truncated.","path":"/api/http/download/"},{"name":"Envelope","namespace":"Minn\\Http","kind":"interface","lines":9,"band":"1–25","usedBy":2,"summary":"What runs around a matched route once the router knows the route takes the request: the place a host lets other code refuse, answer or edit it (the runtime's REST server filters).","path":"/api/http/envelope/"},{"name":"Exchange","namespace":"Minn\\Http","kind":"final readonly class","lines":74,"band":"51–100","usedBy":6,"summary":"What came back: the final response's status, headers (repeats as lists), Set-Cookie values, and body, or the transport error.","path":"/api/http/exchange/"},{"name":"Failure","namespace":"Minn\\Http","kind":"final class","lines":176,"band":"101–200","usedBy":3,"summary":"What the public sees when the engine cannot answer: a plain page with no detail, while the detail goes to the log.","path":"/api/http/failure/"},{"name":"Fake","namespace":"Minn\\Http","kind":"final class","lines":94,"band":"51–100","usedBy":1,"summary":"Answers requests in place of the network, and keeps what was sent.","path":"/api/http/fake/"},{"name":"Ipv6","namespace":"Minn\\Http","kind":"final class","lines":62,"band":"51–100","usedBy":0,"summary":"IPv6 addresses as text: written out in full (eight groups, or six and an IPv4 tail), compressed (\"::\" for the longest run of zero groups, the first when two tie), and checked.","path":"/api/http/ipv6/"},{"name":"IriParts","namespace":"Minn\\Http","kind":"final readonly class","lines":138,"band":"101–200","usedBy":0,"summary":"An IRI (a URL that may carry non-ASCII text) split into its parts and written back normalized: scheme and host in lower case, a scheme's default port dropped, dot segments removed, and every character a URL may not hold percent-encoded.","path":"/api/http/iriparts/"},{"name":"Kernel","namespace":"Minn\\Http","kind":"final readonly class","lines":36,"band":"26–50","usedBy":1,"summary":"The edge.","path":"/api/http/kernel/"},{"name":"LegacyHeaders","namespace":"Minn\\Http","kind":"final class","lines":60,"band":"51–100","usedBy":0,"summary":"WP_Http's legacy readers, kept for plugins that still call them (probe http-classes).","path":"/api/http/legacyheaders/"},{"name":"Location","namespace":"Minn\\Http","kind":"final class","lines":65,"band":"51–100","usedBy":1,"summary":"Where a redirect leads: a Location header made absolute against the URL that sent it.","path":"/api/http/location/"},{"name":"Matched","namespace":"Minn\\Http","kind":"final readonly class","lines":15,"band":"1–25","usedBy":3,"summary":"A route the router matched to a request and whose policy it judged: the route, the object and method that answer it, the pattern's captures, and every method the same handler answers on that pattern (the reference lists POST, PUT and PATCH together for one edit handler).","path":"/api/http/matched/"},{"name":"Method","namespace":"Minn\\Http","kind":"enum","lines":33,"band":"26–50","usedBy":60,"summary":"","path":"/api/http/method/"},{"name":"Outbound","namespace":"Minn\\Http","kind":"final readonly class","lines":46,"band":"26–50","usedBy":4,"summary":"One outgoing HTTP request, normalised: the transport needs nothing else.","path":"/api/http/outbound/"},{"name":"Policy","namespace":"Minn\\Http","kind":"final readonly class","lines":108,"band":"101–200","usedBy":56,"summary":"What a route requires of its caller, as data on the route: the router enforces it before the handler runs, so a grep over the attributes is the authorization surface.","path":"/api/http/policy/"},{"name":"Punycode","namespace":"Minn\\Http","kind":"final class","lines":103,"band":"101–200","usedBy":0,"summary":"Internationalized host names in ASCII: each label that is not ASCII is written as \"xn--\" plus its Punycode (RFC 3492) and must stay under 64 bytes.","path":"/api/http/punycode/"},{"name":"RawResponse","namespace":"Minn\\Http","kind":"final class","lines":105,"band":"101–200","usedBy":0,"summary":"An HTTP response as text, the way the Requests library hands it from transport to parser: the status line and headers, a blank line, the body.","path":"/api/http/rawresponse/"},{"name":"Refusal","namespace":"Minn\\Http","kind":"interface","lines":5,"band":"1–25","usedBy":1,"summary":"A refusal a route judges after its arguments and before its policy: the reference turns some requests away at the head of its permission check, before it looks at the caller at all (a post created with an id).","path":"/api/http/refusal/"},{"name":"Request","namespace":"Minn\\Http","kind":"final readonly class","lines":139,"band":"101–200","usedBy":90,"summary":"An immutable picture of the incoming request.","path":"/api/http/request/"},{"name":"RequestFailed","namespace":"Minn\\Http","kind":"final class","lines":7,"band":"1–25","usedBy":1,"summary":"Thrown by Exchange::throw() when no response arrived or it was not a 2xx; the exchange rides along.","path":"/api/http/requestfailed/"},{"name":"RequestsNames","namespace":"Minn\\Http","kind":"final class","lines":18,"band":"1–25","usedBy":0,"summary":"The Requests library's PSR-0 class names (Requests_Exception_HTTP_404, Requests_IDNAEncoder, ...) mapped to the PSR-4 names they stand for.","path":"/api/http/requestsnames/"},{"name":"Response","namespace":"Minn\\Http","kind":"final readonly class","lines":123,"band":"101–200","usedBy":68,"summary":"What a handler returns.","path":"/api/http/response/"},{"name":"Route","namespace":"Minn\\Http","kind":"final readonly class","lines":74,"band":"51–100","usedBy":56,"summary":"Declares a handler method as a route.","path":"/api/http/route/"},{"name":"RouteMiss","namespace":"Minn\\Http","kind":"final class","lines":3,"band":"1–25","usedBy":6,"summary":"A handler declining a request its pattern matched: the router swallows it and goes on to the next route, so a catch-all pattern can leave a path it does not own to whatever registers after it (a plugin's route under the same namespace, say) instead of answering \"no route\" itself.","path":"/api/http/routemiss/"},{"name":"RouteParams","namespace":"Minn\\Http","kind":"interface","lines":10,"band":"1–25","usedBy":3,"summary":"The parameters a route takes when they depend on what its captures name (a post type's collection takes its own taxonomies, its own orderby values, whatever plugins add to it), rather than on a fixed set.","path":"/api/http/routeparams/"},{"name":"RouteRow","namespace":"Minn\\Http","kind":"final readonly class","lines":81,"band":"51–100","usedBy":2,"summary":"One line of the route table: what a route is, who it is for, and what it takes, read from the attribute and the handler method alone, so the table can be built from the classes without a request, a database, or a site.","path":"/api/http/routerow/"},{"name":"Router","namespace":"Minn\\Http","kind":"final class","lines":260,"band":"201–400","usedBy":7,"summary":"Matches a request to a #[Route] on one of the registered handler objects, has the check refuse a bad argument, has the gate judge the route's policy, and invokes the method with the request plus the named pattern captures.","path":"/api/http/router/"},{"name":"StatusText","namespace":"Minn\\Http","kind":"final class","lines":16,"band":"1–25","usedBy":0,"summary":"The reason phrase a status line carries for each code, as the reference's table has them (probe functions-remaining): its own wording where it differs from today's RFCs (\"Request Entity Too Large\", \"Reserved\" for 306).","path":"/api/http/statustext/"},{"name":"Subject","namespace":"Minn\\Http","kind":"enum","lines":46,"band":"26–50","usedBy":14,"summary":"The record a route capture names, so a policy can have it looked up before the caller is judged: the reference answers \"no such post\" ahead of \"you may not\", and the 404 it sends is the record's own.","path":"/api/http/subject/"},{"name":"Transport","namespace":"Minn\\Http","kind":"final class","lines":138,"band":"101–200","usedBy":1,"summary":"The engine's outgoing HTTP transport over curl: it sends exactly what an Outbound says and nothing else decides.","path":"/api/http/transport/"},{"name":"TrustedProxies","namespace":"Minn\\Http","kind":"final readonly class","lines":104,"band":"101–200","usedBy":1,"summary":"Which addresses in front of the engine may speak for the client.","path":"/api/http/trustedproxies/"},{"name":"Catalog","namespace":"Minn\\I18n","kind":"final readonly class","lines":56,"band":"51–100","usedBy":5,"summary":"One translation file's contents: its headers as written, its messages keyed the gettext way (the context, a 0x04 byte, then the original; the original alone without a context), each with its translated forms and, where the file says, the original plural, and the file's plural rule.","path":"/api/i18n/catalog/"},{"name":"Gettext","namespace":"Minn\\I18n","kind":"final class","lines":66,"band":"51–100","usedBy":15,"summary":"Translation as plugins see it (__, _x, _n and the rest map here): the message looked up in its domain's loaded files (loading the domain just in time on first use, through the loader the runtime hands over), else the English, then the gettext filters a plugin may change it through.","path":"/api/i18n/gettext/"},{"name":"LegacyPluralForms","namespace":"Minn\\I18n","kind":"final class","lines":173,"band":"101–200","usedBy":0,"summary":"The plural expression reader the old POMO library carries (Plural_Forms), kept apart from PluralExpression because plugins see its quirks: it reads only n, whole numbers, parentheses, % and the comparisons, && and ||, and the ternary, skipping spaces and tabs alone.","path":"/api/i18n/legacypluralforms/"},{"name":"LocaleStack","namespace":"Minn\\I18n","kind":"final class","lines":42,"band":"26–50","usedBy":1,"summary":"The locales a request switched into, innermost last, each with the user whose locale it is (false when a locale was named outright).","path":"/api/i18n/localestack/"},{"name":"MoFile","namespace":"Minn\\I18n","kind":"final class","lines":106,"band":"101–200","usedBy":1,"summary":"The GNU gettext binary catalog (.mo), read and written.","path":"/api/i18n/mofile/"},{"name":"PhpFile","namespace":"Minn\\I18n","kind":"final class","lines":22,"band":"1–25","usedBy":1,"summary":"The PHP translation file (.l10n.php): a file that returns an array of its lower-cased headers and a \"messages\" map from the gettext key to the translation, plural forms joined by NUL bytes.","path":"/api/i18n/phpfile/"},{"name":"PluralExpression","namespace":"Minn\\I18n","kind":"final class","lines":147,"band":"101–200","usedBy":1,"summary":"The C subset a Plural-Forms header writes its rule in: the number n, integer literals, parentheses, ! and unary minus, * / %, + -, the four comparisons, == and !=, && and ||, and the ternary, with C's precedence and the ternary binding to the right.","path":"/api/i18n/pluralexpression/"},{"name":"PluralRule","namespace":"Minn\\I18n","kind":"final readonly class","lines":36,"band":"26–50","usedBy":1,"summary":"A language's plural rule from its Plural-Forms header: how many forms it has and which form a number takes.","path":"/api/i18n/pluralrule/"},{"name":"ScriptTranslations","namespace":"Minn\\I18n","kind":"final class","lines":60,"band":"51–100","usedBy":0,"summary":"Where a script's JSON translations are found, and how they reach the page.","path":"/api/i18n/scripttranslations/"},{"name":"TextDomains","namespace":"Minn\\I18n","kind":"final class","lines":171,"band":"101–200","usedBy":1,"summary":"The text domains this request knows: each domain's files in the order they were loaded, and the domains looked for and not found (known, with no files), all in the order they first appeared, which is the order a locale switch reloads them in.","path":"/api/i18n/textdomains/"},{"name":"TranslationFiles","namespace":"Minn\\I18n","kind":"final class","lines":28,"band":"26–50","usedBy":0,"summary":"Which file a request for a .mo path reads, and reading it.","path":"/api/i18n/translationfiles/"},{"name":"Json","namespace":"Minn","kind":"final class","lines":115,"band":"101–200","usedBy":63,"summary":"JSON in and out, for the engine and for code written for Minn: use Minn\\Json; Json::encode($rows); // {\"url\":\"https://example.com/a\",\"name\":\"Café\"} Json::decode($text); // objects as arrays; JsonException when it is not JSON Json::decode($stored, or: []); // the fallback, for text that may be empty or broken Json::file($path); // the same, read from a file; the error names the file encode() writes slashes and characters as themselves unless flags say otherwise (Json::ESCAPED is the form WordPress writes, which REST bodies keep).","path":"/api/minn/json/"},{"name":"LoginController","namespace":"Minn\\Login","kind":"final readonly class","lines":441,"band":"401+","usedBy":1,"summary":"Signing in.","path":"/api/login/logincontroller/"},{"name":"LoginForm","namespace":"Minn\\Login","kind":"final class","lines":233,"band":"201–400","usedBy":1,"summary":"The sign-in page markup.","path":"/api/login/loginform/"},{"name":"LoginHooks","namespace":"Minn\\Login","kind":"final readonly class","lines":99,"band":"51–100","usedBy":2,"summary":"The sign-in as plugins see it, when they are loaded.","path":"/api/login/loginhooks/"},{"name":"LoginNotices","namespace":"Minn\\Login","kind":"final readonly class","lines":113,"band":"101–200","usedBy":3,"summary":"What a sign-in page tells the reader, held as the reference's pages hold it: notices by code, each an error or (severity \"message\") a message, their words as HTML.","path":"/api/login/loginnotices/"},{"name":"ServeLogin","namespace":"Minn\\Login","kind":"final class","lines":3,"band":"1–25","usedBy":2,"summary":"Thrown by the wp-login.php shape file when plugin code require's it mid-request (a hide-login plugin serving its own sign-in URL, the perfmatters pattern).","path":"/api/login/servelogin/"},{"name":"AddressRules","namespace":"Minn\\Mail","kind":"final class","lines":111,"band":"101–200","usedBy":1,"summary":"Email addresses: the checks a mailer can apply (PHP's filter, the RFC 5322 grammar with comments, quoted local parts and domain literals, the HTML5 form rule), parsing an address list, and the domain of an address in ASCII.","path":"/api/mail/addressrules/"},{"name":"ChangeNotices","namespace":"Minn\\Mail","kind":"final class","lines":30,"band":"26–50","usedBy":0,"summary":"The notices the reference mails a user when their password or email address changes, as templates: plugins filter them (password_change_email, email_change_email) with the placeholders still in them and the site name still a %s in the subject, and fill() finishes them after.","path":"/api/mail/changenotices/"},{"name":"Composer","namespace":"Minn\\Mail","kind":"final class","lines":253,"band":"201–400","usedBy":1,"summary":"A message as the reference's mailer writes it: the header block (Date, the address lines, Subject, Message-ID, X-Mailer, custom headers, MIME-Version), the MIME header for its type, and the body, multipart when it has an alternative, inline parts or attachments.","path":"/api/mail/composer/"},{"name":"DataLines","namespace":"Minn\\Mail","kind":"final class","lines":28,"band":"26–50","usedBy":1,"summary":"A message cut into the lines SMTP DATA sends.","path":"/api/mail/datalines/"},{"name":"DebugOutput","namespace":"Minn\\Mail","kind":"final class","lines":38,"band":"26–50","usedBy":0,"summary":"Where a mailer's debug text goes, as its Debugoutput setting names it: \"echo\" (a timestamp and a tab, continuation lines indented under the text), \"html\" (entity-escaped, line breaks dropped, ending in <br>), \"error_log\", a PSR-3 logger's debug(), or any other callable, which gets the text and its level.","path":"/api/mail/debugoutput/"},{"name":"Dkim","namespace":"Minn\\Mail","kind":"final class","lines":110,"band":"101–200","usedBy":0,"summary":"DKIM signatures (RFC 6376) as the reference's mailer writes them: rsa-sha256, relaxed header and simple body canonicalization, the standard headers signed in the order they appear (plus any extra ones the caller names), an optional identity, the signed headers copied into z= when asked, and the signature folded in 73-character pieces.","path":"/api/mail/dkim/"},{"name":"Draft","namespace":"Minn\\Mail","kind":"final readonly class","lines":66,"band":"51–100","usedBy":2,"summary":"Everything a message is composed from: the transport it goes out on (which decides the line ending, the header line length, and where To, Subject and Bcc are written), the envelope, the content, the headers, and the attachments as [path or data, file name, name, encoding, type, is data, disposition, content id]. $toHeader is \"list\" (To, or undisclosed-recipients when there is neither To nor Cc) or \"omit\" (one message per recipient, the address given to each send instead).","path":"/api/mail/draft/"},{"name":"HeaderWords","namespace":"Minn\\Mail","kind":"final class","lines":112,"band":"101–200","usedBy":1,"summary":"Header text as mail carries it (RFC 2047): left alone when it is plain and short enough, quoted when a phrase needs it, otherwise encoded words in Q (mostly ASCII) or B (mostly not), folded to the line length the transport allows: 63 for PHP's mail(), 998 otherwise.","path":"/api/mail/headerwords/"},{"name":"HostEntry","namespace":"Minn\\Mail","kind":"final readonly class","lines":36,"band":"26–50","usedBy":0,"summary":"One entry of a mailer's Host setting (\"host\", \"host:port\", \"ssl://host:465\", \"tls://host\"; entries are separated by semicolons): the security prefix, the host and the port.","path":"/api/mail/hostentry/"},{"name":"HtmlMessage","namespace":"Minn\\Mail","kind":"final class","lines":55,"band":"51–100","usedBy":0,"summary":"What a mailer reads out of an HTML message: the images it can carry inline (a src or background naming a file under the base directory, or a data: URI of a raster image), the content id each one gets (the first 32 hex digits of a SHA-256 of the URL, or of a data URI's bytes, at \"phpmailer.0\"), and the plain-text version (head, style and script dropped, tags stripped, entities decoded into the charset).","path":"/api/mail/htmlmessage/"},{"name":"MailHeaders","namespace":"Minn\\Mail","kind":"final readonly class","lines":83,"band":"51–100","usedBy":0,"summary":"The headers argument of wp_mail() read the way the reference reads it: a string split into lines (CRLF or LF) or a list of lines; a line without a colon is skipped.","path":"/api/mail/mailheaders/"},{"name":"MailLog","namespace":"Minn\\Mail","kind":"final class","lines":25,"band":"1–25","usedBy":1,"summary":"The engine's development transport: each message as one JSON line (time, from, to, subject, body) appended to wp-content/minn-mail.log, nothing sent.","path":"/api/mail/maillog/"},{"name":"MailSettings","namespace":"Minn\\Mail","kind":"final readonly class","lines":71,"band":"51–100","usedBy":4,"summary":"How mail leaves the site, from the minn_mail option (JSON or a serialized array): the PHP mail function by default, SMTP when configured, or a log file for development.","path":"/api/mail/mailsettings/"},{"name":"Mailer","namespace":"Minn\\Mail","kind":"final readonly class","lines":88,"band":"51–100","usedBy":4,"summary":"Sends a Message through the configured transport.","path":"/api/mail/mailer/"},{"name":"MailerStrings","namespace":"Minn\\Mail","kind":"final class","lines":34,"band":"26–50","usedBy":0,"summary":"The mailer's English messages, keyed as plugins look them up (\"authenticate\", \"provide_address\", ...): the base set, and the set WordPress's own mailer subclass loads, which words four of them differently.","path":"/api/mail/mailerstrings/"},{"name":"Message","namespace":"Minn\\Mail","kind":"final readonly class","lines":18,"band":"1–25","usedBy":3,"summary":"One outgoing plain-text email.","path":"/api/mail/message/"},{"name":"MimeTypes","namespace":"Minn\\Mail","kind":"final class","lines":43,"band":"26–50","usedBy":0,"summary":"The MIME type a mailer gives an attachment by its file extension (the table the reference's mailer answers with); anything else is application/octet-stream.","path":"/api/mail/mimetypes/"},{"name":"Notices","namespace":"Minn\\Mail","kind":"final readonly class","lines":99,"band":"51–100","usedBy":1,"summary":"The messages the engine itself sends, worded as the reference words them and built in one place, so a controller and a CLI verb that announce the same thing say the same thing.","path":"/api/mail/notices/"},{"name":"PathParts","namespace":"Minn\\Mail","kind":"final class","lines":22,"band":"1–25","usedBy":0,"summary":"A path's parts the way a mailer names attachments, safe for multibyte names: the directory ('' when there is none), the last segment, its extension (after the last dot, so \".hidden\" is all extension) and the name before it.","path":"/api/mail/pathparts/"},{"name":"Smime","namespace":"Minn\\Mail","kind":"final class","lines":27,"band":"26–50","usedBy":0,"summary":"S/MIME signing of a composed MIME entity with a certificate and key on disk: the entity goes through OpenSSL as a detached signature and comes back as new MIME headers (multipart/signed) and the signed body.","path":"/api/mail/smime/"},{"name":"Smtp","namespace":"Minn\\Mail","kind":"final readonly class","lines":33,"band":"26–50","usedBy":1,"summary":"Delivery over SMTP for the engine's own mail when WordPress's mail function is not loaded: the site's server, SSL or STARTTLS, a sign-in when a user name is set, one message per connection, through the same SmtpSession the PHPMailer SMTP class speaks with.","path":"/api/mail/smtp/"},{"name":"SmtpSession","namespace":"Minn\\Mail","kind":"final class","lines":461,"band":"401+","usedBy":2,"summary":"One SMTP conversation as the reference's client holds it: the socket, the last reply, the server's extensions from EHLO, and the last error as {error, detail, smtp_code, smtp_code_ex}.","path":"/api/mail/smtpsession/"},{"name":"TextWrap","namespace":"Minn\\Mail","kind":"final class","lines":118,"band":"101–200","usedBy":1,"summary":"Word wrapping for mail text.","path":"/api/mail/textwrap/"},{"name":"Transfer","namespace":"Minn\\Mail","kind":"final class","lines":61,"band":"51–100","usedBy":6,"summary":"Body text in a content transfer encoding, and the line-ending helpers mail composition leans on.","path":"/api/mail/transfer/"},{"name":"AvifInfo","namespace":"Minn\\Media","kind":"final class","lines":142,"band":"101–200","usedBy":0,"summary":"An AVIF file's primary image as wp_get_avif_info reports it (probe media-tags): width and height from its spatial-extent property, bit depth and channel count from its pixel-information property.","path":"/api/media/avifinfo/"},{"name":"Canvas","namespace":"Minn\\Media","kind":"final readonly class","lines":168,"band":"101–200","usedBy":1,"summary":"One GD bitmap and the operations the media layer needs on it.","path":"/api/media/canvas/"},{"name":"Gallery","namespace":"Minn\\Media","kind":"final class","lines":54,"band":"51–100","usedBy":0,"summary":"The classic `[gallery]` shortcode's markup.","path":"/api/media/gallery/"},{"name":"Icons","namespace":"Minn\\Media","kind":"final class","lines":68,"band":"51–100","usedBy":0,"summary":"The icon a file type is shown with, as wp_mime_type_icon finds it (probe plugin-helpers): the icon folders (core's wp-includes/images/media, and any icon_dirs adds) read once a request into a name => address map, an icon of the asked kind (.png or .svg) preferred where both exist; then the first name the type answers to: an attachment's file extension and the kind of file it is, the type, its two halves, the type with an underscore for the slash.","path":"/api/media/icons/"},{"name":"Images","namespace":"Minn\\Media","kind":"final readonly class","lines":163,"band":"101–200","usedBy":2,"summary":"GD sub-size generation for the sizes the site has.","path":"/api/media/images/"},{"name":"Kind","namespace":"Minn\\Media","kind":"final class","lines":79,"band":"51–100","usedBy":0,"summary":"Whether an attachment is an image, audio, video, or a given extension, judged by its MIME type first and its file extension second.","path":"/api/media/kind/"},{"name":"Metadata","namespace":"Minn\\Media","kind":"final class","lines":145,"band":"101–200","usedBy":6,"summary":"The _wp_attachment_metadata blob: parsed by scanning for the shapes it holds (top-level dims and file, the sizes map, the image_meta scalars) and written back in the reference's stored form: a:6 at the top, image_meta as a:13 with alt last.","path":"/api/media/metadata/"},{"name":"PhotoMeta","namespace":"Minn\\Media","kind":"final class","lines":165,"band":"101–200","usedBy":1,"summary":"A photo's own description, read as the reference's wp_read_image_metadata reads it (probe image-meta): IPTC first (headline or object name for the title, caption, credit or byline, copyright, keywords, the date and time it was made), then EXIF for what IPTC left empty (a short description as the title, the user comment or description as the caption, the artist, copyright, model, the digitized time, aperture, focal length, ISO, exposure, orientation).","path":"/api/media/photometa/"},{"name":"PreparedUpload","namespace":"Minn\\Media","kind":"final readonly class","lines":13,"band":"1–25","usedBy":1,"summary":"An upload made ready for its attachment: the file stored, its sizes cut, the row it will be.","path":"/api/media/preparedupload/"},{"name":"Sizing","namespace":"Minn\\Media","kind":"final class","lines":239,"band":"201–400","usedBy":1,"summary":"The image size arithmetic the media functions share: the crop or scale a resize needs, the registered size a requested box picks, and the srcset candidates an image's sizes yield.","path":"/api/media/sizing/"},{"name":"Upload","namespace":"Minn\\Media","kind":"final readonly class","lines":76,"band":"51–100","usedBy":2,"summary":"One file arriving for the library, on either transport: a multipart field named \"file\" (a temporary upload to move) or a raw body whose Content-Disposition names the file.","path":"/api/media/upload/"},{"name":"Uploads","namespace":"Minn\\Media","kind":"final readonly class","lines":179,"band":"101–200","usedBy":7,"summary":"The uploads directory: paths, URLs, the allowed types, and landing a file.","path":"/api/media/uploads/"},{"name":"WebpInfo","namespace":"Minn\\Media","kind":"final class","lines":24,"band":"1–25","usedBy":0,"summary":"A WebP file's size and kind from its first 40 bytes, as wp_get_webp_info reads them (probe plugin-queue8): a simple lossy frame (VP8), a lossless one (VP8L), or the extended form (VP8X), which the reference names animated-alpha whatever its flags say.","path":"/api/media/webpinfo/"},{"name":"Writer","namespace":"Minn\\Media","kind":"final readonly class","lines":181,"band":"101–200","usedBy":3,"summary":"The writes the media library makes.","path":"/api/media/writer/"},{"name":"Archive","namespace":"Minn\\Ops","kind":"final class","lines":96,"band":"51–100","usedBy":3,"summary":"A zip unpacked the safe way, for the plugin and theme installer and for the engine's own update alike: every entry stays inside its folder (no absolute path, no \"..\", no backslash, no NUL), none is a symbolic link, there are no more than 20,000 of them, they unpack to no more than 512 MB, and they all sit in exactly one top folder (macOS's __MACOSX noise aside).","path":"/api/ops/archive/"},{"name":"AutoUpdates","namespace":"Minn\\Ops","kind":"final readonly class","lines":29,"band":"26–50","usedBy":4,"summary":"Whether per-item auto-updates apply to plugins or themes, as the reference decides it (contracts/rest/minn-admin-v1.md \"Auto-updates\"): never when file mods are off (DISALLOW_FILE_MODS through file_mod_allowed, context automatic_updater), never when the updater is disabled (AUTOMATIC_UPDATER_DISABLED through automatic_updater_disabled, which a plugin may turn back), and then the type's own filter has the last word.","path":"/api/ops/autoupdates/"},{"name":"Changelog","namespace":"Minn\\Ops","kind":"final class","lines":68,"band":"51–100","usedBy":2,"summary":"A changelog read from its repository rather than shipped: a Minn release carries no notes, its own or Minn Admin's, for anyone to find on the sites that run it.","path":"/api/ops/changelog/"},{"name":"CoreStatus","namespace":"Minn\\Ops","kind":"final readonly class","lines":48,"band":"26–50","usedBy":3,"summary":"The core the app's update banner and chip speak of, which on Minn is Minn: the running engine's version, a newer release on offer (Ops\\Releases, asked of the update service once a day), and installing it (Ops\\EngineUpdate).","path":"/api/ops/corestatus/"},{"name":"Diagnostics","namespace":"Minn\\Ops","kind":"final readonly class","lines":408,"band":"401+","usedBy":2,"summary":"The System view's facts about this install: the engine, PHP, the database, and the server, with the health checks a site owner acts on.","path":"/api/ops/diagnostics/"},{"name":"Directory","namespace":"Minn\\Ops","kind":"final class","lines":35,"band":"26–50","usedBy":9,"summary":"The Minn update service, https://updates.minn.run: the one place the engine asks about anything it does not have yet, so a site running Minn talks to Minn and never to wordpress.org.","path":"/api/ops/directory/"},{"name":"DirectoryApi","namespace":"Minn\\Ops","kind":"final readonly class","lines":56,"band":"51–100","usedBy":0,"summary":"plugins_api() and themes_api() as plugins call them and answer them (probes plugins-api, themes-api), one class for both ($kind 'plugins' or 'themes'): the arguments as an object with the reader's locale and the major.minor version beside them, through <kind>_api_args; then whatever a plugin answers through <kind>_api (a seller's own information, or an error) stands, and only when nobody answers is the directory asked, through Ops\\Packages (behind the Minn update service); <kind>_api_result is handed what came back either way.","path":"/api/ops/directoryapi/"},{"name":"EngineChecksums","namespace":"Minn\\Ops","kind":"final readonly class","lines":157,"band":"101–200","usedBy":1,"summary":"Checks a Minn install's files against the release they claim to be, the way `wp core verify-checksums` checks WordPress's against wordpress.org: the update service describes the running version's release, its minn.zip is downloaded from the service alone and must match its published sha256 and carry a signature from a key this engine trusts (EngineUpdate), and then every file of the engine is compared with the archive's, as are the shape files at the webroot with the archive's layout templates.","path":"/api/ops/enginechecksums/"},{"name":"EngineUpdate","namespace":"Minn\\Ops","kind":"final readonly class","lines":135,"band":"101–200","usedBy":4,"summary":"Replaces the running engine with a published release.","path":"/api/ops/engineupdate/"},{"name":"InstalledSoftware","namespace":"Minn\\Ops","kind":"final readonly class","lines":59,"band":"51–100","usedBy":2,"summary":"What is installed, as the System view lists it: every extension and WordPress plugin with whether it runs, the mu-plugins, the themes with their parents, and the active theme's label.","path":"/api/ops/installedsoftware/"},{"name":"Logs","namespace":"Minn\\Ops","kind":"final readonly class","lines":150,"band":"101–200","usedBy":3,"summary":"The log files the System view can read and clear: the debug log the engine's failure handler writes, and PHP's own error log when it is a separate file inside the site.","path":"/api/ops/logs/"},{"name":"Packages","namespace":"Minn\\Ops","kind":"final readonly class","lines":481,"band":"401+","usedBy":10,"summary":"Putting plugins, themes and extensions on disk.","path":"/api/ops/packages/"},{"name":"Release","namespace":"Minn\\Ops","kind":"final readonly class","lines":58,"band":"51–100","usedBy":3,"summary":"One published Minn release as the update service describes it (and as the minn_release option keeps it, the same shape): the version, its notes and page, when it went out, and its minn.zip with that file's sha256 and its Ed25519 signature.","path":"/api/ops/release/"},{"name":"Releases","namespace":"Minn\\Ops","kind":"final class","lines":87,"band":"51–100","usedBy":4,"summary":"Whether a newer Minn is out, asked of the Minn update service at most once a day: its latest installable release (published on GitHub, read by the service), kept in the minn_release option (JSON) with the time it was asked.","path":"/api/ops/releases/"},{"name":"Unzip","namespace":"Minn\\Ops","kind":"final readonly class","lines":112,"band":"101–200","usedBy":0,"summary":"An archive unpacked as unzip_file() unpacks it (probe unzip-file): into the destination through the filesystem the site set up, every folder made first (the destination and its missing parents included), resource-fork entries (__MACOSX/) and entries whose names climb out or are absolute left out; refused when the disk cannot take twice the unpacked size and a little more. pre_unzip_file may answer first, and unzip_file is handed the result, each with the folders to make and the space needed.","path":"/api/ops/unzip/"},{"name":"Updates","namespace":"Minn\\Ops","kind":"final class","lines":436,"band":"401+","usedBy":6,"summary":"Update offers for the site's plugins and themes from the directory, asked through the Minn update service (Ops\\Directory), which answers with wordpress.org's own offers and serves their packages: the update-check endpoints asked with the installed headers (each plugin's Name, Version and Update URI, so a plugin that updates from elsewhere is never offered the directory's plugin of the same folder name), the answer kept in the minn_updates option (JSON) for twelve hours, and the offers applied by downloading the release archive through the one package unpacker.","path":"/api/ops/updates/"},{"name":"UpgraderRun","namespace":"Minn\\Ops","kind":"final readonly class","lines":113,"band":"101–200","usedBy":2,"summary":"The engine's own installs and updates, run through the reference's upgraders (Plugin_Upgrader, Theme_Upgrader) so plugins hear every hook a WordPress install or update tells them: the REST plugin route, Minn Admin's install, upload and update routes, the CLI verbs and the automatic updates all come here.","path":"/api/ops/upgraderrun/"},{"name":"AuthorPostsSql","namespace":"Minn\\Query","kind":"final class","lines":30,"band":"26–50","usedBy":0,"summary":"get_posts_by_author_sql as the reference writes it: for each type, its published posts, and its private ones the reader may see (all of them with the cap to read others', their own otherwise), OR'd; an author narrows it; WHERE in front when asked.","path":"/api/query/authorpostssql/"},{"name":"CommentOrder","namespace":"Minn\\Query","kind":"final class","lines":100,"band":"51–100","usedBy":1,"summary":"WP_Comment_Query's ORDER BY and LIMIT as the reference writes them (probe wp-comment-query-sql): no orderby means comment_date_gmt in the order asked; a list, a string of keys or a map of keys to directions each become a column, a meta value or the FIELD() list comment__in gives; a key it does not know is dropped (none left means comment_date_gmt), and unless comment_ID or comment__in is among them a comment_ID tiebreak follows, in the first date clause's direction or DESC.","path":"/api/query/commentorder/"},{"name":"DateSql","namespace":"Minn\\Query","kind":"final class","lines":285,"band":"201–400","usedBy":0,"summary":"The WHERE fragment of a date query in the reference's shape: before and after bounds as full datetimes (inclusive bounds close the day), the date parts as MySQL functions compared or listed, groups joined by their relation, columns validated against the known date columns.","path":"/api/query/datesql/"},{"name":"MetaSql","namespace":"Minn\\Query","kind":"final class","lines":278,"band":"201–400","usedBy":0,"summary":"The JOIN and WHERE fragments of a meta query in the reference's shape: one meta-table join per clause (the first under the table's own name, then mt1, mt2, ...), INNER joins unless an OR relation or a NOT EXISTS clause needs LEFT ones, and casts by the clause's declared type.","path":"/api/query/metasql/"},{"name":"MimeWhere","namespace":"Minn\\Query","kind":"final class","lines":36,"band":"26–50","usedBy":0,"summary":"wp_post_mime_type_where as the reference writes it (probe wp-query-sql): each mime type (a list or a comma-separated string) cleaned to a pattern, a bare group or a star widened with % into a LIKE, an exact type an equality, all OR'd; an empty type or a lone wildcard means no clause.","path":"/api/query/mimewhere/"},{"name":"PostOrder","namespace":"Minn\\Query","kind":"final class","lines":118,"band":"101–200","usedBy":1,"summary":"WP_Query's ORDER BY as the reference writes it (probe wp-query-sql): the keys it takes, what each key becomes (a column, a meta value, a FIELD() list, a seeded RAND()), and how a list or a map of keys joins with its directions.","path":"/api/query/postorder/"},{"name":"PostSearch","namespace":"Minn\\Query","kind":"final class","lines":118,"band":"101–200","usedBy":1,"summary":"WP_Query's search as the reference writes it (probe wp-query-sql): the search string split into terms (quoted phrases kept whole, single letters and stopwords dropped, ten or more terms or none left searched as one sentence), each term a group of LIKEs over the searched columns (NOT LIKE and AND for an excluded term), the password clause for a visitor, and the relevance order: a CASE ladder for several terms, the title match first for one.","path":"/api/query/postsearch/"},{"name":"Sql","namespace":"Minn\\Query","kind":"final class","lines":42,"band":"26–50","usedBy":9,"summary":"Literal quoting for the SQL fragments the query classes hand to plugins, which embed them verbatim in their own statements.","path":"/api/query/sql/"},{"name":"TaxSql","namespace":"Minn\\Query","kind":"final class","lines":190,"band":"101–200","usedBy":0,"summary":"The JOIN and WHERE fragments of a taxonomy query in the reference's shape: IN clauses join term_relationships (the first under the table's own name, then tt1, tt2, ..., shared between IN siblings under OR), NOT IN and AND read subqueries, EXISTS checks the taxonomy, and a term nobody has yields \"0 = 1\".","path":"/api/query/taxsql/"},{"name":"RestError","namespace":"Minn","kind":"final class","lines":60,"band":"51–100","usedBy":68,"summary":"A WordPress-shaped error, thrown from anywhere and rendered once by the kernel: {\"code\": ..., \"message\": ..., \"data\": {\"status\": ...}}.","path":"/api/minn/resterror/"},{"name":"Api","namespace":"Minn\\Rest","kind":"final readonly class","lines":280,"band":"201–400","usedBy":1,"summary":"The REST API: wires the controllers for one request and dispatches a route.","path":"/api/rest/api/"},{"name":"ApplicationPasswordsController","namespace":"Minn\\Rest","kind":"final readonly class","lines":177,"band":"101–200","usedBy":1,"summary":"wp/v2/users/{id}/application-passwords: list, create, rename, delete, and introspect the password that authenticated the call.","path":"/api/rest/applicationpasswordscontroller/"},{"name":"ArgCheck","namespace":"Minn\\Rest","kind":"final readonly class","lines":84,"band":"51–100","usedBy":2,"summary":"Judges a route's declared arguments against the request before the policy is judged, the way the reference does: a required parameter that did not arrive is rest_missing_callback_param; the shared collection parameters (context, page, per_page, search) are judged first and a refusal among them is answered alone; then every other invalid one is listed in rest_invalid_param, in the order the route declares them, with the schema's own refusal under details.","path":"/api/rest/argcheck/"},{"name":"BatchController","namespace":"Minn\\Rest","kind":"final readonly class","lines":159,"band":"101–200","usedBy":1,"summary":"batch/v1 as the reference answers it (probe rest-batch): up to 25 writes (POST, PUT, PATCH, DELETE) in one request, each answered in turn as {body, status, headers}, the whole as 207.","path":"/api/rest/batchcontroller/"},{"name":"BatchRequest","namespace":"Minn\\Rest","kind":"final class","lines":32,"band":"26–50","usedBy":0,"summary":"The requests a batch payload names, normalised into descriptors the caller turns into real request objects.","path":"/api/rest/batchrequest/"},{"name":"BlockRendererController","namespace":"Minn\\Rest","kind":"final readonly class","lines":89,"band":"51–100","usedBy":1,"summary":"wp/v2/block-renderer as the reference answers it (probe rest-block-renderer), the route the editor's ServerSideRender asks: a dynamic block rendered from the attributes sent (query or body), checked against the block's own attributes and filled in with their defaults, inside the post named by post_id when there is one (it becomes the global post, and the block's postId and postType context).","path":"/api/rest/blockrenderercontroller/"},{"name":"BlockTypesController","namespace":"Minn\\Rest","kind":"final readonly class","lines":117,"band":"101–200","usedBy":1,"summary":"wp/v2/block-types as the reference answers it (probe rest-block-types): every registered block type, core's and a plugin's, in registration order, or a namespace's share, for anyone who can edit a type shown in REST.","path":"/api/rest/blocktypescontroller/"},{"name":"BlocksController","namespace":"Minn\\Rest","kind":"final readonly class","lines":69,"band":"51–100","usedBy":1,"summary":"wp/v2/blocks: synced patterns and reusable blocks, stored as wp_block posts.","path":"/api/rest/blockscontroller/"},{"name":"Caller","namespace":"Minn\\Rest","kind":"final class","lines":143,"band":"101–200","usedBy":49,"summary":"Who is making this REST call.","path":"/api/rest/caller/"},{"name":"Catalogue","namespace":"Minn\\Rest","kind":"final class","lines":70,"band":"51–100","usedBy":0,"summary":"The route table read from the classes alone: every #[Route] under src/Minn, as rows, with no request, database, or site behind it.","path":"/api/rest/catalogue/"},{"name":"ClientSchema","namespace":"Minn\\Rest","kind":"final class","lines":81,"band":"51–100","usedBy":0,"summary":"A JSON schema trimmed for a client (probe json-schema): only the keywords a profile allows, in the order given, at every level a sub-schema sits.","path":"/api/rest/clientschema/"},{"name":"CommentListArgs","namespace":"Minn\\Rest","kind":"final class","lines":35,"band":"26–50","usedBy":1,"summary":"The WP_Comment_Query arguments a comment list request makes, as the reference makes them before rest_comment_query (probe rest-comment-lists): each declared parameter the request carries under its query name, an empty email and search when none is given, the orderby name mapped to the query's, the found rows counted, the posts loaded, the date bounds as one clause, the offset the page makes when none is given, and ids alone for a HEAD request.","path":"/api/rest/commentlistargs/"},{"name":"CommentObject","namespace":"Minn\\Rest","kind":"final readonly class","lines":87,"band":"51–100","usedBy":2,"summary":"The wp/v2 comment object; edit context adds the moderation-desk fields.","path":"/api/rest/commentobject/"},{"name":"CommentsController","namespace":"Minn\\Rest","kind":"final readonly class","lines":271,"band":"201–400","usedBy":1,"summary":"wp/v2/comments: the status tabs with pagination headers, single, signed-in replies, moderation updates, trash, and force delete.","path":"/api/rest/commentscontroller/"},{"name":"Context","namespace":"Minn\\Rest","kind":"enum","lines":18,"band":"1–25","usedBy":20,"summary":"The view a REST caller asked for.","path":"/api/rest/context/"},{"name":"DeclaredPostsController","namespace":"Minn\\Rest","kind":"final readonly class","lines":56,"band":"51–100","usedBy":1,"summary":"wp/v2/{rest_base} for extra post types declared by an active extension.","path":"/api/rest/declaredpostscontroller/"},{"name":"DeclaredTermsController","namespace":"Minn\\Rest","kind":"final readonly class","lines":43,"band":"26–50","usedBy":1,"summary":"wp/v2/{rest_base} for the taxonomies plugin code registers to show in REST (probe rest-plugin-types), answered as the core taxonomies are.","path":"/api/rest/declaredtermscontroller/"},{"name":"Embed","namespace":"Minn\\Rest","kind":"final class","lines":201,"band":"201–400","usedBy":2,"summary":"The _embed decoration and the embed context.","path":"/api/rest/embed/"},{"name":"EngineRoutes","namespace":"Minn\\Rest","kind":"final class","lines":66,"band":"51–100","usedBy":3,"summary":"The engine's own REST routes in the reference's regex form, for the index and for the runtime's server, whose route table plugin code reads to learn what the site answers (a missing /wp/v2/comments there reads as \"comments are off\").","path":"/api/rest/engineroutes/"},{"name":"ExistingPost","namespace":"Minn\\Rest","kind":"final class","lines":10,"band":"1–25","usedBy":4,"summary":"A post created with an id names one that exists: refused with rest_post_exists before the caller is judged, even signed out (probe patch-security).","path":"/api/rest/existingpost/"},{"name":"Fields","namespace":"Minn\\Rest","kind":"final readonly class","lines":92,"band":"51–100","usedBy":26,"summary":"The _fields response filter.","path":"/api/rest/fields/"},{"name":"GlobalStylesController","namespace":"Minn\\Rest","kind":"final readonly class","lines":138,"band":"101–200","usedBy":1,"summary":"wp/v2/global-styles: the site editor's saved styles (one post per theme, read and written by id, with its revisions) and the active theme's own styles and variations.","path":"/api/rest/globalstylescontroller/"},{"name":"GlobalStylesObject","namespace":"Minn\\Rest","kind":"final readonly class","lines":87,"band":"51–100","usedBy":2,"summary":"The wp/v2/global-styles item, theme, and revision shapes.","path":"/api/rest/globalstylesobject/"},{"name":"IndexController","namespace":"Minn\\Rest","kind":"final readonly class","lines":56,"band":"51–100","usedBy":1,"summary":"The API index at /wp-json/: the site facts monitors read (name, url, home, namespaces) and the routes this engine serves, described from its own router rather than the reference's full schema; and the index of one namespace at /wp-json/{namespace}, the same routes narrowed.","path":"/api/rest/indexcontroller/"},{"name":"InstalledThemesController","namespace":"Minn\\Rest","kind":"final readonly class","lines":128,"band":"101–200","usedBy":1,"summary":"wp/v2/themes as the reference answers it (probe rest-themes): the installed themes, or only those with a status (active, inactive), each with its style.css headers raw and rendered, where it lives, and whether it is a block theme.","path":"/api/rest/installedthemescontroller/"},{"name":"Links","namespace":"Minn\\Rest","kind":"final class","lines":52,"band":"51–100","usedBy":0,"summary":"Response link relations compacted through CURIEs: a rel that matches a CURIE's template becomes `name:suffix`, and the used CURIEs ride along.","path":"/api/rest/links/"},{"name":"LiveSettings","namespace":"Minn\\Rest","kind":"final readonly class","lines":77,"band":"51–100","usedBy":2,"summary":"wp/v2/settings with plugins loaded, served from the registered settings as the reference serves it (probe rest-settings): every setting shown in REST, core's and a plugin's alike, under its REST name.","path":"/api/rest/livesettings/"},{"name":"MediaController","namespace":"Minn\\Rest","kind":"final readonly class","lines":252,"band":"201–400","usedBy":1,"summary":"wp/v2/media: list, single, upload on both transports (multipart field \"file\", or a raw body with Content-Disposition), field edits, and force delete with the files.","path":"/api/rest/mediacontroller/"},{"name":"MediaObject","namespace":"Minn\\Rest","kind":"final readonly class","lines":164,"band":"101–200","usedBy":2,"summary":"The wp/v2 media object, view and edit context.","path":"/api/rest/mediaobject/"},{"name":"MenuItemObject","namespace":"Minn\\Rest","kind":"final readonly class","lines":74,"band":"51–100","usedBy":2,"summary":"The wp/v2/menu-items resource.","path":"/api/rest/menuitemobject/"},{"name":"MenuObject","namespace":"Minn\\Rest","kind":"final readonly class","lines":37,"band":"26–50","usedBy":2,"summary":"The wp/v2/menus resource: a nav_menu term plus locations and auto_add.","path":"/api/rest/menuobject/"},{"name":"MenusController","namespace":"Minn\\Rest","kind":"final readonly class","lines":297,"band":"201–400","usedBy":1,"summary":"wp/v2/menus, menu-items, and menu-locations.","path":"/api/rest/menuscontroller/"},{"name":"NavigationController","namespace":"Minn\\Rest","kind":"final readonly class","lines":48,"band":"26–50","usedBy":1,"summary":"wp/v2/navigation: the block theme's navigation menus, stored as wp_navigation posts.","path":"/api/rest/navigationcontroller/"},{"name":"OEmbedController","namespace":"Minn\\Rest","kind":"final readonly class","lines":72,"band":"51–100","usedBy":1,"summary":"oembed/1.0 as the reference answers it (probe oembed). embed is the provider side: one of the site's own addresses as embed data (the post through url_to_postid and oembed_request_post_id), \"Not Found\" for anything else; format=xml is served as XML on the way out (RuntimeRoutes::serve). proxy is the editor's consumer side, for anyone who can edit posts: the site's own addresses answered locally, anything else fetched through WP_oEmbed with the editor's size, its markup through oembed_result, and kept in a transient for a day (rest_oembed_ttl) under the request's arguments.","path":"/api/rest/oembedcontroller/"},{"name":"ParamCheck","namespace":"Minn\\Rest","kind":"final class","lines":76,"band":"51–100","usedBy":0,"summary":"The required / validate / sanitize pass over a request's declared arguments.","path":"/api/rest/paramcheck/"},{"name":"PluginsController","namespace":"Minn\\Rest","kind":"final readonly class","lines":231,"band":"201–400","usedBy":1,"summary":"wp/v2 plugins: what sits in wp-content/plugins, in the reference's shape.","path":"/api/rest/pluginscontroller/"},{"name":"PolicyGate","namespace":"Minn\\Rest","kind":"final readonly class","lines":147,"band":"101–200","usedBy":1,"summary":"Judges a route's policy against the caller, with the reference's refusals: a caller who is not signed in gets the policy's sign-in code at 401, a bad nonce is always 403 rest_cookie_invalid_nonce, and a signed-in caller who lacks a capability gets the refusal code at 403.","path":"/api/rest/policygate/"},{"name":"PostCollectionParams","namespace":"Minn\\Rest","kind":"final class","lines":211,"band":"201–400","usedBy":4,"summary":"A post type's collection parameters as the reference builds them for its list (probe rest-post-lists): the shared four, dates, authors when the type supports them, ids, menu order and its orderby for page attributes, parents for a hierarchical type, search columns and semantics, slugs, statuses (every registered one, and any), each REST taxonomy's term filter (a list, or a query with children for a hierarchical one and an operator for the include side) under a relation, stickies for posts, and formats for a type with post formats.","path":"/api/rest/postcollectionparams/"},{"name":"PostListArgs","namespace":"Minn\\Rest","kind":"final class","lines":174,"band":"101–200","usedBy":1,"summary":"The WP_Query arguments a post list request makes, as the reference makes them before rest_{type}_query (probe rest-post-lists): each registered parameter the request carries under its query name, the date bounds, per_page, stickies (only them, or none of them), an exact search, each taxonomy's include and exclude under the request's relation, formats (standard as no format at all), the type, and ids alone for a HEAD request.","path":"/api/rest/postlistargs/"},{"name":"PostObject","namespace":"Minn\\Rest","kind":"final readonly class","lines":508,"band":"401+","usedBy":10,"summary":"Builds the wp/v2 post and page objects in the reference's shape: the view context, the edit context (raw+rendered dual fields, editor-only fields, and cap-gated wp:action-* links), and their _links blocks.","path":"/api/rest/postobject/"},{"name":"PostsController","namespace":"Minn\\Rest","kind":"final readonly class","lines":191,"band":"101–200","usedBy":5,"summary":"wp/v2 posts and pages, read side.","path":"/api/rest/postscontroller/"},{"name":"PostsWriteController","namespace":"Minn\\Rest","kind":"final readonly class","lines":451,"band":"401+","usedBy":6,"summary":"wp/v2 posts and pages, write side: create, update, trash, and force delete, each gated by the capability engine and answering with the edit-context object the reference returns.","path":"/api/rest/postswritecontroller/"},{"name":"RegisteredFields","namespace":"Minn\\Rest","kind":"final class","lines":105,"band":"101–200","usedBy":7,"summary":"The fields plugin code adds to an object type with register_rest_field, as the reference serves them (probe rest-fields).","path":"/api/rest/registeredfields/"},{"name":"RegisteredPostFields","namespace":"Minn\\Rest","kind":"final readonly class","lines":89,"band":"51–100","usedBy":1,"summary":"The REST object of a post whose type plugin code registered (probe rest-plugin-types), built by what the type supports.","path":"/api/rest/registeredpostfields/"},{"name":"RegisteredType","namespace":"Minn\\Rest","kind":"final readonly class","lines":46,"band":"26–50","usedBy":4,"summary":"A post type plugin code registered, as its REST object follows it (probe rest-plugin-types): what it supports, whether it is hierarchical, and the taxonomies it shows in REST under their REST bases.","path":"/api/rest/registeredtype/"},{"name":"RenderedFields","namespace":"Minn\\Rest","kind":"final class","lines":62,"band":"51–100","usedBy":3,"summary":"A post's rendered title, content and excerpt as a REST response carries them.","path":"/api/rest/renderedfields/"},{"name":"Reply","namespace":"Minn\\Rest","kind":"final class","lines":53,"band":"51–100","usedBy":42,"summary":"JSON responses in the reference's shape: its header set, its json_encode flags (slashes escaped), the _fields filter, and the pagination headers on lists.","path":"/api/rest/reply/"},{"name":"RestMeta","namespace":"Minn\\Rest","kind":"final class","lines":238,"band":"201–400","usedBy":10,"summary":"An object's meta field over REST, from the keys registered to show there (probe rest-meta).","path":"/api/rest/restmeta/"},{"name":"RestUrl","namespace":"Minn\\Rest","kind":"final readonly class","lines":38,"band":"26–50","usedBy":28,"summary":"REST URLs in the form the reference emits for the site's permalink mode: {home}/wp-json/wp/v2/... when pretty, otherwise {home}/index.php?rest_route=/wp/v2/... with the route value URL-encoded when query args ride along.","path":"/api/rest/resturl/"},{"name":"RevisionsController","namespace":"Minn\\Rest","kind":"final readonly class","lines":142,"band":"101–200","usedBy":1,"summary":"wp/v2 revisions and autosaves under posts, pages, and blocks.","path":"/api/rest/revisionscontroller/"},{"name":"RouteArgs","namespace":"Minn\\Rest","kind":"final class","lines":34,"band":"26–50","usedBy":0,"summary":"The argument groups a route registers with, filled the way register_rest_route fills them.","path":"/api/rest/routeargs/"},{"name":"RouteCatalogue","namespace":"Minn\\Rest","kind":"final readonly class","lines":61,"band":"51–100","usedBy":2,"summary":"The routes the engine serves, described in the reference's shape for the index and for an OPTIONS request: every route's namespace, its methods and the parameters it declares, gathered per concrete route from the attributes so a client learns what really works on it, with the namespaces they fall under.","path":"/api/rest/routecatalogue/"},{"name":"RouteIndex","namespace":"Minn\\Rest","kind":"final class","lines":61,"band":"51–100","usedBy":0,"summary":"The description of one route the REST index publishes: namespace, methods, endpoints with their argument schemas, self link.","path":"/api/rest/routeindex/"},{"name":"RouteMatch","namespace":"Minn\\Rest","kind":"final class","lines":68,"band":"51–100","usedBy":0,"summary":"Finds the registered handler for a method and path among the runtime's route table.","path":"/api/rest/routematch/"},{"name":"RouteTable","namespace":"Minn\\Rest","kind":"final class","lines":38,"band":"26–50","usedBy":0,"summary":"The registered endpoints in dispatch shape: one handler list per route, methods as a set, non-numeric keys lifted into the route's options.","path":"/api/rest/routetable/"},{"name":"RuntimeEnvelope","namespace":"Minn\\Rest","kind":"final readonly class","lines":123,"band":"101–200","usedBy":1,"summary":"The REST server's filters around one of Minn's own routes, as the reference runs them around every route (contracts/runtime.md, \"The REST server's envelope\"): rest_request_before_callbacks is handed the argument check's error or null and may refuse; the route's permission is the next refusal; rest_dispatch_request may answer in place of the route; rest_request_after_callbacks sees whatever came of it and may change it.","path":"/api/rest/runtimeenvelope/"},{"name":"RuntimePrepare","namespace":"Minn\\Rest","kind":"final class","lines":70,"band":"51–100","usedBy":14,"summary":"An item a REST response carries, through the filter the reference runs as it prepares one (rest_prepare_{type}, rest_prepare_attachment, rest_prepare_user, rest_prepare_comment, rest_prepare_{taxonomy}): the item as a response object, its links on the response rather than in its data, handed with the object it describes and the request; what the filter leaves is the item.","path":"/api/rest/runtimeprepare/"},{"name":"RuntimeRoutes","namespace":"Minn\\Rest","kind":"final class","lines":445,"band":"401+","usedBy":18,"summary":"Routes plugin code registered with register_rest_route(), answered through the runtime's server after the engine's own routes have had their turn; the runtime's say before the engine answers at all (an authentication refusal, a pre-dispatch answer, a removed endpoint); and the runtime's namespaces folded into the index.","path":"/api/rest/runtimeroutes/"},{"name":"Schema","namespace":"Minn\\Rest","kind":"final readonly class","lines":496,"band":"401+","usedBy":7,"summary":"JSON-schema handling the way the REST API's argument validation does it: validate a value against a schema (a Refusal names what failed), sanitise it into the schema's type, filter a response by context, and the type tests the schema vocabulary needs.","path":"/api/rest/schema/"},{"name":"SchemaData","namespace":"Minn\\Rest","kind":"final class","lines":12,"band":"1–25","usedBy":0,"summary":"REST schemas captured from the reference for the facade's controller classes (data/rest-schemas.json): an item schema, a collection's parameters or a route argument, by name.","path":"/api/rest/schemadata/"},{"name":"SchemaValues","namespace":"Minn\\Rest","kind":"final class","lines":231,"band":"201–400","usedBy":2,"summary":"The value side of JSON Schema, as the reference applies it: what counts as a boolean, integer, array, or object, the coercions to each, the comparisons and date, colour, and uuid parsers the formats use, and the combining walk anyOf and oneOf share.","path":"/api/rest/schemavalues/"},{"name":"SearchController","namespace":"Minn\\Rest","kind":"final readonly class","lines":121,"band":"101–200","usedBy":1,"summary":"wp/v2 search over published content: id, title, url, type, and the post type as subtype.","path":"/api/rest/searchcontroller/"},{"name":"Services","namespace":"Minn\\Rest","kind":"final class","lines":417,"band":"401+","usedBy":1,"summary":"The objects one REST request shares, each made once, on first use, from the database door and the request.","path":"/api/rest/services/"},{"name":"Settings","namespace":"Minn\\Rest","kind":"final readonly class","lines":113,"band":"101–200","usedBy":2,"summary":"The registered settings the Settings views read and write, mapped to the options WordPress stores.","path":"/api/rest/settings/"},{"name":"SettingsController","namespace":"Minn\\Rest","kind":"final readonly class","lines":32,"band":"26–50","usedBy":1,"summary":"wp/v2/settings: read and write, both behind manage_options; with plugins loaded, every registered setting (LiveSettings).","path":"/api/rest/settingscontroller/"},{"name":"SidebarsController","namespace":"Minn\\Rest","kind":"final readonly class","lines":192,"band":"101–200","usedBy":2,"summary":"wp/v2/sidebars and wp/v2/widget-types as the reference answers them (probe rest-widgets), for anyone who can edit theme options.","path":"/api/rest/sidebarscontroller/"},{"name":"StatusesController","namespace":"Minn\\Rest","kind":"final readonly class","lines":97,"band":"51–100","usedBy":1,"summary":"wp/v2/statuses as the reference answers it (probe rest-statuses): every post status that is not internal, a plugin's beside core's, by name, and trash last.","path":"/api/rest/statusescontroller/"},{"name":"Subjects","namespace":"Minn\\Rest","kind":"final readonly class","lines":53,"band":"51–100","usedBy":2,"summary":"Whether the record a route capture names exists, for the policy gate to ask before it judges the caller.","path":"/api/rest/subjects/"},{"name":"Taxonomies","namespace":"Minn\\Rest","kind":"final class","lines":48,"band":"26–50","usedBy":4,"summary":"The taxonomy registry the wp/v2 surface describes: the core set seeded from the reference (data/taxonomies.json) with the reference's own labels, capabilities, and visibility flags.","path":"/api/rest/taxonomies/"},{"name":"TaxonomiesController","namespace":"Minn\\Rest","kind":"final readonly class","lines":48,"band":"26–50","usedBy":1,"summary":"wp/v2 taxonomies: the registry, whole or per type, in view or edit context.","path":"/api/rest/taxonomiescontroller/"},{"name":"TemplateObject","namespace":"Minn\\Rest","kind":"final readonly class","lines":100,"band":"51–100","usedBy":2,"summary":"The wp/v2/templates and wp/v2/template-parts resource.","path":"/api/rest/templateobject/"},{"name":"TemplatesController","namespace":"Minn\\Rest","kind":"final readonly class","lines":275,"band":"201–400","usedBy":1,"summary":"wp/v2/templates and wp/v2/template-parts: the block theme's templates as one list, whether they come from the theme's files, from a row the site saved over one, or from a plugin.","path":"/api/rest/templatescontroller/"},{"name":"TermCollectionParams","namespace":"Minn\\Rest","kind":"final class","lines":13,"band":"1–25","usedBy":2,"summary":"A taxonomy's term list parameters as the reference declares them (probe rest-term-lists): the context and Args::TERMS, a hierarchical taxonomy's with a parent and no offset, a flat one's with an offset and no parent.","path":"/api/rest/termcollectionparams/"},{"name":"TermFilters","namespace":"Minn\\Rest","kind":"final class","lines":25,"band":"1–25","usedBy":1,"summary":"A term a REST read answers with, as plugin code filters it on the reference (probe rest-term-filters): through get_term and get_{taxonomy}.","path":"/api/rest/termfilters/"},{"name":"TermListArgs","namespace":"Minn\\Rest","kind":"final class","lines":28,"band":"26–50","usedBy":1,"summary":"The get_terms arguments a term list request makes, as the reference makes them before rest_{taxonomy}_query (probe rest-term-lists): the taxonomy, each declared parameter the request carries under its query name (include_slugs ordering as slug__in), the offset (the page's unless the list takes one and it is given), the parent a hierarchical list takes, and ids alone for a HEAD request.","path":"/api/rest/termlistargs/"},{"name":"TermObject","namespace":"Minn\\Rest","kind":"final readonly class","lines":107,"band":"101–200","usedBy":5,"summary":"The wp/v2 category and tag objects.","path":"/api/rest/termobject/"},{"name":"TermsController","namespace":"Minn\\Rest","kind":"final readonly class","lines":168,"band":"101–200","usedBy":3,"summary":"wp/v2 categories, tags, and pattern categories: list, single, and the create/update/delete the taxonomy admin drives.","path":"/api/rest/termscontroller/"},{"name":"Types","namespace":"Minn\\Rest","kind":"final class","lines":179,"band":"101–200","usedBy":13,"summary":"The engine's registry of built-in post types, seeded from the observed contract (src/data/types.json) with _links attached at runtime.","path":"/api/rest/types/"},{"name":"TypesController","namespace":"Minn\\Rest","kind":"final readonly class","lines":70,"band":"51–100","usedBy":1,"summary":"wp/v2 types.","path":"/api/rest/typescontroller/"},{"name":"UserCollectionParams","namespace":"Minn\\Rest","kind":"final class","lines":11,"band":"1–25","usedBy":1,"summary":"The users list's parameters as the reference declares them (probe rest-user-lists): the context, Args::USERS, and has_published_posts taking the REST post types by name.","path":"/api/rest/usercollectionparams/"},{"name":"UserListArgs","namespace":"Minn\\Rest","kind":"final class","lines":47,"band":"26–50","usedBy":1,"summary":"The WP_User_Query arguments a user list request makes, as the reference makes them before rest_user_query (probe rest-user-lists): each declared parameter the request carries under its query name (a search wrapped in wildcards), the offset (the page's when none is given), the orderby name mapped to the query's, the published authors (every REST post type, for a reader who may not list users), the authors shorthand, the search columns (a reader who may not list users searches names and logins only), and ids alone for a HEAD request.","path":"/api/rest/userlistargs/"},{"name":"UserObject","namespace":"Minn\\Rest","kind":"final readonly class","lines":103,"band":"101–200","usedBy":5,"summary":"The wp/v2 user objects: the public view shape and the edit-context shape.","path":"/api/rest/userobject/"},{"name":"UsersController","namespace":"Minn\\Rest","kind":"final readonly class","lines":342,"band":"201–400","usedBy":1,"summary":"wp/v2 users: me, list, single, and the create/update/delete-with-reassign the Users view drives.","path":"/api/rest/userscontroller/"},{"name":"WidgetObject","namespace":"Minn\\Rest","kind":"final readonly class","lines":55,"band":"51–100","usedBy":2,"summary":"A widget as wp/v2/widgets shows it (probe rest-widgets): its id and base, its sidebar, its markup as that sidebar wraps it (nothing among the inactive widgets) and, in the edit context, its settings form and its settings: serialized and base64 encoded, signed with wp_hash, and raw when the widget shows its instance in REST.","path":"/api/rest/widgetobject/"},{"name":"WidgetsController","namespace":"Minn\\Rest","kind":"final readonly class","lines":169,"band":"101–200","usedBy":1,"summary":"wp/v2/widgets as the reference answers it (probe rest-widgets), for anyone who can edit theme options: the registered widgets of every sidebar (or one), a widget created under the next free number for its type, its settings saved through the widget's own update (raw when the widget shows its instance in REST, encoded with a matching hash, or from its form's fields) and registered at once, a widget moved between sidebars, and a widget deleted, or without force sent to the inactive widgets.","path":"/api/rest/widgetscontroller/"},{"name":"Abilities","namespace":"Minn\\Runtime","kind":"final class","lines":217,"band":"201–400","usedBy":0,"summary":"The abilities registry behind WP_Abilities_Registry, WP_Ability_Categories_Registry and the wp_*_ability facade, as the reference keeps it (probes abilities-registry, abilities-classes).","path":"/api/runtime/abilities/"},{"name":"AbilityRun","namespace":"Minn\\Runtime","kind":"final class","lines":28,"band":"26–50","usedBy":0,"summary":"The checks of an ability's run, as the reference makes them (probes abilities-registry, abilities-classes); WP_Ability::execute strings them: input left out takes the input schema's default, input given to an ability without an input schema is refused, input that its schema refuses is ability_invalid_input; a permission callback that does not answer true is ability_invalid_permissions (an error it returns is reported as a notice); then wp_before_execute_ability, the callback (an error it returns is the answer), the output checked against the output schema (ability_invalid_output), and wp_after_execute_ability.","path":"/api/runtime/abilityrun/"},{"name":"AccountFlows","namespace":"Minn\\Runtime","kind":"final class","lines":140,"band":"101–200","usedBy":0,"summary":"The account functions a sign-in page and plugins call, with the reference's checks, words, hooks and mail (probe account-flows): asking for a password reset (retrieve_password), resetting one (reset_password), registering (register_new_user), and telling the site and the new user about a registration (wp_new_user_notification).","path":"/api/runtime/accountflows/"},{"name":"AjaxController","namespace":"Minn\\Runtime","kind":"final readonly class","lines":80,"band":"51–100","usedBy":2,"summary":"admin-ajax.php, the endpoint plugins post their front-end work to: a form submitted without a reload, a spam check, a background job.","path":"/api/runtime/ajaxcontroller/"},{"name":"AllowedOptions","namespace":"Minn\\Runtime","kind":"final class","lines":26,"band":"26–50","usedBy":0,"summary":"The settings-page allowlist plugins extend: option group => the option names a settings form in that group may save.","path":"/api/runtime/allowedoptions/"},{"name":"ApplicationPasswordEvents","namespace":"Minn\\Runtime","kind":"final class","lines":46,"band":"26–50","usedBy":1,"summary":"Application password changes made over REST, as the reference makes them (probe rest-application-password-hooks): the prepared item (the name, and an app id a new one is given) through rest_pre_insert_application_password, then WP_Application_Passwords (which tells plugins through wp_create_, wp_update_ and wp_delete_application_password), then rest_after_insert_application_password.","path":"/api/runtime/applicationpasswordevents/"},{"name":"ApplicationPasswordSignIn","namespace":"Minn\\Runtime","kind":"final class","lines":85,"band":"51–100","usedBy":0,"summary":"wp_authenticate_application_password as the reference answers it (probe application-passwords-api): a user found already stands; outside an API request (application_password_is_api_request) nothing is tried; then the user by login or email, the feature's availability (for the site, for the user), and each of the user's passwords, a match passing through wp_authenticate_application_password_errors, recorded, and announced (application_password_did_authenticate); every refusal announced through application_password_failed_authentication.","path":"/api/runtime/applicationpasswordsignin/"},{"name":"ArchiveLinks","namespace":"Minn\\Runtime","kind":"final class","lines":41,"band":"26–50","usedBy":0,"summary":"A post type's archive address and its feed, as the reference gives them (probe archive-links).","path":"/api/runtime/archivelinks/"},{"name":"AssetEdits","namespace":"Minn\\Runtime","kind":"final class","lines":33,"band":"26–50","usedBy":0,"summary":"What a plugin did to $wp_scripts->registered or $wp_styles->registered directly, as wp_default_scripts callbacks do (a dependency dropped, a source swapped, an entry unset or added), handed to the registry: each handle as the view showed it last against the view as the plugin left it.","path":"/api/runtime/assetedits/"},{"name":"Assets","namespace":"Minn\\Runtime","kind":"final class","lines":431,"band":"401+","usedBy":2,"summary":"The registry behind wp_register_/wp_enqueue_ for scripts and styles: handles, sources, dependencies, versions, inline additions, localized data, and the head/footer split.","path":"/api/runtime/assets/"},{"name":"Avatar","namespace":"Minn\\Runtime","kind":"final class","lines":62,"band":"51–100","usedBy":1,"summary":"Avatars the way get_avatar_data and get_avatar decide them: the argument defaults, the email an id, user, post, or comment names, the Gravatar URL, and the <img> attributes.","path":"/api/runtime/avatar/"},{"name":"BlockFilters","namespace":"Minn\\Runtime","kind":"final class","lines":127,"band":"101–200","usedBy":1,"summary":"The block-level filters plugin code hooks (pre_render_block, render_block_data, render_block, render_block_{name}), applied around the engine's own renderer so a plugin sees every block the page renders, not only the ones it registered.","path":"/api/runtime/blockfilters/"},{"name":"BlockHooks","namespace":"Minn\\Runtime","kind":"final class","lines":69,"band":"51–100","usedBy":1,"summary":"The Block Hooks API on the engine's own front end: a plugin asks for its block to be inserted next to an anchor block in a template part or a pattern (WooCommerce puts the mini-cart after the navigation in a header), and the markup the renderer reads carries those insertions.","path":"/api/runtime/blockhooks/"},{"name":"BlockMetadata","namespace":"Minn\\Runtime","kind":"final class","lines":95,"band":"51–100","usedBy":0,"summary":"block.json to the settings a block type registers with: the property renames, the script and style handles (registered through the closures, one per entry), the view script modules, the block hooks positions, and the render template as a callback.","path":"/api/runtime/blockmetadata/"},{"name":"BlockTemplates","namespace":"Minn\\Runtime","kind":"final class","lines":67,"band":"51–100","usedBy":3,"summary":"Block templates plugins register at runtime, by their namespaced name (\"plugin//slug\").","path":"/api/runtime/blocktemplates/"},{"name":"BlockWidget","namespace":"Minn\\Runtime","kind":"final class","lines":30,"band":"26–50","usedBy":0,"summary":"A block widget's legacy class name.","path":"/api/runtime/blockwidget/"},{"name":"CommentCloser","namespace":"Minn\\Runtime","kind":"final readonly class","lines":30,"band":"26–50","usedBy":0,"summary":"The Discussion setting that closes comments on old posts.","path":"/api/runtime/commentcloser/"},{"name":"CommentEvents","namespace":"Minn\\Runtime","kind":"final readonly class","lines":254,"band":"201–400","usedBy":1,"summary":"What the reference's REST comments controller tells plugins, for the engine's own: with plugins loaded every change goes through the runtime's comment functions (wp_insert_comment, wp_update_comment, wp_set_comment_status, wp_trash_comment, wp_delete_comment), which fire the reference's actions in its order, and the REST actions follow.","path":"/api/runtime/commentevents/"},{"name":"CommentFeedQuery","namespace":"Minn\\Runtime","kind":"final class","lines":50,"band":"26–50","usedBy":1,"summary":"The comments a comments feed's main query carries, as the reference finds them (probe comment-feed-query).","path":"/api/runtime/commentfeedquery/"},{"name":"CommentForm","namespace":"Minn\\Runtime","kind":"final class","lines":107,"band":"101–200","usedBy":0,"summary":"The comment form's submission with plugins loaded (wp_handle_comment_submission), in the order the reference runs it (contracts/runtime.md \"The comment form\"): a reply to a comment still held is refused; the post is looked at, each refusal with its action (comment_id_not_found, comment_closed, comment_on_trash, comment_on_draft, comment_on_password_protected) and pre_comment_on_post when it takes comments; the signed-in user's own name and addresses replace the form's, or a site that requires sign-in refuses; the required fields, an empty comment (allow_empty_comment) and the column lengths are checked; then wp_new_comment stores it, where preprocess_comment, the duplicate and flood checks and pre_comment_approved have their say.","path":"/api/runtime/commentform/"},{"name":"CommentPages","namespace":"Minn\\Runtime","kind":"final class","lines":110,"band":"101–200","usedBy":0,"summary":"Which page of a post's comments a comment falls on, and the link that opens it there, as the reference works them out (probe comment-pages): the page size from the arguments, the comments_per_page query variable or the option (no pages at all when comments are not paged); a reply takes its top-level comment's page while comments are threaded; a page is the count of older top-level comments over the page size.","path":"/api/runtime/commentpages/"},{"name":"CommentQuery","namespace":"Minn\\Runtime","kind":"final readonly class","lines":28,"band":"26–50","usedBy":0,"summary":"The approval breakdown wp_count_comments reports (comment lists run through WP_Comment_Query and Minn\\Runtime\\CommentQueryRunner).","path":"/api/runtime/commentquery/"},{"name":"CommentQueryRunner","namespace":"Minn\\Runtime","kind":"final class","lines":123,"band":"101–200","usedBy":1,"summary":"WP_Comment_Query as the reference runs it (probe wp-comment-query-sql): the variables filled and handed to pre_get_comments, the meta query's SQL, comments_pre_query (which may answer), the clauses (the date query among them) handed to comments_clauses, the request, found_comments_query when a limited query counts what it found, then the ids, the count, or the comments through the_comments, threaded or flattened when asked.","path":"/api/runtime/commentqueryrunner/"},{"name":"CommentQueryWhere","namespace":"Minn\\Runtime","kind":"final class","lines":196,"band":"101–200","usedBy":1,"summary":"WP_Comment_Query's WHERE pieces and the posts join, in the reference's order (probe wp-comment-query-sql): the approval statuses (with the readers whose held comments show), the post, the id lists, the author's email and url, karma, the types (notes left out unless asked for), the parent (0 for a threaded or flat query that names none), the user, the search, the post's own fields, the author lists, then the meta and date queries.","path":"/api/runtime/commentquerywhere/"},{"name":"CommentThreads","namespace":"Minn\\Runtime","kind":"final class","lines":68,"band":"51–100","usedBy":1,"summary":"A threaded or flat comment query's descendants as the reference fills them (probe wp-comment-query-sql): one more comment query a level, with the query's own variables but the level's parents, no parent, no limit and no count; a threaded query hangs each reply under its parent, marks every comment's children as known and keeps the top level by id, a flat one lists the top level and then each level in its query's order.","path":"/api/runtime/commentthreads/"},{"name":"Connectors","namespace":"Minn\\Runtime","kind":"final class","lines":212,"band":"201–400","usedBy":0,"summary":"The connectors registry: the external services a site talks to (AI providers, spam filters, cloud services) and how each authenticates.","path":"/api/runtime/connectors/"},{"name":"Constants","namespace":"Minn\\Runtime","kind":"final class","lines":83,"band":"51–100","usedBy":1,"summary":"The constants plugin code expects: the fixed set from data/constants.json (captured from the reference) and the per-site ones computed here.","path":"/api/runtime/constants/"},{"name":"CronTable","namespace":"Minn\\Runtime","kind":"final class","lines":131,"band":"101–200","usedBy":2,"summary":"The cron option's shape, operated on as data: timestamp => hook => key => entry, kept in natural timestamp order.","path":"/api/runtime/crontable/"},{"name":"CurrentUser","namespace":"Minn\\Runtime","kind":"final class","lines":13,"band":"1–25","usedBy":1,"summary":"Who the request is, as the reference settles it before init: the user determine_current_user names (the engine's own session, through wp_validate_auth_cookie, when no plugin hooks it), which the request's reader then follows.","path":"/api/runtime/currentuser/"},{"name":"DbDelta","namespace":"Minn\\Runtime","kind":"final readonly class","lines":125,"band":"101–200","usedBy":0,"summary":"dbDelta as the reference does it: a CREATE TABLE statement creates the table when it is missing, otherwise the columns and keys the statement has and the table lacks are added.","path":"/api/runtime/dbdelta/"},{"name":"Deferrals","namespace":"Minn\\Runtime","kind":"final class","lines":66,"band":"51–100","usedBy":0,"summary":"The switches an importer flips for the length of a request (probe plugin-helpers): term and comment counts deferred until the switch goes off again, when what was put off is counted at once, and cache additions suspended so a bulk read does not fill the cache.","path":"/api/runtime/deferrals/"},{"name":"EarlyFilters","namespace":"Minn\\Runtime","kind":"final class","lines":20,"band":"1–25","usedBy":1,"summary":"Filters that run before the runtime exists, over the hooks added that early: WP-CLI's add_wp_hook writes them into $wp_filter as plain arrays (tag => priority => id => function and accepted_args).","path":"/api/runtime/earlyfilters/"},{"name":"FileTypeCheck","namespace":"Minn\\Runtime","kind":"final class","lines":78,"band":"51–100","usedBy":0,"summary":"A file's type from its content as much as its name, as the reference's wp_check_filetype_and_ext decides it (probe upload-filters): an image the server can measure is what its bytes say, and a name with the wrong image extension is corrected (a.png holding a JPEG becomes a.jpg); anything claiming to be such an image and not being one has no type; any other type must match what the content is, plain text standing for a few text types and an office or archive container for the document types; and the type must be one the site allows.","path":"/api/runtime/filetypecheck/"},{"name":"FileUpload","namespace":"Minn\\Runtime","kind":"final class","lines":105,"band":"101–200","usedBy":0,"summary":"A file a plugin hands to wp_handle_upload or wp_handle_sideload, taken in the reference's order (probe upload-filters, contracts/runtime.md \"Uploads\"): the action's prefilter, where a plugin sanitizes the file or refuses it with an error; its overrides; the upload's own errors, an empty file and, for a form upload, the form and the upload itself; the type, from the file's content as much as its name (wp_check_filetype_and_ext), refused unless the site allows it or the user may upload anything; the uploads folder; a unique, clean name (wp_unique_filename); pre_move_uploaded_file, where a plugin may move it itself; the move; and wp_handle_upload over the result.","path":"/api/runtime/fileupload/"},{"name":"Heartbeat","namespace":"Minn\\Runtime","kind":"final class","lines":30,"band":"26–50","usedBy":0,"summary":"The heartbeat a signed-in page beats through admin-ajax.php, answered as the reference answers it (suite ajax): the heartbeat nonce checked, and when it is stale or wrong, wp_refresh_nonces asked for fresh ones (a wrong one ends the beat there, marked expired); otherwise what the page sent goes through heartbeat_received, the answer through heartbeat_send, and heartbeat_tick hears it before the server's time is added.","path":"/api/runtime/heartbeat/"},{"name":"Hooks","namespace":"Minn\\Runtime","kind":"final class","lines":354,"band":"201–400","usedBy":2,"summary":"The hook registry plugin code registers into and the engine fires.","path":"/api/runtime/hooks/"},{"name":"Interactivity","namespace":"Minn\\Runtime","kind":"final class","lines":509,"band":"401+","usedBy":1,"summary":"Server-side directive processing for the Interactivity API: the state and config stores, and the pass that resolves data-wp-bind, data-wp-class, data-wp-style, data-wp-text, and data-wp-each against state and context before the markup leaves the server.","path":"/api/runtime/interactivity/"},{"name":"MenuEvents","namespace":"Minn\\Runtime","kind":"final readonly class","lines":220,"band":"201–400","usedBy":0,"summary":"Menus and their items saved as the reference saves them, telling plugins what it tells them (probe rest-menu-save).","path":"/api/runtime/menuevents/"},{"name":"MenuItemMarks","namespace":"Minn\\Runtime","kind":"final class","lines":203,"band":"201–400","usedBy":1,"summary":"The classes and current flags the reference gives a menu's items for the page in view (_wp_menu_item_classes_by_context, probe plugin-queue4), in two passes over the items.","path":"/api/runtime/menuitemmarks/"},{"name":"Meta","namespace":"Minn\\Runtime","kind":"final readonly class","lines":230,"band":"201–400","usedBy":0,"summary":"The four meta tables behind get_metadata and friends: reads by object, and the row-level writes the update and delete rules need.","path":"/api/runtime/meta/"},{"name":"MetaKeys","namespace":"Minn\\Runtime","kind":"final class","lines":184,"band":"101–200","usedBy":1,"summary":"The meta keys code registers, kept where the reference keeps them ($wp_meta_keys: object type => subtype => key => arguments), with what a registration wires up (probe meta-api).","path":"/api/runtime/metakeys/"},{"name":"MetaTypes","namespace":"Minn\\Runtime","kind":"final class","lines":21,"band":"1–25","usedBy":1,"summary":"Meta types a plugin brought, by the table it named on $wpdb as \"{$type}meta\" (WooCommerce's order items keep theirs in woocommerce_order_itemmeta).","path":"/api/runtime/metatypes/"},{"name":"NavMenu","namespace":"Minn\\Runtime","kind":"final class","lines":88,"band":"51–100","usedBy":0,"summary":"wp_nav_menu()'s menu: the one the arguments name, its items marked for the page in view (MenuItemMarks), walked, wrapped in the container.","path":"/api/runtime/navmenu/"},{"name":"NavMenuItems","namespace":"Minn\\Runtime","kind":"final class","lines":154,"band":"101–200","usedBy":0,"summary":"Classic menu items as the reference serves them to walkers and plugins (probe nav-menu-items). wp_setup_nav_menu_item dresses a nav_menu_item post with the fields walkers read: its _menu_item_* meta (ids as strings), kept when already set; then by its kind the label, address and title of what it points at (a post's title through the_title, every time, the item's own title winning when it has one; a post or term gone, or a post trashed, marks it _invalid; a post not published is labelled by its status); its title attribute and description through their filters.","path":"/api/runtime/navmenuitems/"},{"name":"OEmbed","namespace":"Minn\\Runtime","kind":"final class","lines":114,"band":"101–200","usedBy":0,"summary":"oEmbed as data: provider matching against the wildcard table, response parsing, and the markup an oEmbed payload becomes.","path":"/api/runtime/oembed/"},{"name":"ObjectCache","namespace":"Minn\\Runtime","kind":"final class","lines":63,"band":"51–100","usedBy":1,"summary":"The per-request object cache behind wp_cache_*: groups of keys, nothing persistent.","path":"/api/runtime/objectcache/"},{"name":"ObjectTerms","namespace":"Minn\\Runtime","kind":"final class","lines":30,"band":"26–50","usedBy":0,"summary":"wp_get_object_terms's handling of taxonomies registered with their own query arguments, as the reference handles them: among several, each such taxonomy is asked on its own with its arguments over the caller's; alone, its arguments join the caller's.","path":"/api/runtime/objectterms/"},{"name":"OptionSanitizer","namespace":"Minn\\Runtime","kind":"final class","lines":114,"band":"101–200","usedBy":0,"summary":"A core option's value cleaned as the reference's sanitize_option cleans it (probe sanitize-option), before sanitize_option_{$option}: counts as whole numbers, the site's name and tagline escaped, formats and mail settings stripped of markup, addresses checked and kept as they were (with a settings error) when they are not addresses, word lists split and trimmed, the timezone and language checked against what exists.","path":"/api/runtime/optionsanitizer/"},{"name":"Options","namespace":"Minn\\Runtime","kind":"final class","lines":266,"band":"201–400","usedBy":4,"summary":"Options as plugin code sees them: PHP values, decoded from the stored blob by the engine's own reader, cached for the request so a value written and read again in one request keeps its PHP type (an int stays an int, false stays false) exactly as the reference shows.","path":"/api/runtime/options/"},{"name":"Pages","namespace":"Minn\\Runtime","kind":"final class","lines":129,"band":"101–200","usedBy":1,"summary":"get_pages() as the reference shapes it: its arguments as a post query (WP_Query, so its filters shape it), the tree order of the result, then the get_pages filter. wp_list_pages, wp_dropdown_pages and the navigation's page list take their pages from here.","path":"/api/runtime/pages/"},{"name":"Patterns","namespace":"Minn\\Runtime","kind":"final class","lines":161,"band":"101–200","usedBy":0,"summary":"The block pattern, pattern category, and block style registries as data.","path":"/api/runtime/patterns/"},{"name":"PlaceholderTrace","namespace":"Minn\\Runtime","kind":"final class","lines":27,"band":"26–50","usedBy":0,"summary":"Records every call into a generated placeholder while a site opts in by having wp-content/minn-placeholder-trace.log on disk: one line per call with the symbol, the plugin file that called it, and the request.","path":"/api/runtime/placeholdertrace/"},{"name":"Placeholders","namespace":"Minn\\Runtime","kind":"final class","lines":71,"band":"51–100","usedBy":0,"summary":"The printf placeholders plugin code hands wpdb::prepare, filled the way the reference fills them: a bare %s is escaped and quoted; a numbered (%1$s), padded (%5s) or precise (%.2f) one is formatted and escaped but never quoted, so a plugin can name a table with it; %d and %f cast; %i backticks an identifier; %% is a literal.","path":"/api/runtime/placeholders/"},{"name":"PluginActivation","namespace":"Minn\\Runtime","kind":"final class","lines":64,"band":"51–100","usedBy":1,"summary":"Switching a plugin on and off the way the reference's activate_plugin and deactivate_plugins do (probe plugin-activation), for the facade and for the engine's own REST routes and WP-CLI verbs alike.","path":"/api/runtime/pluginactivation/"},{"name":"PluginRemoval","namespace":"Minn\\Runtime","kind":"final class","lines":124,"band":"101–200","usedBy":0,"summary":"Deleting plugins as the reference's delete_plugins does it: each in turn is uninstalled first when it can be (its uninstall.php, or the callback it registered), then delete_plugin, its folder (or file) removed, deleted_plugin, and its installed translations removed with it; the updates offered for the deleted ones are forgotten.","path":"/api/runtime/pluginremoval/"},{"name":"PluginRequirements","namespace":"Minn\\Runtime","kind":"final class","lines":66,"band":"51–100","usedBy":1,"summary":"Whether a plugin can be switched on here, as the reference's validate_plugin_requirements answers (probe plugin-activation): the plugin header's \"Requires at least\" against the WordPress version the site speaks, its \"Requires PHP\" against the running PHP, and every slug in its \"Requires Plugins\" installed and active (a readme.txt is not read).","path":"/api/runtime/pluginrequirements/"},{"name":"PluginUpdates","namespace":"Minn\\Runtime","kind":"final class","lines":65,"band":"51–100","usedBy":1,"summary":"The update offers the site's own plugins publish.","path":"/api/runtime/pluginupdates/"},{"name":"Plugins","namespace":"Minn\\Runtime","kind":"final class","lines":264,"band":"201–400","usedBy":5,"summary":"Loads the site's plugins into the runtime the way the reference does: mu-plugins first, then active_plugins in stored order, each file included once.","path":"/api/runtime/plugins/"},{"name":"PostData","namespace":"Minn\\Runtime","kind":"final class","lines":68,"band":"51–100","usedBy":0,"summary":"The loop's view of a post, as the reference's generate_postdata and get_the_content give it (probes the-content, excerpt): the content split into pages at <!--nextpage--> (the line breaks beside the marker go with it) and handed to content_pagination, the page the query asks for, and \"more\" when the main query shows a single post, a page or a feed; then the content of that page, cut at the more tag with a more link (or run on past it when \"more\" is set), the teaser dropped when asked or marked <!--noteaser-->.","path":"/api/runtime/postdata/"},{"name":"PostEvents","namespace":"Minn\\Runtime","kind":"final readonly class","lines":181,"band":"101–200","usedBy":3,"summary":"What the reference's REST controllers tell plugins about a post they write, for the engine's own controllers: the same actions in the same order with the same arguments, fired through the facade's lifecycle functions so the facade's own writes say the same (contracts/runtime.md \"Writes tell plugins\").","path":"/api/runtime/postevents/"},{"name":"PostInsert","namespace":"Minn\\Runtime","kind":"final readonly class","lines":168,"band":"101–200","usedBy":0,"summary":"The decisions behind wp_insert_post: which columns a postarr fills, when the post counts as empty, the status a publish request lands in, the dates and the slug, the categories a new post gets.","path":"/api/runtime/postinsert/"},{"name":"PostLinks","namespace":"Minn\\Runtime","kind":"final class","lines":151,"band":"101–200","usedBy":0,"summary":"Post addresses as the reference's link functions build them (probe permalinks): a post through pre_post_link (the structure) and post_link; a page from get_page_uri through _get_page_link and page_link; an attachment under its parent's address, or its own; a plugin's type by its address pattern (the permastruct its rewrite registered) through post_type_link, by its query var without one.","path":"/api/runtime/postlinks/"},{"name":"PostLookup","namespace":"Minn\\Runtime","kind":"final readonly class","lines":134,"band":"101–200","usedBy":0,"summary":"The post reads plugin code asks for by shape: a page by title, revisions, counts.","path":"/api/runtime/postlookup/"},{"name":"PostQuery","namespace":"Minn\\Runtime","kind":"final class","lines":388,"band":"201–400","usedBy":1,"summary":"WP_Query::get_posts as the reference runs it (probe wp-query-sql): the variables parsed and handed to pre_get_posts, the clauses written piece by piece, every filter a plugin may change them through in the reference's order (suppress_filters keeps the ones it keeps), the request split into an id query when that is cheaper, the count, a single post's status check and preview, sticky posts on the home listing, and the results filters.","path":"/api/runtime/postquery/"},{"name":"PostQueryParts","namespace":"Minn\\Runtime","kind":"final class","lines":56,"band":"51–100","usedBy":5,"summary":"The pieces of one WP_Query run as the reference builds them and hands them to filters.","path":"/api/runtime/postqueryparts/"},{"name":"PostQueryResults","namespace":"Minn\\Runtime","kind":"final class","lines":111,"band":"101–200","usedBy":1,"summary":"What WP_Query does with its posts once it has them, as the reference does it (probe wp-query-sql): a single post whose status is not public is dropped unless the reader may see it (a draft its editor may preview, with the_preview); sticky posts move to the front of the home listing's first page, the ones it did not find fetched by a nested query; the_posts; and the post objects, count and current post set.","path":"/api/runtime/postqueryresults/"},{"name":"PostQueryStatus","namespace":"Minn\\Runtime","kind":"final class","lines":165,"band":"101–200","usedBy":1,"summary":"WP_Query's post type and status clause as the reference writes it (probe wp-query-sql).","path":"/api/runtime/postquerystatus/"},{"name":"PostQueryTax","namespace":"Minn\\Runtime","kind":"final class","lines":193,"band":"101–200","usedBy":1,"summary":"The taxonomy side of WP_Query as the reference runs it (probe wp-query-sql): the clauses its variables make (tax_query, taxonomy and term, each taxonomy's query var, cat and the category__ lists, tag and the tag__ lists), settled back into the variables; the post types a taxonomy archive with no type searches; and the cat, category_name, tag_id, taxonomy and term variables set from the terms queried.","path":"/api/runtime/postquerytax/"},{"name":"PostQueryWhere","namespace":"Minn\\Runtime","kind":"final class","lines":263,"band":"201–400","usedBy":1,"summary":"The WHERE fragments WP_Query writes from its variables, in the reference's order and spacing (probe wp-query-sql): menu order, the legacy m date and the date variables, a slug or a page path, ids, parents, a page id (which replaces everything before it), authors, comment counts, mime types, passwords, and comment and ping status.","path":"/api/runtime/postquerywhere/"},{"name":"PostRevisions","namespace":"Minn\\Runtime","kind":"final class","lines":67,"band":"51–100","usedBy":0,"summary":"A post's revisions as the reference's wp_save_post_revision keeps them (probe revisions): only for a type that supports revisions and while wp_revisions_to_keep allows any; compared with the latest revision (wp_save_post_revision_check_for_changes, the revision fields with their whitespace evened out, wp_save_post_revision_post_has_changed, whose default also compares the revisioned meta); saved through wp_insert_post and _wp_put_post_revision (whose default copies the revisioned meta); then the oldest dropped past the limit, after wp_save_post_revision_revisions_before_deletion.","path":"/api/runtime/postrevisions/"},{"name":"PostSave","namespace":"Minn\\Runtime","kind":"final class","lines":210,"band":"201–400","usedBy":1,"summary":"A REST save's columns through the filters the reference's save runs before it writes, in its order (probe post-insert-filters, contracts/runtime.md \"Saves plugins can change\"): rest_pre_insert_{type} over the prepared post; every column through its db context (pre_post_* and *_save_pre, where kses and the custom-CSS strip sit) on slashed text; wp_insert_post_empty_content, which refuses a post with no content, title or excerpt; wp_insert_post_parent; for a post that is live, the slug, made again from the filtered title when the request gave none, through pre_wp_unique_post_slug, the bad-slug check and wp_unique_post_slug; and wp_insert_post_data over the row.","path":"/api/runtime/postsave/"},{"name":"QueriedObject","namespace":"Minn\\Runtime","kind":"final readonly class","lines":70,"band":"51–100","usedBy":0,"summary":"Which object a query is \"about\", read from its flags and variables: a term (by id or slug), a post type, the posts page, the current post, or an author.","path":"/api/runtime/queriedobject/"},{"name":"QueryFlags","namespace":"Minn\\Runtime","kind":"final readonly class","lines":188,"band":"101–200","usedBy":1,"summary":"The conditional flags a set of query variables implies (is_single, is_archive, is_home, ...), derived the way the reference's parse step derives them, plus the variables after the integer casts that step applies.","path":"/api/runtime/queryflags/"},{"name":"Recovery","namespace":"Minn\\Runtime","kind":"final readonly class","lines":214,"band":"201–400","usedBy":3,"summary":"Recovery from a fatal in someone else's code.","path":"/api/runtime/recovery/"},{"name":"Refusal","namespace":"Minn\\Runtime","kind":"final readonly class","lines":6,"band":"1–25","usedBy":17,"summary":"A refused operation, the way plugin code expects to read it: a code, a message, optional data.","path":"/api/runtime/refusal/"},{"name":"RegisteredSettings","namespace":"Minn\\Runtime","kind":"final class","lines":102,"band":"101–200","usedBy":0,"summary":"Settings as register_setting keeps them (probe rest-settings): the arguments a plugin passes, filtered through register_setting_args and laid over the defaults (a string, in its group, unlabelled, undescribed, unsanitized, not shown in REST); the sanitize callback put on sanitize_option_{$name} with the value alone; a registered default answering get_option through filter_default_option; register_setting fired once kept. unregister_setting takes all of it back.","path":"/api/runtime/registeredsettings/"},{"name":"Registry","namespace":"Minn\\Runtime","kind":"final class","lines":448,"band":"401+","usedBy":5,"summary":"Post types, taxonomies, and statuses as plugin code registers and reads them.","path":"/api/runtime/registry/"},{"name":"RewriteRules","namespace":"Minn\\Runtime","kind":"final class","lines":334,"band":"201–400","usedBy":0,"summary":"The rewrite rules WordPress makes from its structures, as the reference makes them (probes rewrite-generate, rewrite-rules), so plugins that read, filter or add to them see the same list.","path":"/api/runtime/rewriterules/"},{"name":"Runtime","namespace":"Minn\\Runtime","kind":"final class","lines":373,"band":"201–400","usedBy":139,"summary":"The WordPress runtime the engine offers plugin code: the procedural facade under minn/wp-api/ plus the services it delegates to.","path":"/api/runtime/runtime/"},{"name":"ScriptLoading","namespace":"Minn\\Runtime","kind":"final class","lines":82,"band":"51–100","usedBy":0,"summary":"How a script may load, as the reference decides it (probe dependencies-classes).","path":"/api/runtime/scriptloading/"},{"name":"ScriptModules","namespace":"Minn\\Runtime","kind":"final class","lines":302,"band":"201–400","usedBy":1,"summary":"The script modules registry: registrations with typed dependencies, the queue, and the four things a page prints from it (the import map, module preloads, the module tags split head/footer, and per-module JSON data).","path":"/api/runtime/scriptmodules/"},{"name":"ScriptPack","namespace":"Minn\\Runtime","kind":"final class","lines":146,"band":"101–200","usedBy":1,"summary":"The site-supplied script pack: the `wp-*` JavaScript packages the engine does not reimplement, which a few plugins' front ends need (WooCommerce's block cart and checkout are the reason it exists).","path":"/api/runtime/scriptpack/"},{"name":"Shortcodes","namespace":"Minn\\Runtime","kind":"final class","lines":274,"band":"201–400","usedBy":1,"summary":"The shortcode registry plugin code fills with add_shortcode, and the expansion do_shortcode performs: [tag attrs], [tag attrs/], [tag]…[/tag] (the first closing tag wins; content is not expanded again), [[tag]] as the literal, unregistered tags left as written.","path":"/api/runtime/shortcodes/"},{"name":"StoredObjects","namespace":"Minn\\Runtime","kind":"final class","lines":64,"band":"51–100","usedBy":1,"summary":"The classes a stored blob may name and come back as.","path":"/api/runtime/storedobjects/"},{"name":"SymbolGap","namespace":"Minn\\Runtime","kind":"final readonly class","lines":94,"band":"51–100","usedBy":1,"summary":"The part of the reference's interface the runtime does not answer: names in data/api-names.json that no facade file defines.","path":"/api/runtime/symbolgap/"},{"name":"SymbolTable","namespace":"Minn\\Runtime","kind":"final class","lines":69,"band":"51–100","usedBy":1,"summary":"What a folder's PHP names, collected while its tokens are read: the functions it calls, the classes it references, and what it declares or guards itself, so the gate can subtract those before judging it.","path":"/api/runtime/symboltable/"},{"name":"Symbols","namespace":"Minn\\Runtime","kind":"final class","lines":275,"band":"201–400","usedBy":1,"summary":"A static read of what a plugin's PHP calls: global functions and classes it uses but does not itself declare, minus the ones it guards with function_exists() or class_exists().","path":"/api/runtime/symbols/"},{"name":"TagEditor","namespace":"Minn\\Runtime","kind":"final class","lines":149,"band":"101–200","usedBy":1,"summary":"Edits one start tag's attributes in place the way the reference's tag processor does: a replaced value keeps its position, a new attribute goes right after the tag name (after any earlier insertion), and a removal takes only the attribute's own text.","path":"/api/runtime/tageditor/"},{"name":"TermEvents","namespace":"Minn\\Runtime","kind":"final readonly class","lines":114,"band":"101–200","usedBy":2,"summary":"What the reference's REST terms controller tells plugins, for the engine's own: with plugins loaded a term is saved as that controller saves one (rest_pre_insert_{taxonomy}, then the runtime's wp_insert_term or wp_update_term, and wp_delete_term), and the REST actions follow.","path":"/api/runtime/termevents/"},{"name":"TermFields","namespace":"Minn\\Runtime","kind":"final class","lines":65,"band":"51–100","usedBy":3,"summary":"A term's fields in a context, as the reference's sanitize_term_field treats them (probe term-sanitize): the numeric fields are whole numbers, never below zero, in every context, and raw stops there. edit runs edit_term_{field} and edit_{taxonomy}_{field}; db runs pre_term_{field} and pre_{taxonomy}_{field}, where the saving defaults live, and a slug also pre_category_nicename; rss runs term_{field}_rss and {taxonomy}_{field}_rss; any other context runs term_{field} and {taxonomy}_{field} with the context named.","path":"/api/runtime/termfields/"},{"name":"TermOrder","namespace":"Minn\\Runtime","kind":"final class","lines":61,"band":"51–100","usedBy":1,"summary":"A term query's ORDER BY as the reference writes it (probe wp-term-query-sql): term and taxonomy columns, the relationship's order, the order include or slug lists give, none, or the name; then get_terms_orderby, and after it a meta key or meta_value[_num] when the query has meta clauses.","path":"/api/runtime/termorder/"},{"name":"TermQuery","namespace":"Minn\\Runtime","kind":"final readonly class","lines":370,"band":"201–400","usedBy":1,"summary":"Term reads in the shapes plugin code asks for: get_terms() arguments to rows, the tree filters (child_of, exclude_tree), the fields shapes, and the single-term lookups.","path":"/api/runtime/termquery/"},{"name":"TermQueryRunner","namespace":"Minn\\Runtime","kind":"final class","lines":255,"band":"201–400","usedBy":0,"summary":"WP_Term_Query::get_terms as the reference runs it (probe wp-term-query-sql): the variables parsed and handed to pre_get_terms, get_terms_args, the WHERE pieces (taxonomies, inclusions, exclusions with excluded trees and childless terms through list_terms_exclusions, names, slugs, term taxonomy ids, likes, objects, parent, counts, search, meta), the order through get_terms_orderby, the fields through get_terms_fields, all of it through terms_clauses, terms_pre_query, and the results shaped by TermQueryTree (children, padded counts, the empty hidden, the page).","path":"/api/runtime/termqueryrunner/"},{"name":"TermQueryTree","namespace":"Minn\\Runtime","kind":"final class","lines":146,"band":"101–200","usedBy":1,"summary":"What a term query does with its rows, as the reference does it (probe wp-term-query-sql): each row a term through get_term (with the object id a relationship query carries); only child_of's descendants; counts padded with the children's posts; an empty term kept only while one of its children has posts (the rest dropped where they stood, keys and all); a tree's page cut once the tree is walked; then the shape the fields ask for.","path":"/api/runtime/termquerytree/"},{"name":"TermSave","namespace":"Minn\\Runtime","kind":"final class","lines":199,"band":"101–200","usedBy":0,"summary":"wp_insert_term and wp_update_term in the reference's order (probe term-insert-filters, contracts/runtime.md \"Terms plugins can change\").","path":"/api/runtime/termsave/"},{"name":"TermWriter","namespace":"Minn\\Runtime","kind":"final readonly class","lines":125,"band":"101–200","usedBy":0,"summary":"The decisions behind wp_delete_term and the object-term relationships: which relationships to add and remove (saves are Runtime\\TermSave).","path":"/api/runtime/termwriter/"},{"name":"ThemeSupports","namespace":"Minn\\Runtime","kind":"final class","lines":166,"band":"101–200","usedBy":1,"summary":"What a theme supports, as add_theme_support keeps it (probe rest-themes): a bare feature is true, anything else its arguments. html5 lists add up (repeats and all), post thumbnails stay on for every type once on, post formats keep only real formats, the custom logo fills in its defaults at once (flexible both ways when asked for bare), and the custom header and background get theirs as WordPress finishes loading, a header with no width or height made flexible that way. title-tag declared after loading is refused.","path":"/api/runtime/themesupports/"},{"name":"ThemeSwitch","namespace":"Minn\\Runtime","kind":"final class","lines":145,"band":"101–200","usedBy":1,"summary":"Switching the theme as the reference does it, in two halves.","path":"/api/runtime/themeswitch/"},{"name":"TreeWalk","namespace":"Minn\\Runtime","kind":"final class","lines":179,"band":"101–200","usedBy":0,"summary":"The Walker contract's traversal: elements keyed by the walker's db_fields parent/id pair, displayed depth-first through the walker's four element methods, whole or a page of top-level elements at a time (probe comment-walker).","path":"/api/runtime/treewalk/"},{"name":"UpdateCounts","namespace":"Minn\\Runtime","kind":"final class","lines":31,"band":"26–50","usedBy":0,"summary":"The updates waiting, as wp_get_update_data counts them for the user (probe admin-bar): plugins and themes from their update transients, WordPress itself unless it is current, translations; each only for a user who may update it.","path":"/api/runtime/updatecounts/"},{"name":"Upgrade","namespace":"Minn\\Runtime","kind":"final class","lines":347,"band":"201–400","usedBy":0,"summary":"What WP_Upgrader does with a package (probe upgrader), for the facade's upgraders and so for everything that installs or updates a plugin or a theme. run() is the whole pass: the options through upgrader_package_options, the package downloaded and unpacked into wp-content/upgrade/, put in place by install(), the result through upgrader_install_package_result and told to the skin, and, for a single item, upgrader_process_complete.","path":"/api/runtime/upgrade/"},{"name":"UserEvents","namespace":"Minn\\Runtime","kind":"final readonly class","lines":102,"band":"101–200","usedBy":1,"summary":"What the reference's REST users controller tells plugins, for the engine's own: with plugins loaded an account is written through the runtime's wp_insert_user, wp_update_user and wp_delete_user (wp_set_password, each profile meta, the role, clean_user_cache, user_register and the count, profile_update, delete_user and deleted_user), and the REST actions follow.","path":"/api/runtime/userevents/"},{"name":"UserInsert","namespace":"Minn\\Runtime","kind":"final readonly class","lines":115,"band":"101–200","usedBy":0,"summary":"The decisions behind wp_insert_user: what a new account needs, which email and login collide, the resolved profile fields, and which columns an update changes.","path":"/api/runtime/userinsert/"},{"name":"UserOrder","namespace":"Minn\\Runtime","kind":"final class","lines":43,"band":"26–50","usedBy":1,"summary":"A user query's ORDER BY keys as the reference writes them (probe wp-user-query-sql): the user columns by their short or full names, the display name, a post count (its subquery joined in), the id, the meta key or meta value, the order include or a name list gives, or a named meta clause; '' for a key it does not know.","path":"/api/runtime/userorder/"},{"name":"UserQueryRoles","namespace":"Minn\\Runtime","kind":"final class","lines":91,"band":"51–100","usedBy":1,"summary":"A user query's roles and capabilities as the meta clauses the reference writes for them (probe wp-user-query-sql): a capability matches its own name or any role granting it, capability__in and __not_in widen the role lists, and each role is a LIKE on the site's capabilities meta (NOT LIKE to leave it out).","path":"/api/runtime/userqueryroles/"},{"name":"UserQueryRunner","namespace":"Minn\\Runtime","kind":"final class","lines":218,"band":"201–400","usedBy":0,"summary":"WP_User_Query as the reference runs it (probe wp-user-query-sql): the variables filled and handed to pre_get_users; the fields (a column list, ids, the count), published authors, nicenames and logins, the meta query with the roles and capabilities joined in, the order (post counts joined in, include and list orders kept), the limit, a search over the columns its shape suggests (through user_search_columns), ids in or out, the date query, then pre_user_query; the query (users_pre_query may answer it), found_users_query, and the results shaped as the fields ask.","path":"/api/runtime/userqueryrunner/"},{"name":"UserSave","namespace":"Minn\\Runtime","kind":"final class","lines":70,"band":"51–100","usedBy":0,"summary":"An account's fields through the filters the reference's wp_insert_user runs, in its order (probe user-insert-filters, contracts/runtime.md \"Accounts plugins can change\"): the login (pre_user_login), refused when illegal_user_logins names it; the nicename, made from the login for a new account (pre_user_nicename); the email and the URL; the nickname (the login when none), first and last names; the display name, made as the reference makes it when none is given; the description.","path":"/api/runtime/usersave/"},{"name":"WidgetAreas","namespace":"Minn\\Runtime","kind":"final class","lines":113,"band":"101–200","usedBy":3,"summary":"The widgets helper functions as the reference answers them (probe widget-helpers): a widget id split into its base and number, a sidebar by id (the inactive widgets are a sidebar too, with a name and nothing else), finding and moving a widget between sidebars, one widget rendered in its sidebar as dynamic_sidebar renders each (an unregistered widget renders nothing), and the sidebars with every registered one present.","path":"/api/runtime/widgetareas/"},{"name":"Accents","namespace":"Minn\\Support","kind":"final class","lines":35,"band":"26–50","usedBy":1,"summary":"Accented and special characters to their plain spelling, from the reference's own table (data/accents.json, captured with tests/tools/accents-capture.php): text is put in composed form first, a locale with spellings of its own (German, Danish, Catalan, Serbian, Bosnian) has them, and a string that is not UTF-8 is read as Latin-1.","path":"/api/support/accents/"},{"name":"Backtrace","namespace":"Minn\\Support","kind":"final class","lines":32,"band":"26–50","usedBy":0,"summary":"A call stack named as wp_debug_backtrace_summary names it (probe placeholders-a): Class->method, Class::method and function names; a hook's function with the hook named; an included file by its path with the given prefixes taken off, in order.","path":"/api/support/backtrace/"},{"name":"DirectoryListing","namespace":"Minn\\Support","kind":"final class","lines":34,"band":"26–50","usedBy":0,"summary":"Walks a directory the way the filesystem API lists it: named entries, dot entries skipped, hidden ones optional, recursion optional.","path":"/api/support/directorylisting/"},{"name":"Email","namespace":"Minn\\Support","kind":"final class","lines":69,"band":"51–100","usedBy":1,"summary":"The address rules the reference applies: a local part from a fixed character class, a dotted domain of hyphen-trimmed labels.","path":"/api/support/email/"},{"name":"Entities","namespace":"Minn\\Support","kind":"final class","lines":77,"band":"51–100","usedBy":3,"summary":"HTML special-character encoding with the reference's quote styles and its \"do not double encode\" rule: an ampersand that already starts a known named or numeric entity stays as it is.","path":"/api/support/entities/"},{"name":"Escape","namespace":"Minn\\Support","kind":"final class","lines":25,"band":"1–25","usedBy":14,"summary":"Text made safe for HTML the way WordPress's escapers make it (esc_html, esc_attr): invalid UTF-8 emptied, entities already present normalised rather than encoded again, the specials and both quotes encoded, then the filter plugins hook (esc_html, attribute_escape) handed the result and the original.","path":"/api/support/escape/"},{"name":"FileHeaders","namespace":"Minn\\Support","kind":"final class","lines":27,"band":"26–50","usedBy":10,"summary":"Header values from a plugin or theme file.","path":"/api/support/fileheaders/"},{"name":"FileTree","namespace":"Minn\\Support","kind":"final class","lines":70,"band":"51–100","usedBy":0,"summary":"Whole-directory reads and copies.","path":"/api/support/filetree/"},{"name":"Files","namespace":"Minn\\Support","kind":"final class","lines":66,"band":"51–100","usedBy":7,"summary":"Recursive filesystem work behind WP_Filesystem_Direct: best-effort tree delete and chmod (suppressed errors, keep-going semantics, the AND of every step as the result), and the symbolic-to-octal permission string conversion.","path":"/api/support/files/"},{"name":"Flag","namespace":"Minn\\Support","kind":"final class","lines":11,"band":"1–25","usedBy":1,"summary":"A yes or no as WordPress reads one from loose input (wp_validate_boolean).","path":"/api/support/flag/"},{"name":"Hierarchy","namespace":"Minn\\Support","kind":"final class","lines":52,"band":"51–100","usedBy":0,"summary":"Loops in a parent chain, found with two walkers: a slow one that takes one step at a time and a fast one that takes two (probe functions-utils, the hierarchy-loop finders).","path":"/api/support/hierarchy/"},{"name":"Ip","namespace":"Minn\\Support","kind":"final class","lines":22,"band":"1–25","usedBy":0,"summary":"Addresses with their identifying tail removed, for logs and analytics that must not keep a visitor's exact address.","path":"/api/support/ip/"},{"name":"Kses","namespace":"Minn\\Support","kind":"final class","lines":475,"band":"401+","usedBy":15,"summary":"The HTML a user without unfiltered_html may store.","path":"/api/support/kses/"},{"name":"KsesAttributes","namespace":"Minn\\Support","kind":"final class","lines":76,"band":"51–100","usedBy":1,"summary":"Kses one attribute at a time, for the shortcode pass that runs inside HTML tags: an opening tag cut into its attributes, and one attribute judged as kses judges it on its element.","path":"/api/support/ksesattributes/"},{"name":"KsesCss","namespace":"Minn\\Support","kind":"final class","lines":138,"band":"101–200","usedBy":3,"summary":"The style attribute as kses keeps it (safecss_filter_attr): each declaration whose property is on the list stays, a value's url() only on the properties that may hold one and only with a safe scheme, the gradients and CSS functions the reference allows, and nothing that could end the declaration.","path":"/api/support/ksescss/"},{"name":"KsesEntities","namespace":"Minn\\Support","kind":"final class","lines":30,"band":"26–50","usedBy":4,"summary":"The named references kses keeps as written: the list captured from the reference (data/kses.json) plus the five XML ones.","path":"/api/support/ksesentities/"},{"name":"KsesPolicy","namespace":"Minn\\Support","kind":"final readonly class","lines":115,"band":"101–200","usedBy":2,"summary":"What one kses pass allows: the tags, each tag's attributes (allowed plainly or with value rules), whether a tag takes data- attributes, which attributes hold URIs, and the schemes those URIs may use.","path":"/api/support/ksespolicy/"},{"name":"KsesValues","namespace":"Minn\\Support","kind":"final class","lines":38,"band":"26–50","usedBy":2,"summary":"The value rules an allowlist attribute may carry, as the reference judges them: lengths count bytes, bounds need a whole number (up to six digits, up to six spaces either side), \"valueless\" compares the attribute's form, \"values\" compares without case, and a callback decides for itself.","path":"/api/support/ksesvalues/"},{"name":"Lists","namespace":"Minn\\Support","kind":"final class","lines":190,"band":"101–200","usedBy":13,"summary":"List shaping behind the facade's array utilities: arguments over their defaults (wp_parse_args), plucking and filtering (WP_List_Util), the multi-field sort wp_list_sort() promises (loose comparison per field, first difference wins) and the row-shape conversions wpdb hands back for its OBJECT_K / ARRAY_A / ARRAY_N output formats.","path":"/api/support/lists/"},{"name":"Locale","namespace":"Minn\\Support","kind":"final class","lines":31,"band":"26–50","usedBy":0,"summary":"The locale's calendar and number vocabulary as data: the names a site prints for weekdays, months and meridiems, and how it separates thousands and decimals.","path":"/api/support/locale/"},{"name":"Markers","namespace":"Minn\\Support","kind":"final class","lines":59,"band":"51–100","usedBy":0,"summary":"The BEGIN/END marker blocks insert_with_markers() maintains in files like .htaccess: the captured shape keeps everything outside the markers, replaces the block inside them, and writes the reference's four-line do-not-edit preamble ahead of the inserted lines.","path":"/api/support/markers/"},{"name":"Paths","namespace":"Minn\\Support","kind":"final class","lines":64,"band":"51–100","usedBy":0,"summary":"File-system path and permission spellings.","path":"/api/support/paths/"},{"name":"ScriptTag","namespace":"Minn\\Support","kind":"final class","lines":69,"band":"51–100","usedBy":0,"summary":"Script elements as the reference builds them (probe script-tags): the attributes sorted by name, a src or href through esc_url and every other value escaped (true or null printed bare, false left out); inline code between newlines, with any \"<script\" or \"</script\" that would end or open an element written with its \"s\" as a \\u escape.","path":"/api/support/scripttag/"},{"name":"SearchReplace","namespace":"Minn\\Support","kind":"final class","lines":38,"band":"26–50","usedBy":1,"summary":"String replace that walks serialized-PHP arrays of scalars without unserialize, so a domain change in an option blob keeps its lengths.","path":"/api/support/searchreplace/"},{"name":"Serialized","namespace":"Minn\\Support","kind":"final class","lines":311,"band":"201–400","usedBy":27,"summary":"Tolerant readers for the serialized-PHP blobs WordPress stores.","path":"/api/support/serialized/"},{"name":"Slashes","namespace":"Minn\\Support","kind":"final class","lines":32,"band":"26–50","usedBy":9,"summary":"Magic-quote slashes the way WordPress keeps them (wp_slash, wp_unslash): added to or stripped from every string inside a value, arrays and objects walked all the way down, anything else left as it is.","path":"/api/support/slashes/"},{"name":"SqlTable","namespace":"Minn\\Support","kind":"final class","lines":63,"band":"51–100","usedBy":0,"summary":"The table a SQL statement is about, as wpdb::get_table_from_query reports it, and a database host string read into its parts (probe wpdb).","path":"/api/support/sqltable/"},{"name":"Time","namespace":"Minn\\Support","kind":"final class","lines":21,"band":"1–25","usedBy":0,"summary":"Human-scale spans: a number of seconds as the largest whole unit it fills, rounded, never below one.","path":"/api/support/time/"},{"name":"Url","namespace":"Minn\\Support","kind":"final class","lines":220,"band":"201–400","usedBy":7,"summary":"URL shaping the escaping and query helpers share: the character cleanup esc_url applies, bracket encoding outside the authority, and query argument merging.","path":"/api/support/url/"},{"name":"Utf8","namespace":"Minn\\Support","kind":"final class","lines":154,"band":"101–200","usedBy":1,"summary":"UTF-8 as the reference reads it.","path":"/api/support/utf8/"},{"name":"WebServer","namespace":"Minn\\Support","kind":"final class","lines":8,"band":"1–25","usedBy":0,"summary":"What the SERVER_SOFTWARE string says about the web server in front of the site.","path":"/api/support/webserver/"},{"name":"ArchiveTitle","namespace":"Minn\\Theme","kind":"final class","lines":54,"band":"51–100","usedBy":1,"summary":"The label and name an archive titles itself with: `Category:` around the term, `Author:` around the display name, the date formatted for its granularity.","path":"/api/theme/archivetitle/"},{"name":"BodyClasses","namespace":"Minn\\Theme","kind":"final class","lines":86,"band":"51–100","usedBy":1,"summary":"The body-class list a classic theme's body_class() starts from, in the reference's order: the query tokens (with the singular and template tokens spliced in front of the type token), logged-in, the embed and theme tokens, with the numbered paging tokens re-seated after the embed token.","path":"/api/theme/bodyclasses/"},{"name":"BodyFacts","namespace":"Minn\\Theme","kind":"final readonly class","lines":10,"band":"1–25","usedBy":2,"summary":"The facts about a page that decide the body classes a classic theme's page carries beyond the view tokens: a signed-in reader, a custom logo, responsive embeds, and the Minn bar.","path":"/api/theme/bodyfacts/"},{"name":"ClassicContent","namespace":"Minn\\Theme","kind":"final class","lines":39,"band":"26–50","usedBy":0,"summary":"What a classic theme's the_content() prints: the engine's block pipeline (render, password gate, the more-tag teaser in listings), the cached embeds, then the runtime's shortcodes and the_content filters so plugin code sees the same hook order the reference runs.","path":"/api/theme/classiccontent/"},{"name":"ClassicRenderer","namespace":"Minn\\Theme","kind":"final readonly class","lines":131,"band":"101–200","usedBy":2,"summary":"A whole page from the active classic theme: the reference's PHP template loader.","path":"/api/theme/classicrenderer/"},{"name":"ClassicTheme","namespace":"Minn\\Theme","kind":"final readonly class","lines":31,"band":"26–50","usedBy":2,"summary":"The active classic (PHP-template) theme on disk.","path":"/api/theme/classictheme/"},{"name":"CustomCss","namespace":"Minn\\Theme","kind":"final class","lines":69,"band":"51–100","usedBy":1,"summary":"Custom CSS as theme.json and blocks write it (a styles node's \"css\", a block's style.css): nested rules under \"&\" unfolded beneath the selector they belong to, each wrapped in :root :where() as the reference prints them.","path":"/api/theme/customcss/"},{"name":"EmbedRenderer","namespace":"Minn\\Theme","kind":"final readonly class","lines":33,"band":"26–50","usedBy":2,"summary":"A post's embed page (its /embed/ address, or ?embed= on it), the card another site's iframe shows, as the reference prints it: the main query stood with the embed asked for, then the embed template (the theme's own embed-{type}.php or embed.php, else the engine's theme-compat one) through template_include, with embed_head, embed_content, embed_content_meta and embed_footer.","path":"/api/theme/embedrenderer/"},{"name":"FeedHeaders","namespace":"Minn\\Theme","kind":"final class","lines":50,"band":"26–50","usedBy":1,"summary":"The headers a feed is sent with, as the reference's send_headers sends them (suite feed-hooks): the feed type's content type, and when the site last changed (its posts, and its comments too for a comments feed) as Last-Modified with an ETag over it; a reader whose copy carries that date or tag is told the copy is current.","path":"/api/theme/feedheaders/"},{"name":"Folder","namespace":"Minn\\Theme","kind":"final readonly class","lines":77,"band":"51–100","usedBy":0,"summary":"A theme folder read from disk: its style.css headers, which folder its templates come from, its screenshot, whether it is a block theme.","path":"/api/theme/folder/"},{"name":"FontFaces","namespace":"Minn\\Theme","kind":"final class","lines":119,"band":"101–200","usedBy":1,"summary":"fonts a theme.json declares in the shape they are printed from.","path":"/api/theme/fontfaces/"},{"name":"FrontLifecycle","namespace":"Minn\\Theme","kind":"final class","lines":105,"band":"101–200","usedBy":1,"summary":"WordPress's front-end request steps around the main query, as WP::main runs them (front lifecycle trace): parse the request (do_parse_request may take it over; query_vars names the public variables, a plugin's own read from the query string; request filters the result; parse_request follows), the main query, the 404 decision (pre_handle_404 first), the globals, and the headers (wp_headers, the status, send_headers).","path":"/api/theme/frontlifecycle/"},{"name":"GlobalStyles","namespace":"Minn\\Theme","kind":"final readonly class","lines":493,"band":"401+","usedBy":4,"summary":"theme.json to CSS.","path":"/api/theme/globalstyles/"},{"name":"HeadLinks","namespace":"Minn\\Theme","kind":"final readonly class","lines":107,"band":"101–200","usedBy":2,"summary":"The links the reference puts in every head: the site and comments feeds (plus the archive's own feed), the REST discovery link, the JSON alternate for the queried object, and the site icon set.","path":"/api/theme/headlinks/"},{"name":"Hierarchy","namespace":"Minn\\Theme","kind":"final class","lines":148,"band":"101–200","usedBy":0,"summary":"The classic template hierarchy: the candidate file names each template type tries, most specific first, as the reference resolves them.","path":"/api/theme/hierarchy/"},{"name":"MainQueryBridge","namespace":"Minn\\Theme","kind":"final readonly class","lines":125,"band":"101–200","usedBy":9,"summary":"Stands the main query for a themed page and runs the front-end steps around it as WP::main does (FrontLifecycle): the request parsed, the main query through WP_Query (so pre_get_posts and every posts_* filter shape it), the 404 decision, the globals, the headers, then \"wp\" and template_redirect.","path":"/api/theme/mainquerybridge/"},{"name":"NotModified","namespace":"Minn\\Theme","kind":"final class","lines":3,"band":"1–25","usedBy":2,"summary":"Raised once a reader's copy of a feed has been found current and the headers that say so are sent: the reference stops the request there, so the engine answers with nothing more.","path":"/api/theme/notmodified/"},{"name":"PageRenderer","namespace":"Minn\\Theme","kind":"final readonly class","lines":178,"band":"101–200","usedBy":2,"summary":"A whole page from the active block theme: the template the resolution maps to, rendered against the main query, inside the document shell the reference emits (skip link, wp-site-blocks, the skip-link target on the first main element).","path":"/api/theme/pagerenderer/"},{"name":"PatternHeaders","namespace":"Minn\\Theme","kind":"final class","lines":51,"band":"51–100","usedBy":0,"summary":"A theme's pattern files read by their headers, as WP_Theme::get_block_patterns lists them (probe wp-theme).","path":"/api/theme/patternheaders/"},{"name":"PatternText","namespace":"Minn\\Theme","kind":"final class","lines":198,"band":"101–200","usedBy":1,"summary":"Block-theme patterns are PHP files whose only code is a handful of echo-and-escape calls around literal strings.","path":"/api/theme/patterntext/"},{"name":"Printed","namespace":"Minn\\Theme","kind":"final class","lines":3,"band":"1–25","usedBy":3,"summary":"Raised once a WordPress handler has printed a whole response (a sitemap, a stylesheet) or sent a redirect, where the reference exits: the request ends there and the engine answers with what was printed.","path":"/api/theme/printed/"},{"name":"QueryClasses","namespace":"Minn\\Theme","kind":"final readonly class","lines":131,"band":"101–200","usedBy":1,"summary":"The body-class tokens the main query stands for, in the reference's order (captured from the oracles): the view tokens (home, blog, privacy-policy, archive, date, search with its results token, paged, attachment, error404), then the singular's or the archive's own, then the numbered paging tokens.","path":"/api/theme/queryclasses/"},{"name":"StylePresets","namespace":"Minn\\Theme","kind":"final class","lines":161,"band":"101–200","usedBy":2,"summary":"The preset side of theme.json: the colour, gradient, font-size, font-family, spacing, and shadow lists a theme declares over core's own, as the custom properties on :root and the has-* utility classes the reference prints for them.","path":"/api/theme/stylepresets/"},{"name":"StyleSettings","namespace":"Minn\\Theme","kind":"final class","lines":82,"band":"51–100","usedBy":3,"summary":"The settings and styles nodes as wp/v2/global-styles reports them: preset lists keyed by the origin that declared them, appearanceTools spelled out as the flags it stands for, and var:preset tokens resolved to the custom properties they name.","path":"/api/theme/stylesettings/"},{"name":"TemplateHierarchy","namespace":"Minn\\Theme","kind":"final class","lines":75,"band":"51–100","usedBy":0,"summary":"The templates a block theme falls back through for a template slug, as get_template_hierarchy builds them (probe rest-templates-lookup): the slug itself, then its family's chain to index.","path":"/api/theme/templatehierarchy/"},{"name":"TemplateIndex","namespace":"Minn\\Theme","kind":"final class","lines":310,"band":"201–400","usedBy":4,"summary":"Every block template and template part the site offers, in the order the reference lists them: the rows the site editor saved first (newest post date first), then the theme's own files in the order the directory hands them back, then whatever a plugin registered.","path":"/api/theme/templateindex/"},{"name":"TemplatePartTheme","namespace":"Minn\\Theme","kind":"final readonly class","lines":45,"band":"26–50","usedBy":1,"summary":"A template-part block inside a template says which theme's part it means.","path":"/api/theme/templateparttheme/"},{"name":"TemplatePatterns","namespace":"Minn\\Theme","kind":"final readonly class","lines":88,"band":"51–100","usedBy":1,"summary":"A template can name a pattern instead of carrying its blocks, and the reference hands the caller the blocks: every \"wp:pattern\" delimiter is replaced by the pattern's own markup before a template or part is served.","path":"/api/theme/templatepatterns/"},{"name":"TemplateRecord","namespace":"Minn\\Theme","kind":"final readonly class","lines":34,"band":"26–50","usedBy":4,"summary":"One block template or template part, whatever it came from: a theme file, a row the site editor saved, or a template a plugin registered.","path":"/api/theme/templaterecord/"},{"name":"TemplateWriter","namespace":"Minn\\Theme","kind":"final readonly class","lines":92,"band":"51–100","usedBy":2,"summary":"Saving and removing block templates.","path":"/api/theme/templatewriter/"},{"name":"Templates","namespace":"Minn\\Theme","kind":"final readonly class","lines":175,"band":"101–200","usedBy":4,"summary":"Which template renders a resolution, and where its markup comes from: a wp_template post saved from the site editor (matched by slug and the theme term) wins over the theme's file.","path":"/api/theme/templates/"},{"name":"Theme","namespace":"Minn\\Theme","kind":"final class","lines":347,"band":"201–400","usedBy":14,"summary":"The active block theme on disk, read as data: theme.json, the templates and parts directories, and the patterns index.","path":"/api/theme/theme/"},{"name":"ThemeJsonData","namespace":"Minn\\Theme","kind":"final class","lines":20,"band":"1–25","usedBy":1,"summary":"The theme's theme.json as plugins and the theme's own functions may change it (wp_theme_json_data_theme, a WP_Theme_JSON_Data they update with presets and settings of their own), as the reference's resolver hands it to them.","path":"/api/theme/themejsondata/"},{"name":"ThemeStyles","namespace":"Minn\\Theme","kind":"final readonly class","lines":115,"band":"101–200","usedBy":2,"summary":"The active theme's global styles as wp/v2/global-styles/themes/{stylesheet} reports them: the engine's defaults (captured from the reference under a theme with no theme.json) with the theme's own settings and styles over them, and the style variations the theme ships.","path":"/api/theme/themestyles/"},{"name":"Typography","namespace":"Minn\\Theme","kind":"final class","lines":105,"band":"101–200","usedBy":1,"summary":"Font sizes as the reference writes them (probe plugin-queue3): a size in px, rem or em, and, with fluid typography on, a clamp() that grows linearly from a minimum at a small viewport to the size (or the preset's own maximum) at the wide one.","path":"/api/theme/typography/"},{"name":"UserStyles","namespace":"Minn\\Theme","kind":"final readonly class","lines":106,"band":"101–200","usedBy":3,"summary":"The site editor's saved global styles: one wp_global_styles post per theme, tied to it by the wp_theme term, holding a versioned JSON body of the settings and styles the editor wrote.","path":"/api/theme/userstyles/"},{"name":"WidgetForms","namespace":"Minn\\Widgets","kind":"final class","lines":172,"band":"101–200","usedBy":0,"summary":"The core widgets' settings forms, the markup a widget's form() prints and wp/v2/widgets returns as rendered_form, character for character as the reference prints it (probe rest-widgets): field ids and names from the widget's number, values escaped, defaults filled in.","path":"/api/widgets/widgetforms/"}]}