{
  "schemaVersion": "1.0",
  "components": [
    {
      "type": "LaunchBrand",
      "usedBy": [
        "splash"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "Header",
      "usedBy": [
        "splash",
        "session-restore",
        "welcome",
        "onboarding-chores",
        "onboarding-sharing",
        "onboarding-ai",
        "entry-mode",
        "login-email",
        "verify-otp",
        "otp-expired",
        "household-start",
        "create-household",
        "join-household",
        "invite-review",
        "setup-spaces",
        "setup-starter-tasks",
        "starter-task-review",
        "setup-complete",
        "today",
        "today-empty",
        "spaces",
        "space-detail",
        "space-editor",
        "task-create",
        "task-edit",
        "task-detail",
        "task-recurrence",
        "task-assignment",
        "task-snooze",
        "completion-result",
        "calendar-list",
        "calendar-month",
        "calendar-day",
        "calendar-filters",
        "schedule-preferences",
        "schedule-preview",
        "schedule-conflicts",
        "schedule-templates",
        "schedule-template-editor",
        "members",
        "member-detail",
        "member-invite",
        "guardian-request",
        "child-profile-editor",
        "child-profile-detail",
        "child-pairing",
        "child-pair-redeem",
        "child-devices",
        "child-today",
        "child-task-detail",
        "child-achievements",
        "child-settings",
        "approvals",
        "submission-review",
        "submission-redo",
        "history",
        "contribution-statistics",
        "pro-benefits",
        "pro-offering-unavailable",
        "purchase-verification",
        "restore-purchases",
        "subscription-status",
        "settings",
        "profile",
        "household-settings",
        "notification-settings",
        "notification-permission",
        "quiet-hours",
        "appearance-language",
        "privacy",
        "data-export",
        "leave-household",
        "transfer-owner",
        "account-deletion",
        "deletion-progress",
        "help-about",
        "session-revoked",
        "offline-queue",
        "sync-conflict",
        "ai-chat",
        "ai-listening",
        "ai-transcribing",
        "ai-transcript",
        "ai-clarification",
        "ai-proposal",
        "ai-action-result",
        "ai-unavailable",
        "microphone-permission"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "ActionGroup",
      "usedBy": [
        "splash",
        "session-restore",
        "welcome",
        "onboarding-chores",
        "onboarding-sharing",
        "onboarding-ai",
        "entry-mode",
        "login-email",
        "verify-otp",
        "otp-expired",
        "household-start",
        "create-household",
        "join-household",
        "invite-review",
        "setup-spaces",
        "setup-starter-tasks",
        "starter-task-review",
        "setup-complete",
        "today",
        "today-empty",
        "spaces",
        "space-detail",
        "space-editor",
        "task-create",
        "task-edit",
        "task-detail",
        "task-recurrence",
        "task-assignment",
        "task-snooze",
        "completion-result",
        "calendar-list",
        "calendar-month",
        "calendar-day",
        "calendar-filters",
        "schedule-preferences",
        "schedule-preview",
        "schedule-conflicts",
        "schedule-templates",
        "schedule-template-editor",
        "members",
        "member-detail",
        "member-invite",
        "guardian-request",
        "child-profile-editor",
        "child-profile-detail",
        "child-pairing",
        "child-pair-redeem",
        "child-devices",
        "child-today",
        "child-task-detail",
        "child-achievements",
        "child-settings",
        "approvals",
        "submission-review",
        "submission-redo",
        "history",
        "contribution-statistics",
        "pro-benefits",
        "pro-offering-unavailable",
        "purchase-verification",
        "restore-purchases",
        "subscription-status",
        "settings",
        "profile",
        "household-settings",
        "notification-settings",
        "notification-permission",
        "quiet-hours",
        "appearance-language",
        "privacy",
        "data-export",
        "leave-household",
        "transfer-owner",
        "account-deletion",
        "deletion-progress",
        "help-about",
        "session-revoked",
        "offline-queue",
        "sync-conflict",
        "ai-chat",
        "ai-listening",
        "ai-transcribing",
        "ai-transcript",
        "ai-clarification",
        "ai-proposal",
        "ai-action-result",
        "ai-unavailable",
        "microphone-permission"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "SessionGate",
      "usedBy": [
        "session-restore"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "Notice",
      "usedBy": [
        "session-restore",
        "onboarding-chores",
        "onboarding-sharing",
        "onboarding-ai",
        "entry-mode",
        "login-email",
        "verify-otp",
        "otp-expired",
        "household-start",
        "create-household",
        "join-household",
        "invite-review",
        "setup-spaces",
        "setup-starter-tasks",
        "starter-task-review",
        "setup-complete",
        "space-editor",
        "task-create",
        "task-edit",
        "task-recurrence",
        "task-assignment",
        "task-snooze",
        "completion-result",
        "calendar-filters",
        "schedule-preferences",
        "schedule-preferences",
        "schedule-preview",
        "schedule-conflicts",
        "schedule-templates",
        "schedule-template-editor",
        "member-detail",
        "member-invite",
        "guardian-request",
        "child-profile-editor",
        "child-profile-detail",
        "child-pairing",
        "child-pair-redeem",
        "child-devices",
        "child-task-detail",
        "child-achievements",
        "child-settings",
        "approvals",
        "submission-review",
        "submission-redo",
        "history",
        "pro-benefits",
        "pro-offering-unavailable",
        "purchase-verification",
        "restore-purchases",
        "subscription-status",
        "profile",
        "household-settings",
        "notification-settings",
        "notification-permission",
        "quiet-hours",
        "privacy",
        "data-export",
        "leave-household",
        "transfer-owner",
        "account-deletion",
        "deletion-progress",
        "session-revoked",
        "offline-queue",
        "sync-conflict",
        "ai-listening",
        "ai-transcribing",
        "ai-transcript",
        "ai-clarification",
        "ai-proposal",
        "ai-proposal",
        "ai-action-result",
        "ai-unavailable",
        "microphone-permission"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "RoomIllustration",
      "usedBy": [
        "welcome",
        "onboarding-chores",
        "onboarding-sharing",
        "onboarding-ai",
        "household-start",
        "setup-complete",
        "today-empty"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "WelcomeBenefits",
      "usedBy": [
        "welcome"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "OnboardingProgress",
      "usedBy": [
        "onboarding-chores",
        "onboarding-sharing",
        "onboarding-ai"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "DetailList",
      "usedBy": [
        "entry-mode",
        "invite-review",
        "setup-complete",
        "space-detail",
        "task-detail",
        "task-snooze",
        "completion-result",
        "calendar-day",
        "schedule-preview",
        "member-invite",
        "guardian-request",
        "child-task-detail",
        "submission-review",
        "submission-redo",
        "pro-benefits",
        "restore-purchases",
        "subscription-status",
        "profile",
        "quiet-hours",
        "appearance-language",
        "privacy",
        "data-export",
        "transfer-owner",
        "help-about",
        "offline-queue",
        "ai-proposal"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "Field",
      "usedBy": [
        "login-email",
        "verify-otp",
        "otp-expired",
        "create-household",
        "create-household",
        "join-household",
        "starter-task-review",
        "starter-task-review",
        "starter-task-review",
        "starter-task-review",
        "space-editor",
        "task-create",
        "task-create",
        "task-create",
        "task-create",
        "task-create",
        "task-edit",
        "task-edit",
        "task-edit",
        "task-edit",
        "task-edit",
        "task-recurrence",
        "task-recurrence",
        "task-snooze",
        "calendar-filters",
        "calendar-filters",
        "calendar-filters",
        "schedule-preferences",
        "schedule-preferences",
        "schedule-preferences",
        "schedule-preferences",
        "schedule-preferences",
        "schedule-preferences",
        "schedule-preferences",
        "schedule-template-editor",
        "schedule-template-editor",
        "schedule-template-editor",
        "child-profile-editor",
        "child-profile-editor",
        "child-pair-redeem",
        "child-pair-redeem",
        "submission-redo",
        "contribution-statistics",
        "contribution-statistics",
        "profile",
        "household-settings",
        "household-settings",
        "quiet-hours",
        "quiet-hours",
        "account-deletion",
        "ai-transcript",
        "ai-proposal",
        "ai-proposal",
        "ai-proposal",
        "ai-proposal",
        "ai-unavailable"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "OtpContext",
      "usedBy": [
        "verify-otp"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "ResendTimer",
      "usedBy": [
        "verify-otp"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "EmptyState",
      "usedBy": [
        "otp-expired",
        "today-empty",
        "completion-result",
        "pro-offering-unavailable",
        "session-revoked",
        "ai-unavailable"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "ChoiceGroup",
      "usedBy": [
        "setup-spaces",
        "setup-starter-tasks",
        "starter-task-review",
        "space-editor",
        "space-editor",
        "task-recurrence",
        "task-recurrence",
        "task-assignment",
        "task-assignment",
        "schedule-template-editor",
        "child-profile-editor",
        "child-settings",
        "history",
        "appearance-language",
        "data-export",
        "transfer-owner",
        "ai-clarification"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "HomeMoment",
      "usedBy": [
        "today"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "OwnFilter",
      "usedBy": [
        "today"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "SectionHeading",
      "usedBy": [
        "today",
        "today",
        "today",
        "today",
        "space-detail",
        "task-detail",
        "calendar-list",
        "calendar-day",
        "child-today",
        "child-today",
        "settings",
        "settings",
        "settings"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "TaskCard",
      "usedBy": [
        "today",
        "today",
        "today",
        "space-detail",
        "space-detail",
        "calendar-list",
        "calendar-list",
        "calendar-list",
        "calendar-day",
        "calendar-day",
        "calendar-day",
        "child-today",
        "child-today",
        "approvals"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "DoneSummary",
      "usedBy": [
        "today"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "Navigation",
      "usedBy": [
        "today",
        "today-empty",
        "spaces",
        "space-detail",
        "calendar-list",
        "calendar-month",
        "calendar-day",
        "members",
        "child-today",
        "child-task-detail",
        "child-achievements",
        "child-settings"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "RoomGrid",
      "usedBy": [
        "spaces"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "RoomHeader",
      "usedBy": [
        "space-detail"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "SettingsGroup",
      "usedBy": [
        "task-create",
        "task-edit",
        "task-assignment",
        "calendar-list",
        "schedule-templates",
        "schedule-template-editor",
        "members",
        "child-profile-detail",
        "child-pairing",
        "approvals",
        "subscription-status",
        "settings",
        "settings",
        "settings",
        "household-settings",
        "notification-settings",
        "privacy",
        "leave-household",
        "account-deletion"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "Instructions",
      "usedBy": [
        "task-detail"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "HistoryTimeline",
      "usedBy": [
        "task-detail",
        "member-detail",
        "child-achievements",
        "history"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "CalendarMode",
      "usedBy": [
        "calendar-list",
        "calendar-month"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "MonthGrid",
      "usedBy": [
        "calendar-month"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "CalendarFilterSummary",
      "usedBy": [
        "calendar-month"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "DayAgenda",
      "usedBy": [
        "calendar-month"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "DaySummary",
      "usedBy": [
        "calendar-day"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "ForecastHeader",
      "usedBy": [
        "schedule-preview"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "ScheduleDiff",
      "usedBy": [
        "schedule-preview"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "ConflictList",
      "usedBy": [
        "schedule-conflicts"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "Roster",
      "usedBy": [
        "members"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "MemberIdentity",
      "usedBy": [
        "member-detail"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "InviteCode",
      "usedBy": [
        "member-invite"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "GuardianConsent",
      "usedBy": [
        "guardian-request"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "ToggleGroup",
      "usedBy": [
        "child-profile-editor",
        "child-profile-detail",
        "child-settings",
        "contribution-statistics",
        "notification-settings",
        "quiet-hours",
        "appearance-language"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "ChildProfile",
      "usedBy": [
        "child-profile-detail"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "PairingProof",
      "usedBy": [
        "child-pairing"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "DeviceList",
      "usedBy": [
        "child-devices"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "ChildGreeting",
      "usedBy": [
        "child-today"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "ChildInstructions",
      "usedBy": [
        "child-task-detail"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "ChildPoints",
      "usedBy": [
        "child-achievements"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "SubmissionSummary",
      "usedBy": [
        "submission-review"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "ContributionChart",
      "usedBy": [
        "contribution-statistics"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "ProIntro",
      "usedBy": [
        "pro-benefits"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "VerifyPurchase",
      "usedBy": [
        "purchase-verification"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "PermissionRationale",
      "usedBy": [
        "notification-permission"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "DeniedRecovery",
      "usedBy": [
        "notification-permission"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "LeaveDependencies",
      "usedBy": [
        "leave-household"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "DeleteReview",
      "usedBy": [
        "account-deletion"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "DeletionSteps",
      "usedBy": [
        "deletion-progress"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "HelpContent",
      "usedBy": [
        "help-about"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "QueueItems",
      "usedBy": [
        "offline-queue"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "ConflictDiff",
      "usedBy": [
        "sync-conflict"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "ChatThread",
      "usedBy": [
        "ai-chat",
        "ai-clarification"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "AssistantExamples",
      "usedBy": [
        "ai-chat"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "Composer",
      "usedBy": [
        "ai-chat"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "VoiceCapture",
      "usedBy": [
        "ai-listening"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "TranscriptionProgress",
      "usedBy": [
        "ai-transcribing"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "TranscriptionControls",
      "usedBy": [
        "ai-transcribing"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "TranscriptProgress",
      "usedBy": [
        "ai-transcript"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "ProposalDiff",
      "usedBy": [
        "ai-proposal"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "PartialResults",
      "usedBy": [
        "ai-action-result"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "MicrophoneRationale",
      "usedBy": [
        "microphone-permission"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    },
    {
      "type": "MicrophoneDenied",
      "usedBy": [
        "microphone-permission"
      ],
      "tokens": {
        "body": "{primitive.type.body}",
        "lightForeground": "{semantic.light.fg}",
        "darkForeground": "{semantic.dark.fg}"
      },
      "contract": {
        "minimumTouchTarget": 48,
        "stateLabelsRequired": true,
        "keyboardAccessible": true,
        "reducedMotion": true,
        "propsSource": "Each screen.json contains purpose-specific props.",
        "implementation": "Reuse shared native component, not full page template."
      }
    }
  ],
  "globalInvariants": [
    "One primary CTA per screen",
    "No color-only states",
    "Child scoped DTO allowlists",
    "OS permissions owned by OS",
    "No remote success in local prototype"
  ]
}
