{
  "schemaVersion": "1.0.0",
  "title": "PC NET DESK product and technology reference",
  "review": {
    "date": "2026-09-12",
    "version": "3.45",
    "commit": "f6df4373df26107233ea68ea5fe8d780486e3751",
    "repository": "dmcconaughy/pc-net-techs"
  },
  "purpose": "Read-only documentation. This catalog does not grant platform access or execute operations.",
  "urls": {
    "product": "https://glasscityi.com/pcnetdesk",
    "technology": "https://glasscityi.com/pcnetdesk/tech",
    "agentGuide": "https://glasscityi.com/pcnetdesk/agent-guide.txt"
  },
  "configuration": "Reporting is described as connected at the product owner’s direction. Captured screens retain earlier trial or preview labels.",
  "agentInterface": {
    "design": "Created for people and AI agents using defined operations and shared services.",
    "platformOrigin": "https://www.pc-net-techs.com",
    "commandEndpoint": "/api/cc/console",
    "method": "POST",
    "request": {
      "command": "string, at most 500 characters; server truncates longer input"
    },
    "authentication": "Authorized platform member session with applicable passkey, endpoint, command and lock checks. A separate adapter is required for an external agent integration.",
    "response": {
      "ok": "boolean",
      "lines": "string[]",
      "isError": "true means command failure even when HTTP status is 200 and ok is true"
    },
    "verification": [
      "Read current state and obtain record IDs.",
      "Inspect HTTP status, ok, isError and output.",
      "Read affected state after a write.",
      "Inspect state before retrying an ambiguous or timed-out write."
    ],
    "boundaries": [
      "No bundled LLM, MCP server, public API-key agent SDK or autonomous planner in the reviewed source.",
      "Fixed command vocabulary, not a server shell.",
      "Mixed command families require subcommand-level review.",
      "Builder publication writes four snapshots and then a registry record; replacement is not an atomic multi-record transaction.",
      "Resolved style properties include derived outputs; endpoints expose supported subsets.",
      "Scheduled actions are best-effort due work, not exact-second or distributed exactly-once execution."
    ]
  },
  "featureGroups": [
    {
      "features": [
        {
          "how": "The browser desktop launches management apps in movable, resizable windows with a shared launcher, taskbar, and notifications.",
          "name": "PC NET DESK",
          "status": "Workspace",
          "what": "A desktop workspace for website operations, reporting, and everyday work.",
          "why": "Keeps the information and controls for related work visible together."
        },
        {
          "how": "Grouped app shortcuts open windows; controls move, resize, minimize, maximize, close, and snap them. The browser remembers supported window layouts.",
          "name": "App launcher & window controls",
          "status": "Platform feature",
          "what": "Find apps and manage what is on screen.",
          "why": "Lets the operator choose between a focused full-size app and several visible tools."
        },
        {
          "how": "Dedicated settings control the desktop and dashboard separately from the public website. Export, import, and reset tools manage supported workspace records.",
          "name": "Desk & Core Console Settings",
          "status": "Workspace",
          "what": "Manage the operator’s workspace preferences.",
          "why": "Makes the workspace comfortable to use while keeping visitor-facing design decisions separate."
        },
        {
          "how": "The notification tray combines access activity, new leads, detected AI crawler activity, and change-log updates. Selecting an event opens its related app, and a local seen-state distinguishes new activity.",
          "name": "Notifications",
          "status": "Workspace",
          "what": "Review supported workspace and access updates.",
          "why": "Makes changes discoverable while the operator works in other tools."
        },
        {
          "how": "The gallery accepts uploaded media and browser-authorized camera captures, then makes supported images available to the platform’s editing and appearance tools.",
          "name": "Photo Gallery & Camera",
          "status": "Media tools",
          "what": "Capture, upload, and reuse images.",
          "why": "Keeps reusable imagery close to the pages and designs that need it."
        },
        {
          "how": "The library groups reusable files and references by type for discovery and selection.",
          "name": "Asset Library",
          "status": "Media tools",
          "what": "Organize logos, images, icons, and documents.",
          "why": "Gives brand material a consistent home and reduces repeated uploads."
        },
        {
          "how": "An embedded browser view loads destinations that allow embedding, with an external-tab route where available.",
          "name": "Web Browser",
          "status": "Platform feature",
          "what": "Open a website from a contained workspace view.",
          "why": "Keeps reference material close to the work while respecting the destination’s own access and framing rules."
        },
        {
          "name": "Installable website, Console & Desk",
          "what": "Launch the three experiences as separate installed web apps.",
          "how": "Separate web manifests provide stable app identities, icons, start URLs, and standalone presentation for the public website, Core Console, and PC NET DESK. Installation support depends on the browser.",
          "why": "Makes a frequently used workspace easier to find and open from the device.",
          "status": "Workspace",
          "note": "Installation describes the app shell; it does not promise an offline copy of live administrative data."
        },
        {
          "name": "Saved window layouts & preferences",
          "what": "Return to a familiar arrangement of work.",
          "how": "Browser-local storage remembers window positions, sizes, minimized and maximized states, appearance preferences, and notification read state. Layout persistence is separate from shared business records.",
          "why": "Reduces repeated setup while keeping each operator’s device comfortable to use.",
          "status": "Workspace"
        },
        {
          "name": "Mobile workspace behavior",
          "what": "Use the same apps on a smaller screen.",
          "how": "Desk presents apps at full screen on mobile and disables desktop drag, resize, and snapping behavior at that size. Website background and appearance controls also distinguish desktop from mobile.",
          "why": "Preserves usable controls and reading space across devices.",
          "status": "Workspace"
        }
      ],
      "name": "Workspace & everyday tools"
    },
    {
      "features": [
        {
          "how": "Connected reporting supplies headline traffic, inquiry, marketing, and health indicators; detailed modules explain the activity behind the summary.",
          "name": "Owner Summary",
          "status": "Connected reporting",
          "what": "See website performance and operational priorities together.",
          "why": "Provides a useful starting point for deciding what deserves attention."
        },
        {
          "how": "Connected inquiry records bring source, date, contact context, and stage into a reviewable lead view.",
          "name": "Lead Tracking",
          "status": "Connected reporting",
          "what": "Track inquiries, their sources, and their progress.",
          "why": "Shows which channels generate inquiries and what needs follow-up."
        },
        {
          "how": "Connected stage totals compare visits, service-page interest, contact-page activity, and recorded calls or form submissions over the selected period.",
          "name": "Conversion Funnel",
          "status": "Connected reporting",
          "what": "Follow the journey from arrival to inquiry.",
          "why": "Reveals where people progress and where the path needs improvement."
        },
        {
          "how": "The site records page paths, timestamps, referrers, and browser context. The reporting layer groups related visits and enriches network records with available location and organization information.",
          "name": "First-party Analytics",
          "status": "Connected reporting",
          "what": "Review recorded website visits and visitor context.",
          "why": "Makes the site’s own activity available beside the tools used to improve it."
        },
        {
          "how": "Recorded agent activity is classified separately from human referrals; recognizable referrers and campaign information identify supported AI traffic sources.",
          "name": "AI Analytics",
          "note": "A crawler visit shows access; it does not establish that an AI answer recommended the business.",
          "status": "Connected reporting",
          "what": "Track detected AI crawlers and visits referred by AI services.",
          "why": "Shows how machine discovery and AI-driven referrals contribute to site activity."
        },
        {
          "how": "Connected GA4 reports supply users, sessions, engagement measures, sources, devices, landing pages, and instrumented events.",
          "name": "Google Analytics 4",
          "status": "Connected reporting",
          "what": "Review acquisition, engagement, page activity, and events.",
          "why": "Connects acquisition quality with what visitors actually do after arriving."
        },
        {
          "how": "Connected search reporting compares impressions, clicks, click-through rate, position, queries, and pages across reporting periods.",
          "name": "Search Console",
          "note": "Search queries describe aggregate search performance; they are not a transcript of each individual visitor’s searches.",
          "status": "Connected reporting",
          "what": "Track search queries, visibility, clicks, and page performance.",
          "why": "Identifies pages to improve and the search demand they could serve."
        },
        {
          "how": "Page-level reporting associates service paths with visits, engagement, and recorded inquiry actions.",
          "name": "Service Pages",
          "status": "Connected reporting",
          "what": "Compare attention and response across services.",
          "why": "Helps prioritize services and page improvements using observed interest."
        },
        {
          "how": "Connected reports group activity by available country, region, and city estimates, with source and page context where available.",
          "name": "Geographic",
          "status": "Connected reporting",
          "what": "See where website attention comes from.",
          "why": "Supports service-area planning and content suited to the markets attracting attention."
        },
        {
          "how": "Search indicators and page comparisons highlight opportunities such as improving titles, answering questions, and deepening useful service content.",
          "name": "SEO Opportunities",
          "status": "Connected reporting",
          "what": "Turn search performance into a list of improvements.",
          "why": "Connects visibility gaps with concrete work for the content and website tools."
        },
        {
          "how": "Connected campaign reports show spend, reach, impressions, clicks, leads, and cost per lead for the reporting period.",
          "name": "Meta / Facebook Ads",
          "status": "Connected reporting",
          "what": "Review paid campaign delivery and response.",
          "why": "Makes paid traffic accountable to the website activity and inquiries it produces."
        },
        {
          "how": "Connected social reporting brings follower trends, reach, engagement, and post performance into the same review environment.",
          "name": "Social Organic",
          "status": "Connected reporting",
          "what": "Track the reach and response of organic social content.",
          "why": "Helps connect publishing effort with the topics and channels that attract interest."
        },
        {
          "how": "The call-provider connection supplies recorded call activity and attribution for comparison with website and campaign reporting.",
          "name": "Call Tracking",
          "note": "A phone-link click and a provider-recorded call are different events.",
          "status": "Connected reporting",
          "what": "Include telephone inquiries in acquisition reporting.",
          "why": "Makes phone response visible alongside forms and other digital inquiries."
        },
        {
          "how": "Connected checks report availability, links, forms, tracking, indexing, sitemap, certificate, and page-speed findings.",
          "name": "Website Health",
          "status": "Connected reporting",
          "what": "Review the website’s operational condition.",
          "why": "Brings technical problems into the same workflow as content and marketing improvements."
        },
        {
          "how": "Connected competitor research organizes public information and third-party estimates into a consistent comparison, with a source and reporting period for interpretation.",
          "name": "Competitor Snapshot",
          "note": "Competitor traffic estimates are distinct from your own first-party analytics; this does not expose competitors’ private visitor records.",
          "status": "Connected reporting",
          "what": "Compare competitors’ visibility, services, reviews, and website presentation.",
          "why": "Helps prioritize credible differentiation and useful content improvements."
        }
      ],
      "name": "Analytics, search & marketing"
    },
    {
      "features": [
        {
          "how": "Visit records group network and browser context, first and latest activity, and the paths seen. Identified inquiry records provide contact context when someone supplies it.",
          "name": "Visitor profiles",
          "note": "A network or organization match is not a verified personal identity; shared networks and changing devices affect grouping.",
          "status": "Visitor intelligence",
          "what": "Understand who is visiting at the level the available evidence supports.",
          "why": "Distinguishes anonymous interest from an actual known inquiry."
        },
        {
          "how": "Network enrichment supplies available organization and approximate geography; browser context supplies device, operating system, and browser.",
          "name": "Company, location & device",
          "status": "Visitor intelligence",
          "what": "See the setting behind a visit.",
          "why": "Helps assess service-area fit and the experience visitors receive on different devices."
        },
        {
          "how": "Referrers and UTM campaign parameters feed source and medium reporting across search, paid campaigns, social, referrals, direct, and recognized AI sources.",
          "name": "Traffic sources & campaigns",
          "note": "Direct or unknown traffic is retained when the source cannot be established.",
          "status": "Visitor intelligence",
          "what": "Track where visitors came from.",
          "why": "Shows which channels bring useful attention rather than just volume."
        },
        {
          "how": "Timestamped page records and connected session reports reveal entrances, subsequent pages, repeated views, and exits within the observed visit.",
          "name": "Page paths & journeys",
          "status": "Visitor intelligence",
          "what": "See the pages a visitor viewed and their order.",
          "why": "Shows the routes people take through services, proof, FAQs, and contact information."
        },
        {
          "how": "Connected session and event reporting supplies duration and measured engagement time at the available session and page level.",
          "name": "Time & engagement",
          "note": "Elapsed time and active engagement measure different things; neither proves that every word was read.",
          "status": "Visitor intelligence",
          "what": "Measure how long visits and page interactions last.",
          "why": "Helps separate a brief arrival from a visit involving deeper interaction."
        },
        {
          "how": "Instrumented events record supported link and button clicks, phone and email actions, downloads, outbound links, and form activity with page and event context.",
          "name": "Clicks, events & conversions",
          "note": "A click, a successful submission, and a completed call remain distinct outcomes.",
          "status": "Visitor intelligence",
          "what": "Track the interactions that move a visitor forward.",
          "why": "Reveals which calls to action work and where interest stops short of an inquiry."
        },
        {
          "how": "First-party grouping and analytics identifiers expose repeat activity where the browser and collection context allow it.",
          "name": "Return visits & continued interest",
          "note": "Cross-device visits or cleared identifiers do not automatically resolve to one person.",
          "status": "Visitor intelligence",
          "what": "Recognize repeat activity in the available reporting window.",
          "why": "Helps identify topics attracting continued attention and compare new with returning engagement."
        },
        {
          "how": "Source, landing page, page sequence, time, and actions provide evidence for an operator’s intent assessment, such as researching a service or seeking support.",
          "name": "Intent analysis",
          "note": "Intent is inferred from behavior; the visitor’s stated purpose is stronger evidence.",
          "status": "Visitor intelligence",
          "what": "Interpret why a visitor may have come.",
          "why": "Turns activity into a useful hypothesis about what the website should explain next."
        }
      ],
      "name": "Visitor intelligence"
    },
    {
      "features": [
        {
          "how": "Connected search research and public-page reviews compare queries, ranking pages, and content coverage for a consistent market and period.",
          "name": "Search & content gaps",
          "status": "Market intelligence",
          "what": "Compare discoverability and useful topic coverage.",
          "why": "Finds questions and topics that deserve a better answer on your own site."
        },
        {
          "how": "Compare public service pages, locations, audiences, offers, evidence, and calls to action in a structured competitor view.",
          "name": "Services & positioning",
          "status": "Market intelligence",
          "what": "Review how alternatives describe their offer.",
          "why": "Helps make your own service proposition clearer and more distinctive."
        },
        {
          "how": "Public ratings, review themes, navigation, mobile presentation, and a consistent website-review rubric support like-for-like comparisons.",
          "name": "Reviews & website experience",
          "status": "Market intelligence",
          "what": "Assess trust signals and the experience competitors present.",
          "why": "Turns competitive research into specific improvements to clarity, credibility, and usability."
        },
        {
          "how": "Record the finding, create the follow-up task, develop a Builder page or content change, and review your own connected results after publication.",
          "name": "Research to action",
          "note": "Public observations and third-party estimates do not reveal a competitor’s private traffic, customers, or conversion performance.",
          "status": "Market intelligence",
          "what": "Connect a competitive gap to a website improvement.",
          "why": "Makes competitive analysis useful to delivery instead of leaving it as a disconnected report."
        }
      ],
      "name": "Competitor intelligence"
    },
    {
      "features": [
        {
          "how": "Submission records support status changes and private notes, with matching commands for supported actions.",
          "name": "Forms",
          "status": "Connected workflow",
          "what": "Review inquiries and record follow-up.",
          "why": "Keeps an inquiry’s current state and next action together."
        },
        {
          "how": "Editable task records are read from the configured collection; the command registry also supports adding, completing, reopening, and removing them.",
          "name": "Tasks / To-do",
          "status": "Platform feature",
          "what": "Create, complete, and remove work items.",
          "why": "Makes the next action explicit and allows supported visual and textual workflows to use the same records."
        },
        {
          "how": "The pending queue supports approve and reject actions on its records; matching authenticated commands call the same status update functions.",
          "name": "Approval Center",
          "note": "An approval record does not by itself mean that website publishing is automatically gated by that approval.",
          "status": "Platform feature",
          "what": "Record a review decision.",
          "why": "Keeps decisions attached to a defined item instead of relying only on an informal conversation."
        },
        {
          "how": "Event records place deadlines and scheduled work inside the same workspace as the tools used to deliver them.",
          "name": "Calendar",
          "status": "Workspace",
          "what": "Plan dated work and milestones.",
          "why": "Keeps upcoming work visible while making changes and reviewing results."
        },
        {
          "how": "The clock shows working time; recorded heartbeat timing helps explain when the scheduled-action runner last checked for due work.",
          "name": "Clock & heartbeat",
          "status": "Operations",
          "what": "Inspect time and automation-runner activity.",
          "why": "Gives the operator context for schedule execution and troubleshooting."
        },
        {
          "how": "Connected monthly-report records preserve period summaries for comparison with the underlying traffic, marketing, and operational information.",
          "name": "Monthly Reports",
          "status": "Connected reporting",
          "what": "Review performance across reporting periods.",
          "why": "Builds a review history that makes changes and priorities easier to discuss."
        },
        {
          "how": "The notes editor reads and saves persistent written context within the platform.",
          "name": "Strategy / Client Notes",
          "status": "Workspace",
          "what": "Keep decision context and priorities available.",
          "why": "Preserves the reasoning behind a decision alongside the metrics and tasks."
        },
        {
          "how": "Dated entries carry a version, change type, and description for operational review.",
          "name": "Change Log",
          "status": "Operations",
          "what": "Review recorded changes and releases.",
          "why": "Helps relate a website change to subsequent behavior or performance."
        }
      ],
      "name": "Work & reporting"
    },
    {
      "features": [
        {
          "how": "A per-website style record drives theme, scheme, icon, font, background, sizing, and effect settings.",
          "name": "Website Style Engine",
          "status": "Platform feature",
          "what": "Control the look of the selected website.",
          "why": "Coordinates many components from a shared set of decisions and preserves the selected website’s scope."
        },
        {
          "how": "Background controls draw from built-in and uploaded images. The style system supports per-page overrides and a return to the site default.",
          "name": "Website Background",
          "status": "Platform feature",
          "what": "Choose separate images for desktop and mobile.",
          "why": "Allows the composition to fit the screen and the page rather than forcing one image everywhere."
        },
        {
          "how": "A focused editor changes the designated welcome or hero message for its assigned website.",
          "name": "Welcome Message",
          "status": "Website engine",
          "what": "Update the website’s introductory message.",
          "why": "Makes a frequent content adjustment quick to find and perform."
        },
        {
          "how": "The Builder saves content, repeaters, section order, design, and logo state. Publication creates or replaces the selected page’s independent snapshot.",
          "name": "Website Builder",
          "status": "Website engine",
          "what": "Edit a structured draft and publish a named page.",
          "why": "Supports dedicated pages while keeping work in progress separate from published content."
        },
        {
          "how": "The source supports named custom schemes with brand and neutral color values, including separate light/dark and website/console settings.",
          "name": "Color Scheme Builder",
          "status": "Platform feature",
          "what": "Create and reuse coordinated palettes.",
          "why": "Avoids repeating a collection of individual color choices every time a treatment is reused."
        },
        {
          "how": "Console-specific theme and presentation settings operate separately from website style settings.",
          "name": "Core Console Style",
          "status": "Platform feature",
          "what": "Tune the dashboard’s own appearance.",
          "why": "Lets the operator optimize the working interface without changing the public-facing brand experience."
        },
        {
          "how": "Dedicated controls manage the desktop theme, accent, icons, type, backgrounds, and supported effects.",
          "name": "Desk Style & Desk Background",
          "status": "Platform feature",
          "what": "Customize the desktop shell.",
          "why": "Keeps desktop personalization independent from the site and the dashboard."
        },
        {
          "name": "Six visual families",
          "what": "Change the character of the website or workspace.",
          "how": "Default, Windows 11, iOS, Android, Ubuntu, and Soft UI each provide a coordinated CSS treatment. Website, Core Console, and Desk can have independent selections.",
          "why": "Provides a coherent starting point instead of styling every component separately.",
          "status": "Design engine"
        },
        {
          "name": "Independent typography & icon families",
          "what": "Fine-tune identity within a chosen theme.",
          "how": "Five font families and six icon families can be selected independently. Fonts use the registered web or system font stacks; the icon renderer maps the same semantic icon to its selected family.",
          "why": "Retains consistent meaning while changing the visual voice.",
          "status": "Design engine"
        },
        {
          "name": "Light, dark & custom neutral colors",
          "what": "Keep both color modes intentional.",
          "how": "Eight built-in palettes and custom schemes define five brand color roles. Custom neutral sets control background, surface, panel, border, muted copy, and text for website and Console light/dark contexts.",
          "why": "Keeps brand accents, surfaces, and reading contrast coordinated.",
          "status": "Design engine"
        },
        {
          "name": "Ten animated background effects",
          "what": "Give a page a controlled sense of motion.",
          "how": "Network, Rain, Circuit, Hex, Packets, Warp, Aurora, Radar, Grid, and Signal share adjustable intensity, amount, density, speed, strength, and two colors; Off disables the effect.",
          "why": "Makes a distinctive presentation reusable without editing animation code.",
          "status": "Design engine"
        },
        {
          "name": "Pointer, click & touch responses",
          "what": "Control how an effect reacts to the visitor.",
          "how": "Attract, Spawn, Repel, and Trail can be combined. Separate settings govern pointer parameters, click or tap responses, double-click boosts, and whether the effect runs on mobile.",
          "why": "Lets the operator balance interaction, motion, and the needs of different devices.",
          "status": "Design engine"
        },
        {
          "name": "Reusable effect presets",
          "what": "Save a motion treatment and use it again.",
          "how": "Named presets store a validated effect configuration. Apply a preset to the selected website, Console, or Desk surface; delete presets that are no longer needed.",
          "why": "Reduces repeated tuning and makes a preferred treatment reproducible.",
          "status": "Design engine"
        },
        {
          "name": "Mobile reading glass & scroll blur",
          "what": "Adjust the background as the reader moves through a page.",
          "how": "At widths up to 980 pixels, two independent scroll-driven effects use an ease-out ramp. Controls set activation, ramp distance, maximum opacity, and maximum blur for the reading overlay and background blur.",
          "why": "Keeps the opening view expressive while making longer reading more comfortable.",
          "status": "Design engine"
        },
        {
          "name": "Component size controls",
          "what": "Adjust the density of supported page elements.",
          "how": "Six size settings scale service, product, and Why Us cards, chips, badges, and FAQ items from 60% to 180%. CSS variables coordinate padding, icon size, and radius within each element type.",
          "why": "Changes visual emphasis while retaining the component’s proportions.",
          "status": "Design engine"
        },
        {
          "name": "Per-page background inheritance",
          "what": "Give a registered page its own background.",
          "how": "The Contact page currently supports desktop and mobile image overrides. Removing an override restores the selected website background. Developers can register more pages in the same system.",
          "why": "Creates page-specific identity with a clear fallback to the site-wide design.",
          "status": "Design engine"
        },
        {
          "name": "Console panels, header & menu surfaces",
          "what": "Tune the structure around the work.",
          "how": "Default, flat, glass, and gradient treatments expose a color and opacity for Console panels, header, and menu surfaces. Desk has its own appearance settings and starts from Console defaults until overridden.",
          "why": "Makes the operator’s workspace legible and personal without changing the public website.",
          "status": "Design engine"
        }
      ],
      "name": "Website & design"
    },
    {
      "features": [
        {
          "how": "Click supported preview text or search the field list, then edit within the field’s length and fit constraints. Shared rendering applies the site’s text-fitting behavior.",
          "name": "Field selection & text fitting",
          "status": "Website engine",
          "what": "Edit the website’s registered content in context.",
          "why": "Makes content easier to find and reduces layout problems caused by oversized copy."
        },
        {
          "how": "Supported collections expose add, duplicate, delete, and reorder controls; nested product bullets and collection size limits preserve the component structure.",
          "name": "Repeaters & nested content",
          "status": "Website engine",
          "what": "Build out cards, lists, navigation, products, and FAQs.",
          "why": "Expands a page without rebuilding every repeated item by hand."
        },
        {
          "how": "Move supported middle sections while Hero remains first and Contact remains last.",
          "name": "Section order",
          "status": "Website engine",
          "what": "Arrange the body of the page around its purpose.",
          "why": "Allows a different narrative while preserving a predictable entrance and response point."
        },
        {
          "how": "The Builder’s Style tab controls logo upload and visibility, theme, palette, font, icons, backgrounds, sizing, and effects.",
          "name": "Design & logo controls",
          "status": "Website engine",
          "what": "Give the draft a complete visual identity.",
          "why": "Keeps content and visual refinement in one editing context."
        },
        {
          "how": "The draft keeps content, structure, style, and logo state together and renders the site’s components in preview scope.",
          "name": "Draft scope & rendered preview",
          "status": "Website engine",
          "what": "Review a page before exposing the next version.",
          "why": "Shows how the actual website system treats the work before publication."
        },
        {
          "how": "Choose a valid page name or an existing target. Publication copies the draft into independent records at /published/name; replacing a target asks for confirmation.",
          "name": "Named pages & snapshots",
          "status": "Website engine",
          "what": "Publish a dedicated page at a chosen destination.",
          "why": "Supports service, campaign, location, and audience pages with deliberate replacement and separate published state."
        },
        {
          "name": "A registered content model",
          "what": "Edit a known part of the page with predictable rules.",
          "how": "The base schema defines 124 text fields in ten sections. Each field has a stable ID, visual role, label, original copy, line and character limits, and allowed text scale. Added repeater items receive their own field identities.",
          "why": "Gives people and agents precise targets and keeps text fitting tied to its actual component.",
          "status": "Builder engine"
        },
        {
          "name": "Bounded components & directional movement",
          "what": "Rearrange supported groups without losing their structure.",
          "how": "Ten groups define the allowed item types and minimum/maximum counts. Grid-based groups support row-aware movement, product cards contain one to eight nested bullets, and six middle sections can be reordered between the fixed Hero and Contact sections.",
          "why": "Allows meaningful composition while protecting the layout’s basic shape.",
          "status": "Builder engine"
        },
        {
          "name": "Text restoration with a defined scope",
          "what": "Return copy to its original wording.",
          "how": "Restore one registered text field or reset all editable text. Original copy lives in the schema; item deletion and order belong to the separate structure model.",
          "why": "Makes a copy reset understandable and avoids treating it as a whole-site rollback.",
          "status": "Builder engine"
        },
        {
          "name": "Content boundaries & shared structured data",
          "what": "Keep editable copy consistent with the page’s behavior.",
          "how": "The Builder edits registered copy and components. Business contact channels, metadata, form labels, and animated stat numbers have separate implementation controls. Product wordmarks are editable through their repeater fields. FAQ output uses the same resolved content for visible answers and structured data.",
          "why": "Protects functional details and reduces disagreement between visible content and machine-readable answers.",
          "status": "Builder engine"
        }
      ],
      "name": "Website Builder engine"
    },
    {
      "features": [
        {
          "how": "Each action selects a registered theme, palette, background, readability, motion, or interaction setting. Typed validation checks its value before storage.",
          "name": "Scheduled setting changes",
          "status": "Scheduled actions",
          "what": "Prepare changes to 32 supported website settings.",
          "why": "Makes automated changes explicit and predictable."
        },
        {
          "how": "The action stores its scheduled date and time and an optional daily or weekly repeat rule; recurring actions advance to their next due time after running.",
          "name": "One-time, daily & weekly schedules",
          "status": "Scheduled actions",
          "what": "Choose when a website setting should take effect.",
          "why": "Supports planned launches and recurring presentation routines."
        },
        {
          "how": "Name, edit, enable, disable, or delete an action; inspect its next scheduled time and last-run information.",
          "name": "Action management",
          "status": "Scheduled actions",
          "what": "Control the schedule as plans change.",
          "why": "Makes upcoming work visible and lets an operator pause or revise it."
        },
        {
          "how": "The runner checks enabled actions during website or Console renders, throttled to once per minute per running instance. A 15-minute heartbeat covers quiet periods, applies due values, refreshes settings, and records last-run time.",
          "name": "Execution & heartbeat",
          "note": "These actions target the main website’s registered settings. Builder publishing is a separate action; this scheduler changes registered website settings.",
          "status": "Scheduled actions",
          "what": "Apply due changes and leave an execution record.",
          "why": "Balances reliable checks with a lightweight system that does not need a continuously running scheduler."
        }
      ],
      "name": "Website automations"
    },
    {
      "features": [
        {
          "how": "The administrator supplies a name and email. The system reserves a seat, creates or reuses a Wix member, approves and authorizes it, and requests a set-password email. The reviewed implementation caps authorized accounts at ten; a new account does not become an administrator.",
          "name": "Users",
          "status": "Administration",
          "what": "Review authorized users and provision ordinary platform accounts.",
          "why": "Gives access a deliberate owner, a visible capacity limit, and a repeatable onboarding path.",
          "note": "Email acceptance is recorded separately from delivery. A failed provisioning attempt does not grant access."
        },
        {
          "how": "Access records expose timestamps and outcomes for inspection.",
          "name": "Recent Access",
          "status": "Administration",
          "what": "Review administrative access history.",
          "why": "Supports investigation and accountability with a usable event history."
        },
        {
          "how": "Member checks, allowlists, configured passkey enforcement, IP policy, alerts, and Emergency Lock support the platform’s administrative access rules.",
          "name": "Security & Emergency Lock",
          "status": "Administration",
          "what": "Control access to administrative tools.",
          "why": "Restricts sensitive operations and gives the administrator controls for responding to access concerns."
        },
        {
          "how": "A saved action contains a setting, validated value, scheduled time, repeat rule, and enabled state. The due-action runner applies the change and records execution.",
          "name": "Automations",
          "status": "Scheduled actions",
          "what": "Schedule supported website settings to change.",
          "why": "Handles planned and recurring presentation changes without a manual visit at every scheduled time."
        },
        {
          "how": "A fixed registry validates commands and dispatches to the same functions used by supported authenticated tools. It is not an operating-system shell.",
          "name": "Console command interpreter",
          "status": "Platform feature",
          "what": "Use defined commands for supported operations.",
          "why": "Provides a direct route for repeated tasks without adding arbitrary code execution."
        },
        {
          "how": "The Files app lists build-bundled source files and opens their text through an authorized, read-only endpoint. It does not browse the live server filesystem or edit deployed code.",
          "name": "Files",
          "status": "Administration",
          "what": "Browse the implementation from the workspace.",
          "why": "Lets maintainers and authorized agents understand the implementation behind an interface without leaving the workspace."
        },
        {
          "how": "An in-platform documentation view provides implementation, setup, and operating notes.",
          "name": "Build Notes",
          "status": "Administration",
          "what": "Keep architecture and operating knowledge accessible.",
          "why": "Preserves the knowledge needed to maintain and extend the system."
        },
        {
          "name": "Passkey registration & device management",
          "what": "Use a device-backed credential for protected access.",
          "how": "WebAuthn registration and verification pair browser credentials with server challenges and stored public-key records. Authorized controls list, rename, and revoke passkeys; the administrator can enable enforcement.",
          "why": "Supports strong sign-in without asking an agent or operator to handle a reusable password for every action.",
          "status": "Administration"
        },
        {
          "name": "IP access policy",
          "what": "Manage the network addresses allowed by the configured policy.",
          "how": "The security view exposes validated IP entries and an enable switch. Server and administrative access flows apply their implemented identity and policy checks.",
          "why": "Gives the administrator an additional control for the intended operating environment.",
          "status": "Administration"
        },
        {
          "name": "Denied-access alerts",
          "what": "Make rejected access attempts visible.",
          "how": "Supported access flows record denied attempts, expose unacknowledged alerts, and use configured notification settings. The administrator can acknowledge reviewed alerts.",
          "why": "Turns access concerns into reviewable activity instead of relying on someone noticing an error screen.",
          "status": "Administration"
        },
        {
          "name": "Emergency Lock & recovery",
          "what": "Pause protected changes during an incident.",
          "how": "Emergency Lock is checked by protected mutations and the scheduled-action runner. Its explicit recovery flow can lift the lock; the public lead form remains available.",
          "why": "Creates a way to interrupt administrative changes while continuing to accept business inquiries.",
          "status": "Administration"
        }
      ],
      "name": "Administration & automation"
    },
    {
      "features": [
        {
          "how": "The demonstration interface guides the viewer through selected panels and explanatory steps.",
          "name": "Demo Mode",
          "status": "Platform feature",
          "what": "Walk through the platform’s feature surface.",
          "why": "Introduces the system without requiring the viewer to know its navigation first."
        },
        {
          "how": "A presentation surface provides a sequential walkthrough with navigation and supported voice options.",
          "name": "Presentation Mode",
          "status": "Platform feature",
          "what": "Present the workspace as an organized story.",
          "why": "Connects features to their purpose during a demonstration."
        },
        {
          "how": "Browser speech synthesis uses device voices and user-controlled playback.",
          "name": "Voice Mode",
          "status": "Presentation",
          "what": "Read supported interface summaries aloud.",
          "why": "Offers an optional spoken route through the platform explanation."
        },
        {
          "how": "The About app introduces the workspace, its capabilities, and its operating model.",
          "name": "About PC NET DESK & Core Console",
          "status": "Workspace",
          "what": "Understand the platform’s purpose and feature surface.",
          "why": "Helps a new operator understand the system before exploring individual tools."
        }
      ],
      "name": "Demonstration & presentation"
    },
    {
      "name": "AI readiness & agent workflows",
      "features": [
        {
          "name": "Created for people and agents",
          "what": "Give software agents understandable ways to operate the platform.",
          "how": "The design pairs visual tools with registered text commands, structured records, explicit scopes, and inspectable source. Agents can work through an authorized browser session and supported command routes.",
          "why": "Lets an agent translate a task into named operations and explain the result in the same terms as a human operator.",
          "status": "Agent-ready design"
        },
        {
          "name": "Discoverable command vocabulary",
          "what": "Find the supported operations before acting.",
          "how": "The help command lists 27 command families; help followed by a command explains its syntax. Double quotes keep multi-word arguments together.",
          "why": "Reduces guesswork and makes repeatable tasks easier to plan.",
          "status": "Agent interface"
        },
        {
          "name": "A JSON command contract",
          "what": "Submit a defined operation and read its result.",
          "how": "An authenticated POST to /api/cc/console accepts a command string and returns output lines plus an isError flag. Commands are limited to 500 characters; the technology reference documents the exact response behavior.",
          "why": "Provides a small, explicit integration surface that an authorized agent adapter can use.",
          "status": "Agent interface"
        },
        {
          "name": "Shared visual and command behavior",
          "what": "Reach the same underlying operation in two ways.",
          "how": "Registered commands call the functions used by the supported visual modules. Operations such as task status, notes, approvals, forms, and due-action execution reuse the platform’s data layer.",
          "why": "Reduces the chance that clicking a control and issuing a command produce different business behavior.",
          "status": "Agent interface"
        },
        {
          "name": "Typed targets & explicit scopes",
          "what": "Tell an agent exactly what can change.",
          "how": "Stable field IDs, component group IDs, value registries, record IDs, and live/draft/published scopes describe the target of a change. The Builder keeps content, structure, style, and logo state separate.",
          "why": "Supports precise edits, easier review, and a clear explanation of the affected state.",
          "status": "Agent interface"
        },
        {
          "name": "Authorized agent operation",
          "what": "Carry the operator’s access rules into automated work.",
          "how": "Agent use of administrative surfaces requires the appropriate member identity, permissions, and applicable passkey or lock checks. A browser session or separately implemented adapter supplies that context.",
          "why": "Keeps automation tied to an accountable identity and the operation’s actual access rules.",
          "status": "Agent interface"
        },
        {
          "name": "Read, act & verify",
          "what": "Check the outcome before reporting completion.",
          "how": "Read the current record, issue one scoped operation, inspect HTTP and command error information, then read the affected record or page again. A timed-out write needs a state check before a retry.",
          "why": "Helps an agent avoid duplicate work and distinguish a successful request from the intended result.",
          "status": "Agent workflow"
        },
        {
          "name": "Machine-readable reference",
          "what": "Let an agent consume the same feature and technical model as a reader.",
          "how": "This guide provides a JSON catalog and a plain-text agent reference containing capability explanations, command syntax, schemas, API descriptions, and operating constraints. The files are read-only documentation.",
          "why": "Makes discovery and handoff easier without requiring an agent to infer contracts from screenshots.",
          "status": "Documentation"
        },
        {
          "name": "AI discovery & traffic visibility",
          "what": "Understand how AI systems encounter the website.",
          "how": "Public content and structured FAQ data make the site readable; llms.txt offers a discovery summary. AI Analytics separates recognized crawler activity from supported AI referral traffic.",
          "why": "Connects machine discovery with observable visits while keeping agent operation and traffic measurement distinct.",
          "status": "Connected reporting"
        }
      ]
    }
  ],
  "screenshots": [
    {
      "alt": "PC NET DESK launcher with available trial controls, disabled example apps, and locked tools.",
      "caption": "The launcher groups controls by availability in the public Sennett trial.",
      "edition": "Public Sennett trial",
      "id": "desk-launcher",
      "title": "The app launcher"
    },
    {
      "alt": "PC NET DESK with its About app open in a desktop window.",
      "caption": "The built-in guide opens as an app inside the desktop workspace.",
      "edition": "Public Sennett trial",
      "id": "desk-about",
      "title": "A working desktop"
    },
    {
      "alt": "PC NET DESK settings panel with desktop preferences.",
      "caption": "Workspace settings are separate from public website settings.",
      "edition": "Public Sennett trial",
      "id": "desk-settings",
      "title": "Desk settings"
    },
    {
      "alt": "PC NET DESK style panel with appearance choices.",
      "caption": "The desktop has its own appearance controls.",
      "edition": "Public Sennett trial",
      "id": "desk-style",
      "title": "Desktop appearance"
    },
    {
      "alt": "Core Console overview with local workspace totals and explicit disconnected integration status.",
      "caption": "The overview brings reporting and operational modules together. This earlier browser-preview capture shows its local status.",
      "edition": "GCI browser preview",
      "id": "core-overview",
      "title": "Core Console overview"
    },
    {
      "alt": "Core Console command interface showing its supported help commands.",
      "caption": "A defined command vocabulary provides another route to supported workspace actions.",
      "edition": "GCI browser preview",
      "id": "core-terminal",
      "title": "The command interface"
    },
    {
      "alt": "Core Console task management interface.",
      "caption": "The local task interface demonstrates creating and completing work items.",
      "edition": "GCI browser preview",
      "id": "core-tasks",
      "title": "Tasks and next actions"
    },
    {
      "alt": "Core Console calendar with event creation controls.",
      "caption": "Dates and planned work have a place within the same workspace.",
      "edition": "GCI browser preview",
      "id": "core-calendar",
      "title": "The working calendar"
    },
    {
      "alt": "Website Style Engine showing its Sennett target, theme selector, and built-in palettes.",
      "caption": "The selected website appears above the controls that affect it.",
      "edition": "Public Sennett trial",
      "id": "style-controls",
      "title": "Website and color controls"
    },
    {
      "alt": "Website Style Engine with six icon families and independent font choices.",
      "caption": "Typography and icon treatment can be chosen separately from the base theme.",
      "edition": "Public Sennett trial",
      "id": "style-type",
      "title": "Typography and icons"
    },
    {
      "alt": "Phone-width website preview inside the Website Style Engine.",
      "caption": "The actual preview renders the mobile page inside the style engine.",
      "edition": "Public Sennett trial",
      "id": "style-previews",
      "title": "The mobile website preview"
    },
    {
      "alt": "Style Engine controls for background readability and component sizing.",
      "caption": "Screen-specific overlays and size controls help refine the reading experience.",
      "edition": "Public Sennett trial",
      "id": "style-backgrounds",
      "title": "Readability and sizing"
    },
    {
      "alt": "Website Background app with separate desktop and mobile image choices.",
      "caption": "Choose a background for the intended screen rather than forcing the same crop everywhere.",
      "edition": "Public Sennett trial",
      "id": "background-library",
      "title": "The background library"
    },
    {
      "alt": "PC NET DESK welcome-message editor.",
      "caption": "A focused editor puts a routine message change within reach.",
      "edition": "Public Sennett trial",
      "id": "welcome-editor",
      "title": "The welcome-message editor"
    },
    {
      "alt": "Core Console app grid with its available module categories.",
      "caption": "The app directory provides another way to discover the workspace modules.",
      "edition": "GCI browser preview",
      "id": "core-apps",
      "title": "The Console app directory"
    },
    {
      "alt": "Website Builder original content interface with section ordering, a headline editor, and a public website reference.",
      "caption": "Original Builder content controls, rendered with factory-default text and a public website reference for this source preview.",
      "edition": "Builder source preview",
      "id": "builder-content",
      "title": "Website Builder: content"
    },
    {
      "alt": "Website Builder original Style tab showing logo, theme, color, typography, and background controls.",
      "caption": "Original Builder Style tab, shown in an earlier source preview with reference settings.",
      "edition": "Builder source preview",
      "id": "builder-style",
      "title": "Website Builder: design"
    },
    {
      "alt": "GCI Workspace Builder showing a local demonstration draft and its preview.",
      "caption": "This simplified preview is separate from the authenticated Website Builder; it does not publish pages.",
      "edition": "GCI browser preview",
      "id": "builder-preview",
      "title": "The local drafting preview"
    }
  ],
  "dependencies": [
    {
      "package": "@simplewebauthn/server",
      "declared": "^13.3.2",
      "version": "13.3.2",
      "group": "dependencies",
      "purpose": "Generates and verifies WebAuthn registration/authentication challenges."
    },
    {
      "package": "@wix/astro",
      "declared": "^2.63.0",
      "version": "2.63.0",
      "group": "dependencies",
      "purpose": "Connects the Astro application to Wix headless services and tooling."
    },
    {
      "package": "@wix/astro-pages",
      "declared": "^2.0.4",
      "version": "2.0.4",
      "group": "dependencies",
      "purpose": "Integrates Wix page handling with Astro."
    },
    {
      "package": "@wix/dashboard",
      "declared": "^1.3.36",
      "version": "1.3.45",
      "group": "dependencies",
      "purpose": "Installed Wix dashboard integration package; the reviewed application source has no direct import."
    },
    {
      "package": "@wix/data",
      "declared": "^1.0.480",
      "version": "1.0.480",
      "group": "dependencies",
      "purpose": "Provides collection queries and writes for persistent records."
    },
    {
      "package": "@wix/essentials",
      "declared": "^1.0.6",
      "version": "1.0.8",
      "group": "dependencies",
      "purpose": "Supplies server-side elevation and authenticated service calls used by the Wix helper and CMS stores."
    },
    {
      "package": "@wix/media",
      "declared": "^1.0.0",
      "version": "1.0.259",
      "group": "dependencies",
      "purpose": "Supplies managed media upload and file-service operations."
    },
    {
      "package": "@wix/members",
      "declared": "^1.0.481",
      "version": "1.0.481",
      "group": "dependencies",
      "purpose": "Supplies member identity and account preparation operations."
    },
    {
      "package": "@wix/sdk",
      "declared": "^1.21.5",
      "version": "1.21.12",
      "group": "dependencies",
      "purpose": "Provides the shared Wix SDK/client layer."
    },
    {
      "package": "astro",
      "declared": "^5.8.0",
      "version": "5.18.2",
      "group": "dependencies",
      "purpose": "Renders application pages/components and supplies file-based API routing."
    },
    {
      "package": "typescript",
      "declared": "^5.8.3",
      "version": "5.9.3",
      "group": "dependencies",
      "purpose": "Checks typed application code and registry contracts."
    },
    {
      "package": "@astrojs/check",
      "declared": "^0.9.9",
      "version": "0.9.9",
      "group": "devDependencies",
      "purpose": "Runs Astro component diagnostics in the validation workflow."
    },
    {
      "package": "@astrojs/cloudflare",
      "declared": "^12.5.3",
      "version": "12.6.13",
      "group": "devDependencies",
      "purpose": "Installed alternative adapter; the reviewed configuration selects the Wix cloud-provider Fetch adapter."
    },
    {
      "package": "@astrojs/react",
      "declared": "^4.3.0",
      "version": "4.4.2",
      "group": "devDependencies",
      "purpose": "Enables React components in Astro when required."
    },
    {
      "package": "@types/react",
      "declared": "^18.3.1",
      "version": "18.3.31",
      "group": "devDependencies",
      "purpose": "Provides React TypeScript declarations."
    },
    {
      "package": "@types/react-dom",
      "declared": "^18.3.1",
      "version": "18.3.7",
      "group": "devDependencies",
      "purpose": "Provides React DOM TypeScript declarations."
    },
    {
      "package": "@wix/cli",
      "declared": "^1.1.226",
      "version": "1.1.226",
      "group": "devDependencies",
      "purpose": "Runs Wix development, build, preview, release and related commands."
    },
    {
      "package": "@wix/cloud-provider-fetch-adapter",
      "declared": "^1.0.0",
      "version": "1.0.4",
      "group": "devDependencies",
      "purpose": "The selected production adapter for the Wix-managed Fetch-compatible runtime."
    },
    {
      "package": "react",
      "declared": "18.3.1",
      "version": "18.3.1",
      "group": "devDependencies",
      "purpose": "Installed component runtime available through the Astro React integration."
    },
    {
      "package": "react-dom",
      "declared": "18.3.1",
      "version": "18.3.1",
      "group": "devDependencies",
      "purpose": "Provides the rendering layer for React components."
    }
  ],
  "stack": [
    {
      "name": "Astro",
      "version": "5.18.2",
      "purpose": "Server-rendered pages, layouts, components, and API routes.",
      "advantage": "HTML arrives with resolved content and settings. Interactive tools add browser JavaScript where needed."
    },
    {
      "name": "TypeScript",
      "version": "5.9.3",
      "purpose": "Strictly checked application code, schemas, endpoint types, and shared services.",
      "advantage": "Named types make contracts easier for developers and agents to inspect; runtime validators still check requests."
    },
    {
      "name": "Wix Astro integration",
      "version": "2.63.0",
      "purpose": "@wix/astro, with @wix/astro-pages 2.0.4 and @wix/cloud-provider-fetch-adapter 1.0.4.",
      "advantage": "Connects Astro to the Wix-managed headless runtime, page handling, and release workflow."
    },
    {
      "name": "Wix Data + SDK",
      "version": "1.0.480 / 1.21.12",
      "purpose": "Server-side collection reads and writes through the shared Wix service layer.",
      "advantage": "Business records, style choices, and published content persist beyond an individual browser."
    },
    {
      "name": "Wix Members + Media",
      "version": "1.0.481 / 1.0.259",
      "purpose": "Member identity, account preparation, and managed media uploads.",
      "advantage": "Reuses managed identity and image storage services across the administrative tools."
    },
    {
      "name": "React + Astro React",
      "version": "18.3.1 / 4.4.2",
      "purpose": "Installed UI integration alongside Astro components and native browser scripts.",
      "advantage": "Allows React components when needed. The principal Desk and Console interfaces are Astro and browser JavaScript."
    },
    {
      "name": "SimpleWebAuthn server",
      "version": "13.3.2",
      "purpose": "WebAuthn challenge generation and credential verification.",
      "advantage": "Provides a defined server implementation for passkey registration and authentication."
    },
    {
      "name": "Wix CLI",
      "version": "1.1.226",
      "purpose": "Development, build, preview, release, environment, and generation commands.",
      "advantage": "Keeps local and automated releases on the platform-specific build path."
    },
    {
      "name": "Browser platform",
      "version": "HTML · CSS · JavaScript",
      "purpose": "DOM events, Fetch, localStorage, canvas effects, media capture, speech synthesis, and app manifests.",
      "advantage": "Uses familiar browser capabilities for interaction and device integration."
    }
  ],
  "architecture": [
    {
      "title": "Experience",
      "tag": "PEOPLE + AGENTS",
      "items": [
        "Public website and published pages",
        "Desk windows and Core Console panels",
        "Builder preview and registered commands"
      ],
      "why": "Each entry point is suited to a different kind of work."
    },
    {
      "title": "Application",
      "tag": "ASTRO + TYPESCRIPT",
      "items": [
        "Request identity, permissions and scope",
        "Command handlers and API routes",
        "Shared content, style and data services"
      ],
      "why": "Named operations and shared services keep behavior consistent."
    },
    {
      "title": "Persistence",
      "tag": "WIX + CONNECTED SOURCES",
      "items": [
        "Business records and access activity",
        "Content, structure, style and media",
        "Traffic, search, campaign and call reporting"
      ],
      "why": "Shared records connect observation, action and follow-up."
    }
  ],
  "fileTypes": [
    {
      "extension": ".astro",
      "role": "Pages, layouts and components",
      "mechanism": "Server frontmatter resolves data; the template emits HTML; styles and scripts supply presentation and interaction.",
      "advantage": "Keeps rendering close to the component that owns it."
    },
    {
      "extension": ".ts",
      "role": ".ts API routes, services and registries",
      "mechanism": "Typed functions implement commands, data operations, validation, scheduling and file-based endpoints.",
      "advantage": "Makes behavior and contracts discoverable in code."
    },
    {
      "extension": ".d.ts",
      "role": "Environment declarations",
      "mechanism": "Declares platform types and request-local state to the TypeScript checker.",
      "advantage": "Lets the application describe values supplied by the runtime."
    },
    {
      "extension": ".mjs",
      "role": "ES module configuration",
      "mechanism": "astro.config.mjs selects integrations, output mode and the production adapter.",
      "advantage": "Makes the build target explicit."
    },
    {
      "extension": ".js",
      "role": "Browser/runtime JavaScript",
      "mechanism": "Compiled TypeScript and component scripts run in the browser or server bundle as appropriate.",
      "advantage": "Delivers behavior in the runtime’s native language."
    },
    {
      "extension": ".css",
      "role": "Design systems and component styling",
      "mechanism": "Theme files, custom properties, media queries and mode rules style the website and administrative surfaces.",
      "advantage": "Lets settings change presentation through a coordinated system."
    },
    {
      "extension": ".json",
      "role": "Package, lock and structured data",
      "mechanism": "package.json defines scripts and dependencies; package-lock.json records resolved dependency versions. Serialized records carry content and settings.",
      "advantage": "Makes data portable and dependency resolution reproducible."
    },
    {
      "extension": ".webmanifest",
      "role": "Installed app identity",
      "mechanism": "JSON manifests describe start URLs, scope, display mode, icons and application names.",
      "advantage": "Separates website, Console and Desk installation identities."
    },
    {
      "extension": ".yml",
      "role": "GitHub workflows",
      "mechanism": "Preview, release and heartbeat workflows define triggers and ordered automation steps.",
      "advantage": "Keeps deployment and recurring checks inspectable."
    },
    {
      "extension": ".md / .txt",
      "role": "Human and machine documentation",
      "mechanism": "AGENTS.md and CHANGELOG.md preserve operating knowledge; public llms.txt provides a discovery summary.",
      "advantage": "Improves handoff between people, tools and agents."
    },
    {
      "extension": ".svg / .png / .jpg / .webp",
      "role": "Icons, logos, backgrounds and images",
      "mechanism": "Vector and raster assets are selected for their visual role; managed uploads resolve to media URLs.",
      "advantage": "Keeps reusable media separate from page copy and behavior."
    },
    {
      "extension": ".xml",
      "role": "Search discovery output",
      "mechanism": "The repository includes a sitemap route. Platform-managed search routes can take precedence in production.",
      "advantage": "Documents discoverable URLs while recognizing which hosting layer serves them."
    }
  ],
  "commands": [
    {
      "name": "help",
      "usage": "help [command]",
      "summary": "List all commands, or show usage for one.",
      "mutates": false,
      "admin": false,
      "mode": "Read / inspect",
      "note": "Start with help, then help <command>. Syntax is a fixed command vocabulary, with double quotes for arguments containing spaces."
    },
    {
      "name": "version",
      "usage": "version",
      "summary": "Core Console / PC NET DESK version.",
      "mutates": false,
      "admin": false,
      "mode": "Read / inspect",
      "note": "Uses the authorized command context and the registered handler. Inspect the result and verify any affected state."
    },
    {
      "name": "whoami",
      "usage": "whoami",
      "summary": "Current signed-in member and admin status.",
      "mutates": false,
      "admin": false,
      "mode": "Read / inspect",
      "note": "Uses the authorized command context and the registered handler. Inspect the result and verify any affected state."
    },
    {
      "name": "date",
      "usage": "date",
      "summary": "Current date/time (Eastern).",
      "mutates": false,
      "admin": false,
      "mode": "Read / inspect",
      "note": "Uses the authorized command context and the registered handler. Inspect the result and verify any affected state."
    },
    {
      "name": "echo",
      "usage": "echo <text>",
      "summary": "Print text back.",
      "mutates": false,
      "admin": false,
      "mode": "Read / inspect",
      "note": "Uses the authorized command context and the registered handler. Inspect the result and verify any affected state."
    },
    {
      "name": "status",
      "usage": "status",
      "summary": "Combined system status: lock, passkeys, heartbeat.",
      "mutates": false,
      "admin": false,
      "mode": "Read / inspect",
      "note": "Uses the authorized command context and the registered handler. Inspect the result and verify any affected state."
    },
    {
      "name": "heartbeat",
      "usage": "heartbeat",
      "summary": "Actions heartbeat detail.",
      "mutates": false,
      "admin": false,
      "mode": "Read / inspect",
      "note": "Reads heartbeat timing and counts; it does not run a resident background worker."
    },
    {
      "name": "lock",
      "usage": "lock status | lock enable [reason] | lock disable <phrase>",
      "summary": "Emergency Lock status and control.",
      "mutates": false,
      "admin": false,
      "mode": "Mixed / inspect subcommand",
      "note": "Mixed read/write family. Each subcommand applies its own rules; the registry-wide mutates flag is false. Recovery uses a separately held secret."
    },
    {
      "name": "tasks",
      "usage": "tasks",
      "summary": "List tasks.",
      "mutates": false,
      "admin": false,
      "mode": "Read / inspect",
      "note": "Uses the authorized command context and the registered handler. Inspect the result and verify any affected state."
    },
    {
      "name": "task",
      "usage": "task add \"<title>\" [\"<impact>\"] | task done <id> | task undone <id> | task rm <id>",
      "summary": "Manage tasks.",
      "mutates": true,
      "admin": false,
      "mode": "Changes records",
      "note": "add creates a task; done and undone change status; rm removes the selected record. Read tasks to obtain the current ID."
    },
    {
      "name": "notes",
      "usage": "notes",
      "summary": "Show the shared notes.",
      "mutates": false,
      "admin": false,
      "mode": "Read / inspect",
      "note": "Uses the authorized command context and the registered handler. Inspect the result and verify any affected state."
    },
    {
      "name": "note",
      "usage": "note set \"<content>\"",
      "summary": "Replace the shared notes content.",
      "mutates": true,
      "admin": false,
      "mode": "Changes records",
      "note": "set replaces the shared note content. Read notes first to avoid overwriting information unintentionally."
    },
    {
      "name": "changelog",
      "usage": "changelog [n]",
      "summary": "Show the last n changelog entries (default 10).",
      "mutates": false,
      "admin": false,
      "mode": "Read / inspect",
      "note": "Uses the authorized command context and the registered handler. Inspect the result and verify any affected state."
    },
    {
      "name": "approvals",
      "usage": "approvals",
      "summary": "List approvals.",
      "mutates": false,
      "admin": false,
      "mode": "Read / inspect",
      "note": "Uses the authorized command context and the registered handler. Inspect the result and verify any affected state."
    },
    {
      "name": "approve",
      "usage": "approve <id>",
      "summary": "Mark an approval approved.",
      "mutates": true,
      "admin": false,
      "mode": "Changes records",
      "note": "Records an approval decision for the chosen item. It does not automatically publish a Builder page."
    },
    {
      "name": "reject",
      "usage": "reject <id>",
      "summary": "Mark an approval rejected.",
      "mutates": true,
      "admin": false,
      "mode": "Changes records",
      "note": "Records a rejection decision for the chosen item. It does not undo a previously deployed change."
    },
    {
      "name": "access",
      "usage": "access [n]",
      "summary": "Recent access log, grouped by IP (default 10 groups).",
      "mutates": false,
      "admin": false,
      "mode": "Read / inspect",
      "note": "Reads grouped access history with recorded outcomes. Availability depends on what each access path records."
    },
    {
      "name": "visitors",
      "usage": "visitors [n]",
      "summary": "Last n distinct-IP website visits (default 5).",
      "mutates": false,
      "admin": false,
      "mode": "Read / inspect",
      "note": "Lists recent distinct-IP visits. An IP-grouped record is not proof of a named person’s identity."
    },
    {
      "name": "calls",
      "usage": "calls",
      "summary": "Call stats (CallRail if connected, otherwise sample data).",
      "mutates": false,
      "admin": false,
      "mode": "Read / inspect",
      "note": "Reads the configured call-tracking feed. A call record and a click on a telephone link represent different events."
    },
    {
      "name": "calendar",
      "usage": "calendar",
      "summary": "List calendar events (read-only — add/edit via the Calendar app).",
      "mutates": false,
      "admin": false,
      "mode": "Read / inspect",
      "note": "This command lists calendar events. Create and edit events through the visual app or its separate endpoint."
    },
    {
      "name": "gallery",
      "usage": "gallery",
      "summary": "List gallery image URLs (read-only — the picker grid is visual).",
      "mutates": false,
      "admin": false,
      "mode": "Read / inspect",
      "note": "Returns gallery image URLs. Uploading, selecting and camera capture use the visual/media workflow."
    },
    {
      "name": "actions",
      "usage": "actions [list|run|fields]",
      "summary": "Scheduled Actions: list, run due actions now, or show valid fields.",
      "mutates": false,
      "admin": false,
      "mode": "Mixed / inspect subcommand",
      "note": "list reads schedules; fields lists schedulable settings; run applies already-due work and changes state. run checks its lock gate inline."
    },
    {
      "name": "alerts",
      "usage": "alerts [ack]",
      "summary": "Unacknowledged security alerts, or acknowledge all (admin only).",
      "mutates": true,
      "admin": true,
      "mode": "Mixed / inspect subcommand",
      "note": "Admin-only. The entire family is marked as mutating, including the listing form. ack acknowledges alerts."
    },
    {
      "name": "passkeys",
      "usage": "passkeys [list] | passkeys rename <id> <name> | passkeys revoke <id> | passkeys enforce on|off",
      "summary": "List/rename/revoke your passkeys; admin can toggle enforcement.",
      "mutates": true,
      "admin": false,
      "mode": "Mixed / inspect subcommand",
      "note": "Management operates on authorized passkeys; enforcement is admin-only. The entire family is marked as mutating, including list."
    },
    {
      "name": "forms",
      "usage": "forms [n] | forms new",
      "summary": "Recent website form submissions (default 10; 'new' filters to unworked).",
      "mutates": false,
      "admin": false,
      "mode": "Read / inspect",
      "note": "Reads submissions, with an optional limit or the new-only filter. Form records include contact details and should stay within authorized reporting."
    },
    {
      "name": "form",
      "usage": "form status <id> new|contacted|closed | form note <id> \"<text>\"",
      "summary": "Work a submission: set status or replace its notes.",
      "mutates": true,
      "admin": false,
      "mode": "Changes records",
      "note": "Changes one record’s status or note. Status is one of new, contacted, or closed."
    },
    {
      "name": "security",
      "usage": "security [show] | security ip add|rm <ip> | security ip on|off | security notify on|off",
      "summary": "Security settings — admin only.",
      "mutates": true,
      "admin": true,
      "mode": "Mixed / inspect subcommand",
      "note": "Admin-only. Lists or changes configured IP, notification and security settings. The family is marked as mutating even for show."
    }
  ],
  "apiRoutes": [
    {
      "path": "/api/cc/actions-run",
      "methods": [
        "GET",
        "POST"
      ],
      "source": "src/pages/api/cc/actions-run.ts",
      "purpose": "Run already-due website actions",
      "contract": "GET or POST with no input; returns ok, ran and, when applicable, locked.",
      "access": "Public by design; cannot create an action or accept an arbitrary setting. Emergency Lock suppresses execution."
    },
    {
      "path": "/api/cc/actions",
      "methods": [
        "GET",
        "POST"
      ],
      "source": "src/pages/api/cc/actions.ts",
      "purpose": "List and maintain schedules",
      "contract": "GET lists; POST accepts add, update, or deleteId. An action has name, field, value, runAt, repeatKind, and enabled.",
      "access": "Authorized member for access; writes apply the endpoint’s lock gate. Values come from FIELD_DEFS."
    },
    {
      "path": "/api/cc/calendar",
      "methods": [
        "POST"
      ],
      "source": "src/pages/api/cc/calendar.ts",
      "purpose": "Maintain calendar records",
      "contract": "POST accepts add, update (including id), or deleteId.",
      "access": "Authorized member and mutation lock checks; calendar command is a separate read path."
    },
    {
      "path": "/api/cc/console",
      "methods": [
        "POST"
      ],
      "source": "src/pages/api/cc/console.ts",
      "purpose": "Execute a registered command",
      "contract": "POST { command: string }; returns lines and isError alongside ok.",
      "access": "Explicitly authorized member; configured passkey enforcement; additional command-level authorization and lock handling."
    },
    {
      "path": "/api/cc/emergency-lock",
      "methods": [
        "GET",
        "POST"
      ],
      "source": "src/pages/api/cc/emergency-lock.ts",
      "purpose": "Inspect, enable and recover the lock",
      "contract": "GET reads state. POST action enable records a reason; action disable supplies the recovery credential.",
      "access": "Enable uses administrative membership. Recovery deliberately has a distinct credential-based path."
    },
    {
      "path": "/api/cc/forms",
      "methods": [
        "POST"
      ],
      "source": "src/pages/api/cc/forms.ts",
      "purpose": "Review and update contact submissions",
      "contract": "POST action list; action status with id and status; action notes with id and notes.",
      "access": "Authorized access and operation-specific mutation checks."
    },
    {
      "path": "/api/cc/fx-presets",
      "methods": [
        "POST"
      ],
      "source": "src/pages/api/cc/fx-presets.ts",
      "purpose": "Save or remove named effect presets",
      "contract": "POST { name, config } saves; { deleteId } removes. Apply a preset through the normal theme controls.",
      "access": "Authorized member; preset validation and mutation lock check."
    },
    {
      "path": "/api/cc/gallery",
      "methods": [
        "GET",
        "POST"
      ],
      "source": "src/pages/api/cc/gallery.ts",
      "purpose": "Browse and upload managed images",
      "contract": "GET lists. POST supports upload, finalize and delete operations; upload receipts are completed through the media service.",
      "access": "Main administrative access is guarded. Sennett trial has a separate, restricted upload/ownership path."
    },
    {
      "path": "/api/cc/log-ip",
      "methods": [
        "POST"
      ],
      "source": "src/pages/api/cc/log-ip.ts",
      "purpose": "Record an administrative network visit",
      "contract": "POST resolves request and member context for access/visit records.",
      "access": "Administrative logging route; its request context determines the recorded identity."
    },
    {
      "path": "/api/cc/mutate",
      "methods": [
        "POST"
      ],
      "source": "src/pages/api/cc/mutate.ts",
      "purpose": "Mutate supported business collections",
      "contract": "POST { entity, op, payload }; entities: tasks, changelog, approvals, monthly, notes, assets. Operations: create, update, delete, notes.",
      "access": "Member and allowlist check plus Emergency Lock. Its checks are separate from the console and passkey endpoints."
    },
    {
      "path": "/api/cc/security",
      "methods": [
        "GET",
        "POST"
      ],
      "source": "src/pages/api/cc/security.ts",
      "purpose": "Inspect and maintain security policy",
      "contract": "GET reads allowed settings; POST selects the implemented save, IP-check or access-verification operation.",
      "access": "Action-specific member, administrator, and verification rules. Do not treat every operation as an equivalent access contract."
    },
    {
      "path": "/api/cc/source",
      "methods": [
        "GET"
      ],
      "source": "src/pages/api/cc/source.ts",
      "purpose": "Browse the source bundled with this build",
      "contract": "GET lists files; GET ?path=<known path> returns text for that exact bundled path.",
      "access": "Authorized member. Read-only; unavailable paths return 404. No live filesystem access."
    },
    {
      "path": "/api/cc/theme",
      "methods": [
        "POST"
      ],
      "source": "src/pages/api/cc/theme.ts",
      "purpose": "Update website or workspace appearance",
      "contract": "POST selects a supported theme, palette, font, icon, background, effect, size, or surface operation. Separate selectors choose website and workspace targets.",
      "access": "Administrative permission and target restrictions; Sennett trial follows its own narrower rules. Validate one intended operation per request."
    },
    {
      "path": "/api/cc/users",
      "methods": [
        "POST"
      ],
      "source": "src/pages/api/cc/users.ts",
      "purpose": "Provision an ordinary platform account",
      "contract": "POST { email, name }; response includes the created/reused account and provisioning information.",
      "access": "Explicit administrator, origin check, configured passkey check, Emergency Lock, and ten-account capacity enforcement."
    },
    {
      "path": "/api/cc/webauthn",
      "methods": [
        "POST"
      ],
      "source": "src/pages/api/cc/webauthn.ts",
      "purpose": "Register, authenticate and manage passkeys",
      "contract": "POST actions: register-options, register-verify, auth-options, auth-verify, list, rename, revoke.",
      "access": "Member identity, action-specific ownership/admin rules, server challenges and credential verification."
    },
    {
      "path": "/api/cms/logo-upload",
      "methods": [
        "POST"
      ],
      "source": "src/pages/api/cms/logo-upload.ts",
      "purpose": "Change the draft logo",
      "contract": "POST handles toggle, revertImage, upload and finalize. Upload goes through managed media; toggles select supported visibility flags.",
      "access": "CMS authorization and lock guard. Writes draft scope."
    },
    {
      "path": "/api/cms/publish",
      "methods": [
        "POST"
      ],
      "source": "src/pages/api/cms/publish.ts",
      "purpose": "Publish the draft to a named page",
      "contract": "POST { slug }; copies content, structure, style and logo, then records the destination.",
      "access": "CMS authorization and lock guard. Slug validation and all four snapshot writes must succeed before the registry update."
    },
    {
      "path": "/api/cms/revert-all",
      "methods": [
        "POST"
      ],
      "source": "src/pages/api/cms/revert-all.ts",
      "purpose": "Reset editable draft copy",
      "contract": "POST resets all editable text overrides.",
      "access": "CMS authorization and lock guard. This is a text reset, not a structure or publication rollback."
    },
    {
      "path": "/api/cms/revert",
      "methods": [
        "POST"
      ],
      "source": "src/pages/api/cms/revert.ts",
      "purpose": "Reset one draft text field",
      "contract": "POST { id } restores the selected field’s original copy.",
      "access": "CMS authorization and lock guard; field ID must resolve."
    },
    {
      "path": "/api/cms/save",
      "methods": [
        "POST"
      ],
      "source": "src/pages/api/cms/save.ts",
      "purpose": "Save draft text and scale",
      "contract": "POST { id, text, scale }; validates the registered field and its bounds.",
      "access": "CMS authorization and lock guard; writes draft content."
    },
    {
      "path": "/api/cms/structure",
      "methods": [
        "POST"
      ],
      "source": "src/pages/api/cms/structure.ts",
      "purpose": "Edit draft components",
      "contract": "POST action add, duplicate, delete, reorder or updateField; groupId plus the relevant itemId, fieldKey, value, direction and optional steps.",
      "access": "CMS authorization and lock guard; validates group, item, field type and structural bounds."
    },
    {
      "path": "/api/cms/style-save",
      "methods": [
        "POST"
      ],
      "source": "src/pages/api/cms/style-save.ts",
      "purpose": "Save the draft design",
      "contract": "POST selects one supported style operation, such as { surface: \"website\", theme: \"win11\" }.",
      "access": "CMS authorization and lock guard. Uses the supported draft-style subset, not every resolved Themes property."
    },
    {
      "path": "/api/forms/submit",
      "methods": [
        "POST"
      ],
      "source": "src/pages/api/forms/submit.ts",
      "purpose": "Accept a public business inquiry",
      "contract": "POST submits the contact form fields; validation, a honeypot and per-instance throttling precede the stored submission.",
      "access": "Public lead capture intentionally remains available during an administrative Emergency Lock."
    },
    {
      "path": "/api/track",
      "methods": [
        "POST"
      ],
      "source": "src/pages/api/track.ts",
      "purpose": "Record website activity",
      "contract": "Tracking route records supported page and visitor context for first-party reporting.",
      "access": "Public collection path; server code determines accepted context. This does not expose private visitor records."
    }
  ],
  "dataDomains": [
    {
      "name": "Website appearance",
      "storage": "SiteSettings, ColorSchemes, FxPresets",
      "contents": "Theme selections, custom palette definitions, backgrounds, motion, component sizing and reusable effect settings.",
      "advantage": "Shared records let multiple management surfaces resolve the same website design."
    },
    {
      "name": "Builder state",
      "storage": "HomepageCMS",
      "contents": "Scoped text overrides, repeater structure, style overrides, logo state, and the published-sites registry.",
      "advantage": "Separate draft and named publication records preserve a clear editing and release boundary."
    },
    {
      "name": "Operational work",
      "storage": "Tasks, approvals, monthly reports, notes, assets and change-log collections",
      "contents": "Business record IDs, content, status, dates, and available edit metadata.",
      "advantage": "Records survive a browser restart and remain available from the appropriate management tools."
    },
    {
      "name": "Scheduled work",
      "storage": "CcActions, CcCalendarEvents",
      "contents": "Action field/value/time/repeat/enabled/last-run data and calendar event records.",
      "advantage": "Turns plans into inspectable records with explicit timing."
    },
    {
      "name": "Lead capture",
      "storage": "WebsiteFormSubmissions",
      "contents": "Validated form data, source context, status, internal notes and timestamps.",
      "advantage": "Connects the public inquiry to a manageable follow-up record."
    },
    {
      "name": "Identity and access",
      "storage": "Authorized-user registry, passkeys, access logs and SecuritySettings",
      "contents": "Member references, seat/provisioning state, public-key credential metadata, access outcomes and policy.",
      "advantage": "Separates authentication, authorization and recorded activity."
    },
    {
      "name": "Activity and integrations",
      "storage": "First-party activity records and configured reporting sources",
      "contents": "Page visits, referrers, AI crawler classification, search and campaign measures, calls and external research context.",
      "advantage": "Keeps the source of a measure visible alongside the operational conclusion drawn from it."
    },
    {
      "name": "Device preferences",
      "storage": "Browser localStorage",
      "contents": "Window geometry, local display choices, seen notifications and preview-only state where applicable.",
      "advantage": "Preserves an individual device’s workspace without treating it as the shared business database."
    }
  ],
  "appModules": [
    {
      "file": "src/components/cc/AiAnalytics.astro",
      "name": "AI Analytics",
      "purpose": "Classifies recognized AI crawlers and supported AI referrals."
    },
    {
      "file": "src/components/cc/Analytics.astro",
      "name": "First-party Analytics",
      "purpose": "Groups recorded visits, network context, paths and time information."
    },
    {
      "file": "src/components/cc/Approvals.astro",
      "name": "Approval Center",
      "purpose": "Records approval and rejection decisions for tracked work."
    },
    {
      "file": "src/components/cc/AssetLibrary.astro",
      "name": "Asset Library",
      "purpose": "Organizes reusable business assets and references."
    },
    {
      "file": "src/components/cc/BuildNotes.astro",
      "name": "Build Notes",
      "purpose": "Presents implementation and operating knowledge within the platform."
    },
    {
      "file": "src/components/cc/CallTracking.astro",
      "name": "Call Tracking",
      "purpose": "Displays configured call-provider activity and attribution."
    },
    {
      "file": "src/components/cc/CcActions.astro",
      "name": "Actions",
      "purpose": "Creates, edits, enables and removes scheduled website setting changes."
    },
    {
      "file": "src/components/cc/CcCalendar.astro",
      "name": "Calendar",
      "purpose": "Maintains dated work and calendar events."
    },
    {
      "file": "src/components/cc/ChangeLog.astro",
      "name": "Change Log",
      "purpose": "Records delivered platform changes and version context."
    },
    {
      "file": "src/components/cc/ClientNotes.astro",
      "name": "Client Notes",
      "purpose": "Keeps shared strategy and operating notes."
    },
    {
      "file": "src/components/cc/Clock.astro",
      "name": "Clock & heartbeat",
      "purpose": "Shows current time and recorded heartbeat context."
    },
    {
      "file": "src/components/cc/CommandCenterStyle.astro",
      "name": "Core Console Style",
      "purpose": "Controls dashboard-specific appearance."
    },
    {
      "file": "src/components/cc/Competitors.astro",
      "name": "Competitor Analysis",
      "purpose": "Compares search presence, content, services and other connected research."
    },
    {
      "file": "src/components/cc/Console.astro",
      "name": "Console",
      "purpose": "Provides the command input/output interface for registered operations."
    },
    {
      "file": "src/components/cc/ContentManagement.astro",
      "name": "Content Management",
      "purpose": "Edits the supported welcome/hero message and related website content controls."
    },
    {
      "file": "src/components/cc/DemoMode.astro",
      "name": "Demo Mode controller",
      "purpose": "Orchestrates the guided demonstration."
    },
    {
      "file": "src/components/cc/DemoPanel.astro",
      "name": "Demo panel",
      "purpose": "Presents the demonstration’s explanation and controls."
    },
    {
      "file": "src/components/cc/EmergencyLockBadge.astro",
      "name": "Emergency Lock indicator",
      "purpose": "Keeps lock state and recovery controls visible."
    },
    {
      "file": "src/components/cc/FluentIcon.astro",
      "name": "Icon renderer",
      "purpose": "Maps semantic icon names to the selected icon family."
    },
    {
      "file": "src/components/cc/FormsPanel.astro",
      "name": "Forms",
      "purpose": "Lists inquiries and updates status or follow-up notes."
    },
    {
      "file": "src/components/cc/Funnel.astro",
      "name": "Conversion Funnel",
      "purpose": "Shows the recorded stages between arrival and inquiry."
    },
    {
      "file": "src/components/cc/Ga4Panel.astro",
      "name": "Google Analytics 4",
      "purpose": "Presents connected acquisition, engagement and event reporting."
    },
    {
      "file": "src/components/cc/Geographic.astro",
      "name": "Geographic",
      "purpose": "Summarizes available location estimates for website attention."
    },
    {
      "file": "src/components/cc/HealthMonitor.astro",
      "name": "Website Health",
      "purpose": "Surfaces connected performance, availability and health indicators."
    },
    {
      "file": "src/components/cc/LeadTracking.astro",
      "name": "Lead Tracking",
      "purpose": "Presents inquiry source, stage and follow-up context."
    },
    {
      "file": "src/components/cc/MetaAds.astro",
      "name": "Meta Ads",
      "purpose": "Shows paid social delivery, spend, leads and cost measures."
    },
    {
      "file": "src/components/cc/MonthlyReports.astro",
      "name": "Monthly Reports",
      "purpose": "Organizes recurring performance and work summaries."
    },
    {
      "file": "src/components/cc/OsStyle.astro",
      "name": "Desk Style",
      "purpose": "Controls the windowed workspace independently."
    },
    {
      "file": "src/components/cc/OwnerSummary.astro",
      "name": "Owner Summary",
      "purpose": "Brings traffic, inquiries and priorities into a starting view."
    },
    {
      "file": "src/components/cc/PresentationMode.astro",
      "name": "Presentation controller",
      "purpose": "Sequences the platform presentation."
    },
    {
      "file": "src/components/cc/PresentationPanel.astro",
      "name": "Presentation panel",
      "purpose": "Provides the presentation’s visual controls and content."
    },
    {
      "file": "src/components/cc/RecentAccess.astro",
      "name": "Recent Access",
      "purpose": "Reviews recorded administrative access and outcomes."
    },
    {
      "file": "src/components/cc/SchemeBuilder.astro",
      "name": "Color Scheme Builder",
      "purpose": "Builds named brand palettes and neutral color sets."
    },
    {
      "file": "src/components/cc/SearchConsole.astro",
      "name": "Search Console",
      "purpose": "Reports connected queries, pages, visibility and search response."
    },
    {
      "file": "src/components/cc/SecurityAlertBanner.astro",
      "name": "Security alert banner",
      "purpose": "Surfaces unacknowledged access concerns."
    },
    {
      "file": "src/components/cc/SecurityPanel.astro",
      "name": "Security",
      "purpose": "Manages supported policy, passkey and alert controls."
    },
    {
      "file": "src/components/cc/SeoOpportunities.astro",
      "name": "SEO Opportunities",
      "purpose": "Turns search performance gaps into potential improvements."
    },
    {
      "file": "src/components/cc/ServicePages.astro",
      "name": "Service Pages",
      "purpose": "Compares page-level interest and inquiry behavior."
    },
    {
      "file": "src/components/cc/SocialOrganic.astro",
      "name": "Social Organic",
      "purpose": "Reports organic reach, audience and post response."
    },
    {
      "file": "src/components/cc/StyleEngine.astro",
      "name": "Website Style Engine",
      "purpose": "Controls website themes, colors, typography, backgrounds and effects."
    },
    {
      "file": "src/components/cc/Tasks.astro",
      "name": "Tasks",
      "purpose": "Creates and tracks work to completion."
    },
    {
      "file": "src/components/cc/Users.astro",
      "name": "Users",
      "purpose": "Lists authorized users and provides administrator account provisioning."
    },
    {
      "file": "src/components/cc/VoiceMode.astro",
      "name": "Voice controller",
      "purpose": "Coordinates browser speech synthesis and playback state."
    },
    {
      "file": "src/components/cc/VoicePanel.astro",
      "name": "Voice panel",
      "purpose": "Provides the narration controls and available device voices."
    }
  ],
  "cms": {
    "sections": [
      {
        "id": "header",
        "label": "Header / Nav"
      },
      {
        "id": "hero",
        "label": "Hero"
      },
      {
        "id": "stats",
        "label": "Stats Strip"
      },
      {
        "id": "services",
        "label": "Services"
      },
      {
        "id": "serve",
        "label": "Who We Serve"
      },
      {
        "id": "products",
        "label": "Products"
      },
      {
        "id": "why",
        "label": "Why Us"
      },
      {
        "id": "faq",
        "label": "FAQ"
      },
      {
        "id": "contact",
        "label": "Contact"
      },
      {
        "id": "footer",
        "label": "Footer"
      }
    ],
    "baseFields": [
      {
        "id": "header.brand",
        "section": "header",
        "role": "brand",
        "label": "Brand name",
        "maxLines": 1,
        "maxChars": 30,
        "minScale": 0.85,
        "maxScale": 1.1
      },
      {
        "id": "header.nav.services",
        "section": "header",
        "role": "nav",
        "label": "Nav — Services",
        "maxLines": 1,
        "maxChars": 24,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "header.nav.serve",
        "section": "header",
        "role": "nav",
        "label": "Nav — Who We Serve",
        "maxLines": 1,
        "maxChars": 24,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "header.nav.products",
        "section": "header",
        "role": "nav",
        "label": "Nav — Products",
        "maxLines": 1,
        "maxChars": 24,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "header.nav.why",
        "section": "header",
        "role": "nav",
        "label": "Nav — Why Us",
        "maxLines": 1,
        "maxChars": 24,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "header.nav.faq",
        "section": "header",
        "role": "nav",
        "label": "Nav — FAQ",
        "maxLines": 1,
        "maxChars": 24,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "header.nav.contact",
        "section": "header",
        "role": "nav",
        "label": "Nav — Contact Us",
        "maxLines": 1,
        "maxChars": 24,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "header.cta",
        "section": "header",
        "role": "button",
        "label": "Header CTA button",
        "maxLines": 1,
        "maxChars": 34,
        "minScale": 0.7,
        "maxScale": 1.15
      },
      {
        "id": "hero.h1",
        "section": "hero",
        "role": "h1",
        "label": "Headline",
        "maxLines": 4,
        "maxChars": 140,
        "minScale": 0.55,
        "maxScale": 1.15
      },
      {
        "id": "hero.lead",
        "section": "hero",
        "role": "lead",
        "label": "Subheading",
        "maxLines": 5,
        "maxChars": 320,
        "minScale": 0.65,
        "maxScale": 1.15
      },
      {
        "id": "hero.cta1",
        "section": "hero",
        "role": "button",
        "label": "Primary CTA button",
        "maxLines": 1,
        "maxChars": 34,
        "minScale": 0.7,
        "maxScale": 1.15
      },
      {
        "id": "hero.cta2",
        "section": "hero",
        "role": "button",
        "label": "Secondary CTA button",
        "maxLines": 1,
        "maxChars": 34,
        "minScale": 0.7,
        "maxScale": 1.15
      },
      {
        "id": "hero.badge1",
        "section": "hero",
        "role": "badge",
        "label": "Trust badge 1",
        "maxLines": 1,
        "maxChars": 40,
        "minScale": 0.65,
        "maxScale": 1.2
      },
      {
        "id": "hero.badge2",
        "section": "hero",
        "role": "badge",
        "label": "Trust badge 2",
        "maxLines": 1,
        "maxChars": 40,
        "minScale": 0.65,
        "maxScale": 1.2
      },
      {
        "id": "hero.badge3",
        "section": "hero",
        "role": "badge",
        "label": "Trust badge 3",
        "maxLines": 1,
        "maxChars": 40,
        "minScale": 0.65,
        "maxScale": 1.2
      },
      {
        "id": "hero.monitor.title",
        "section": "hero",
        "role": "label",
        "label": "Monitor card title",
        "maxLines": 1,
        "maxChars": 30,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "hero.monitor.row1.label",
        "section": "hero",
        "role": "monitorLabel",
        "label": "Servers row — label",
        "maxLines": 1,
        "maxChars": 26,
        "minScale": 0.75,
        "maxScale": 1.2
      },
      {
        "id": "hero.monitor.row1.status",
        "section": "hero",
        "role": "monitorStatus",
        "label": "Servers row — status",
        "maxLines": 1,
        "maxChars": 20,
        "minScale": 0.75,
        "maxScale": 1.2
      },
      {
        "id": "hero.monitor.row2.label",
        "section": "hero",
        "role": "monitorLabel",
        "label": "Firewalls row — label",
        "maxLines": 1,
        "maxChars": 26,
        "minScale": 0.75,
        "maxScale": 1.2
      },
      {
        "id": "hero.monitor.row2.status",
        "section": "hero",
        "role": "monitorStatus",
        "label": "Firewalls row — status",
        "maxLines": 1,
        "maxChars": 20,
        "minScale": 0.75,
        "maxScale": 1.2
      },
      {
        "id": "hero.monitor.row3.label",
        "section": "hero",
        "role": "monitorLabel",
        "label": "Endpoints row — label",
        "maxLines": 1,
        "maxChars": 26,
        "minScale": 0.75,
        "maxScale": 1.2
      },
      {
        "id": "hero.monitor.row3.status",
        "section": "hero",
        "role": "monitorStatus",
        "label": "Endpoints row — status",
        "maxLines": 1,
        "maxChars": 20,
        "minScale": 0.75,
        "maxScale": 1.2
      },
      {
        "id": "hero.monitor.row4.label",
        "section": "hero",
        "role": "monitorLabel",
        "label": "Backups row — label",
        "maxLines": 1,
        "maxChars": 26,
        "minScale": 0.75,
        "maxScale": 1.2
      },
      {
        "id": "hero.monitor.row4.status",
        "section": "hero",
        "role": "monitorStatus",
        "label": "Backups row — status",
        "maxLines": 1,
        "maxChars": 20,
        "minScale": 0.75,
        "maxScale": 1.2
      },
      {
        "id": "stats.label1",
        "section": "stats",
        "role": "statLabel",
        "label": "Stat 1 label (56)",
        "maxLines": 2,
        "maxChars": 40,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "stats.label2",
        "section": "stats",
        "role": "statLabel",
        "label": "Stat 2 label (83)",
        "maxLines": 2,
        "maxChars": 40,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "stats.label3",
        "section": "stats",
        "role": "statLabel",
        "label": "Stat 3 label (92)",
        "maxLines": 2,
        "maxChars": 40,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "stats.label4",
        "section": "stats",
        "role": "statLabel",
        "label": "Stat 4 label (494)",
        "maxLines": 2,
        "maxChars": 40,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "stats.foot",
        "section": "stats",
        "role": "body",
        "label": "Footer sentence",
        "maxLines": 2,
        "maxChars": 160,
        "minScale": 0.65,
        "maxScale": 1.2
      },
      {
        "id": "services.eyebrow",
        "section": "services",
        "role": "eyebrow",
        "label": "Eyebrow",
        "maxLines": 1,
        "maxChars": 40,
        "minScale": 0.6,
        "maxScale": 1.15
      },
      {
        "id": "services.h2",
        "section": "services",
        "role": "h2",
        "label": "Heading",
        "maxLines": 3,
        "maxChars": 110,
        "minScale": 0.6,
        "maxScale": 1.15
      },
      {
        "id": "services.lead",
        "section": "services",
        "role": "lead",
        "label": "Subheading",
        "maxLines": 4,
        "maxChars": 260,
        "minScale": 0.65,
        "maxScale": 1.15
      },
      {
        "id": "services.card1.title",
        "section": "services",
        "role": "h3",
        "label": "Card 1 title",
        "maxLines": 2,
        "maxChars": 60,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "services.card1.body",
        "section": "services",
        "role": "body",
        "label": "Card 1 body",
        "maxLines": 5,
        "maxChars": 260,
        "minScale": 0.65,
        "maxScale": 1.2
      },
      {
        "id": "services.card2.title",
        "section": "services",
        "role": "h3",
        "label": "Card 2 title",
        "maxLines": 2,
        "maxChars": 60,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "services.card2.body",
        "section": "services",
        "role": "body",
        "label": "Card 2 body",
        "maxLines": 5,
        "maxChars": 260,
        "minScale": 0.65,
        "maxScale": 1.2
      },
      {
        "id": "services.card3.title",
        "section": "services",
        "role": "h3",
        "label": "Card 3 title",
        "maxLines": 2,
        "maxChars": 60,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "services.card3.body",
        "section": "services",
        "role": "body",
        "label": "Card 3 body",
        "maxLines": 5,
        "maxChars": 260,
        "minScale": 0.65,
        "maxScale": 1.2
      },
      {
        "id": "services.card4.title",
        "section": "services",
        "role": "h3",
        "label": "Card 4 title",
        "maxLines": 2,
        "maxChars": 60,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "services.card4.body",
        "section": "services",
        "role": "body",
        "label": "Card 4 body",
        "maxLines": 5,
        "maxChars": 260,
        "minScale": 0.65,
        "maxScale": 1.2
      },
      {
        "id": "services.card5.title",
        "section": "services",
        "role": "h3",
        "label": "Card 5 title",
        "maxLines": 2,
        "maxChars": 60,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "services.card5.body",
        "section": "services",
        "role": "body",
        "label": "Card 5 body",
        "maxLines": 5,
        "maxChars": 260,
        "minScale": 0.65,
        "maxScale": 1.2
      },
      {
        "id": "services.card6.title",
        "section": "services",
        "role": "h3",
        "label": "Card 6 title",
        "maxLines": 2,
        "maxChars": 60,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "services.card6.body",
        "section": "services",
        "role": "body",
        "label": "Card 6 body",
        "maxLines": 5,
        "maxChars": 260,
        "minScale": 0.65,
        "maxScale": 1.2
      },
      {
        "id": "services.card7.title",
        "section": "services",
        "role": "h3",
        "label": "Card 7 title",
        "maxLines": 2,
        "maxChars": 60,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "services.card7.body",
        "section": "services",
        "role": "body",
        "label": "Card 7 body",
        "maxLines": 5,
        "maxChars": 260,
        "minScale": 0.65,
        "maxScale": 1.2
      },
      {
        "id": "services.card8.title",
        "section": "services",
        "role": "h3",
        "label": "Card 8 title",
        "maxLines": 2,
        "maxChars": 60,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "services.card8.body",
        "section": "services",
        "role": "body",
        "label": "Card 8 body",
        "maxLines": 5,
        "maxChars": 260,
        "minScale": 0.65,
        "maxScale": 1.2
      },
      {
        "id": "services.card9.title",
        "section": "services",
        "role": "h3",
        "label": "Card 9 title",
        "maxLines": 2,
        "maxChars": 60,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "services.card9.body",
        "section": "services",
        "role": "body",
        "label": "Card 9 body",
        "maxLines": 5,
        "maxChars": 260,
        "minScale": 0.65,
        "maxScale": 1.2
      },
      {
        "id": "serve.eyebrow",
        "section": "serve",
        "role": "eyebrow",
        "label": "Eyebrow",
        "maxLines": 1,
        "maxChars": 40,
        "minScale": 0.6,
        "maxScale": 1.15
      },
      {
        "id": "serve.h2",
        "section": "serve",
        "role": "h2",
        "label": "Heading",
        "maxLines": 3,
        "maxChars": 110,
        "minScale": 0.6,
        "maxScale": 1.15
      },
      {
        "id": "serve.note1",
        "section": "serve",
        "role": "body",
        "label": "Paragraph 1",
        "maxLines": 4,
        "maxChars": 280,
        "minScale": 0.65,
        "maxScale": 1.2
      },
      {
        "id": "serve.note2",
        "section": "serve",
        "role": "body",
        "label": "Paragraph 2 (was bold lead-in + rest)",
        "maxLines": 3,
        "maxChars": 200,
        "minScale": 0.65,
        "maxScale": 1.2
      },
      {
        "id": "serve.chip1",
        "section": "serve",
        "role": "chip",
        "label": "Chip 1",
        "maxLines": 1,
        "maxChars": 36,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "serve.chip2",
        "section": "serve",
        "role": "chip",
        "label": "Chip 2",
        "maxLines": 1,
        "maxChars": 36,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "serve.chip3",
        "section": "serve",
        "role": "chip",
        "label": "Chip 3",
        "maxLines": 1,
        "maxChars": 36,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "serve.chip4",
        "section": "serve",
        "role": "chip",
        "label": "Chip 4",
        "maxLines": 1,
        "maxChars": 36,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "serve.chip5",
        "section": "serve",
        "role": "chip",
        "label": "Chip 5",
        "maxLines": 1,
        "maxChars": 36,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "serve.chip6",
        "section": "serve",
        "role": "chip",
        "label": "Chip 6",
        "maxLines": 1,
        "maxChars": 36,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "products.eyebrow",
        "section": "products",
        "role": "eyebrow",
        "label": "Eyebrow",
        "maxLines": 1,
        "maxChars": 40,
        "minScale": 0.6,
        "maxScale": 1.15
      },
      {
        "id": "products.h2",
        "section": "products",
        "role": "h2",
        "label": "Heading",
        "maxLines": 3,
        "maxChars": 110,
        "minScale": 0.6,
        "maxScale": 1.15
      },
      {
        "id": "products.lead",
        "section": "products",
        "role": "lead",
        "label": "Subheading",
        "maxLines": 4,
        "maxChars": 260,
        "minScale": 0.65,
        "maxScale": 1.15
      },
      {
        "id": "products.card1.cat",
        "section": "products",
        "role": "label",
        "label": "Card 1 category",
        "maxLines": 1,
        "maxChars": 40,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "products.card1.item1",
        "section": "products",
        "role": "listItem",
        "label": "Card 1 item 1",
        "maxLines": 2,
        "maxChars": 70,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "products.card1.item2",
        "section": "products",
        "role": "listItem",
        "label": "Card 1 item 2",
        "maxLines": 2,
        "maxChars": 70,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "products.card1.item3",
        "section": "products",
        "role": "listItem",
        "label": "Card 1 item 3",
        "maxLines": 2,
        "maxChars": 70,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "products.card1.item4",
        "section": "products",
        "role": "listItem",
        "label": "Card 1 item 4",
        "maxLines": 2,
        "maxChars": 70,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "products.card2.cat",
        "section": "products",
        "role": "label",
        "label": "Card 2 category",
        "maxLines": 1,
        "maxChars": 40,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "products.card2.item1",
        "section": "products",
        "role": "listItem",
        "label": "Card 2 item 1",
        "maxLines": 2,
        "maxChars": 70,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "products.card2.item2",
        "section": "products",
        "role": "listItem",
        "label": "Card 2 item 2",
        "maxLines": 2,
        "maxChars": 70,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "products.card2.item3",
        "section": "products",
        "role": "listItem",
        "label": "Card 2 item 3",
        "maxLines": 2,
        "maxChars": 70,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "products.card2.item4",
        "section": "products",
        "role": "listItem",
        "label": "Card 2 item 4",
        "maxLines": 2,
        "maxChars": 70,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "products.card3.cat",
        "section": "products",
        "role": "label",
        "label": "Card 3 category",
        "maxLines": 1,
        "maxChars": 40,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "products.card3.item1",
        "section": "products",
        "role": "listItem",
        "label": "Card 3 item 1",
        "maxLines": 2,
        "maxChars": 70,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "products.card3.item2",
        "section": "products",
        "role": "listItem",
        "label": "Card 3 item 2",
        "maxLines": 2,
        "maxChars": 70,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "products.card3.item3",
        "section": "products",
        "role": "listItem",
        "label": "Card 3 item 3",
        "maxLines": 2,
        "maxChars": 70,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "products.card3.item4",
        "section": "products",
        "role": "listItem",
        "label": "Card 3 item 4",
        "maxLines": 2,
        "maxChars": 70,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "products.card4.cat",
        "section": "products",
        "role": "label",
        "label": "Card 4 category",
        "maxLines": 1,
        "maxChars": 40,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "products.card4.item1",
        "section": "products",
        "role": "listItem",
        "label": "Card 4 item 1",
        "maxLines": 2,
        "maxChars": 70,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "products.card4.item2",
        "section": "products",
        "role": "listItem",
        "label": "Card 4 item 2",
        "maxLines": 2,
        "maxChars": 70,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "products.card4.item3",
        "section": "products",
        "role": "listItem",
        "label": "Card 4 item 3",
        "maxLines": 2,
        "maxChars": 70,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "products.card4.item4",
        "section": "products",
        "role": "listItem",
        "label": "Card 4 item 4",
        "maxLines": 2,
        "maxChars": 70,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "why.eyebrow",
        "section": "why",
        "role": "eyebrow",
        "label": "Eyebrow",
        "maxLines": 1,
        "maxChars": 40,
        "minScale": 0.6,
        "maxScale": 1.15
      },
      {
        "id": "why.h2",
        "section": "why",
        "role": "h2",
        "label": "Heading",
        "maxLines": 3,
        "maxChars": 110,
        "minScale": 0.6,
        "maxScale": 1.15
      },
      {
        "id": "why.card1.title",
        "section": "why",
        "role": "h4",
        "label": "Card 1 title",
        "maxLines": 2,
        "maxChars": 60,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "why.card1.body",
        "section": "why",
        "role": "body",
        "label": "Card 1 body",
        "maxLines": 4,
        "maxChars": 240,
        "minScale": 0.65,
        "maxScale": 1.2
      },
      {
        "id": "why.card2.title",
        "section": "why",
        "role": "h4",
        "label": "Card 2 title",
        "maxLines": 2,
        "maxChars": 60,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "why.card2.body",
        "section": "why",
        "role": "body",
        "label": "Card 2 body",
        "maxLines": 4,
        "maxChars": 240,
        "minScale": 0.65,
        "maxScale": 1.2
      },
      {
        "id": "why.card3.title",
        "section": "why",
        "role": "h4",
        "label": "Card 3 title",
        "maxLines": 2,
        "maxChars": 60,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "why.card3.body",
        "section": "why",
        "role": "body",
        "label": "Card 3 body",
        "maxLines": 4,
        "maxChars": 240,
        "minScale": 0.65,
        "maxScale": 1.2
      },
      {
        "id": "faq.eyebrow",
        "section": "faq",
        "role": "eyebrow",
        "label": "Eyebrow",
        "maxLines": 1,
        "maxChars": 40,
        "minScale": 0.6,
        "maxScale": 1.15
      },
      {
        "id": "faq.h2",
        "section": "faq",
        "role": "h2",
        "label": "Heading",
        "maxLines": 3,
        "maxChars": 110,
        "minScale": 0.6,
        "maxScale": 1.15
      },
      {
        "id": "faq.lead",
        "section": "faq",
        "role": "lead",
        "label": "Subheading",
        "maxLines": 3,
        "maxChars": 200,
        "minScale": 0.65,
        "maxScale": 1.15
      },
      {
        "id": "faq.q1",
        "section": "faq",
        "role": "h3",
        "label": "Question 1",
        "maxLines": 2,
        "maxChars": 100,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "faq.a1",
        "section": "faq",
        "role": "faqA",
        "label": "Answer 1",
        "maxLines": 8,
        "maxChars": 420,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "faq.q2",
        "section": "faq",
        "role": "h3",
        "label": "Question 2",
        "maxLines": 2,
        "maxChars": 100,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "faq.a2",
        "section": "faq",
        "role": "faqA",
        "label": "Answer 2",
        "maxLines": 8,
        "maxChars": 420,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "faq.q3",
        "section": "faq",
        "role": "h3",
        "label": "Question 3",
        "maxLines": 2,
        "maxChars": 100,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "faq.a3",
        "section": "faq",
        "role": "faqA",
        "label": "Answer 3",
        "maxLines": 8,
        "maxChars": 420,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "faq.q4",
        "section": "faq",
        "role": "h3",
        "label": "Question 4",
        "maxLines": 2,
        "maxChars": 100,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "faq.a4",
        "section": "faq",
        "role": "faqA",
        "label": "Answer 4",
        "maxLines": 8,
        "maxChars": 420,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "faq.q5",
        "section": "faq",
        "role": "h3",
        "label": "Question 5",
        "maxLines": 2,
        "maxChars": 100,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "faq.a5",
        "section": "faq",
        "role": "faqA",
        "label": "Answer 5",
        "maxLines": 8,
        "maxChars": 420,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "faq.q6",
        "section": "faq",
        "role": "h3",
        "label": "Question 6",
        "maxLines": 2,
        "maxChars": 100,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "faq.a6",
        "section": "faq",
        "role": "faqA",
        "label": "Answer 6",
        "maxLines": 8,
        "maxChars": 420,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "faq.q7",
        "section": "faq",
        "role": "h3",
        "label": "Question 7",
        "maxLines": 2,
        "maxChars": 100,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "faq.a7",
        "section": "faq",
        "role": "faqA",
        "label": "Answer 7",
        "maxLines": 8,
        "maxChars": 420,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "contact.eyebrow",
        "section": "contact",
        "role": "eyebrow",
        "label": "Eyebrow",
        "maxLines": 1,
        "maxChars": 40,
        "minScale": 0.6,
        "maxScale": 1.15
      },
      {
        "id": "contact.h2",
        "section": "contact",
        "role": "h2",
        "label": "Heading",
        "maxLines": 3,
        "maxChars": 110,
        "minScale": 0.6,
        "maxScale": 1.15
      },
      {
        "id": "contact.lead",
        "section": "contact",
        "role": "lead",
        "label": "Subheading",
        "maxLines": 4,
        "maxChars": 260,
        "minScale": 0.65,
        "maxScale": 1.15
      },
      {
        "id": "contact.callus.heading",
        "section": "contact",
        "role": "h4",
        "label": "'Call Us' card heading",
        "maxLines": 1,
        "maxChars": 30,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "contact.emailus.heading",
        "section": "contact",
        "role": "h4",
        "label": "'Email Us' card heading",
        "maxLines": 1,
        "maxChars": 30,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "contact.callus.press3",
        "section": "contact",
        "role": "label",
        "label": "Press-3 line",
        "maxLines": 1,
        "maxChars": 30,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "contact.callus.press4",
        "section": "contact",
        "role": "label",
        "label": "Press-4 line",
        "maxLines": 1,
        "maxChars": 30,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "contact.callus.sub",
        "section": "contact",
        "role": "label",
        "label": "'Call Us' sub-line",
        "maxLines": 2,
        "maxChars": 100,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "contact.form.heading",
        "section": "contact",
        "role": "h3",
        "label": "Form card heading",
        "maxLines": 1,
        "maxChars": 50,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "contact.confirm.heading",
        "section": "contact",
        "role": "h3",
        "label": "Confirmation heading",
        "maxLines": 1,
        "maxChars": 50,
        "minScale": 0.6,
        "maxScale": 1.2
      },
      {
        "id": "contact.confirm.body",
        "section": "contact",
        "role": "body",
        "label": "Confirmation body",
        "maxLines": 3,
        "maxChars": 180,
        "minScale": 0.65,
        "maxScale": 1.2
      },
      {
        "id": "footer.about",
        "section": "footer",
        "role": "footer",
        "label": "About blurb",
        "maxLines": 4,
        "maxChars": 280,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "footer.col1.heading",
        "section": "footer",
        "role": "label",
        "label": "Column 1 heading",
        "maxLines": 1,
        "maxChars": 24,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "footer.col2.heading",
        "section": "footer",
        "role": "label",
        "label": "Column 2 heading",
        "maxLines": 1,
        "maxChars": 24,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "footer.copyright",
        "section": "footer",
        "role": "label",
        "label": "Copyright line",
        "maxLines": 1,
        "maxChars": 60,
        "minScale": 0.7,
        "maxScale": 1.2
      },
      {
        "id": "footer.tagline",
        "section": "footer",
        "role": "label",
        "label": "Tagline",
        "maxLines": 1,
        "maxChars": 30,
        "minScale": 0.7,
        "maxScale": 1.2
      }
    ],
    "repeaters": [
      {
        "id": "header.nav",
        "label": "Header Nav Menu",
        "itemNoun": "Menu Item",
        "fields": [
          {
            "key": "label",
            "kind": "text",
            "label": "Label",
            "role": "nav",
            "maxLines": 1,
            "maxChars": 24,
            "minScale": 0.7,
            "maxScale": 1.2
          },
          {
            "key": "href",
            "kind": "href",
            "label": "Link (# section, /page, or https://)"
          }
        ],
        "minItems": 1,
        "maxItems": 10
      },
      {
        "id": "hero.badges",
        "label": "Hero Trust Badges",
        "itemNoun": "Badge",
        "fields": [
          {
            "key": "label",
            "kind": "text",
            "label": "Text",
            "role": "badge",
            "maxLines": 1,
            "maxChars": 40,
            "minScale": 0.65,
            "maxScale": 1.2
          }
        ],
        "minItems": 0,
        "maxItems": 8
      },
      {
        "id": "hero.monitorRows",
        "label": "Hero Live Monitoring Rows",
        "itemNoun": "Row",
        "fields": [
          {
            "key": "label",
            "kind": "text",
            "label": "Label",
            "role": "monitorLabel",
            "maxLines": 1,
            "maxChars": 26,
            "minScale": 0.75,
            "maxScale": 1.2
          },
          {
            "key": "status",
            "kind": "text",
            "label": "Status",
            "role": "monitorStatus",
            "maxLines": 1,
            "maxChars": 20,
            "minScale": 0.75,
            "maxScale": 1.2
          },
          {
            "key": "icon",
            "kind": "icon",
            "label": "Icon"
          }
        ],
        "minItems": 1,
        "maxItems": 8
      },
      {
        "id": "services.cards",
        "label": "Service Cards",
        "itemNoun": "Card",
        "fields": [
          {
            "key": "title",
            "kind": "text",
            "label": "Title",
            "role": "h3",
            "maxLines": 2,
            "maxChars": 60,
            "minScale": 0.6,
            "maxScale": 1.2
          },
          {
            "key": "body",
            "kind": "text",
            "label": "Body",
            "role": "body",
            "maxLines": 5,
            "maxChars": 260,
            "minScale": 0.65,
            "maxScale": 1.2
          },
          {
            "key": "icon",
            "kind": "icon",
            "label": "Icon"
          }
        ],
        "minItems": 1,
        "maxItems": 15,
        "gridColumns": 3
      },
      {
        "id": "serve.chips",
        "label": "Who We Serve Chips",
        "itemNoun": "Chip",
        "fields": [
          {
            "key": "label",
            "kind": "text",
            "label": "Text",
            "role": "chip",
            "maxLines": 1,
            "maxChars": 36,
            "minScale": 0.7,
            "maxScale": 1.2
          }
        ],
        "minItems": 0,
        "maxItems": 12
      },
      {
        "id": "products.cards",
        "label": "Product Cards",
        "itemNoun": "Card",
        "fields": [
          {
            "key": "wordmark",
            "kind": "text",
            "label": "Vendor / Wordmark",
            "role": "label",
            "maxLines": 1,
            "maxChars": 24,
            "minScale": 0.7,
            "maxScale": 1.2
          },
          {
            "key": "category",
            "kind": "text",
            "label": "Category",
            "role": "label",
            "maxLines": 1,
            "maxChars": 40,
            "minScale": 0.7,
            "maxScale": 1.2
          }
        ],
        "minItems": 1,
        "maxItems": 8,
        "gridColumns": 4,
        "hasNestedItems": true
      },
      {
        "id": "why.cards",
        "label": "Why Us Cards",
        "itemNoun": "Card",
        "fields": [
          {
            "key": "title",
            "kind": "text",
            "label": "Title",
            "role": "h4",
            "maxLines": 2,
            "maxChars": 60,
            "minScale": 0.6,
            "maxScale": 1.2
          },
          {
            "key": "body",
            "kind": "text",
            "label": "Body",
            "role": "body",
            "maxLines": 4,
            "maxChars": 240,
            "minScale": 0.65,
            "maxScale": 1.2
          }
        ],
        "minItems": 1,
        "maxItems": 6,
        "gridColumns": 3
      },
      {
        "id": "faq.items",
        "label": "FAQ Items",
        "itemNoun": "Question",
        "fields": [
          {
            "key": "question",
            "kind": "text",
            "label": "Question",
            "role": "h3",
            "maxLines": 2,
            "maxChars": 100,
            "minScale": 0.6,
            "maxScale": 1.2
          },
          {
            "key": "answer",
            "kind": "text",
            "label": "Answer",
            "role": "faqA",
            "maxLines": 8,
            "maxChars": 420,
            "minScale": 0.7,
            "maxScale": 1.2
          }
        ],
        "minItems": 1,
        "maxItems": 15
      },
      {
        "id": "footer.explore",
        "label": "Footer — Explore Links",
        "itemNoun": "Link",
        "fields": [
          {
            "key": "label",
            "kind": "text",
            "label": "Label",
            "role": "nav",
            "maxLines": 1,
            "maxChars": 24,
            "minScale": 0.7,
            "maxScale": 1.2
          },
          {
            "key": "href",
            "kind": "href",
            "label": "Link (# section, /page, or https://)"
          }
        ],
        "minItems": 0,
        "maxItems": 10
      },
      {
        "id": "page.sections",
        "label": "Page Sections",
        "itemNoun": "Section",
        "fields": [],
        "minItems": 6,
        "maxItems": 6
      }
    ],
    "productBullets": {
      "min": 1,
      "max": 8
    },
    "scopes": [
      "live",
      "draft",
      "published",
      "site:<slug>"
    ],
    "publishLayers": [
      "content",
      "structure",
      "style",
      "logo"
    ]
  },
  "styleSettings": [
    {
      "key": "website",
      "type": "ThemeName",
      "description": "Website theme family."
    },
    {
      "key": "commandCenter",
      "type": "ThemeName",
      "description": "Core Console theme family."
    },
    {
      "key": "bgDesktop",
      "type": "boolean",
      "description": "Show the desktop background image."
    },
    {
      "key": "bgMobile",
      "type": "boolean",
      "description": "Show the mobile background image."
    },
    {
      "key": "bgDesktopImage",
      "type": "string",
      "description": "Selected desktop background image URL."
    },
    {
      "key": "bgMobileImage",
      "type": "string",
      "description": "Selected mobile background image URL."
    },
    {
      "key": "pageBgImages",
      "type": "PageBgMap",
      "description": "Page-ID map of desktop/mobile image overrides; missing entries inherit the website."
    },
    {
      "key": "bgScrimDesktop",
      "type": "boolean",
      "description": "Enable the desktop readability overlay."
    },
    {
      "key": "bgScrimMobile",
      "type": "boolean",
      "description": "Enable the mobile readability overlay."
    },
    {
      "key": "bgScrimDesktopStrength",
      "type": "number",
      "description": "Desktop overlay opacity, 0–100."
    },
    {
      "key": "mobileGlassOverlay",
      "type": "boolean",
      "description": "Enable the mobile reading glass layer."
    },
    {
      "key": "mobileGlassRampPx",
      "type": "number",
      "description": "Scroll distance to full reading-glass strength, in pixels."
    },
    {
      "key": "mobileGlassMaxOpacity",
      "type": "number",
      "description": "Maximum reading-glass opacity, 0–100."
    },
    {
      "key": "mobileGlassMaxBlurPx",
      "type": "number",
      "description": "Maximum reading-glass backdrop blur in pixels."
    },
    {
      "key": "mobileBgBlurOn",
      "type": "boolean",
      "description": "Enable direct background blur while scrolling on mobile."
    },
    {
      "key": "mobileBgBlurRampPx",
      "type": "number",
      "description": "Scroll distance to full background blur, in pixels."
    },
    {
      "key": "mobileBgBlurMaxPx",
      "type": "number",
      "description": "Maximum background blur in pixels."
    },
    {
      "key": "sizeServicesCard",
      "type": "number",
      "description": "Service-card scale, 60–180%."
    },
    {
      "key": "sizeProductsCard",
      "type": "number",
      "description": "Product-card scale, 60–180%."
    },
    {
      "key": "sizeWhyCard",
      "type": "number",
      "description": "Why Us card scale, 60–180%."
    },
    {
      "key": "sizeChip",
      "type": "number",
      "description": "Chip scale, 60–180%."
    },
    {
      "key": "sizeBadge",
      "type": "number",
      "description": "Badge scale, 60–180%."
    },
    {
      "key": "sizeFaqItem",
      "type": "number",
      "description": "FAQ-item scale, 60–180%."
    },
    {
      "key": "bgScrimMobileStrength",
      "type": "number",
      "description": "Mobile overlay opacity, 0–100."
    },
    {
      "key": "colorScheme",
      "type": "string",
      "description": "Selected built-in or custom color scheme."
    },
    {
      "key": "commandCenterColorScheme",
      "type": "string",
      "description": "Core Console: selected built-in or custom palette."
    },
    {
      "key": "websiteIconSet",
      "type": "IconSetName",
      "description": "Website icon family."
    },
    {
      "key": "commandCenterIconSet",
      "type": "IconSetName",
      "description": "Core Console: selected icon family."
    },
    {
      "key": "websiteFont",
      "type": "FontSetName",
      "description": "Website font family."
    },
    {
      "key": "commandCenterFont",
      "type": "FontSetName",
      "description": "Core Console: selected font family."
    },
    {
      "key": "os",
      "type": "ThemeName",
      "description": "Desk theme family."
    },
    {
      "key": "osColorScheme",
      "type": "string",
      "description": "Desk: selected color scheme."
    },
    {
      "key": "osIconSet",
      "type": "IconSetName",
      "description": "Desk: selected icon family."
    },
    {
      "key": "osFont",
      "type": "FontSetName",
      "description": "Desk: selected font family."
    },
    {
      "key": "osBgDesktop",
      "type": "boolean",
      "description": "Desk: Show the desktop background image."
    },
    {
      "key": "osBgMobile",
      "type": "boolean",
      "description": "Desk: Show the mobile background image."
    },
    {
      "key": "osBgDesktopImage",
      "type": "string",
      "description": "Desk: Selected desktop background image URL."
    },
    {
      "key": "osBgMobileImage",
      "type": "string",
      "description": "Desk: Selected mobile background image URL."
    },
    {
      "key": "osBgScrimDesktop",
      "type": "boolean",
      "description": "Desk: Enable the desktop readability overlay."
    },
    {
      "key": "osBgScrimMobile",
      "type": "boolean",
      "description": "Desk: Enable the mobile readability overlay."
    },
    {
      "key": "osBgScrimDesktopStrength",
      "type": "number",
      "description": "Desk: Desktop overlay opacity, 0–100."
    },
    {
      "key": "osBgScrimMobileStrength",
      "type": "number",
      "description": "Desk: Mobile overlay opacity, 0–100."
    },
    {
      "key": "osBgFx",
      "type": "string",
      "description": "Desk: Selected background effect, or off."
    },
    {
      "key": "osBgFxIntensity",
      "type": "number",
      "description": "Desk: Normalized intensity control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "osBgFxAmount",
      "type": "number",
      "description": "Desk: Normalized amount control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "osBgFxDensity",
      "type": "number",
      "description": "Desk: Normalized density control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "osBgFxSpeed",
      "type": "number",
      "description": "Desk: Normalized speed control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "osBgFxStrength",
      "type": "number",
      "description": "Desk: Normalized strength control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "osBgFxColor1",
      "type": "string",
      "description": "Desk: Effect color 1, as a six-digit hex value."
    },
    {
      "key": "osBgFxColor2",
      "type": "string",
      "description": "Desk: Effect color 2, as a six-digit hex value."
    },
    {
      "key": "osBgFxMouse",
      "type": "string",
      "description": "Desk: Comma-separated cursor modes: attract, spawn, repel, trail; empty disables them."
    },
    {
      "key": "osBgFxMouseIntensity",
      "type": "number",
      "description": "Desk: Normalized mouse intensity control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "osBgFxMouseAmount",
      "type": "number",
      "description": "Desk: Normalized mouse amount control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "osBgFxMouseDensity",
      "type": "number",
      "description": "Desk: Normalized mouse density control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "osBgFxMouseSpeed",
      "type": "number",
      "description": "Desk: Normalized mouse speed control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "osBgFxMouseStrength",
      "type": "number",
      "description": "Desk: Normalized mouse strength control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "osBgFxMobileOn",
      "type": "boolean",
      "description": "Desk: Allow the background effect on mobile."
    },
    {
      "key": "osBgFxClickOn",
      "type": "boolean",
      "description": "Desk: Enable click and tap response."
    },
    {
      "key": "osBgFxClickPower",
      "type": "number",
      "description": "Desk: Normalized click power control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "osBgFxClickSize",
      "type": "number",
      "description": "Desk: Normalized click size control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "osBgFxClickDuration",
      "type": "number",
      "description": "Desk: Normalized click duration control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "osBgFxDblOn",
      "type": "boolean",
      "description": "Desk: Enable double-click boost."
    },
    {
      "key": "osBgFxDblBoost",
      "type": "number",
      "description": "Desk: Normalized dbl boost control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "osBgFxDblDuration",
      "type": "number",
      "description": "Desk: Normalized dbl duration control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "osColorSchemeVars",
      "type": "string",
      "description": "Derived CSS custom-property fragment for the selected surface palette; resolved output, not an independent edit control."
    },
    {
      "key": "osColorSchemeNeutralCss",
      "type": "string",
      "description": "Derived light/dark neutral CSS for the selected surface; resolved output, not an independent edit control."
    },
    {
      "key": "ccBgDesktop",
      "type": "boolean",
      "description": "Core Console: Show the desktop background image."
    },
    {
      "key": "ccBgMobile",
      "type": "boolean",
      "description": "Core Console: Show the mobile background image."
    },
    {
      "key": "ccBgDesktopImage",
      "type": "string",
      "description": "Core Console: Selected desktop background image URL."
    },
    {
      "key": "ccBgMobileImage",
      "type": "string",
      "description": "Core Console: Selected mobile background image URL."
    },
    {
      "key": "ccBgScrimDesktop",
      "type": "boolean",
      "description": "Core Console: Enable the desktop readability overlay."
    },
    {
      "key": "ccBgScrimMobile",
      "type": "boolean",
      "description": "Core Console: Enable the mobile readability overlay."
    },
    {
      "key": "ccBgScrimDesktopStrength",
      "type": "number",
      "description": "Core Console: Desktop overlay opacity, 0–100."
    },
    {
      "key": "ccBgScrimMobileStrength",
      "type": "number",
      "description": "Core Console: Mobile overlay opacity, 0–100."
    },
    {
      "key": "bgFx",
      "type": "string",
      "description": "Selected background effect, or off."
    },
    {
      "key": "bgFxIntensity",
      "type": "number",
      "description": "Normalized intensity control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "bgFxAmount",
      "type": "number",
      "description": "Normalized amount control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "bgFxDensity",
      "type": "number",
      "description": "Normalized density control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "bgFxSpeed",
      "type": "number",
      "description": "Normalized speed control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "bgFxStrength",
      "type": "number",
      "description": "Normalized strength control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "bgFxColor1",
      "type": "string",
      "description": "Effect color 1, as a six-digit hex value."
    },
    {
      "key": "bgFxColor2",
      "type": "string",
      "description": "Effect color 2, as a six-digit hex value."
    },
    {
      "key": "bgFxMouse",
      "type": "string",
      "description": "Comma-separated cursor modes: attract, spawn, repel, trail; empty disables them."
    },
    {
      "key": "bgFxMouseIntensity",
      "type": "number",
      "description": "Normalized mouse intensity control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "bgFxMouseAmount",
      "type": "number",
      "description": "Normalized mouse amount control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "bgFxMouseDensity",
      "type": "number",
      "description": "Normalized mouse density control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "bgFxMouseSpeed",
      "type": "number",
      "description": "Normalized mouse speed control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "bgFxMouseStrength",
      "type": "number",
      "description": "Normalized mouse strength control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "bgFxMobileOn",
      "type": "boolean",
      "description": "Allow the background effect on mobile."
    },
    {
      "key": "bgFxClickOn",
      "type": "boolean",
      "description": "Enable click and tap response."
    },
    {
      "key": "bgFxClickPower",
      "type": "number",
      "description": "Normalized click power control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "bgFxClickSize",
      "type": "number",
      "description": "Normalized click size control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "bgFxClickDuration",
      "type": "number",
      "description": "Normalized click duration control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "bgFxDblOn",
      "type": "boolean",
      "description": "Enable double-click boost."
    },
    {
      "key": "bgFxDblBoost",
      "type": "number",
      "description": "Normalized dbl boost control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "bgFxDblDuration",
      "type": "number",
      "description": "Normalized dbl duration control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "ccBgFx",
      "type": "string",
      "description": "Core Console: Selected background effect, or off."
    },
    {
      "key": "ccBgFxIntensity",
      "type": "number",
      "description": "Core Console: Normalized intensity control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "ccBgFxAmount",
      "type": "number",
      "description": "Core Console: Normalized amount control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "ccBgFxDensity",
      "type": "number",
      "description": "Core Console: Normalized density control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "ccBgFxSpeed",
      "type": "number",
      "description": "Core Console: Normalized speed control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "ccBgFxStrength",
      "type": "number",
      "description": "Core Console: Normalized strength control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "ccBgFxColor1",
      "type": "string",
      "description": "Core Console: Effect color 1, as a six-digit hex value."
    },
    {
      "key": "ccBgFxColor2",
      "type": "string",
      "description": "Core Console: Effect color 2, as a six-digit hex value."
    },
    {
      "key": "ccBgFxMouse",
      "type": "string",
      "description": "Core Console: Comma-separated cursor modes: attract, spawn, repel, trail; empty disables them."
    },
    {
      "key": "ccBgFxMouseIntensity",
      "type": "number",
      "description": "Core Console: Normalized mouse intensity control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "ccBgFxMouseAmount",
      "type": "number",
      "description": "Core Console: Normalized mouse amount control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "ccBgFxMouseDensity",
      "type": "number",
      "description": "Core Console: Normalized mouse density control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "ccBgFxMouseSpeed",
      "type": "number",
      "description": "Core Console: Normalized mouse speed control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "ccBgFxMouseStrength",
      "type": "number",
      "description": "Core Console: Normalized mouse strength control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "ccBgFxMobileOn",
      "type": "boolean",
      "description": "Core Console: Allow the background effect on mobile."
    },
    {
      "key": "ccBgFxClickOn",
      "type": "boolean",
      "description": "Core Console: Enable click and tap response."
    },
    {
      "key": "ccBgFxClickPower",
      "type": "number",
      "description": "Core Console: Normalized click power control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "ccBgFxClickSize",
      "type": "number",
      "description": "Core Console: Normalized click size control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "ccBgFxClickDuration",
      "type": "number",
      "description": "Core Console: Normalized click duration control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "ccBgFxDblOn",
      "type": "boolean",
      "description": "Core Console: Enable double-click boost."
    },
    {
      "key": "ccBgFxDblBoost",
      "type": "number",
      "description": "Core Console: Normalized dbl boost control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "ccBgFxDblDuration",
      "type": "number",
      "description": "Core Console: Normalized dbl duration control, 0–100; the effect renderer maps it to visual behavior."
    },
    {
      "key": "ccPanelBgStyle",
      "type": "string",
      "description": "Core Console: panel background style. Styles are default, flat, glass or gradient; opacity is 0–100."
    },
    {
      "key": "ccPanelBgColor",
      "type": "string",
      "description": "Core Console: panel background color. Styles are default, flat, glass or gradient; opacity is 0–100."
    },
    {
      "key": "ccPanelBgOpacity",
      "type": "number",
      "description": "Core Console: panel background opacity. Styles are default, flat, glass or gradient; opacity is 0–100."
    },
    {
      "key": "ccHeaderBgStyle",
      "type": "string",
      "description": "Core Console: header background style. Styles are default, flat, glass or gradient; opacity is 0–100."
    },
    {
      "key": "ccHeaderBgColor",
      "type": "string",
      "description": "Core Console: header background color. Styles are default, flat, glass or gradient; opacity is 0–100."
    },
    {
      "key": "ccHeaderBgOpacity",
      "type": "number",
      "description": "Core Console: header background opacity. Styles are default, flat, glass or gradient; opacity is 0–100."
    },
    {
      "key": "ccMenuBgStyle",
      "type": "string",
      "description": "Core Console: menu background style. Styles are default, flat, glass or gradient; opacity is 0–100."
    },
    {
      "key": "ccMenuBgColor",
      "type": "string",
      "description": "Core Console: menu background color. Styles are default, flat, glass or gradient; opacity is 0–100."
    },
    {
      "key": "ccMenuBgOpacity",
      "type": "number",
      "description": "Core Console: menu background opacity. Styles are default, flat, glass or gradient; opacity is 0–100."
    },
    {
      "key": "heroPillText",
      "type": "string",
      "description": "Welcome/hero eyebrow copy; empty restores its default."
    },
    {
      "key": "customSchemes",
      "type": "ColorScheme[]",
      "description": "Loaded custom color-scheme definitions."
    },
    {
      "key": "colorSchemeVars",
      "type": "string",
      "description": "Derived CSS custom-property fragment for the selected surface palette; resolved output, not an independent edit control."
    },
    {
      "key": "commandCenterColorSchemeVars",
      "type": "string",
      "description": "Derived CSS custom-property fragment for the selected surface palette; resolved output, not an independent edit control."
    },
    {
      "key": "colorSchemeNeutralCss",
      "type": "string",
      "description": "Derived light/dark neutral CSS for the selected surface; resolved output, not an independent edit control."
    },
    {
      "key": "commandCenterColorSchemeNeutralCss",
      "type": "string",
      "description": "Derived light/dark neutral CSS for the selected surface; resolved output, not an independent edit control."
    }
  ],
  "scheduledFields": [
    {
      "key": "websiteTheme",
      "label": "Theme (also sets matching icons + font)",
      "group": "Look",
      "kind": "enum"
    },
    {
      "key": "colorScheme",
      "label": "Color scheme",
      "group": "Look",
      "kind": "enum"
    },
    {
      "key": "bgDesktop",
      "label": "Desktop background image on/off",
      "group": "Background",
      "kind": "bool"
    },
    {
      "key": "bgMobile",
      "label": "Mobile background image on/off",
      "group": "Background",
      "kind": "bool"
    },
    {
      "key": "bgDesktopImage",
      "label": "Desktop background image",
      "group": "Background",
      "kind": "enum"
    },
    {
      "key": "bgMobileImage",
      "label": "Mobile background image",
      "group": "Background",
      "kind": "enum"
    },
    {
      "key": "bgScrimDesktop",
      "label": "Desktop readability scrim on/off",
      "group": "Background",
      "kind": "bool"
    },
    {
      "key": "bgScrimMobile",
      "label": "Mobile readability scrim on/off",
      "group": "Background",
      "kind": "bool"
    },
    {
      "key": "bgScrimDesktopStrength",
      "label": "Desktop scrim strength",
      "group": "Background",
      "kind": "pct"
    },
    {
      "key": "bgScrimMobileStrength",
      "label": "Mobile scrim strength",
      "group": "Background",
      "kind": "pct"
    },
    {
      "key": "bgFx",
      "label": "Background effect",
      "group": "Effects",
      "kind": "enum"
    },
    {
      "key": "bgFxIntensity",
      "label": "Effect intensity",
      "group": "Effects",
      "kind": "pct"
    },
    {
      "key": "bgFxAmount",
      "label": "Effect amount",
      "group": "Effects",
      "kind": "pct"
    },
    {
      "key": "bgFxDensity",
      "label": "Effect density",
      "group": "Effects",
      "kind": "pct"
    },
    {
      "key": "bgFxSpeed",
      "label": "Effect speed",
      "group": "Effects",
      "kind": "pct"
    },
    {
      "key": "bgFxStrength",
      "label": "Effect strength",
      "group": "Effects",
      "kind": "pct"
    },
    {
      "key": "bgFxColor1",
      "label": "Effect color 1",
      "group": "Effects",
      "kind": "hex"
    },
    {
      "key": "bgFxColor2",
      "label": "Effect color 2",
      "group": "Effects",
      "kind": "hex"
    },
    {
      "key": "bgFxMobileOn",
      "label": "Effect on mobile on/off",
      "group": "Effects",
      "kind": "bool"
    },
    {
      "key": "bgFxMouse",
      "label": "Cursor interactions",
      "group": "Cursor & click",
      "kind": "mouse"
    },
    {
      "key": "bgFxMouseIntensity",
      "label": "Cursor intensity",
      "group": "Cursor & click",
      "kind": "pct"
    },
    {
      "key": "bgFxMouseAmount",
      "label": "Cursor amount",
      "group": "Cursor & click",
      "kind": "pct"
    },
    {
      "key": "bgFxMouseDensity",
      "label": "Cursor density",
      "group": "Cursor & click",
      "kind": "pct"
    },
    {
      "key": "bgFxMouseSpeed",
      "label": "Cursor speed",
      "group": "Cursor & click",
      "kind": "pct"
    },
    {
      "key": "bgFxMouseStrength",
      "label": "Cursor strength",
      "group": "Cursor & click",
      "kind": "pct"
    },
    {
      "key": "bgFxClickOn",
      "label": "Click & tap response on/off",
      "group": "Cursor & click",
      "kind": "bool"
    },
    {
      "key": "bgFxClickPower",
      "label": "Click power",
      "group": "Cursor & click",
      "kind": "pct"
    },
    {
      "key": "bgFxClickSize",
      "label": "Click size",
      "group": "Cursor & click",
      "kind": "pct"
    },
    {
      "key": "bgFxClickDuration",
      "label": "Click duration",
      "group": "Cursor & click",
      "kind": "pct"
    },
    {
      "key": "bgFxDblOn",
      "label": "Double-click boost on/off",
      "group": "Cursor & click",
      "kind": "bool"
    },
    {
      "key": "bgFxDblBoost",
      "label": "Double-click boost",
      "group": "Cursor & click",
      "kind": "pct"
    },
    {
      "key": "bgFxDblDuration",
      "label": "Double-click duration",
      "group": "Cursor & click",
      "kind": "pct"
    }
  ],
  "sourceFiles": [
    {
      "path": "src/assets/astro.svg",
      "role": "Retained vector asset in the source tree; presence alone does not mean it appears in the active product UI."
    },
    {
      "path": "src/assets/background.svg",
      "role": "Retained vector asset in the source tree; presence alone does not mean it appears in the active product UI."
    },
    {
      "path": "src/assets/wix.svg",
      "role": "Retained vector asset in the source tree; presence alone does not mean it appears in the active product UI."
    },
    {
      "path": "src/components/BackgroundField.astro",
      "role": "Renders the website background field treatment."
    },
    {
      "path": "src/components/BackgroundFx.astro",
      "role": "Renders the selected animated effect and interactive parameters."
    },
    {
      "path": "src/components/Contact.astro",
      "role": "Renders the page’s contact section."
    },
    {
      "path": "src/components/ContactForm.astro",
      "role": "Renders the public inquiry form and submission feedback."
    },
    {
      "path": "src/components/Faq.astro",
      "role": "Renders resolved FAQ entries and their associated structured data."
    },
    {
      "path": "src/components/Footer.astro",
      "role": "Renders footer copy, navigation, logo visibility and contact routes."
    },
    {
      "path": "src/components/Header.astro",
      "role": "Renders brand, navigation and header action using resolved state."
    },
    {
      "path": "src/components/Hero.astro",
      "role": "Renders headline, introduction, calls to action, badges and monitor rows."
    },
    {
      "path": "src/components/Products.astro",
      "role": "Renders product cards and nested bullet items."
    },
    {
      "path": "src/components/Services.astro",
      "role": "Renders the ordered service card repeater."
    },
    {
      "path": "src/components/Stats.astro",
      "role": "Renders editable stat labels and the separately defined animated values."
    },
    {
      "path": "src/components/Welcome.astro",
      "role": "Retained scaffold welcome component."
    },
    {
      "path": "src/components/WhoWeServe.astro",
      "role": "Renders the audience/service-area chip group."
    },
    {
      "path": "src/components/WhyUs.astro",
      "role": "Renders the differentiator card group."
    },
    {
      "path": "src/components/cc/AiAnalytics.astro",
      "role": "Classifies recognized AI crawlers and supported AI referrals."
    },
    {
      "path": "src/components/cc/Analytics.astro",
      "role": "Groups recorded visits, network context, paths and time information."
    },
    {
      "path": "src/components/cc/Approvals.astro",
      "role": "Records approval and rejection decisions for tracked work."
    },
    {
      "path": "src/components/cc/AssetLibrary.astro",
      "role": "Organizes reusable business assets and references."
    },
    {
      "path": "src/components/cc/BuildNotes.astro",
      "role": "Presents implementation and operating knowledge within the platform."
    },
    {
      "path": "src/components/cc/CallTracking.astro",
      "role": "Displays configured call-provider activity and attribution."
    },
    {
      "path": "src/components/cc/CcActions.astro",
      "role": "Creates, edits, enables and removes scheduled website setting changes."
    },
    {
      "path": "src/components/cc/CcCalendar.astro",
      "role": "Maintains dated work and calendar events."
    },
    {
      "path": "src/components/cc/ChangeLog.astro",
      "role": "Records delivered platform changes and version context."
    },
    {
      "path": "src/components/cc/ClientNotes.astro",
      "role": "Keeps shared strategy and operating notes."
    },
    {
      "path": "src/components/cc/Clock.astro",
      "role": "Shows current time and recorded heartbeat context."
    },
    {
      "path": "src/components/cc/CommandCenterStyle.astro",
      "role": "Controls dashboard-specific appearance."
    },
    {
      "path": "src/components/cc/Competitors.astro",
      "role": "Compares search presence, content, services and other connected research."
    },
    {
      "path": "src/components/cc/Console.astro",
      "role": "Provides the command input/output interface for registered operations."
    },
    {
      "path": "src/components/cc/ContentManagement.astro",
      "role": "Edits the supported welcome/hero message and related website content controls."
    },
    {
      "path": "src/components/cc/DemoMode.astro",
      "role": "Orchestrates the guided demonstration."
    },
    {
      "path": "src/components/cc/DemoPanel.astro",
      "role": "Presents the demonstration’s explanation and controls."
    },
    {
      "path": "src/components/cc/EmergencyLockBadge.astro",
      "role": "Keeps lock state and recovery controls visible."
    },
    {
      "path": "src/components/cc/FluentIcon.astro",
      "role": "Maps semantic icon names to the selected icon family."
    },
    {
      "path": "src/components/cc/FormsPanel.astro",
      "role": "Lists inquiries and updates status or follow-up notes."
    },
    {
      "path": "src/components/cc/Funnel.astro",
      "role": "Shows the recorded stages between arrival and inquiry."
    },
    {
      "path": "src/components/cc/Ga4Panel.astro",
      "role": "Presents connected acquisition, engagement and event reporting."
    },
    {
      "path": "src/components/cc/Geographic.astro",
      "role": "Summarizes available location estimates for website attention."
    },
    {
      "path": "src/components/cc/HealthMonitor.astro",
      "role": "Surfaces connected performance, availability and health indicators."
    },
    {
      "path": "src/components/cc/LeadTracking.astro",
      "role": "Presents inquiry source, stage and follow-up context."
    },
    {
      "path": "src/components/cc/MetaAds.astro",
      "role": "Shows paid social delivery, spend, leads and cost measures."
    },
    {
      "path": "src/components/cc/MonthlyReports.astro",
      "role": "Organizes recurring performance and work summaries."
    },
    {
      "path": "src/components/cc/OsStyle.astro",
      "role": "Controls the windowed workspace independently."
    },
    {
      "path": "src/components/cc/OwnerSummary.astro",
      "role": "Brings traffic, inquiries and priorities into a starting view."
    },
    {
      "path": "src/components/cc/PresentationMode.astro",
      "role": "Sequences the platform presentation."
    },
    {
      "path": "src/components/cc/PresentationPanel.astro",
      "role": "Provides the presentation’s visual controls and content."
    },
    {
      "path": "src/components/cc/RecentAccess.astro",
      "role": "Reviews recorded administrative access and outcomes."
    },
    {
      "path": "src/components/cc/SchemeBuilder.astro",
      "role": "Builds named brand palettes and neutral color sets."
    },
    {
      "path": "src/components/cc/SearchConsole.astro",
      "role": "Reports connected queries, pages, visibility and search response."
    },
    {
      "path": "src/components/cc/SecurityAlertBanner.astro",
      "role": "Surfaces unacknowledged access concerns."
    },
    {
      "path": "src/components/cc/SecurityPanel.astro",
      "role": "Manages supported policy, passkey and alert controls."
    },
    {
      "path": "src/components/cc/SeoOpportunities.astro",
      "role": "Turns search performance gaps into potential improvements."
    },
    {
      "path": "src/components/cc/ServicePages.astro",
      "role": "Compares page-level interest and inquiry behavior."
    },
    {
      "path": "src/components/cc/SocialOrganic.astro",
      "role": "Reports organic reach, audience and post response."
    },
    {
      "path": "src/components/cc/StyleEngine.astro",
      "role": "Controls website themes, colors, typography, backgrounds and effects."
    },
    {
      "path": "src/components/cc/Tasks.astro",
      "role": "Creates and tracks work to completion."
    },
    {
      "path": "src/components/cc/Users.astro",
      "role": "Lists authorized users and provides administrator account provisioning."
    },
    {
      "path": "src/components/cc/VoiceMode.astro",
      "role": "Coordinates browser speech synthesis and playback state."
    },
    {
      "path": "src/components/cc/VoicePanel.astro",
      "role": "Provides the narration controls and available device voices."
    },
    {
      "path": "src/components/cms/EditableText.astro",
      "role": "Renders the resolved field and its editable identity in CMS context."
    },
    {
      "path": "src/components/cms/FitText.astro",
      "role": "Applies shared text-fitting behavior and bounds."
    },
    {
      "path": "src/env.d.ts",
      "role": "Declares framework environment and request-local types."
    },
    {
      "path": "src/layouts/BaseLayout.astro",
      "role": "Composes website metadata, scope, styles, backgrounds, tracking and mobile scroll effects."
    },
    {
      "path": "src/layouts/CommandCenterLayout.astro",
      "role": "Composes the guarded Console frame, navigation, settings and scheduled checks."
    },
    {
      "path": "src/layouts/Layout.astro",
      "role": "General shared page shell."
    },
    {
      "path": "src/lib/cc/actions.ts",
      "role": "Defines the 32-field schedule registry, validates values and runs due actions."
    },
    {
      "path": "src/lib/cc/ai.ts",
      "role": "Classifies and aggregates AI crawler and referral activity."
    },
    {
      "path": "src/lib/cc/analytics.ts",
      "role": "Collects, groups and enriches first-party visit records."
    },
    {
      "path": "src/lib/cc/calendar.ts",
      "role": "Reads the calendar collection and shapes event data."
    },
    {
      "path": "src/lib/cc/callrail.ts",
      "role": "Adapts the configured call-tracking provider."
    },
    {
      "path": "src/lib/cc/charts.ts",
      "role": "Provides reusable chart output and formatting."
    },
    {
      "path": "src/lib/cc/color-schemes.ts",
      "role": "Defines built-in palettes, brand color roles and neutral contexts."
    },
    {
      "path": "src/lib/cc/config.ts",
      "role": "Declares application configuration and collection mappings; private values are not included in this reference."
    },
    {
      "path": "src/lib/cc/console-commands.ts",
      "role": "Defines command syntax, permissions, handlers and output."
    },
    {
      "path": "src/lib/cc/data.ts",
      "role": "Reads and shapes operational panel data and source fallbacks."
    },
    {
      "path": "src/lib/cc/demo-content.ts",
      "role": "Provides guided demonstration content."
    },
    {
      "path": "src/lib/cc/emergency-lock.ts",
      "role": "Stores and evaluates the mutation lock and recovery flow."
    },
    {
      "path": "src/lib/cc/fonts.ts",
      "role": "Registers font choices and their web/system font stacks."
    },
    {
      "path": "src/lib/cc/forms.ts",
      "role": "Stores, lists and updates public inquiry records."
    },
    {
      "path": "src/lib/cc/fx-presets.ts",
      "role": "Sanitizes, stores and translates reusable effect configurations."
    },
    {
      "path": "src/lib/cc/guard.ts",
      "role": "Resolves authorized access to Core Console and Desk."
    },
    {
      "path": "src/lib/cc/heartbeat.ts",
      "role": "Records and summarizes scheduled-runner check-ins."
    },
    {
      "path": "src/lib/cc/icon-sets.ts",
      "role": "Registers icon families and semantic icon rendering rules."
    },
    {
      "path": "src/lib/cc/notify.ts",
      "role": "Records supported denied-access alerts and notification activity."
    },
    {
      "path": "src/lib/cc/passkeys.ts",
      "role": "Stores credentials, manages challenge/session state and verifies passkey policy."
    },
    {
      "path": "src/lib/cc/security.ts",
      "role": "Reads and writes security settings and administrative headers."
    },
    {
      "path": "src/lib/cc/theme.ts",
      "role": "Resolves the 133-property theme object, target inheritance and caches."
    },
    {
      "path": "src/lib/cc/ua.ts",
      "role": "Parses user-agent context for reporting."
    },
    {
      "path": "src/lib/cc/users.ts",
      "role": "Manages explicit authorization, finite account seats and account provisioning."
    },
    {
      "path": "src/lib/cc/version.ts",
      "role": "Declares the reviewed Core Console release identifier."
    },
    {
      "path": "src/lib/cc/wix.ts",
      "role": "Centralizes Wix members, collection operations and managed media services."
    },
    {
      "path": "src/lib/cms/config.ts",
      "role": "Declares CMS storage identifiers and authorized editing configuration; private account values are omitted."
    },
    {
      "path": "src/lib/cms/content.ts",
      "role": "Resolves field copy and scale, stores overrides and restores originals."
    },
    {
      "path": "src/lib/cms/draft-style.ts",
      "role": "Stores scoped style overrides and publishes design snapshots."
    },
    {
      "path": "src/lib/cms/guard.ts",
      "role": "Protects Builder and CMS mutations."
    },
    {
      "path": "src/lib/cms/logo.ts",
      "role": "Resolves, stores and publishes scoped logo state."
    },
    {
      "path": "src/lib/cms/repeaters.ts",
      "role": "Defines reusable component groups, field templates, bounds and nested product bullets."
    },
    {
      "path": "src/lib/cms/schema.ts",
      "role": "Defines ten sections and 124 original registered text fields."
    },
    {
      "path": "src/lib/cms/scope.ts",
      "role": "Resolves live, authorized draft, legacy and named publication scope once per request."
    },
    {
      "path": "src/lib/cms/site-paths.ts",
      "role": "Validates publication names and maps them to paths and storage scope."
    },
    {
      "path": "src/lib/cms/sites.ts",
      "role": "Maintains the published-page registry."
    },
    {
      "path": "src/lib/cms/structure.ts",
      "role": "Resolves repeater items, validates structural edits and saves scoped structure."
    },
    {
      "path": "src/middleware.ts",
      "role": "Applies request-level middleware before page handlers."
    },
    {
      "path": "src/pages/Sennett.astro",
      "role": "Separate Sennett website target."
    },
    {
      "path": "src/pages/Sennett/cc.astro",
      "role": "Sennett-focused Console entry."
    },
    {
      "path": "src/pages/Sennett/desk.astro",
      "role": "Sennett-focused Desk entry."
    },
    {
      "path": "src/pages/Sennett/trial.astro",
      "role": "Public trial with a narrower set of allowed controls and trial-specific state."
    },
    {
      "path": "src/pages/api/cc/actions-run.ts",
      "role": "Run already-due website actions"
    },
    {
      "path": "src/pages/api/cc/actions.ts",
      "role": "List and maintain schedules"
    },
    {
      "path": "src/pages/api/cc/calendar.ts",
      "role": "Maintain calendar records"
    },
    {
      "path": "src/pages/api/cc/console.ts",
      "role": "Execute a registered command"
    },
    {
      "path": "src/pages/api/cc/emergency-lock.ts",
      "role": "Inspect, enable and recover the lock"
    },
    {
      "path": "src/pages/api/cc/forms.ts",
      "role": "Review and update contact submissions"
    },
    {
      "path": "src/pages/api/cc/fx-presets.ts",
      "role": "Save or remove named effect presets"
    },
    {
      "path": "src/pages/api/cc/gallery.ts",
      "role": "Browse and upload managed images"
    },
    {
      "path": "src/pages/api/cc/log-ip.ts",
      "role": "Record an administrative network visit"
    },
    {
      "path": "src/pages/api/cc/mutate.ts",
      "role": "Mutate supported business collections"
    },
    {
      "path": "src/pages/api/cc/security.ts",
      "role": "Inspect and maintain security policy"
    },
    {
      "path": "src/pages/api/cc/source.ts",
      "role": "Browse the source bundled with this build"
    },
    {
      "path": "src/pages/api/cc/theme.ts",
      "role": "Update website or workspace appearance"
    },
    {
      "path": "src/pages/api/cc/users.ts",
      "role": "Provision an ordinary platform account"
    },
    {
      "path": "src/pages/api/cc/webauthn.ts",
      "role": "Register, authenticate and manage passkeys"
    },
    {
      "path": "src/pages/api/cms/logo-upload.ts",
      "role": "Change the draft logo"
    },
    {
      "path": "src/pages/api/cms/publish.ts",
      "role": "Publish the draft to a named page"
    },
    {
      "path": "src/pages/api/cms/revert-all.ts",
      "role": "Reset editable draft copy"
    },
    {
      "path": "src/pages/api/cms/revert.ts",
      "role": "Reset one draft text field"
    },
    {
      "path": "src/pages/api/cms/save.ts",
      "role": "Save draft text and scale"
    },
    {
      "path": "src/pages/api/cms/structure.ts",
      "role": "Edit draft components"
    },
    {
      "path": "src/pages/api/cms/style-save.ts",
      "role": "Save the draft design"
    },
    {
      "path": "src/pages/api/forms/submit.ts",
      "role": "Accept a public business inquiry"
    },
    {
      "path": "src/pages/api/track.ts",
      "role": "Record website activity"
    },
    {
      "path": "src/pages/app.astro",
      "role": "Public installed-app entry with the website’s content and app identity."
    },
    {
      "path": "src/pages/cms/index.astro",
      "role": "CMS editing entry in the Builder route family."
    },
    {
      "path": "src/pages/contact.astro",
      "role": "Dedicated contact page with the registered page background override."
    },
    {
      "path": "src/pages/core-console/builder.astro",
      "role": "Draft editor with Content, Style and Preview tools plus publication controls."
    },
    {
      "path": "src/pages/core-console/desk.astro",
      "role": "Windowed workspace, launcher, persisted layouts, built-in utilities and module composition."
    },
    {
      "path": "src/pages/core-console/index.astro",
      "role": "Focused administrative dashboard and its module composition."
    },
    {
      "path": "src/pages/core-console/passkey.astro",
      "role": "Passkey verification interface for protected administrative access."
    },
    {
      "path": "src/pages/gp/contact.astro",
      "role": "Contact page for the additional concept."
    },
    {
      "path": "src/pages/gp/index.astro",
      "role": "Additional Golden Pear concept page in the source tree."
    },
    {
      "path": "src/pages/index.astro",
      "role": "Main website entry; initializes CMS scope and composes the public sections."
    },
    {
      "path": "src/pages/new1.astro",
      "role": "Legacy published snapshot entry retained by the scope model."
    },
    {
      "path": "src/pages/privacy.astro",
      "role": "Public privacy information."
    },
    {
      "path": "src/pages/published/[slug].astro",
      "role": "Resolves a registered publication and renders its four scoped state layers; unknown slugs return 404."
    },
    {
      "path": "src/pages/robots.txt.ts",
      "role": "Repository robot policy response; platform-managed production routes may take precedence."
    },
    {
      "path": "src/pages/sitemap.xml.ts",
      "role": "Repository sitemap response; confirm the serving layer in production."
    },
    {
      "path": "src/pages/theme-preview.astro",
      "role": "Renders the website appearance preview."
    },
    {
      "path": "src/styles/android-website.css",
      "role": "Provides the android website design rules."
    },
    {
      "path": "src/styles/cms-fit.css",
      "role": "Styles Builder editing and shared text-fitting behavior."
    },
    {
      "path": "src/styles/cms.css",
      "role": "Styles Builder editing and shared text-fitting behavior."
    },
    {
      "path": "src/styles/command-center-os.css",
      "role": "Styles the administrative surface: Core Console os."
    },
    {
      "path": "src/styles/command-center.android.css",
      "role": "Styles the administrative surface: Core Console android."
    },
    {
      "path": "src/styles/command-center.css",
      "role": "Styles the administrative surface: Core Console."
    },
    {
      "path": "src/styles/command-center.ios.css",
      "role": "Styles the administrative surface: Core Console ios."
    },
    {
      "path": "src/styles/command-center.modes.css",
      "role": "Styles the administrative surface: Core Console modes."
    },
    {
      "path": "src/styles/command-center.softui.css",
      "role": "Styles the administrative surface: Core Console softui."
    },
    {
      "path": "src/styles/command-center.ubuntu.css",
      "role": "Styles the administrative surface: Core Console ubuntu."
    },
    {
      "path": "src/styles/command-center.win11.css",
      "role": "Styles the administrative surface: Core Console win11."
    },
    {
      "path": "src/styles/global.css",
      "role": "Provides website layout, component and shared design rules."
    },
    {
      "path": "src/styles/ios-website.css",
      "role": "Provides the ios website design rules."
    },
    {
      "path": "src/styles/softui-website.css",
      "role": "Provides the softui website design rules."
    },
    {
      "path": "src/styles/theme-modes.css",
      "role": "Provides the theme modes design rules."
    },
    {
      "path": "src/styles/ubuntu-website.css",
      "role": "Provides the ubuntu website design rules."
    },
    {
      "path": "src/styles/win11-website.css",
      "role": "Provides the win11 website design rules."
    }
  ],
  "supportFiles": [
    {
      "path": "astro.config.mjs",
      "role": "Selects server output, Wix/Pages/React integrations and the cloud-provider Fetch adapter."
    },
    {
      "path": "package.json",
      "role": "Declares ESM, supported scripts and direct dependencies."
    },
    {
      "path": "package-lock.json",
      "role": "Records exact resolved dependencies used for the version table."
    },
    {
      "path": "tsconfig.json",
      "role": "Extends Astro strict checking and excludes generated output."
    },
    {
      "path": ".github/workflows/preview.yml",
      "role": "Checks and builds branch changes, then creates a Wix preview."
    },
    {
      "path": ".github/workflows/release.yml",
      "role": "Builds main and releases through Wix; serializes release jobs."
    },
    {
      "path": ".github/workflows/actions-cron.yml",
      "role": "Checks the due-action endpoint on a 15-minute schedule."
    },
    {
      "path": "public/core-console.webmanifest",
      "role": "Defines the Console installation identity and start URL."
    },
    {
      "path": "public/pc-net-desk.webmanifest",
      "role": "Defines the Desk installation identity and start URL."
    },
    {
      "path": "public/llms.txt",
      "role": "Provides a public business discovery summary for machine readers."
    },
    {
      "path": "AGENTS.md",
      "role": "Records repository architecture, scope and implementation instructions for maintainers and agents."
    },
    {
      "path": "CHANGELOG.md",
      "role": "Records implementation history; current code resolves any outdated description."
    }
  ],
  "extensionPoints": [
    {
      "name": "A new management app",
      "mechanism": "Add a cc component, register the dashboard/Desk entry, connect a shared service and protected endpoint where needed.",
      "principle": "Keep visual rendering and business operations separate so another interface can reuse the same operation."
    },
    {
      "name": "A new agent command",
      "mechanism": "Add a COMMANDS entry with usage, summary, handler, mutation/admin classification and the necessary lock checks.",
      "principle": "Expose a narrow operation, return an explicit error result, and verify the resulting state. Mixed command families need subcommand review."
    },
    {
      "name": "A new content field",
      "mechanism": "Register its ID, section, role, original copy and fit bounds; render it with the CMS-aware text component.",
      "principle": "Keep original content, visible copy, preview behavior and machine discovery in agreement."
    },
    {
      "name": "A new repeater or section",
      "mechanism": "Define its template, stable field mapping, limits and renderer. Extend structure operations for any new field type.",
      "principle": "Ensure duplicate, delete and reordering preserve valid identities and component boundaries."
    },
    {
      "name": "A new theme or style control",
      "mechanism": "Add the theme/style definition, server validator, UI control, persisted value and rendering rule for the intended surface.",
      "principle": "Updating a dropdown alone does not make a new theme or setting functional."
    },
    {
      "name": "A new scheduled setting",
      "mechanism": "Extend FIELD_DEFS, value validation and the website settings writer, then expose the control in Actions.",
      "principle": "Use a value that the live renderer already understands; do not silently treat publication as a style setting."
    },
    {
      "name": "A new reporting source",
      "mechanism": "Connect a server-side provider adapter, map its metrics, preserve period/source attribution and supply the module data.",
      "principle": "Keep measured events, enriched estimates and inferred intent distinguishable."
    },
    {
      "name": "An agent adapter / MCP tool",
      "mechanism": "Implement a separately authenticated integration that maps approved tools to the existing narrow operations.",
      "principle": "The reviewed repository supplies commands and HTTP routes; it does not bundle an LLM, MCP server, API-key agent SDK or autonomous planner."
    }
  ]
}