{"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":213,"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":"AdminArgs","namespace":"Minn\\Admin","kind":"final class","lines":29,"band":"26–50","usedBy":2,"summary":"The arguments Minn Admin's own routes register, as the reference lists them with the plugin running there: declared, the router judges them before the caller, as the reference does, so a bad value is a 400 even for someone signed out.","path":"/api/admin/adminargs/"},{"name":"AdminMenu","namespace":"Minn\\Admin","kind":"final class","lines":75,"band":"51–100","usedBy":0,"summary":"The admin menu's arithmetic, as plugins' menu calls see it on the reference (probe admin-doubts): where a top-level entry is filed, the hook a plugin page runs on, the file a plugin page's address is built on, and the parent of the page being shown.","path":"/api/admin/adminmenu/"},{"name":"AdminNotice","namespace":"Minn\\Admin","kind":"final class","lines":25,"band":"1–25","usedBy":0,"summary":"An admin notice's markup, as wp_get_admin_notice builds it on the reference (probe functions-formatting-doubts): a type is a string, trimmed, and one holding a space is a mistake; extra classes come only from a list; an attribute that is true is a bare name, a value under a number is a bare name too, an empty one is left out.","path":"/api/admin/adminnotice/"},{"name":"AdminPlugin","namespace":"Minn\\Admin","kind":"final class","lines":135,"band":"101–200","usedBy":7,"summary":"Minn Admin's home on a site is wp-content/plugins/minn-admin: the same plugin WordPress runs, so an eject leaves the site its admin, and Minn Admin's own updates keep it current between engine releases.","path":"/api/admin/adminplugin/"},{"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":106,"band":"101–200","usedBy":8,"summary":"The Minn Admin app on disk the engine serves the shell and assets from: the plugin in wp-content/plugins, or the engine's own copy at minn/admin (AdminPlugin::app picks), with the site path its files load from.","path":"/api/admin/app/"},{"name":"AppController","namespace":"Minn\\Admin","kind":"final readonly class","lines":150,"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":257,"band":"201–400","usedBy":3,"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":46,"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":"CodeEditor","namespace":"Minn\\Admin","kind":"final class","lines":96,"band":"51–100","usedBy":0,"summary":"The code editor's settings as wp_get_code_editor_settings gives them (probe admin-doubts): CodeMirror's defaults and the three linters', the mode and its helpers from the content type (named, or worked out from the file's extension), then the caller's own settings merged over each part.","path":"/api/admin/codeeditor/"},{"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":31,"band":"26–50","usedBy":1,"summary":"The editor's edit lock in minn-admin/v1.","path":"/api/admin/editorcontroller/"},{"name":"Format","namespace":"Minn\\Admin","kind":"final class","lines":51,"band":"51–100","usedBy":6,"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":"IframeMarkup","namespace":"Minn\\Admin","kind":"final class","lines":41,"band":"26–50","usedBy":0,"summary":"The fixed markup of the two bare admin documents plugins print into, as iframe_header and wp_iframe print it on the reference (probe admin-doubts): the globals the admin scripts read (ajaxurl, pagenow and the rest), the body's opening with the no-js switch, and the onload call at the end.","path":"/api/admin/iframemarkup/"},{"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":109,"band":"101–200","usedBy":1,"summary":"Languages: what is installed, what a person reads in, what the site defaults to.","path":"/api/admin/languagecontroller/"},{"name":"LegacyPackController","namespace":"Minn\\Admin","kind":"final readonly class","lines":49,"band":"26–50","usedBy":1,"summary":"The Minn Legacy Pack installed for an editor that needs it (Runtime\\LegacyPack): the latest release the Minn update service follows for the pack's repository, its package checked against the sha256 the service recorded, unpacked as any plugin is, then activated.","path":"/api/admin/legacypackcontroller/"},{"name":"MetaBoxMarkup","namespace":"Minn\\Admin","kind":"final class","lines":23,"band":"1–25","usedBy":0,"summary":"A meta box's frame as do_meta_boxes prints it on the reference (probe admin-doubts): a labelled region, its title as a heading the three handle buttons (move up, move down, show or hide) describe, each with its tooltip, then the box's inside, which the caller fills.","path":"/api/admin/metaboxmarkup/"},{"name":"MetaBoxes","namespace":"Minn\\Admin","kind":"final class","lines":56,"band":"51–100","usedBy":0,"summary":"One screen's meta boxes as add_meta_box files them on the reference (probe admin-doubts): context => priority => id => box, a removed box kept as false so it stays removed.","path":"/api/admin/metaboxes/"},{"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":140,"band":"101–200","usedBy":2,"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":119,"band":"101–200","usedBy":2,"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":133,"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":"ScreenOptions","namespace":"Minn\\Admin","kind":"final class","lines":27,"band":"26–50","usedBy":0,"summary":"Which screen option a save keeps for itself, as set_screen_options tells them apart on the reference (probe admin-doubts): a core list's page size is saved as a number from 1 to 999 without asking any filter; any other option is the plugin's to accept through its filters.","path":"/api/admin/screenoptions/"},{"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":90,"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":"SiteHealthTests","namespace":"Minn\\Admin","kind":"final class","lines":69,"band":"51–100","usedBy":0,"summary":"The Site Health screen's tests as the reference lists them (probe blocks-rest-widget-doubts): the direct ones each by its label and the name of the check that runs it, the asynchronous ones by their REST route, with the check to run in their place when the screen runs them directly; through site_status_tests.","path":"/api/admin/sitehealthtests/"},{"name":"StructureController","namespace":"Minn\\Admin","kind":"final readonly class","lines":159,"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":"SubmitButton","namespace":"Minn\\Admin","kind":"final class","lines":37,"band":"26–50","usedBy":1,"summary":"A settings form's submit input as get_submit_button builds it: \"button\" and a class for each type (primary, small and large prefixed with \"button-\", secondary meaning none), the id given among the other attributes or the name, the other attributes escaped one by one (or a string of them as given).","path":"/api/admin/submitbutton/"},{"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":99,"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":128,"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":80,"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":165,"band":"101–200","usedBy":6,"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":141,"band":"101–200","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":26,"band":"26–50","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":"Can","namespace":"Minn\\Auth","kind":"final class","lines":51,"band":"51–100","usedBy":21,"summary":"Whether a user may do something, as WordPress decides it: the capability mapped to the primitive ones it needs (map_meta_cap, a meta key's auth filters included), the user's capabilities as user_has_cap leaves them, and every primitive one granted. \"exist\" is always granted and \"do_not_allow\" never.","path":"/api/auth/can/"},{"name":"Capabilities","namespace":"Minn\\Auth","kind":"final readonly class","lines":279,"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":120,"band":"101–200","usedBy":4,"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":82,"band":"51–100","usedBy":3,"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":46,"band":"26–50","usedBy":7,"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":71,"band":"51–100","usedBy":6,"summary":"The stored password scheme.","path":"/api/auth/password/"},{"name":"PasswordReset","namespace":"Minn\\Auth","kind":"final readonly class","lines":70,"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":86,"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":24,"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":3,"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":83,"band":"51–100","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":178,"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":69,"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":6,"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":28,"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":299,"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":4,"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":"Calendar","namespace":"Minn\\Blocks\\Dynamic","kind":"final class","lines":36,"band":"26–50","usedBy":0,"summary":"The calendar block's colours: the reference puts them on the calendar's table, not on the block's wrapper.","path":"/api/blocks-dynamic/calendar/"},{"name":"Dates","namespace":"Minn\\Blocks\\Dynamic","kind":"final class","lines":15,"band":"1–25","usedBy":3,"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":71,"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":148,"band":"101–200","usedBy":1,"summary":"core/latest-posts: the newest published posts as a list or a grid, each with its featured image, title, author, date and excerpt or whole content as the block asks (probe latest-posts).","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":78,"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":33,"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":305,"band":"201–400","usedBy":1,"summary":"comments, comments-title, comment-template, the comment-* blocks, the comment form, and the legacy post-comments.","path":"/api/blocks-dynamic-theme/comments/"},{"name":"Navigation","namespace":"Minn\\Blocks\\Dynamic\\Theme","kind":"final readonly class","lines":554,"band":"401+","usedBy":0,"summary":"navigation, navigation-link, page-list.","path":"/api/blocks-dynamic-theme/navigation/"},{"name":"NavigationParts","namespace":"Minn\\Blocks\\Dynamic\\Theme","kind":"final class","lines":197,"band":"101–200","usedBy":0,"summary":"The navigation family's small answers for the block_core_navigation_* helpers (probes navigation-blocks, nav-pomo-rest-doubts): colour classes and inline styles from a block's attributes or context, the post ids its links point to, whether an item renders, and the typography presets older content stored.","path":"/api/blocks-dynamic-theme/navigationparts/"},{"name":"PostBlocks","namespace":"Minn\\Blocks\\Dynamic\\Theme","kind":"final readonly class","lines":294,"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":343,"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":177,"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":446,"band":"401+","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":147,"band":"101–200","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":1,"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":445,"band":"401+","usedBy":17,"summary":"Per-request rendering state, owned by the renderer.","path":"/api/blocks/renderstate/"},{"name":"Renderer","namespace":"Minn\\Blocks","kind":"final class","lines":553,"band":"401+","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":43,"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":69,"band":"51–100","usedBy":4,"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":217,"band":"201–400","usedBy":2,"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":161,"band":"101–200","usedBy":14,"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":6,"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":"Bundled","namespace":"Minn\\Cli","kind":"final class","lines":64,"band":"51–100","usedBy":2,"summary":"WP-CLI's own bundled command for a verb the engine answers.","path":"/api/cli/bundled/"},{"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":134,"band":"101–200","usedBy":2,"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":365,"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":200,"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":410,"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":461,"band":"401+","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":98,"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":180,"band":"101–200","usedBy":1,"summary":"Users: the list and get views, and the one-time login link.","path":"/api/cli/usercommand/"},{"name":"Autop","namespace":"Minn\\Content","kind":"final class","lines":168,"band":"101–200","usedBy":2,"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":50,"band":"26–50","usedBy":7,"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":"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":263,"band":"201–400","usedBy":9,"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":90,"band":"51–100","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":194,"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":468,"band":"401+","usedBy":6,"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":39,"band":"26–50","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":43,"band":"26–50","usedBy":4,"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":75,"band":"51–100","usedBy":6,"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":162,"band":"101–200","usedBy":53,"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":2,"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":433,"band":"401+","usedBy":15,"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":561,"band":"401+","usedBy":49,"summary":"Reads over the posts table.","path":"/api/content/posts/"},{"name":"Reader","namespace":"Minn\\Content","kind":"final class","lines":65,"band":"51–100","usedBy":12,"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":47,"band":"26–50","usedBy":5,"summary":"Revision rows read: the plain snapshots and the per-author autosave slots.","path":"/api/content/revisions/"},{"name":"RowCache","namespace":"Minn\\Content","kind":"final class","lines":102,"band":"101–200","usedBy":20,"summary":"Rows read once a request: posts, their terms, users, and every object's meta, as the reference keeps them in its object cache, so a loop or a REST list does not read the same row once per use.","path":"/api/content/rowcache/"},{"name":"Site","namespace":"Minn\\Content","kind":"final readonly class","lines":114,"band":"101–200","usedBy":66,"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":4,"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":5,"summary":"","path":"/api/content/slug/"},{"name":"TagBalancer","namespace":"Minn\\Content","kind":"final class","lines":82,"band":"51–100","usedBy":1,"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":38,"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":17,"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":220,"band":"201–400","usedBy":16,"summary":"","path":"/api/content/terms/"},{"name":"TextFilters","namespace":"Minn\\Content","kind":"final class","lines":145,"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":287,"band":"201–400","usedBy":18,"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":19,"summary":"One row of the users table, read by name.","path":"/api/content/userrecord/"},{"name":"Users","namespace":"Minn\\Content","kind":"final readonly class","lines":326,"band":"201–400","usedBy":33,"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":214,"band":"201–400","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 once every 24 hours the update service is asked about Minn, plugins and themes before automatic updates run.","path":"/api/cron/cron/"},{"name":"Db","namespace":"Minn","kind":"final class","lines":427,"band":"401+","usedBy":83,"summary":"The one door to the database.","path":"/api/minn/db/"},{"name":"Engine","namespace":"Minn","kind":"final readonly class","lines":340,"band":"201–400","usedBy":4,"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":122,"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":364,"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":63,"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":70,"band":"51–100","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":56,"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":25,"band":"1–25","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":63,"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":197,"band":"101–200","usedBy":6,"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; and the small ones: the site's default feed, a feed's content type and a post's title for a feed.","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":134,"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":21,"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":265,"band":"201–400","usedBy":52,"summary":"Builds public URLs from the site's permalink structure.","path":"/api/front/permalinks/"},{"name":"PostEmbed","namespace":"Minn\\Front","kind":"final class","lines":112,"band":"101–200","usedBy":2,"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":42,"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":72,"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":68,"band":"51–100","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":23,"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":4,"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":"ResourceHints","namespace":"Minn\\Front","kind":"final class","lines":56,"band":"51–100","usedBy":0,"summary":"The resource hint links wp_head prints (wp_resource_hints): each relation (dns-prefetch, preconnect, prefetch, prerender) handed to the filter with what the engine found, its entries printed once each.","path":"/api/front/resourcehints/"},{"name":"RuleRoutes","namespace":"Minn\\Front","kind":"final readonly class","lines":156,"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":100,"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":117,"band":"101–200","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":79,"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":55,"band":"51–100","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":40,"band":"26–50","usedBy":1,"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), the date form an entry's lastmod takes, and the line robots.txt names the index by.","path":"/api/front/sitemaps/"},{"name":"TermLists","namespace":"Minn\\Front","kind":"final class","lines":135,"band":"101–200","usedBy":1,"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":133,"band":"101–200","usedBy":59,"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":6,"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":589,"band":"401+","usedBy":4,"summary":"A streaming HTML tokenizer with in-place edits: every token in document order, attributes decoded, edits applied to the source without reserialising the rest, bookmarks to seek back to (probe html-tag-processor).","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":110,"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":52,"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":60,"summary":"Who a route is for.","path":"/api/http/access/"},{"name":"Args","namespace":"Minn\\Http","kind":"final class","lines":201,"band":"201–400","usedBy":30,"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":133,"band":"101–200","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":119,"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":207,"band":"201–400","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":"ItemArgs","namespace":"Minn\\Http","kind":"final class","lines":48,"band":"26–50","usedBy":5,"summary":"The parameters a single resource's read takes, as the reference's REST index declares them for posts, pages, blocks, navigation, menus, menu items, menu locations and comments.","path":"/api/http/itemargs/"},{"name":"Kernel","namespace":"Minn\\Http","kind":"final readonly class","lines":38,"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":85,"band":"51–100","usedBy":2,"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":"MediaType","namespace":"Minn\\Http","kind":"final class","lines":18,"band":"1–25","usedBy":1,"summary":"Reading the media types a request names in its Accept and Content-Type headers.","path":"/api/http/mediatype/"},{"name":"Method","namespace":"Minn\\Http","kind":"enum","lines":33,"band":"26–50","usedBy":72,"summary":"","path":"/api/http/method/"},{"name":"NoCache","namespace":"Minn\\Http","kind":"final class","lines":16,"band":"1–25","usedBy":5,"summary":"The headers that keep a response out of every cache.","path":"/api/http/nocache/"},{"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":117,"band":"101–200","usedBy":63,"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":5,"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":221,"band":"201–400","usedBy":114,"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":161,"band":"101–200","usedBy":81,"summary":"What a handler returns.","path":"/api/http/response/"},{"name":"RevisionArgs","namespace":"Minn\\Http","kind":"final class","lines":66,"band":"51–100","usedBy":3,"summary":"The parameters the revisions and autosaves routes accept, as the reference's REST index describes them (captured from it, in its order).","path":"/api/http/revisionargs/"},{"name":"Route","namespace":"Minn\\Http","kind":"final readonly class","lines":77,"band":"51–100","usedBy":63,"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":9,"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":6,"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":90,"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":291,"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":1,"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":49,"band":"26–50","usedBy":16,"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":141,"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":115,"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":84,"band":"51–100","usedBy":74,"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":209,"band":"201–400","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":"LocalDates","namespace":"Minn\\I18n","kind":"final class","lines":35,"band":"26–50","usedBy":3,"summary":"A date in the site's language, as the reference's wp_date writes one: PHP's format, with the weekday and month names (D, l, F, M) and the meridiems (a, A) in the language's own words, and a month written after its day in the genitive where the language declines month names.","path":"/api/i18n/localdates/"},{"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":148,"band":"101–200","usedBy":1,"summary":"The GNU gettext binary catalog (.mo), read and written.","path":"/api/i18n/mofile/"},{"name":"Numbers","namespace":"Minn\\I18n","kind":"final class","lines":8,"band":"1–25","usedBy":5,"summary":"Numbers written for people: grouped by thousands, to the decimals asked.","path":"/api/i18n/numbers/"},{"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":69,"band":"51–100","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":"SiteLanguage","namespace":"Minn\\I18n","kind":"final class","lines":53,"band":"51–100","usedBy":5,"summary":"The site's language as pages declare it: the locale in force (a switched one first, then what the WPLANG option gives, through the locale filter) and the html element's dir and lang attributes, which a plugin may change through language_attributes.","path":"/api/i18n/sitelanguage/"},{"name":"TextDomains","namespace":"Minn\\I18n","kind":"final class","lines":200,"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":48,"band":"26–50","usedBy":3,"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":144,"band":"101–200","usedBy":80,"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":557,"band":"401+","usedBy":1,"summary":"Signing in.","path":"/api/login/logincontroller/"},{"name":"LoginForm","namespace":"Minn\\Login","kind":"final class","lines":263,"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":149,"band":"101–200","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":91,"band":"51–100","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":1,"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":"CustomHeaders","namespace":"Minn\\Mail","kind":"final class","lines":28,"band":"26–50","usedBy":0,"summary":"A mailer's custom headers changed in place (PHPMailer::replaceCustomHeader, probe db-mail-rewrite-doubts): the first header of the name takes the new value and the others of that name go; a name nothing has is not added.","path":"/api/mail/customheaders/"},{"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":66,"band":"51–100","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":45,"band":"26–50","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.php, 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":102,"band":"101–200","usedBy":3,"summary":"Sends a Message through the configured transport.","path":"/api/mail/mailer/"},{"name":"MailerStrings","namespace":"Minn\\Mail","kind":"final class","lines":47,"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":84,"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":"SendmailLine","namespace":"Minn\\Mail","kind":"final class","lines":13,"band":"1–25","usedBy":0,"summary":"The command a mailer pipes a message to for sendmail and qmail (probe db-mail-rewrite-doubts): sendmail reads the recipients from the message and ignores lone dots (-i -t), qmail takes nothing more; the envelope sender goes as -f only when it is a valid, shell-safe address, whatever the sendmail options say.","path":"/api/mail/sendmailline/"},{"name":"Smime","namespace":"Minn\\Mail","kind":"final class","lines":41,"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":"Ac3","namespace":"Minn\\Media\\Av","kind":"final class","lines":40,"band":"26–50","usedBy":2,"summary":"An AC-3 (Dolby Digital) frame's header as the reference's media reader reads it (probe media-meta): the rate, bitrate and channels, the low frequency channel counted as \".1\".","path":"/api/media-av/ac3/"},{"name":"Analyzer","namespace":"Minn\\Media\\Av","kind":"final class","lines":114,"band":"101–200","usedBy":1,"summary":"A media file's analysis, keyed as the reference's media reader keys the one it hands to the wp_read_audio_metadata and wp_read_video_metadata filters (probe media-meta): the file's size, format and type, its audio and video streams, its playing time and bitrate, and its tags.","path":"/api/media-av/analyzer/"},{"name":"Asf","namespace":"Minn\\Media\\Av","kind":"final class","lines":182,"band":"101–200","usedBy":1,"summary":"Advanced Systems Format files (WMV, WMA, ASF) as the reference's media reader measures them (probe media-meta).","path":"/api/media-av/asf/"},{"name":"ExpGolomb","namespace":"Minn\\Media\\Av","kind":"final class","lines":50,"band":"26–50","usedBy":1,"summary":"A bit reader over a byte string for the exponential-Golomb codes of a video parameter set: single bits, unsigned and signed codes.","path":"/api/media-av/expgolomb/"},{"name":"Flac","namespace":"Minn\\Media\\Av","kind":"final class","lines":115,"band":"101–200","usedBy":3,"summary":"FLAC, on its own or as the first packet of an Ogg stream, as the reference's media reader measures it (probe media-meta): the stream information block gives the rate, channels, depth and samples, the comment block names the encoder, and a picture block is the cover.","path":"/api/media-av/flac/"},{"name":"Flv","namespace":"Minn\\Media\\Av","kind":"final class","lines":215,"band":"201–400","usedBy":1,"summary":"Flash video (FLV) as the reference's media reader measures it (probe media-meta).","path":"/api/media-av/flv/"},{"name":"Genres","namespace":"Minn\\Media\\Av","kind":"final class","lines":15,"band":"1–25","usedBy":1,"summary":"The genre names an ID3 tag refers to by number: the ID3v1 list with the Winamp additions (0 to 191) and a later run from 240.","path":"/api/media-av/genres/"},{"name":"Id3","namespace":"Minn\\Media\\Av","kind":"final class","lines":356,"band":"201–400","usedBy":1,"summary":"ID3 tags, as the reference's audio reader names what they say (probe media-meta): an ID3v2 tag (versions 2.2 to 2.4) at the start of a file and an ID3v1 tag in its last 128 bytes.","path":"/api/media-av/id3/"},{"name":"IsoMedia","namespace":"Minn\\Media\\Av","kind":"final class","lines":364,"band":"201–400","usedBy":1,"summary":"MPEG-4 and QuickTime files (MP4, M4A, M4V, MOV) as the reference's media reader measures them (probe media-meta).","path":"/api/media-av/isomedia/"},{"name":"Lame","namespace":"Minn\\Media\\Av","kind":"final class","lines":135,"band":"101–200","usedBy":1,"summary":"The LAME tag an encoder writes after the Xing or Info counts, and what the reference's audio reader makes of it (probe media-meta): the bitrate method names the bitrate mode, and the encoder options are guessed from the preset number, or failing that from the mode, then the minimum bitrate, gapless encoding, a lowpass other than the preset's own and a resampled rate follow.","path":"/api/media-av/lame/"},{"name":"Matroska","namespace":"Minn\\Media\\Av","kind":"final class","lines":314,"band":"201–400","usedBy":1,"summary":"Matroska and WebM files (MKV, MKA, WebM) as the reference's media reader measures them (probe media-meta).","path":"/api/media-av/matroska/"},{"name":"Mpeg","namespace":"Minn\\Media\\Av","kind":"final class","lines":215,"band":"201–400","usedBy":3,"summary":"MPEG audio (MP3, and layers 1 and 2) as the reference's audio reader measures it (probe media-meta).","path":"/api/media-av/mpeg/"},{"name":"Ogg","namespace":"Minn\\Media\\Av","kind":"final class","lines":144,"band":"101–200","usedBy":1,"summary":"Ogg files as the reference's media reader measures them (probe media-meta): Vorbis, Opus, or FLAC in its first packet.","path":"/api/media-av/ogg/"},{"name":"Riff","namespace":"Minn\\Media\\Av","kind":"final class","lines":351,"band":"201–400","usedBy":2,"summary":"RIFF files, WAV audio and AVI video, as the reference's media reader measures them (probe media-meta).","path":"/api/media-av/riff/"},{"name":"Source","namespace":"Minn\\Media\\Av","kind":"final class","lines":71,"band":"51–100","usedBy":12,"summary":"A media file read in parts, so a large video is never loaded whole: its size, a run of bytes at an offset, and the integers the containers write.","path":"/api/media-av/source/"},{"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":0,"summary":"One GD bitmap and the operations the media layer needs on it.","path":"/api/media/canvas/"},{"name":"CompatFields","namespace":"Minn\\Media","kind":"final class","lines":50,"band":"26–50","usedBy":0,"summary":"The attachment's extra fields as the media modal's compat form prints them (get_compat_media_markup), measured on the reference (probe media-template-doubts): a hidden menu order, the required-fields note and a table of rows, a field's own \"tr\" as given, then its hidden fields.","path":"/api/media/compatfields/"},{"name":"FileTypes","namespace":"Minn\\Media","kind":"final class","lines":75,"band":"51–100","usedBy":8,"summary":"File types as WordPress knows them (data/mime.json): every extension's MIME type, the ones a user may upload, the kind each extension is (image, audio, document...), and the type a file name's extension says, each list through the filter plugins hook.","path":"/api/media/filetypes/"},{"name":"Gallery","namespace":"Minn\\Media","kind":"final class","lines":73,"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":2,"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":"ImageMime","namespace":"Minn\\Media","kind":"final class","lines":34,"band":"26–50","usedBy":1,"summary":"An image file's real type from its first bytes, as the reference sniffs it before trusting an upload's extension (probe hook-inputs-2): PHP's own header check for the classic formats (JPEG, PNG, GIF, WebP, BMP, ICO, TIFF, AVIF), then an ISO media file's major brand for the HEIF family PHP does not know.","path":"/api/media/imagemime/"},{"name":"Kind","namespace":"Minn\\Media","kind":"final class","lines":72,"band":"51–100","usedBy":2,"summary":"Whether an attachment is an image, audio or video (by its MIME type) or of a given extension.","path":"/api/media/kind/"},{"name":"MediaModal","namespace":"Minn\\Media","kind":"final class","lines":219,"band":"201–400","usedBy":0,"summary":"WordPress's media modal, set up for a page that opens it (wp_enqueue_media): a page builder's editor picks and uploads images through it.","path":"/api/media/mediamodal/"},{"name":"Metadata","namespace":"Minn\\Media","kind":"final class","lines":112,"band":"101–200","usedBy":5,"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":"Player","namespace":"Minn\\Media","kind":"final class","lines":63,"band":"51–100","usedBy":0,"summary":"The media player's data as the reference gives MediaElement.js (probe media-player): its strings in the language in force, and the site's settings for it.","path":"/api/media/player/"},{"name":"Sizing","namespace":"Minn\\Media","kind":"final class","lines":263,"band":"201–400","usedBy":2,"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":89,"band":"51–100","usedBy":1,"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":135,"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":24,"band":"1–25","usedBy":2,"summary":"Where the media library's files live, as a REST upload names them: a stored file's address, its path on disk, and its path relative to the uploads folder.","path":"/api/media/writer/"},{"name":"BlockType","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":3,"summary":"A registered block type as the WordPress layer hands it to plugins (WP_Block_Type): its attributes, supports, styles and render callback.","path":"/api/objects/blocktype/"},{"name":"Comment","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":9,"summary":"A comment as the WordPress layer hands it to plugins (WP_Comment).","path":"/api/objects/comment/"},{"name":"CommentsQuery","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":6,"summary":"A comments query as the WordPress layer hands it to plugins (WP_Comment_Query).","path":"/api/objects/commentsquery/"},{"name":"Dependency","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":2,"summary":"A registered script or style as the WordPress layer hands it to plugins (_WP_Dependency): its handle, source, dependencies, version and extra data.","path":"/api/objects/dependency/"},{"name":"Environment","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":1,"summary":"The request's environment as the WordPress layer hands it to plugins (WP, the $wp global): the query variables parsed from the request and the headers sent.","path":"/api/objects/environment/"},{"name":"Errors","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":39,"summary":"A list of errors as the WordPress layer hands it to plugins (WP_Error): codes with their messages and data.","path":"/api/objects/errors/"},{"name":"HttpResponse","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":1,"summary":"An HTTP response as the WordPress layer hands it to plugins (WP_HTTP_Response): its data, status and headers.","path":"/api/objects/httpresponse/"},{"name":"Post","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":35,"summary":"A post as the WordPress layer hands it to plugins (WP_Post).","path":"/api/objects/post/"},{"name":"PostType","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":7,"summary":"A registered post type as the WordPress layer hands it to plugins (WP_Post_Type): its labels, capabilities and settings.","path":"/api/objects/posttype/"},{"name":"Query","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":18,"summary":"A posts query as the WordPress layer hands it to plugins (WP_Query): its variables, flags, posts and loop.","path":"/api/objects/query/"},{"name":"RenderedBlock","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":4,"summary":"A block being rendered as the WordPress layer hands it to plugins (WP_Block): its parsed block, attributes, context and inner blocks.","path":"/api/objects/renderedblock/"},{"name":"RestRequest","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":18,"summary":"A REST request as the WordPress layer hands it to plugins (WP_REST_Request): its route, method, parameters, headers and body.","path":"/api/objects/restrequest/"},{"name":"RestResponse","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":4,"summary":"A REST response as the WordPress layer hands it to plugins (WP_REST_Response): its data, status, headers and links.","path":"/api/objects/restresponse/"},{"name":"RestServer","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":2,"summary":"The REST server as the WordPress layer hands it to plugins (WP_REST_Server).","path":"/api/objects/restserver/"},{"name":"Rewrite","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":5,"summary":"The rewrite object as the WordPress layer hands it to plugins (WP_Rewrite): the permalink structures, the extra rules and endpoints plugins add, and the rules built from them.","path":"/api/objects/rewrite/"},{"name":"SessionTokens","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":1,"summary":"A user's sessions as the WordPress layer hands them to plugins (WP_Session_Tokens, or the manager session_token_manager names): made, read, verified and ended.","path":"/api/objects/sessiontokens/"},{"name":"SiteLocale","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":2,"summary":"The site's locale as the WordPress layer hands it to plugins (WP_Locale): the names of weekdays and months, the number format and the text direction.","path":"/api/objects/sitelocale/"},{"name":"SitemapProvider","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":1,"summary":"A sitemap provider as the WordPress layer hands it to plugins (WP_Sitemaps_Provider and its kinds): the object subtypes it lists and their URLs.","path":"/api/objects/sitemapprovider/"},{"name":"SitemapServer","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":1,"summary":"The sitemaps as the WordPress layer hands them to plugins (WP_Sitemaps): the providers registered and the index and stylesheets they serve.","path":"/api/objects/sitemapserver/"},{"name":"Taxonomy","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":3,"summary":"A registered taxonomy as the WordPress layer hands it to plugins (WP_Taxonomy): its labels, capabilities and settings.","path":"/api/objects/taxonomy/"},{"name":"Term","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":17,"summary":"A term as the WordPress layer hands it to plugins (WP_Term).","path":"/api/objects/term/"},{"name":"TermsQuery","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":3,"summary":"A terms query as the WordPress layer hands it to plugins (WP_Term_Query).","path":"/api/objects/termsquery/"},{"name":"Theme","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":5,"summary":"A theme as the WordPress layer hands it to plugins (WP_Theme): its headers, folders, templates and files.","path":"/api/objects/theme/"},{"name":"ThemeJsonLayer","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":2,"summary":"One origin's theme.json data as the WordPress layer hands it to the wp_theme_json_data_ filters (WP_Theme_JSON_Data), which may change it.","path":"/api/objects/themejsonlayer/"},{"name":"Toolbar","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":1,"summary":"The toolbar as the WordPress layer hands it to plugins (WP_Admin_Bar): the nodes and groups a menu callback adds.","path":"/api/objects/toolbar/"},{"name":"Upgrader","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":3,"summary":"An upgrader as the WordPress layer hands it to plugins (WP_Upgrader and the plugin and theme upgraders): it fetches, unpacks and installs a package.","path":"/api/objects/upgrader/"},{"name":"UpgraderSkin","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":2,"summary":"What an upgrader reports through (WP_Upgrader_Skin and its kinds): the feedback and errors of an install or update.","path":"/api/objects/upgraderskin/"},{"name":"User","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":15,"summary":"A user as the WordPress layer hands it to plugins (WP_User).","path":"/api/objects/user/"},{"name":"UsersQuery","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":4,"summary":"A users query as the WordPress layer hands it to plugins (WP_User_Query).","path":"/api/objects/usersquery/"},{"name":"Widget","namespace":"Minn\\Objects","kind":"interface","lines":3,"band":"1–25","usedBy":5,"summary":"A widget as the WordPress layer hands it to plugins (WP_Widget): its id base, name, options and the form and update methods a widget class writes.","path":"/api/objects/widget/"},{"name":"Archive","namespace":"Minn\\Ops","kind":"final class","lines":105,"band":"101–200","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":"Asking","namespace":"Minn\\Ops","kind":"enum","lines":11,"band":"1–25","usedBy":4,"summary":"Why the engine asks the update service: the daily pass, once every 24 hours (marked X-Minn-Check: daily, which the service counts as one site running that day), or anything else (a person checking, an update needing a fresh answer), which goes unmarked.","path":"/api/ops/asking/"},{"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":73,"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":76,"band":"51–100","usedBy":11,"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":1,"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":160,"band":"101–200","usedBy":5,"summary":"Replaces the running engine with a published release.","path":"/api/ops/engineupdate/"},{"name":"FilesystemCredentials","namespace":"Minn\\Ops","kind":"final class","lines":214,"band":"201–400","usedBy":0,"summary":"How the site reaches its own files, and the connection it asks for when it cannot write them itself (probes filesystem-credentials and filesystem-credentials-constants).","path":"/api/ops/filesystemcredentials/"},{"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":484,"band":"401+","usedBy":12,"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":5,"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":"ShapeFiles","namespace":"Minn\\Ops","kind":"final class","lines":104,"band":"101–200","usedBy":2,"summary":"The files an install lays at the webroot for tooling to find: the shape files from layout/ (index.php, wp-settings.php, version.php and the rest) and one file for each of the reference's wp-includes and wp-admin/includes files, an empty placeholder or, where layout/ ships one, the engine's loader.","path":"/api/ops/shapefiles/"},{"name":"Unzip","namespace":"Minn\\Ops","kind":"final readonly class","lines":112,"band":"101–200","usedBy":1,"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":456,"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 24 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":1,"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":303,"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":291,"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":1,"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":"NetworkSql","namespace":"Minn\\Query","kind":"final class","lines":257,"band":"201–400","usedBy":0,"summary":"The SQL WP_Site_Query and WP_Network_Query build from their variables (probe multisite-classes).","path":"/api/query/networksql/"},{"name":"PostOrder","namespace":"Minn\\Query","kind":"final class","lines":122,"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":2,"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":200,"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":76,"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":465,"band":"401+","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":142,"band":"101–200","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 (none for an argument whose refusal is bare, Args::BARE_REFUSAL).","path":"/api/rest/argcheck/"},{"name":"BatchController","namespace":"Minn\\Rest","kind":"final readonly class","lines":164,"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":"BlockDirectoryController","namespace":"Minn\\Rest","kind":"final readonly class","lines":72,"band":"51–100","usedBy":1,"summary":"wp/v2/block-directory/search (Austin, 2026-10-21, decision 1B): the directory's block plugins for a term, asked as plugins_api asks (its filters run) of wordpress.org through the Minn update service.","path":"/api/rest/blockdirectorycontroller/"},{"name":"BlockEditorController","namespace":"Minn\\Rest","kind":"final readonly class","lines":29,"band":"26–50","usedBy":1,"summary":"Two of wp-block-editor/v1's routes, for someone who may edit theme options (probe: the block editor routes on the reference). navigation-fallback answers the navigation menu a navigation block falls back to (the newest published one, made when there is none) by its id, linked so it embeds. export is refused to anyone else as the reference refuses it; the theme it packs (the theme's files with its templates and theme.json as the site has them, as a zip) the engine does not build, so for someone allowed that route declines.","path":"/api/rest/blockeditorcontroller/"},{"name":"BlockRendererController","namespace":"Minn\\Rest","kind":"final readonly class","lines":93,"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":133,"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":59,"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":149,"band":"101–200","usedBy":50,"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":34,"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":3,"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":318,"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":21,"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":264,"band":"201–400","usedBy":4,"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":106,"band":"101–200","usedBy":31,"summary":"The _fields response filter.","path":"/api/rest/fields/"},{"name":"FontArgs","namespace":"Minn\\Rest","kind":"final class","lines":70,"band":"51–100","usedBy":3,"summary":"The font library's parameters as the reference's REST index lists them (font families, font faces, font collections), in its order, each read by Rest\\FontsController or Rest\\FontCollectionsController.","path":"/api/rest/fontargs/"},{"name":"FontCollectionsController","namespace":"Minn\\Rest","kind":"final readonly class","lines":78,"band":"51–100","usedBy":1,"summary":"wp/v2/font-collections (probe: the font library routes on the reference): the collections registered with the font library, in the order they were registered, a page at a time, and one by its slug.","path":"/api/rest/fontcollectionscontroller/"},{"name":"FontFaceCreation","namespace":"Minn\\Rest","kind":"final class","lines":9,"band":"1–25","usedBy":1,"summary":"A font face's create judges its settings (its sources against the files the request uploads), then its theme.json version, before the caller is judged; its family is looked for only after, as on the reference.","path":"/api/rest/fontfacecreation/"},{"name":"FontFamilyChange","namespace":"Minn\\Rest","kind":"final class","lines":9,"band":"1–25","usedBy":1,"summary":"A font family's update judges its settings, then its theme.json version, before the family is looked for and the caller judged (the policy's subject), as on the reference: a bad setting is answered even for a family that does not exist.","path":"/api/rest/fontfamilychange/"},{"name":"FontFamilyCreation","namespace":"Minn\\Rest","kind":"final class","lines":9,"band":"1–25","usedBy":1,"summary":"A font family's create judges its settings, then its theme.json version, before the caller is judged (Rest\\FontSettings), so a caller who may not create one hears of a bad setting first, as on the reference.","path":"/api/rest/fontfamilycreation/"},{"name":"FontObject","namespace":"Minn\\Rest","kind":"final readonly class","lines":93,"band":"51–100","usedBy":3,"summary":"A font family and a font face as wp/v2 shapes them (probe: the font library routes on the reference): the id, the theme.json version (3, which nothing stores), and the settings the post holds: a family's name and slug from its title and slug, then its font family and preview from its JSON content; a face's font-face properties from its JSON content.","path":"/api/rest/fontobject/"},{"name":"FontSettings","namespace":"Minn\\Rest","kind":"final class","lines":221,"band":"201–400","usedBy":4,"summary":"The settings a font family or face is written with, judged and cleaned as the reference does (probe font-writes).","path":"/api/rest/fontsettings/"},{"name":"FontWritesController","namespace":"Minn\\Rest","kind":"final readonly class","lines":151,"band":"101–200","usedBy":1,"summary":"wp/v2/font-families written (probe font-writes): a family created and updated, a face created under its family, each saved as the reference saves it.","path":"/api/rest/fontwritescontroller/"},{"name":"FontsController","namespace":"Minn\\Rest","kind":"final readonly class","lines":162,"band":"101–200","usedBy":1,"summary":"wp/v2/font-families and their font-faces, read and deleted (probe: the font library routes on the reference).","path":"/api/rest/fontscontroller/"},{"name":"GlobalStylesController","namespace":"Minn\\Rest","kind":"final readonly class","lines":161,"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":"GlobalStylesParams","namespace":"Minn\\Rest","kind":"final class","lines":22,"band":"1–25","usedBy":1,"summary":"A global styles update's parameters as the reference declares them: its styles and settings, each an object, and its title, then the fields plugins register for wp_global_styles (Minn Admin's own among them).","path":"/api/rest/globalstylesparams/"},{"name":"IndexController","namespace":"Minn\\Rest","kind":"final readonly class","lines":106,"band":"101–200","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":142,"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":"ItemRender","namespace":"Minn\\Rest","kind":"final class","lines":54,"band":"51–100","usedBy":1,"summary":"What a post read sets up around its rendering, as the reference does for the one request: an excerpt_length given (declared on a single post, read on a list too) answers the excerpt_length filter as the integer PHP reads it as, so the excerpt is cut there; and a protected post read with its own password, or in the edit context, has post_password_required lifted for it, so its excerpt is the text and not the password form.","path":"/api/rest/itemrender/"},{"name":"Links","namespace":"Minn\\Rest","kind":"final class","lines":83,"band":"51–100","usedBy":7,"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":294,"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":171,"band":"101–200","usedBy":2,"summary":"The wp/v2 media object, view and edit context.","path":"/api/rest/mediaobject/"},{"name":"MenuCollectionParams","namespace":"Minn\\Rest","kind":"final class","lines":8,"band":"1–25","usedBy":2,"summary":"The menus list's parameters as the reference declares them: a flat taxonomy's term list (the context and Args::TERMS, an offset and no parent).","path":"/api/rest/menucollectionparams/"},{"name":"MenuItemCollectionParams","namespace":"Minn\\Rest","kind":"final class","lines":39,"band":"26–50","usedBy":2,"summary":"The menu items list's parameters as the reference declares them: the nav_menu_item type's post list (its menus term filter among them), a hundred to a page in ascending menu order by default, menu_order among the orderby values and, last, a menu_order filter of its own.","path":"/api/rest/menuitemcollectionparams/"},{"name":"MenuItemObject","namespace":"Minn\\Rest","kind":"final readonly class","lines":75,"band":"51–100","usedBy":2,"summary":"The wp/v2/menu-items resource.","path":"/api/rest/menuitemobject/"},{"name":"MenuItemStatus","namespace":"Minn\\Rest","kind":"final class","lines":13,"band":"1–25","usedBy":1,"summary":"Menu items listed with a status beyond publish by a caller who may not edit them: refused as the parameter it is (\"Status is forbidden.\"), before the caller is judged for the list or its edit context, as the reference refuses it, signed out too (register 18300).","path":"/api/rest/menuitemstatus/"},{"name":"MenuLists","namespace":"Minn\\Rest","kind":"final readonly class","lines":84,"band":"51–100","usedBy":2,"summary":"The menus and menu items lists, served as the reference serves them: the menus as the nav_menu taxonomy's term list (its parameters through rest_nav_menu_collection_params, its query through rest_nav_menu_query, counted without the page), the items as the nav_menu_item type's post list with its own parameters (Rest\\MenuItemCollectionParams), each in its own shape.","path":"/api/rest/menulists/"},{"name":"MenuObject","namespace":"Minn\\Rest","kind":"final readonly class","lines":41,"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":262,"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":"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":"PathArgs","namespace":"Minn\\Rest","kind":"final class","lines":79,"band":"51–100","usedBy":17,"summary":"The arguments a route's path names, as the reference lists them among the route's args: each capture again, described and typed.","path":"/api/rest/pathargs/"},{"name":"PatternDirectoryController","namespace":"Minn\\Rest","kind":"final readonly class","lines":120,"band":"101–200","usedBy":1,"summary":"wp/v2/pattern-directory/patterns (Austin, 2026-10-21, decision 1B): the block editor's pattern directory, asked of wordpress.org through the Minn update service, with the query the reference sends upstream (its paging and order, then the search, slugs and offset asked for, the reader's locale, the WordPress version, then the category and keyword by their upstream names).","path":"/api/rest/patterndirectorycontroller/"},{"name":"PluginsController","namespace":"Minn\\Rest","kind":"final readonly class","lines":292,"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":176,"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":242,"band":"201–400","usedBy":7,"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":170,"band":"101–200","usedBy":2,"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":567,"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":264,"band":"201–400","usedBy":7,"summary":"wp/v2 posts and pages, read side.","path":"/api/rest/postscontroller/"},{"name":"PostsWriteController","namespace":"Minn\\Rest","kind":"final readonly class","lines":528,"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":135,"band":"101–200","usedBy":9,"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":68,"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":63,"band":"51–100","usedBy":48,"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":"Responses","namespace":"Minn\\Rest","kind":"final class","lines":95,"band":"51–100","usedBy":6,"summary":"REST answers as the WordPress layer shapes them: any value made a response, a list of errors made one (its status from the errors' data), the REST server (made, and rest_api_init told, the first time it is asked), the fields a request asked for kept, and the status that tells a signed-out caller from one who may not.","path":"/api/rest/responses/"},{"name":"RestMeta","namespace":"Minn\\Rest","kind":"final class","lines":296,"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":34,"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":"RevisionCollection","namespace":"Minn\\Rest","kind":"final class","lines":177,"band":"101–200","usedBy":3,"summary":"A revisions list as the reference answers it (probe of the posts, pages, patterns, menus, templates and global styles revisions routes): the include list (which outranks exclude) or the exclude list, the search (terms, quoted phrases and -exclusions over the title, excerpt and content, as a post search reads them), the order, then the page.","path":"/api/rest/revisioncollection/"},{"name":"RevisionsController","namespace":"Minn\\Rest","kind":"final readonly class","lines":299,"band":"201–400","usedBy":1,"summary":"wp/v2 revisions under posts, pages, patterns and navigation menus, and autosaves under those and menu items (probes rest-revisions, rest-autosaves).","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":144,"band":"101–200","usedBy":3,"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":80,"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":"RouteSchemas","namespace":"Minn\\Rest","kind":"final class","lines":40,"band":"26–50","usedBy":1,"summary":"The item schema an OPTIONS answer describes a route by: the one its core controller registers on the runtime's server, or, where the engine keeps that controller as a dead end or answers the route itself, the schema the reference describes it by (data/rest-schemas.json), with the fields plugin code registers for the type after its own properties.","path":"/api/rest/routeschemas/"},{"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":145,"band":"101–200","usedBy":19,"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":572,"band":"401+","usedBy":22,"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":503,"band":"401+","usedBy":12,"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":"SchemaChoices","namespace":"Minn\\Rest","kind":"final readonly class","lines":136,"band":"101–200","usedBy":1,"summary":"anyOf and oneOf the way the REST API's validation judges them (probe rest-schema-choices): a choice's schemas without a type take the choice's own; the refusal for matching none is named from the closest schema, or lists the titles, or is plain; several matches are named by their titles.","path":"/api/rest/schemachoices/"},{"name":"SchemaData","namespace":"Minn\\Rest","kind":"final class","lines":12,"band":"1–25","usedBy":1,"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":198,"band":"101–200","usedBy":6,"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":171,"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":207,"band":"201–400","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":"SiteHealthController","namespace":"Minn\\Rest","kind":"final readonly class","lines":17,"band":"1–25","usedBy":1,"summary":"wp-site-health/v1 (probe: the site health routes on the reference): the namespace, its six asynchronous tests and the directory sizes, each for someone who may view site health checks and refused to anyone else as rest_forbidden.","path":"/api/rest/sitehealthcontroller/"},{"name":"SiteSchema","namespace":"Minn\\Rest","kind":"final class","lines":38,"band":"26–50","usedBy":5,"summary":"The site's JSON-schema handler: one Schema whose email test, number formatter and string-format sanitizers carry the filters plugins hook (is_email, number_format_i18n, the sanitizers), and the answers the REST helpers give with it (true or a list of errors).","path":"/api/rest/siteschema/"},{"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":55,"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":3,"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":"TemplateObject","namespace":"Minn\\Rest","kind":"final readonly class","lines":105,"band":"101–200","usedBy":3,"summary":"The wp/v2/templates and wp/v2/template-parts resource.","path":"/api/rest/templateobject/"},{"name":"TemplateRevisionsController","namespace":"Minn\\Rest","kind":"final readonly class","lines":197,"band":"101–200","usedBy":1,"summary":"wp/v2/templates and wp/v2/template-parts revisions and autosaves: the revision rows of a template the site saved, each shown as the template it once was (the template's own shape, its parent's id, a self link and a parent link).","path":"/api/rest/templaterevisionscontroller/"},{"name":"TemplatesController","namespace":"Minn\\Rest","kind":"final readonly class","lines":332,"band":"201–400","usedBy":2,"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":2,"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":193,"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":190,"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":"UrlDetails","namespace":"Minn\\Rest","kind":"final class","lines":64,"band":"51–100","usedBy":0,"summary":"A page's details as the editor's link previews read them (probe rest-embed-details), from the document's head: everything up to its closer, the whole page when it has none.","path":"/api/rest/urldetails/"},{"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":380,"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":"ViewConfigPatch","namespace":"Minn\\Rest","kind":"final class","lines":151,"band":"101–200","usedBy":0,"summary":"A patch to a view configuration (WP_View_Config_Data; probe rest-view-config), applied as the reference applies it.","path":"/api/rest/viewconfigpatch/"},{"name":"WidgetObject","namespace":"Minn\\Rest","kind":"final readonly class","lines":72,"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":170,"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":226,"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":149,"band":"101–200","usedBy":1,"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":"AdminActionController","namespace":"Minn\\Runtime","kind":"final readonly class","lines":138,"band":"101–200","usedBy":3,"summary":"The wp-admin pages a plugin answers itself.","path":"/api/runtime/adminactioncontroller/"},{"name":"AjaxController","namespace":"Minn\\Runtime","kind":"final readonly class","lines":86,"band":"51–100","usedBy":4,"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":"ApplicationPasswordRecords","namespace":"Minn\\Runtime","kind":"final class","lines":103,"band":"101–200","usedBy":3,"summary":"A user's application passwords as WordPress's API keeps them (WP_Application_Passwords), over the engine's store (Minn\\Auth\\ApplicationPasswords, the reference's format): made, found, renamed, used, removed one by one or all together, with the reference's answers and actions.","path":"/api/runtime/applicationpasswordrecords/"},{"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":2,"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":42,"band":"26–50","usedBy":1,"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":"AssetQueue","namespace":"Minn\\Runtime","kind":"final class","lines":201,"band":"201–400","usedBy":6,"summary":"The scripts and styles a request queues, as WordPress's asset functions queue them: each kind's registry kept for the request, a handle queued (with the notice for one queued before init), and a script's element, from a file or inline, through the attribute filters.","path":"/api/runtime/assetqueue/"},{"name":"AssetView","namespace":"Minn\\Runtime","kind":"final class","lines":101,"band":"101–200","usedBy":0,"summary":"A registry's view in the shape plugins read and edit it: the public arrays of WordPress's dependency classes ($wp_scripts->registered, ->queue, ->done), kept current from Runtime\\Assets one handle at a time.","path":"/api/runtime/assetview/"},{"name":"Assets","namespace":"Minn\\Runtime","kind":"final class","lines":453,"band":"401+","usedBy":7,"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":"AttachmentImages","namespace":"Minn\\Runtime","kind":"final class","lines":475,"band":"401+","usedBy":8,"summary":"An attachment's image as WordPress's media functions make it: the registered sizes, a size fitted to a box, the file for a size (or an icon), the srcset and sizes pair, the loading attributes an image earns where it sits, the img element itself, and the site icon.","path":"/api/runtime/attachmentimages/"},{"name":"AttachmentModel","namespace":"Minn\\Runtime","kind":"final class","lines":96,"band":"51–100","usedBy":0,"summary":"An attachment as the media modal's scripts read it (wp_prepare_attachment_for_js): its fields, its file and its sizes, and what the visitor may do with it.","path":"/api/runtime/attachmentmodel/"},{"name":"Attachments","namespace":"Minn\\Runtime","kind":"final class","lines":266,"band":"201–400","usedBy":14,"summary":"Attachments as WordPress's media functions keep them: the uploads folder and its address, an attachment's file (stored relative to the folder), its address and metadata, and what kind of file it is; each as its filter leaves it.","path":"/api/runtime/attachments/"},{"name":"Autosaves","namespace":"Minn\\Runtime","kind":"final class","lines":71,"band":"51–100","usedBy":2,"summary":"An autosave as the reference's REST autosave makes it (probes rest-autosaves, hook-inputs-2; tests/tools/side-effects.php): the author's own draft is saved in place through wp_update_post; anyone else's post gets the author's one autosave slot, made through wp_insert_post and _wp_put_post_revision, or updated through wp_update_post after wp_creating_autosave.","path":"/api/runtime/autosaves/"},{"name":"AvMetadata","namespace":"Minn\\Runtime","kind":"final class","lines":252,"band":"201–400","usedBy":0,"summary":"An audio or video file's metadata as WordPress's media readers keep it (wp_read_audio_metadata, wp_read_video_metadata; probe media-meta), from the engine's own analysis (Media\\Av): an audio file's stream described whole, a video's size, format and codec with its audio beside, the playing time rounded and as a clock, when it was made, its ID3 tags and cover, each through the reader's filter.","path":"/api/runtime/avmetadata/"},{"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":188,"band":"101–200","usedBy":3,"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":219,"band":"201–400","usedBy":3,"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":138,"band":"101–200","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":"BlockQueries","namespace":"Minn\\Runtime","kind":"final class","lines":62,"band":"51–100","usedBy":2,"summary":"The query arguments the query and comments blocks run, as WordPress's block functions build them from a block's context: a query block's post query, and the comment query a post's comments block shows.","path":"/api/runtime/blockqueries/"},{"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":"BrowserGlobals","namespace":"Minn\\Runtime","kind":"final class","lines":45,"band":"26–50","usedBy":0,"summary":"The browser and web server a request names, as the reference's globals have them from boot ($is_chrome, $is_safari, $is_IE, $is_apache, $is_nginx, …; probe vars-matrix): one browser at most, read from the user agent in the reference's order (Lynx, Edge, Opera, Chrome, Safari, Internet Explorer on a Mac then elsewhere, Gecko, Netscape 4), an iPhone being a mobile Safari; the server from SERVER_SOFTWARE, IIS 7 and up apart.","path":"/api/runtime/browserglobals/"},{"name":"CommentChecks","namespace":"Minn\\Runtime","kind":"final class","lines":297,"band":"201–400","usedBy":8,"summary":"What WordPress checks of a comment before and after it is stored: the lengths the table allows its fields, each field through its pre_comment_ filter, the status a stored comment has in words, and whether a new post of a type starts open to comments or pings.","path":"/api/runtime/commentchecks/"},{"name":"CommentCloser","namespace":"Minn\\Runtime","kind":"final readonly class","lines":31,"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":259,"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":1,"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":115,"band":"101–200","usedBy":1,"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":1,"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":131,"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":"CommentReads","namespace":"Minn\\Runtime","kind":"final class","lines":49,"band":"26–50","usedBy":4,"summary":"What WordPress's comment functions tell about comments: the comments a query finds, how many a post or the site has in each status, and when an approved comment last arrived.","path":"/api/runtime/commentreads/"},{"name":"CommentTags","namespace":"Minn\\Runtime","kind":"final class","lines":60,"band":"51–100","usedBy":4,"summary":"What the comment template tags tell about a comment (the one being read when none is named): when it was written and its author's address, each through the filter plugins hook there.","path":"/api/runtime/commenttags/"},{"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":"CommentWrites","namespace":"Minn\\Runtime","kind":"final class","lines":364,"band":"201–400","usedBy":5,"summary":"Comments written as WordPress's comment functions write them: a comment stored and changed, its status set (to the trash or spam with the status it had kept aside, and back), deleted, and a post's count of approved comments kept; each step with the actions and filters the reference fires in its order, and the cached rows let go.","path":"/api/runtime/commentwrites/"},{"name":"Connectors","namespace":"Minn\\Runtime","kind":"final class","lines":221,"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":115,"band":"101–200","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":"CronEvents","namespace":"Minn\\Runtime","kind":"final class","lines":297,"band":"201–400","usedBy":6,"summary":"Scheduled events as WordPress keeps them in the cron option: the list read (an old one upgraded) and stored, the schedules, single and recurring events added (a near duplicate refused), rescheduled, removed one by one, by hook or by arguments, looked up, and the due ones run; each step with the filters that may answer first.","path":"/api/runtime/cronevents/"},{"name":"CronTable","namespace":"Minn\\Runtime","kind":"final class","lines":133,"band":"101–200","usedBy":3,"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":19,"band":"1–25","usedBy":15,"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":127,"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":"DebugMode","namespace":"Minn\\Runtime","kind":"final class","lines":104,"band":"101–200","usedBy":3,"summary":"PHP's error settings from the debug constants, as the reference's boot sets them (wp_debug_mode(); contracts/fixtures/debug-mode.json holds the oracle's answer for each combination, and the unit suite replays it).","path":"/api/runtime/debugmode/"},{"name":"Deferrals","namespace":"Minn\\Runtime","kind":"final class","lines":66,"band":"51–100","usedBy":3,"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":"DeprecatedUserMeta","namespace":"Minn\\Runtime","kind":"final class","lines":79,"band":"51–100","usedBy":0,"summary":"update_usermeta() and delete_usermeta(), deprecated since 3.0.0 and kept for the plugins that still call them (probes hook-inputs, nav-pomo-rest-doubts): they work on every row of a key, and their actions name the key's first row and carry the value as stored.","path":"/api/runtime/deprecatedusermeta/"},{"name":"DieInput","namespace":"Minn\\Runtime","kind":"final class","lines":34,"band":"26–50","usedBy":0,"summary":"wp_die's message, title and arguments made whole, as the die handlers read them on the reference (probes functions-remaining, functions-formatting-doubts): an error's first message is the message and every other one, each with its code's data, an additional error; the first error's status is the response unless the caller names one, and of its data only wp_die's own arguments carry over; the caller's code wins over the error's.","path":"/api/runtime/dieinput/"},{"name":"DocumentTitle","namespace":"Minn\\Runtime","kind":"final class","lines":106,"band":"101–200","usedBy":1,"summary":"The page's title as WordPress's title functions make it from the main query: the document title and its parts (what is shown, the page number, the site or its tagline), and the title tags of a post type archive, a term archive and a single post, printed or returned.","path":"/api/runtime/documenttitle/"},{"name":"EarlyFilters","namespace":"Minn\\Runtime","kind":"final class","lines":20,"band":"1–25","usedBy":2,"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":"EarlyRequest","namespace":"Minn\\Runtime","kind":"final class","lines":50,"band":"26–50","usedBy":1,"summary":"The request as WordPress's earliest functions see it, before the runtime is up: a page cache's advanced-cache.php runs then, as the reference runs it, ahead of the database, the options and the plugins.","path":"/api/runtime/earlyrequest/"},{"name":"EditLinks","namespace":"Minn\\Runtime","kind":"final class","lines":99,"band":"51–100","usedBy":2,"summary":"The admin addresses WordPress's link functions give for editing: a post, a term, a user and one's own profile (null or empty for someone who may not), a user's dashboard, and a post's short link; each as its filter leaves it.","path":"/api/runtime/editlinks/"},{"name":"FileHeaders","namespace":"Minn\\Runtime","kind":"final class","lines":30,"band":"26–50","usedBy":5,"summary":"The headers at the top of a theme, plugin or translation file, as WordPress's get_file_data reads them: the first eight kilobytes, each header by its label (the extra ones extra_{context}_headers adds first).","path":"/api/runtime/fileheaders/"},{"name":"FileNames","namespace":"Minn\\Runtime","kind":"final class","lines":119,"band":"101–200","usedBy":2,"summary":"Files as WordPress's file functions name and remove them: a name made safe to store, a name no file in the folder has, a file's type from its content as much as its name, and a file deleted (only inside the folder it should be in).","path":"/api/runtime/filenames/"},{"name":"FileTypeCheck","namespace":"Minn\\Runtime","kind":"final class","lines":77,"band":"51–100","usedBy":1,"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":106,"band":"101–200","usedBy":2,"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":"Handoff","namespace":"Minn\\Runtime","kind":"final class","lines":554,"band":"401+","usedBy":142,"summary":"What the engine asks of the layer it runs under, where a plugin may have the last word.","path":"/api/runtime/handoff/"},{"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":426,"band":"401+","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":534,"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":"KsesRules","namespace":"Minn\\Runtime","kind":"final class","lines":114,"band":"101–200","usedBy":10,"summary":"The HTML WordPress's kses functions let through: the elements and attributes allowed in a context (data/kses.json, as wp_kses_allowed_html leaves them), content filtered to them, one attribute judged, and the null bytes taken out.","path":"/api/runtime/ksesrules/"},{"name":"LegacyPack","namespace":"Minn\\Runtime","kind":"final class","lines":310,"band":"201–400","usedBy":6,"summary":"WordPress's own browser files, for the plugins whose screens are built on them: a page builder's editor loads WordPress's media library, its classic editor and the libraries under them, by the addresses WordPress serves them from (/wp-includes/js/..., /wp-admin/css/...), and some of that code names those addresses itself.","path":"/api/runtime/legacypack/"},{"name":"MainQuery","namespace":"Minn\\Runtime","kind":"final class","lines":23,"band":"1–25","usedBy":20,"summary":"The query the request answers ($wp_query), as WordPress keeps it: the main query ($wp_the_query) unless a plugin swapped in another, an empty one made when there is none yet.","path":"/api/runtime/mainquery/"},{"name":"MenuEvents","namespace":"Minn\\Runtime","kind":"final readonly class","lines":257,"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":2,"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":244,"band":"201–400","usedBy":5,"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":"MetaData","namespace":"Minn\\Runtime","kind":"final class","lines":401,"band":"401+","usedBy":25,"summary":"Metadata as WordPress's meta functions read and write it, for posts, terms, comments, users and any type a plugin's table names: read through get_{type}_metadata and the object cache (a value its default when unset), written and removed with the filters that may answer first and the actions around each change (post meta also told as postmeta), values sanitized and stored serialized.","path":"/api/runtime/metadata/"},{"name":"MetaKeys","namespace":"Minn\\Runtime","kind":"final class","lines":187,"band":"101–200","usedBy":3,"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":2,"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":133,"band":"101–200","usedBy":5,"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":161,"band":"101–200","usedBy":2,"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":"NavigationFallback","namespace":"Minn\\Runtime","kind":"final class","lines":104,"band":"101–200","usedBy":0,"summary":"The navigation menu a navigation block falls back to (WP_Navigation_Fallback, and the block_core_navigation_* helpers the reference keeps as deprecated): the newest published navigation menu, else one made from the site's classic menu, else a default listing the pages (probes navigation-fallback, nav-pomo-rest-doubts).","path":"/api/runtime/navigationfallback/"},{"name":"Notices","namespace":"Minn\\Runtime","kind":"final class","lines":96,"band":"51–100","usedBy":17,"summary":"The debugging notices plugins and the engine raise: a deprecated function, argument, hook, file, class or constructor, and a function called incorrectly.","path":"/api/runtime/notices/"},{"name":"OEmbed","namespace":"Minn\\Runtime","kind":"final class","lines":131,"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":1,"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":"OptionLock","namespace":"Minn\\Runtime","kind":"final class","lines":23,"band":"1–25","usedBy":2,"summary":"A lock the reference keeps as an option row (the revision upgrade's \"revision-upgrade-{id}\", the comment type batch's \"update_comment_type.lock\"; tests/tools/side-effects.php): inserted only when no row holds the name, its value the time it was taken; one held for less than an hour keeps others out, an older one is taken over.","path":"/api/runtime/optionlock/"},{"name":"OptionSanitizer","namespace":"Minn\\Runtime","kind":"final class","lines":114,"band":"101–200","usedBy":1,"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":"OptionWrites","namespace":"Minn\\Runtime","kind":"final class","lines":133,"band":"101–200","usedBy":17,"summary":"Options written the way add_option(), update_option() and delete_option() write them: the name trimmed, alloptions and notoptions stopped, the guarded ones refused, the value sanitized, and each change heard before and after by the actions plugins hook.","path":"/api/runtime/optionwrites/"},{"name":"Options","namespace":"Minn\\Runtime","kind":"final class","lines":530,"band":"401+","usedBy":11,"summary":"Options as plugin code sees them, kept where the reference keeps them: wp_cache's options group (OptionsGroup) holds the autoloaded list, the names known unset, and a key per option not autoloaded, so a plugin that reads, writes or drops those keys is heard. get_option() and wp_load_alloptions() pass the list through pre_wp_load_alloptions and alloptions.","path":"/api/runtime/options/"},{"name":"OptionsGroup","namespace":"Minn\\Runtime","kind":"final class","lines":57,"band":"51–100","usedBy":1,"summary":"wp_cache's options group, where option reads are kept as the reference keeps them: the autoloaded list under alloptions, the names a read found unset under notoptions, and one key per option not autoloaded.","path":"/api/runtime/optionsgroup/"},{"name":"OutputFloor","namespace":"Minn\\Runtime","kind":"final class","lines":23,"band":"1–25","usedBy":4,"summary":"The output buffers the engine reads its pages from.","path":"/api/runtime/outputfloor/"},{"name":"Pages","namespace":"Minn\\Runtime","kind":"final class","lines":136,"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":37,"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":1,"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":70,"band":"51–100","usedBy":2,"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":"PluginCall","namespace":"Minn\\Runtime","kind":"final class","lines":12,"band":"1–25","usedBy":11,"summary":"Calls code a plugin, theme or drop-in registered (a hook callback, a shortcode, a widget, a REST permission or field callback), as WordPress calls it.","path":"/api/runtime/plugincall/"},{"name":"PluginFiles","namespace":"Minn\\Runtime","kind":"final class","lines":122,"band":"101–200","usedBy":3,"summary":"A plugin's files as WordPress's plugin functions know them: where a plugin folder really is (a symlinked one noted), a plugin file's name under the plugins folder, its headers as read and as the plugin screens show them, and whether it can be uninstalled.","path":"/api/runtime/pluginfiles/"},{"name":"PluginRemoval","namespace":"Minn\\Runtime","kind":"final class","lines":140,"band":"101–200","usedBy":1,"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":270,"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":"PostCaches","namespace":"Minn\\Runtime","kind":"final class","lines":27,"band":"26–50","usedBy":4,"summary":"A post's cached rows let go as WordPress lets them go: its row, its meta and the terms read with it, then plugins told (a page told twice); held back while cache invalidation is suspended.","path":"/api/runtime/postcaches/"},{"name":"PostData","namespace":"Minn\\Runtime","kind":"final class","lines":98,"band":"51–100","usedBy":2,"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":165,"band":"101–200","usedBy":7,"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":"PostFields","namespace":"Minn\\Runtime","kind":"final class","lines":89,"band":"51–100","usedBy":2,"summary":"A post's fields put in a context as WordPress's sanitize_post_field puts them: raw as stored; for the database through the pre_ filters; for editing through the edit_ filters and made safe for a form; for display through the field's own filter, escaped for an attribute or a script when asked.","path":"/api/runtime/postfields/"},{"name":"PostInsert","namespace":"Minn\\Runtime","kind":"final readonly class","lines":213,"band":"201–400","usedBy":1,"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":223,"band":"201–400","usedBy":16,"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":"PostLocks","namespace":"Minn\\Runtime","kind":"final class","lines":24,"band":"1–25","usedBy":1,"summary":"A post's edit lock (_edit_lock, \"time:user\"): who holds it while it is fresh, for the editor and the autosave that must not write under it.","path":"/api/runtime/postlocks/"},{"name":"PostLookup","namespace":"Minn\\Runtime","kind":"final readonly class","lines":153,"band":"101–200","usedBy":3,"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":425,"band":"401+","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":113,"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":264,"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":"PostReads","namespace":"Minn\\Runtime","kind":"final class","lines":357,"band":"201–400","usedBy":22,"summary":"What WordPress's post functions tell about posts: a page's path and a page by its path, a post's type, status and fields, whether it can be viewed, when posts last changed, posts by query arguments and a post's children and categories, the SQL that limits a query to what an author may read, and the caches primed for a list of posts.","path":"/api/runtime/postreads/"},{"name":"PostRevisions","namespace":"Minn\\Runtime","kind":"final class","lines":231,"band":"201–400","usedBy":2,"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":230,"band":"201–400","usedBy":2,"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":"PostTags","namespace":"Minn\\Runtime","kind":"final class","lines":216,"band":"201–400","usedBy":14,"summary":"What the post template tags tell about a post (the one being read when none is named): its id and title, whether a password stands before it, whether comments and pings are open, how many comments it has, and its featured image; each through the filter plugins hook there.","path":"/api/runtime/posttags/"},{"name":"PostWrites","namespace":"Minn\\Runtime","kind":"final class","lines":573,"band":"401+","usedBy":14,"summary":"Posts written as WordPress's post functions write them: a post stored and changed (its columns through their filters, then its terms, meta and template), published, sent to the trash and back, deleted with what hangs off it, its terms and categories set, made sticky or not; each step with the actions the reference fires in its order, and the cached rows let go.","path":"/api/runtime/postwrites/"},{"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":"QueryAnswers","namespace":"Minn\\Runtime","kind":"final class","lines":23,"band":"1–25","usedBy":5,"summary":"Answers for queries the engine writes itself and already knows the result of, from what it has read once this request: a template part's lookup from the theme's saved templates, the theme's term from the same read.","path":"/api/runtime/queryanswers/"},{"name":"QueryArgs","namespace":"Minn\\Runtime","kind":"final class","lines":78,"band":"51–100","usedBy":12,"summary":"Query arguments added to and taken from an address the way WordPress's add_query_arg() and remove_query_arg() do, the current request's address when none is given, and an action's nonce added to one.","path":"/api/runtime/queryargs/"},{"name":"QueryFlags","namespace":"Minn\\Runtime","kind":"final readonly class","lines":202,"band":"201–400","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":"RecipientLocale","namespace":"Minn\\Runtime","kind":"final class","lines":30,"band":"26–50","usedBy":2,"summary":"An email written in its reader's language, as the reference writes each: the send run inside switch_to_user_locale for the account it goes to (the site's locale when the address belongs to none) and the locale restored after.","path":"/api/runtime/recipientlocale/"},{"name":"Records","namespace":"Minn\\Runtime","kind":"final class","lines":140,"band":"101–200","usedBy":64,"summary":"Posts, terms and comments as WordPress hands them to plugins: found by id (or the one being read), made from a row or an object, and given back as the object, an associative array (ARRAY_A) or a list (ARRAY_N); and whether a value is a list of errors.","path":"/api/runtime/records/"},{"name":"Recovery","namespace":"Minn\\Runtime","kind":"final readonly class","lines":241,"band":"201–400","usedBy":5,"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":21,"summary":"A refused operation, the way plugin code expects to read it: a code, a message, optional data.","path":"/api/runtime/refusal/"},{"name":"Registered","namespace":"Minn\\Runtime","kind":"final class","lines":188,"band":"101–200","usedBy":59,"summary":"What is registered, looked up the way WordPress's lookups answer: post types, post statuses and taxonomies by name, or listed by their flags (as names or the objects); whether one exists, is hierarchical or viewable; and the features a post type supports.","path":"/api/runtime/registered/"},{"name":"RegisteredSettings","namespace":"Minn\\Runtime","kind":"final class","lines":108,"band":"101–200","usedBy":2,"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":523,"band":"401+","usedBy":6,"summary":"Post types, taxonomies, and statuses as plugin code registers and reads them.","path":"/api/runtime/registry/"},{"name":"RequestHeaders","namespace":"Minn\\Runtime","kind":"final class","lines":106,"band":"101–200","usedBy":6,"summary":"What WordPress's request functions say and send: the protocol the request came over, a status line and the no-cache headers sent as plugin code sends them, the origin a request names and whether it is allowed, and whether the browser is a phone's.","path":"/api/runtime/requestheaders/"},{"name":"RewriteRules","namespace":"Minn\\Runtime","kind":"final class","lines":390,"band":"201–400","usedBy":3,"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":"RewriteStructs","namespace":"Minn\\Runtime","kind":"final class","lines":113,"band":"101–200","usedBy":0,"summary":"The rewrite object's state and the structures it builds links and rules from (probe db-mail-rewrite-doubts): init reads the permalink structure and clears the bottom, external and endpoint rules while the top rules stay; each structure (date, author, search, page, feed, comment feed) is the one already set on the object when there is one, else made once and kept; year and month come from the date structure with its empty steps folded; a removed tag leaves its place empty.","path":"/api/runtime/rewritestructs/"},{"name":"Runtime","namespace":"Minn\\Runtime","kind":"final class","lines":484,"band":"401+","usedBy":272,"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":"SafeUrls","namespace":"Minn\\Runtime","kind":"final class","lines":22,"band":"1–25","usedBy":1,"summary":"Whether an address is one the site may fetch (wp_http_validate_url): an http or https address that survives the protocol check unchanged, whose host is not a private or reserved one unless it is the site's own or http_request_host_is_external lets it through, on a safe port (http_allowed_safe_ports).","path":"/api/runtime/safeurls/"},{"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":393,"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":2,"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":333,"band":"201–400","usedBy":2,"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":"SiteInfo","namespace":"Minn\\Runtime","kind":"final class","lines":63,"band":"51–100","usedBy":9,"summary":"What WordPress tells about the site (get_bloginfo): its name and tagline, its addresses and feeds', the theme's stylesheet and folders, the admin address, the charset and content type, the version, the language and its direction; and a feed's address.","path":"/api/runtime/siteinfo/"},{"name":"SiteOptions","namespace":"Minn\\Runtime","kind":"final class","lines":76,"band":"51–100","usedBy":2,"summary":"The network's options, as a single site keeps them: options stored not to autoload, with the network layer's own hooks around them, told the network asked for (the current one, 1, when none is).","path":"/api/runtime/siteoptions/"},{"name":"SiteTime","namespace":"Minn\\Runtime","kind":"final class","lines":90,"band":"51–100","usedBy":14,"summary":"Time as the site keeps it: its timezone (the named one, else the UTC offset), now in that zone or in UTC, a moment written in the site's language, and a stored date read back in a format.","path":"/api/runtime/sitetime/"},{"name":"SiteUrls","namespace":"Minn\\Runtime","kind":"final class","lines":142,"band":"101–200","usedBy":27,"summary":"The site's own addresses as WordPress builds them: the home and site addresses, the admin's, wp-includes', the sign-in and sign-out pages' (each with its scheme settled and its filter run), whether the request came over HTTPS, the switch that forces the admin onto it, and the trailing slash the permalink structure asks for.","path":"/api/runtime/siteurls/"},{"name":"StoredObjects","namespace":"Minn\\Runtime","kind":"final class","lines":140,"band":"101–200","usedBy":4,"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":196,"band":"101–200","usedBy":2,"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":524,"band":"401+","usedBy":3,"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":152,"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":"TaxTerms","namespace":"Minn\\Runtime","kind":"final class","lines":97,"band":"51–100","usedBy":0,"summary":"The terms a taxonomy query's clause names, found as the reference finds them (probe tax-terms).","path":"/api/runtime/taxterms/"},{"name":"TemplateFiles","namespace":"Minn\\Runtime","kind":"final class","lines":254,"band":"201–400","usedBy":5,"summary":"The theme templates WordPress's template functions name: the index and embed templates found through the hierarchy, the slugs a block template stands for, the template types and part areas core knows, and a block template made from the theme's file or from a saved post, as the reference makes one (probe template-part-lookup): the theme's names and folders read on the way, the area a theme declares checked against the areas core knows, and the markup passed through the block hooks.","path":"/api/runtime/templatefiles/"},{"name":"TermEvents","namespace":"Minn\\Runtime","kind":"final readonly class","lines":112,"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":5,"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":"TermLookup","namespace":"Minn\\Runtime","kind":"final class","lines":438,"band":"401+","usedBy":16,"summary":"Terms looked up as WordPress's taxonomy functions find them: a list by query arguments, one by a field, whether one exists, a taxonomy's hierarchy, an object's terms, a term's address and one of its fields, its children and ancestors, how many there are, and the caches cleaned after a change; each with the filters plugins hook there.","path":"/api/runtime/termlookup/"},{"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":382,"band":"201–400","usedBy":5,"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":299,"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":147,"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":207,"band":"201–400","usedBy":1,"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":"TermTags","namespace":"Minn\\Runtime","kind":"final class","lines":364,"band":"201–400","usedBy":4,"summary":"What WordPress's template tags tell about a post's terms: its terms of a taxonomy (as a list primed them, else read), its categories with their old field names, its tags, its format, and a category's address and the chain of its parents.","path":"/api/runtime/termtags/"},{"name":"TermWriter","namespace":"Minn\\Runtime","kind":"final readonly class","lines":176,"band":"101–200","usedBy":1,"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":"TermWrites","namespace":"Minn\\Runtime","kind":"final class","lines":335,"band":"201–400","usedBy":7,"summary":"Terms written as WordPress's taxonomy functions write them: a term made, changed and deleted (its children moved up and its default kept), a slug no other term holds, an object's terms set, and the terms' counts kept through the taxonomy's own callback; each step with the actions the reference fires in its order.","path":"/api/runtime/termwrites/"},{"name":"ThemeMods","namespace":"Minn\\Runtime","kind":"final class","lines":57,"band":"51–100","usedBy":5,"summary":"The active theme's settings (theme_mods_{stylesheet}) as WordPress keeps them: read through theme_mod_{name}, a default with %s naming the theme's folders, written through pre_set_theme_mod_{name}, and removed one by one or all at once.","path":"/api/runtime/thememods/"},{"name":"ThemeSupports","namespace":"Minn\\Runtime","kind":"final class","lines":263,"band":"201–400","usedBy":7,"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":2,"summary":"Switching the theme as the reference does it, in two halves.","path":"/api/runtime/themeswitch/"},{"name":"Themes","namespace":"Minn\\Runtime","kind":"final class","lines":125,"band":"101–200","usedBy":11,"summary":"The site's themes as WordPress names and finds them: the active stylesheet and template (as their filters leave them), the themes root on disk and its address, each active theme's folder and its address, a theme by its folder, every installed theme, and the extra roots plugins register.","path":"/api/runtime/themes/"},{"name":"TimeSince","namespace":"Minn\\Runtime","kind":"final class","lines":12,"band":"1–25","usedBy":1,"summary":"How long ago something was, as human_time_diff words it: the span between two times in its largest whole unit (\"3 days\"), through human_time_diff.","path":"/api/runtime/timesince/"},{"name":"Transients","namespace":"Minn\\Runtime","kind":"final class","lines":142,"band":"101–200","usedBy":5,"summary":"Values kept for a while, as WordPress keeps them in options: the site's transients (_transient_{name}, with _transient_timeout_{name} when they expire) and the network's (_site_transient_{name}), each read, set and removed through the filters and actions plugins hook.","path":"/api/runtime/transients/"},{"name":"Translations","namespace":"Minn\\Runtime","kind":"final class","lines":174,"band":"101–200","usedBy":10,"summary":"The translations a request loads, as WordPress's l10n functions load them: the locale in force, a text domain loaded from its file (or its folder named for later) and unloaded, the default domain, a plugin's, a user's locale, and the translations installed on disk; each step with the filters that may answer first.","path":"/api/runtime/translations/"},{"name":"TreeWalk","namespace":"Minn\\Runtime","kind":"final class","lines":182,"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":"TypeProps","namespace":"Minn\\Runtime","kind":"final class","lines":152,"band":"101–200","usedBy":0,"summary":"A post type's or taxonomy's properties from the arguments it was built with, as WP_Post_Type::set_props and WP_Taxonomy::set_props fill them (probe type-object-methods): the reference's defaults where an argument is missing, a given value kept as given.","path":"/api/runtime/typeprops/"},{"name":"UpdateCounts","namespace":"Minn\\Runtime","kind":"final class","lines":67,"band":"51–100","usedBy":1,"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":390,"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":"UserCounts","namespace":"Minn\\Runtime","kind":"final class","lines":75,"band":"51–100","usedBy":0,"summary":"The user counts WordPress's user functions give: how many users hold each role (count_users), and how many posts several users wrote (count_many_users_posts), as the reference was measured counting them (probes user-remaining, taxonomy-blocks-user-doubts).","path":"/api/runtime/usercounts/"},{"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":118,"band":"101–200","usedBy":1,"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":232,"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":74,"band":"51–100","usedBy":1,"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":"UserStylesPost","namespace":"Minn\\Runtime","kind":"final class","lines":51,"band":"51–100","usedBy":1,"summary":"A theme's user styles post as WordPress's theme.json resolver finds and makes it (probe global-styles-lookup): the newest wp_global_styles post tied to the theme by its wp_theme term, through WP_Query (so plugins hear the query and may steer it), made when asked and missing.","path":"/api/runtime/userstylespost/"},{"name":"UserWrites","namespace":"Minn\\Runtime","kind":"final class","lines":372,"band":"201–400","usedBy":7,"summary":"Accounts written as WordPress's user functions write them: an account made, changed (its row, profile meta and role, with the notices a changed password or email sends) and deleted (its posts deleted or handed on), a reset key issued, the lookups that guard a new account, and the cached rows let go; each step with the actions and filters the reference fires in its order.","path":"/api/runtime/userwrites/"},{"name":"VersionCheck","namespace":"Minn\\Runtime","kind":"final class","lines":27,"band":"26–50","usedBy":1,"summary":"Whether the WordPress version Minn reports and the PHP it runs on meet a requirement (a plugin's \"Requires at least\" and \"Requires PHP\"), and where to read about updating PHP.","path":"/api/runtime/versioncheck/"},{"name":"WidgetAreas","namespace":"Minn\\Runtime","kind":"final class","lines":331,"band":"201–400","usedBy":4,"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; the stored sidebars read and written, and which are registered.","path":"/api/runtime/widgetareas/"},{"name":"WpdbFields","namespace":"Minn\\Runtime","kind":"final class","lines":404,"band":"401+","usedBy":1,"summary":"The database object's writers and the charset work behind them (probe db-mail-rewrite-doubts): an insert, replace, update or delete prepares one statement holding every value (a null written as NULL in it), and an insert or replace starts with insert_id at 0; the fields are checked against their columns, every field that would not fit named in the error; a table's columns are kept as the server's rows; a table that cannot be read gives the charset failure; text in a charset other than UTF-8, latin1 or binary is converted by the server; and check_safe_collation passes ASCII, the statements that read no rows, latin1 tables and tables whose text columns use only a binary or general UTF-8 collation.","path":"/api/runtime/wpdbfields/"},{"name":"WpdbReads","namespace":"Minn\\Runtime","kind":"final class","lines":221,"band":"201–400","usedBy":0,"summary":"What the database object plugins hold as $wpdb does when it runs and reads (probe db-mail-rewrite-doubts): a query is heard by the query filter while the last one's state is still there, and is not run at all while the object is not ready; the readers ask check_safe_collation before running one, give null for an empty value, and give nothing when asked to read without a query (get_row, get_results) or in an output they do not know; prepare's notices; and print_error, which keeps every error in $EZSQL_ERROR and logs it with its caller.","path":"/api/runtime/wpdbreads/"},{"name":"WpdbSetup","namespace":"Minn\\Runtime","kind":"final class","lines":135,"band":"101–200","usedBy":0,"summary":"How the database object plugins hold as $wpdb is set up (probe db-mail-rewrite-doubts): it connects through its own db_connect, which sets the connection's names with prepare; set_prefix answers with the prefix it had, names the old tables too, and with set_table_names off changes only the base prefix; set_blog_id names one site's tables from the base prefix; CUSTOM_USER_TABLE and CUSTOM_USER_META_TABLE name the user tables; set_sql_mode reads the session's modes without a query of its own; a database that cannot be selected leaves the object not ready.","path":"/api/runtime/wpdbsetup/"},{"name":"Accents","namespace":"Minn\\Support","kind":"final class","lines":35,"band":"26–50","usedBy":3,"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":"ByteSize","namespace":"Minn\\Support","kind":"final class","lines":18,"band":"1–25","usedBy":1,"summary":"A count of bytes as a person reads it (size_format): in the largest unit it reaches, from bytes to exabytes in steps of 1024, the number written for the site's locale.","path":"/api/support/bytesize/"},{"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":3,"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":89,"band":"51–100","usedBy":7,"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":128,"band":"101–200","usedBy":43,"summary":"Text made safe the way WordPress's escapers make it, each ending in the filter plugins hook there, handed the result and the original: for HTML (esc_html, esc_attr) invalid UTF-8 emptied, entities already present normalised rather than encoded again, the specials and both quotes encoded; for a textarea, everything encoded; for an inline script, a single-quoted string's specials; and an address (esc_url) cleaned, its protocol checked against the allowed ones.","path":"/api/support/escape/"},{"name":"FileHeaders","namespace":"Minn\\Support","kind":"final class","lines":27,"band":"26–50","usedBy":12,"summary":"Header values from a plugin or theme file.","path":"/api/support/fileheaders/"},{"name":"FileTree","namespace":"Minn\\Support","kind":"final class","lines":146,"band":"101–200","usedBy":1,"summary":"Whole-directory reads and copies.","path":"/api/support/filetree/"},{"name":"Files","namespace":"Minn\\Support","kind":"final class","lines":66,"band":"51–100","usedBy":8,"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":579,"band":"401+","usedBy":20,"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":2,"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":4,"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":6,"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":3,"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":"KsesProtocols","namespace":"Minn\\Support","kind":"final class","lines":67,"band":"51–100","usedBy":3,"summary":"The protocols an address may use, as kses judges them: the site's list (kses_allowed_protocols), and an address with a protocol not on the list taken off it, encoded colons and entity-spelled protocols seen through.","path":"/api/support/ksesprotocols/"},{"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":201,"band":"201–400","usedBy":30,"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":2,"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":95,"band":"51–100","usedBy":4,"summary":"File-system path and permission spellings, and whether a path is safe to use.","path":"/api/support/paths/"},{"name":"Sanitize","namespace":"Minn\\Support","kind":"final class","lines":92,"band":"51–100","usedBy":34,"summary":"Text made fit to store the way WordPress's sanitizers make it, each ending in the filter plugins hook there, handed the result and what was given: a title (accents gone when saving), a key, a line of plain text, a user name, an email address and the check of one.","path":"/api/support/sanitize/"},{"name":"ScriptTag","namespace":"Minn\\Support","kind":"final class","lines":69,"band":"51–100","usedBy":1,"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":403,"band":"401+","usedBy":34,"summary":"Tolerant readers for the serialized-PHP blobs WordPress stores.","path":"/api/support/serialized/"},{"name":"Signatures","namespace":"Minn\\Support","kind":"final class","lines":34,"band":"26–50","usedBy":0,"summary":"A file checked against detached Ed25519 signatures of its SHA-384 hash, as verify_file_signature checks it: a signature that does not decode to the signature length is skipped, and for each one that does, every key that does not decode to the key length is skipped too; the counts and the hash are what the caller reports when nothing verifies.","path":"/api/support/signatures/"},{"name":"Slashes","namespace":"Minn\\Support","kind":"final class","lines":32,"band":"26–50","usedBy":25,"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":"Sprintf","namespace":"Minn\\Support","kind":"final class","lines":46,"band":"26–50","usedBy":1,"summary":"A pattern filled one fragment at a time, as wp_sprintf fills it: \"%%\" is a percent sign, each other fragment (a directive and the text up to the next one) takes the next argument or the one its position names, and $filter may write a fragment itself (the wp_sprintf filter: the list directive %l lives there); otherwise PHP's sprintf fills it, an array as nothing, and a fragment it cannot fill stays as written.","path":"/api/support/sprintf/"},{"name":"SqlTable","namespace":"Minn\\Support","kind":"final class","lines":63,"band":"51–100","usedBy":1,"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":"Text","namespace":"Minn\\Support","kind":"final class","lines":69,"band":"51–100","usedBy":13,"summary":"Plain text shaped the way WordPress's formatting helpers shape it: cut to a number of words or characters, named references written as numeric ones, stray ampersands encoded, whitespace normalized, a path's last part, and a callback run over every value of a nested structure.","path":"/api/support/text/"},{"name":"Time","namespace":"Minn\\Support","kind":"final class","lines":21,"band":"1–25","usedBy":1,"summary":"Human-scale spans: a number of seconds as the largest whole unit it fills, rounded, never below one.","path":"/api/support/time/"},{"name":"TimezoneChoice","namespace":"Minn\\Support","kind":"final class","lines":109,"band":"101–200","usedBy":0,"summary":"The timezone choices a settings form offers (wp_timezone_choice, probe placeholder-helpers): the zones of each continent, cities in natural order (a zone with three parts reads \"City - Sub-city\"), then UTC, then the offsets set by hand. \"Select a city\" leads when nothing is chosen, and a real zone outside the list (an old name, Etc/) leads when it is the one chosen.","path":"/api/support/timezonechoice/"},{"name":"Url","namespace":"Minn\\Support","kind":"final class","lines":271,"band":"201–400","usedBy":13,"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":182,"band":"101–200","usedBy":3,"summary":"UTF-8 as the reference reads it.","path":"/api/support/utf8/"},{"name":"ArchiveTitle","namespace":"Minn\\Theme","kind":"final class","lines":55,"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":44,"band":"26–50","usedBy":1,"summary":"What a classic theme's the_content() prints: the content as written (the more-tag teaser in listings, the password gate's form in its place) through the_content, the engine's block renderer in do_blocks's place for block content and core's own defaults for classic content, so plugin code is handed what the reference hands it, in the same hook order.","path":"/api/theme/classiccontent/"},{"name":"ClassicRenderer","namespace":"Minn\\Theme","kind":"final readonly class","lines":125,"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":2,"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":"FeatureSelectors","namespace":"Minn\\Theme","kind":"final class","lines":33,"band":"26–50","usedBy":0,"summary":"A block's styles split between the selectors its metadata gives its features (probe theme-json-css), in the metadata's order: a property with a selector of its own first, then what is left of its feature under the feature's selector.","path":"/api/theme/featureselectors/"},{"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":99,"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":"FontNames","namespace":"Minn\\Theme","kind":"final class","lines":56,"band":"51–100","usedBy":2,"summary":"The font library's names (probes fonts and font-writes): a font-family list as a family stores it, the identity a face is stored under (its title, which the duplicate check compares), and the font types an upload may carry.","path":"/api/theme/fontnames/"},{"name":"FrontLifecycle","namespace":"Minn\\Theme","kind":"final class","lines":111,"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":547,"band":"401+","usedBy":5,"summary":"theme.json to CSS.","path":"/api/theme/globalstyles/"},{"name":"HeadLinks","namespace":"Minn\\Theme","kind":"final readonly class","lines":44,"band":"26–50","usedBy":2,"summary":"The engine's own pieces of a page's head: its block stylesheet link, and for rest_output_link_wp_head the REST discovery link and the JSON alternate for the queried object; the site's feed links as feed_links prints them.","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":136,"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":218,"band":"201–400","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":78,"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":234,"band":"201–400","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":4,"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":128,"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":"SpacingScale","namespace":"Minn\\Theme","kind":"final class","lines":48,"band":"26–50","usedBy":0,"summary":"The spacing sizes a theme.json spacing scale makes (probe theme-json-css): Medium (slug 50) at the medium step; below it, half the other steps rounded down, each divided by (or less) the increment, named Small, X-Small, 2X-Small; above it the rest, multiplied by (or plus) it, named Large, X-Large, 2X-Large; slugs ten apart, values rounded to two places.","path":"/api/theme/spacingscale/"},{"name":"StyleLayers","namespace":"Minn\\Theme","kind":"final class","lines":68,"band":"51–100","usedBy":1,"summary":"What plugins change about the global stylesheet's layers and nodes, for GlobalStyles: core's preset lists when wp_theme_json_data_default changed core's layer, and the style nodes wp_theme_json_get_style_nodes keeps (probe hook-inputs-2).","path":"/api/theme/stylelayers/"},{"name":"StylePresets","namespace":"Minn\\Theme","kind":"final class","lines":160,"band":"101–200","usedBy":4,"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":88,"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":"Teaser","namespace":"Minn\\Theme","kind":"enum","lines":5,"band":"1–25","usedBy":1,"summary":"What a post's full text does with the part before its more tag (the_content's $strip_teaser): kept, or left out so the text starts where the more tag stood.","path":"/api/theme/teaser/"},{"name":"TemplateBuffer","namespace":"Minn\\Theme","kind":"final class","lines":34,"band":"26–50","usedBy":2,"summary":"The reference includes a front-end template inside the template-enhancement buffer: wp_before_include_template fires with the template's file, its default callback opens the buffer when a plugin filters wp_template_enhancement_output_buffer, and that filter is handed the whole page.","path":"/api/theme/templatebuffer/"},{"name":"TemplateHierarchy","namespace":"Minn\\Theme","kind":"final class","lines":75,"band":"51–100","usedBy":1,"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":343,"band":"201–400","usedBy":6,"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, those of one date in the order they were saved), 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":35,"band":"26–50","usedBy":6,"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":125,"band":"101–200","usedBy":2,"summary":"Saving and removing block templates.","path":"/api/theme/templatewriter/"},{"name":"Templates","namespace":"Minn\\Theme","kind":"final readonly class","lines":251,"band":"201–400","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":359,"band":"201–400","usedBy":16,"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":"ThemeHeaders","namespace":"Minn\\Theme","kind":"final class","lines":95,"band":"51–100","usedBy":0,"summary":"A theme's headers as the reference's WP_Theme reads and shows them (probe theme-headers): sanitized as read, in the theme's language, and with markup.","path":"/api/theme/themeheaders/"},{"name":"ThemeJsonData","namespace":"Minn\\Theme","kind":"final class","lines":82,"band":"51–100","usedBy":4,"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, and the core and site editor layers likewise (wp_theme_json_data_default, wp_theme_json_data_user).","path":"/api/theme/themejsondata/"},{"name":"ThemeStyles","namespace":"Minn\\Theme","kind":"final readonly class","lines":169,"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":"TreeStyles","namespace":"Minn\\Theme","kind":"final readonly class","lines":259,"band":"201–400","usedBy":0,"summary":"The CSS one theme.json tree writes, as WP_Theme_JSON keeps the tree (presets keyed by origin): its custom properties, its preset classes, its styles (the root layout, the root, elements, blocks) and its own CSS, by type, origin and option (probe theme-json-css).","path":"/api/theme/treestyles/"},{"name":"Typography","namespace":"Minn\\Theme","kind":"final class","lines":105,"band":"101–200","usedBy":2,"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":109,"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":"TextWidgets","namespace":"Minn\\Widgets","kind":"final class","lines":161,"band":"101–200","usedBy":0,"summary":"The text and custom HTML widgets' behaviour (WP_Widget_Text, WP_Widget_Custom_HTML; probes widget-methods, nav-pomo-rest-doubts): which text instances are legacy ones the visual editor would change, how an update settles the filter and visual flags, and the two widgets' output, their filters run with no global post and a gallery inside belonging to no post.","path":"/api/widgets/textwidgets/"},{"name":"WidgetForms","namespace":"Minn\\Widgets","kind":"final class","lines":203,"band":"201–400","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/"},{"name":"WidgetTemplates","namespace":"Minn\\Widgets","kind":"final class","lines":85,"band":"51–100","usedBy":0,"summary":"The Underscore templates the Text and Custom HTML widgets print for their controls (render_control_template_scripts), as the reference prints them (probe widget-methods): a title field and the content area, the Text widget's two hidden pointers, and, for a user who may not post unfiltered HTML, the note on the tags the code editor refuses.","path":"/api/widgets/widgettemplates/"}]}