ВозможностиОрганизации
Документация
    Ring Platform

    Децентрализованное самостроящееся будущее

    Войти
    Организации
    Возможности
    Магазин
    Документация
    Концепции платформы
    RING ЭкономикаSonoratek LLCГлобальное влияниеAI встречает Web3
    Начать
    Быстрый стартКалькуляторДорожная карта
    Конфиденциальность|Контакты
    v1.104.23|Sonoratek LLC

    Documentation

    Концепции, ценность и типичные сценарии клонирования — меньше кода.

    Добро пожаловать в Ring
    Краткий справочник
    С чего начать
    Предварительные требования
    Установка
    Первый успех
    Следующие шаги
    Функции
    Store
    Склад и остатки
    Управление вендорами
    Комиссии и расчёты
    SubscriptionConductor
    PaymentConductor
    Интеграция платежей
    Интеграция WayForPay
    Web3 Кошелек
    Реферальные коды (Refcodes)
    NFT Exhibition Marketplace
    Система Стейкинга Токенов
    Entities
    Opportunities
    AI Matcher
    Real-Time Messaging
    Peer Games
    Модуль Новостей - Цифровой Газетный Опыт
    Блоги участников
    Система Резервирования Имён Пользователей
    Научный редактор
    Notifications
    Push-уведомления через FCM (Ring)
    Email AI-CRM
    Протокол Tunnel
    Authentication
    Безопасность и соответствие
    Система локалей
    Мобильный Опыт
    Паттерны Оптимизации Производительности
    Примеры
    Quick Start
    Базовая настройка
    White Label
    Custom Branding
    Интеграция Web3
    Реальные Проекты
    Advanced Features
    Кастомизация
    Быстрый старт — ваш первый клон Ring
    Руководство по кастомизации
    Vertical Presets (SSOT)
    Руководство по Ringization
    Branding
    Темы оформления
    Features
    Localization
    Настройка токеномики
    Интеграция платёжного шлюза
    Референсные деплои Ring
    Конфигурация проекта
    Публичные переменные окружения
    Секреты Order Lab
    Project ID WalletConnect (Reown Cloud)
    Поддерживаемые сервисы
    Вики NODUS (знания проекта)
    Плейбук конфигурации
    Web3
    Token launch jurisdictions
    Кошелёк
    Советы по безопасности кошелька
    Интеграции
    Ethereum-кошельки (Wagmi v3)
    Развёртывание
    Self-hosted развёртывание
    Vercel
    Docker
    Конфигурация Окружения
    Мониторинг и аналитика
    Оптимизация производительности
    Резервное копирование и восстановление
    Архитектура
    Data Model
    Security
    Real Time
    Архитектура PaymentConductor
    Бекенд Сервисы
    Интеграция Firebase
    Разработка
    Ring MCP Server

    Быстрый вход (CTO · аудиторы · агенты)

    Приветствие — миссия и аудитории
    Краткий справочник
    С чего начать
    Архитектура и Auth.js
    Режимы бэкенда и базы данных (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Деплой (Docker · k8s)
    Безопасность и соответствие требованиям
    ringdom.org — база LegioX
    Исходный код — лицензия MIT (GitHub)

    Documentation

    Концепции, ценность и типичные сценарии клонирования — меньше кода.

    Добро пожаловать в Ring
    Краткий справочник
    С чего начать
    Предварительные требования
    Установка
    Первый успех
    Следующие шаги
    Функции
    Store
    Склад и остатки
    Управление вендорами
    Комиссии и расчёты
    SubscriptionConductor
    PaymentConductor
    Интеграция платежей
    Интеграция WayForPay
    Web3 Кошелек
    Реферальные коды (Refcodes)
    NFT Exhibition Marketplace
    Система Стейкинга Токенов
    Entities
    Opportunities
    AI Matcher
    Real-Time Messaging
    Peer Games
    Модуль Новостей - Цифровой Газетный Опыт
    Блоги участников
    Система Резервирования Имён Пользователей
    Научный редактор
    Notifications
    Push-уведомления через FCM (Ring)
    Email AI-CRM
    Протокол Tunnel
    Authentication
    Безопасность и соответствие
    Система локалей
    Мобильный Опыт
    Паттерны Оптимизации Производительности
    Примеры
    Quick Start
    Базовая настройка
    White Label
    Custom Branding
    Интеграция Web3
    Реальные Проекты
    Advanced Features
    Кастомизация
    Быстрый старт — ваш первый клон Ring
    Руководство по кастомизации
    Vertical Presets (SSOT)
    Руководство по Ringization
    Branding
    Темы оформления
    Features
    Localization
    Настройка токеномики
    Интеграция платёжного шлюза
    Референсные деплои Ring
    Конфигурация проекта
    Публичные переменные окружения
    Секреты Order Lab
    Project ID WalletConnect (Reown Cloud)
    Поддерживаемые сервисы
    Вики NODUS (знания проекта)
    Плейбук конфигурации
    Web3
    Token launch jurisdictions
    Кошелёк
    Советы по безопасности кошелька
    Интеграции
    Ethereum-кошельки (Wagmi v3)
    Развёртывание
    Self-hosted развёртывание
    Vercel
    Docker
    Конфигурация Окружения
    Мониторинг и аналитика
    Оптимизация производительности
    Резервное копирование и восстановление
    Архитектура
    Data Model
    Security
    Real Time
    Архитектура PaymentConductor
    Бекенд Сервисы
    Интеграция Firebase
    Разработка
    Ring MCP Server

    Быстрый вход (CTO · аудиторы · агенты)

    Приветствие — миссия и аудитории
    Краткий справочник
    С чего начать
    Архитектура и Auth.js
    Режимы бэкенда и базы данных (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Деплой (Docker · k8s)
    Безопасность и соответствие требованиям
    ringdom.org — база LegioX
    Исходный код — лицензия MIT (GitHub)

    Documentation

    Концепции, ценность и типичные сценарии клонирования — меньше кода.

    Добро пожаловать в Ring
    Краткий справочник
    С чего начать
    Предварительные требования
    Установка
    Первый успех
    Следующие шаги
    Функции
    Store
    Склад и остатки
    Управление вендорами
    Комиссии и расчёты
    SubscriptionConductor
    PaymentConductor
    Интеграция платежей
    Интеграция WayForPay
    Web3 Кошелек
    Реферальные коды (Refcodes)
    NFT Exhibition Marketplace
    Система Стейкинга Токенов
    Entities
    Opportunities
    AI Matcher
    Real-Time Messaging
    Peer Games
    Модуль Новостей - Цифровой Газетный Опыт
    Блоги участников
    Система Резервирования Имён Пользователей
    Научный редактор
    Notifications
    Push-уведомления через FCM (Ring)
    Email AI-CRM
    Протокол Tunnel
    Authentication
    Безопасность и соответствие
    Система локалей
    Мобильный Опыт
    Паттерны Оптимизации Производительности
    Примеры
    Quick Start
    Базовая настройка
    White Label
    Custom Branding
    Интеграция Web3
    Реальные Проекты
    Advanced Features
    Кастомизация
    Быстрый старт — ваш первый клон Ring
    Руководство по кастомизации
    Vertical Presets (SSOT)
    Руководство по Ringization
    Branding
    Темы оформления
    Features
    Localization
    Настройка токеномики
    Интеграция платёжного шлюза
    Референсные деплои Ring
    Конфигурация проекта
    Публичные переменные окружения
    Секреты Order Lab
    Project ID WalletConnect (Reown Cloud)
    Поддерживаемые сервисы
    Вики NODUS (знания проекта)
    Плейбук конфигурации
    Web3
    Token launch jurisdictions
    Кошелёк
    Советы по безопасности кошелька
    Интеграции
    Ethereum-кошельки (Wagmi v3)
    Развёртывание
    Self-hosted развёртывание
    Vercel
    Docker
    Конфигурация Окружения
    Мониторинг и аналитика
    Оптимизация производительности
    Резервное копирование и восстановление
    Архитектура
    Data Model
    Security
    Real Time
    Архитектура PaymentConductor
    Бекенд Сервисы
    Интеграция Firebase
    Разработка
    Ring MCP Server

    Быстрый вход (CTO · аудиторы · агенты)

    Приветствие — миссия и аудитории
    Краткий справочник
    С чего начать
    Архитектура и Auth.js
    Режимы бэкенда и базы данных (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Деплой (Docker · k8s)
    Безопасность и соответствие требованиям
    ringdom.org — база LegioX
    Исходный код — лицензия MIT (GitHub)
    Ring Logo

    Loading documentation...

    Preparing Ring content

    Ring Logo

    Loading documentation...

    Preparing Ring content

    Ring Logo

    Loading documentation...

    Preparing Ring content

    Vertical Presets (SSOT)

    White-label Ring разделяют одну platform codebase: ring-platform.org. Вертикали выбираются по имени пресета в ring-config.json. Типизированные каталоги живут в features/*/presets/<preset>.ts (и home в components/pages/home-presets/<preset>.tsx).

    Два источника модулей пресетов

    SourceWhat lives thereWhen it wins
    Platform (ring-platform.org)Shared niches (platform, agricultural, …)База каждой сборки
    Clone project dir (напр. ring-greenfood-live)Branding, ring-config.json, custom <preset>.ts + registry overlaysOverwrite при коллизии после copy platform

    Merge сборки (истина клона побеждает)

    Используйте ringdom-clone-build (ringdom-mcp):

    1. Скопируйте свежий ring-platform.org → build tmp (пропуская node_modules / .next / .git)
    2. Скопируйте все файлы из clone project dir поверх tmp — overwrite collisions
    3. Docker / CI build из tmp dir

    Не ожидайте, что thin overlay сам по себе будет runnable app — сначала merge.

    Два уровня контента

    TierWhatWhere
    1 — dataCategory lists, badge tokens, labelsкарты ring-config.json + locales/
    2 — typed logicEntity catalogs, zod/forms, niche field UIsfeatures/*/presets/<preset>.ts (platform и/или clone overlay)

    Ключи конфига

    GreenFood задаёт entities / productFields / productBadges в "agricultural" и home.preset в "mvm-landing".

    Accessors (именованный preset SSOT)

    Все используют настроенную строку *.preset. Если singular-ключ не задан, entities и productBadges падают на productFields.preset, затем "platform" — без hard-coded niche if/else.

    • getEntitiesPreset() → реестр features/entities/presets
    • getHomePreset() → реестр components/pages/home-presets
    • getProductFieldsPreset() / getProductFieldsPresets()
    • getProductBadgesPreset() / getProductBadgesPresets()

    Реестр entities

    Правило: имена пресетов появляются в ring-config + карте реестра. Consumers вызывают getEntityTypes() / getEntityTypeList() — никогда не импортируйте agricultural.ts напрямую.

    Своя ниша на клоне: добавьте features/entities/presets/<name>.ts в clone project, overlay index.ts для регистрации, задайте entities.preset этим именем, затем ringdom-clone-build.

    Дисциплина бандла: sync-каталоги — лёгкие UI-списки. Тяжёлые ERP field catalogs живут в модулях *-erp.ts, загружаемых только через async loadErpEntityTypes().

    Слои copy / icons (без hardcoded UI strings)

    • Catalog (presets/<name>.ts): ids, emoji, English fallback names/descriptions
    • Copy: locales/*/modules/entities.json → types.<id> + types.<id>Desc
    • Visual skin: components/entities/entity-type-icons.tsx карта TYPE_VISUALS
    • Render: useEntityTypeLabel() / useEntityTypeDescription() — сначала i18n, fallback каталога

    Реестр home landing

    Добавить shared vertical (platform)

    1. Добавьте features/entities/presets/<name>.ts (+ опционально <name>-erp.ts)
    2. Одна строка в ENTITIES_PRESET_REGISTRY (+ ERP_CATALOG_REGISTRY при необходимости)
    3. Опциональный landing → components/pages/home-presets/<name>.tsx
    4. Опциональные Tier-1 карты под productFieldsPresets / productBadgesPresets
    5. Ключи i18n в locales/*/modules/entities.json
    6. Задокументируйте preset id в ring-config.template.json

    Целевой roster: platform, agricultural, затем tourism, sport, business, pet, auto, connect, technopark, manufacturing.

    Thin exclude (propagation)

    .reggie-propagate-exclude.json защищает пути только overlay от перезаписи Reggie:

    • ring-config.json
    • public/logo*.svg, favicon.ico, public/branding/
    • locales/{en,uk,ru}/config.json, vendor.json
    • Custom features/*/presets/<clone-only>.ts (+ registry overlay), пока не upstream'нуты
    • Tier-3 plug: только lib/overlay/registry.ts (maps). Не исключайте lib/overlay/types.ts или lib/overlay/runtime.ts — это platform SSOT.

    Tier-3 overlay socket (platform) + plug (clone)

    PathOwnerRole
    lib/overlay/types.tsPlatformContracts
    lib/overlay/runtime.tsPlatformloadOverlayMessages / resolveOverlayHomeRail
    lib/overlay/registry.tsPlatform empty maps; clone overlays mapsDomain feature loaders

    Consumers импортируют из @/lib/overlay/runtime. Клоны никогда не дублируют loaders в registry.ts.

    Чеклист оператора (калькулятор / Order Lab): Ringization playbook.

    Источник propagation остаётся ring-platform.org → clones для shared code. Clone-local custom presets остаются в clone dir и побеждают на ringdom-clone-build.

    Cutover GreenFood

    Deprecated

    • Hard-coded if (productPreset === 'agricultural') в accessors
    • Per-clone custom-types.ts / overrides.ts без именованного preset module
    • switch (vertical) в feature code — используйте реестр
    • Сборка Docker-образов из thin overlay без merge platform
    1. Документация
    2. /Кастомизация
    3. /Vertical Presets (SSOT)

    Обновлено 14 июл. 2026 г.3 мин прослушивания

    Vertical Presets (SSOT)

    White-label Ring разделяют одну platform codebase: ring-platform.org. Вертикали выбираются по имени пресета в ring-config.json. Типизированные каталоги живут в features/*/presets/<preset>.ts (и home в components/pages/home-presets/<preset>.tsx).

    Два источника модулей пресетов

    SourceWhat lives thereWhen it wins
    Platform (ring-platform.org)Shared niches (platform, agricultural, …)База каждой сборки
    Clone project dir (напр. ring-greenfood-live)Branding, ring-config.json, custom <preset>.ts + registry overlaysOverwrite при коллизии после copy platform

    Merge сборки (истина клона побеждает)

    Используйте ringdom-clone-build (ringdom-mcp):

    1. Скопируйте свежий ring-platform.org → build tmp (пропуская node_modules / .next / .git)
    2. Скопируйте все файлы из clone project dir поверх tmp — overwrite collisions
    3. Docker / CI build из tmp dir

    Не ожидайте, что thin overlay сам по себе будет runnable app — сначала merge.

    Два уровня контента

    TierWhatWhere
    1 — dataCategory lists, badge tokens, labelsкарты ring-config.json + locales/
    2 — typed logicEntity catalogs, zod/forms, niche field UIsfeatures/*/presets/<preset>.ts (platform и/или clone overlay)

    Ключи конфига

    GreenFood задаёт entities / productFields / productBadges в "agricultural" и home.preset в "mvm-landing".

    Accessors (именованный preset SSOT)

    Все используют настроенную строку *.preset. Если singular-ключ не задан, entities и productBadges падают на productFields.preset, затем "platform" — без hard-coded niche if/else.

    • getEntitiesPreset() → реестр features/entities/presets
    • getHomePreset() → реестр components/pages/home-presets
    • getProductFieldsPreset() / getProductFieldsPresets()
    • getProductBadgesPreset() / getProductBadgesPresets()

    Реестр entities

    Правило: имена пресетов появляются в ring-config + карте реестра. Consumers вызывают getEntityTypes() / getEntityTypeList() — никогда не импортируйте agricultural.ts напрямую.

    Своя ниша на клоне: добавьте features/entities/presets/<name>.ts в clone project, overlay index.ts для регистрации, задайте entities.preset этим именем, затем ringdom-clone-build.

    Дисциплина бандла: sync-каталоги — лёгкие UI-списки. Тяжёлые ERP field catalogs живут в модулях *-erp.ts, загружаемых только через async loadErpEntityTypes().

    Слои copy / icons (без hardcoded UI strings)

    • Catalog (presets/<name>.ts): ids, emoji, English fallback names/descriptions
    • Copy: locales/*/modules/entities.json → types.<id> + types.<id>Desc
    • Visual skin: components/entities/entity-type-icons.tsx карта TYPE_VISUALS
    • Render: useEntityTypeLabel() / useEntityTypeDescription() — сначала i18n, fallback каталога

    Реестр home landing

    Добавить shared vertical (platform)

    1. Добавьте features/entities/presets/<name>.ts (+ опционально <name>-erp.ts)
    2. Одна строка в ENTITIES_PRESET_REGISTRY (+ ERP_CATALOG_REGISTRY при необходимости)
    3. Опциональный landing → components/pages/home-presets/<name>.tsx
    4. Опциональные Tier-1 карты под productFieldsPresets / productBadgesPresets
    5. Ключи i18n в locales/*/modules/entities.json
    6. Задокументируйте preset id в ring-config.template.json

    Целевой roster: platform, agricultural, затем tourism, sport, business, pet, auto, connect, technopark, manufacturing.

    Thin exclude (propagation)

    .reggie-propagate-exclude.json защищает пути только overlay от перезаписи Reggie:

    • ring-config.json
    • public/logo*.svg, favicon.ico, public/branding/
    • locales/{en,uk,ru}/config.json, vendor.json
    • Custom features/*/presets/<clone-only>.ts (+ registry overlay), пока не upstream'нуты
    • Tier-3 plug: только lib/overlay/registry.ts (maps). Не исключайте lib/overlay/types.ts или lib/overlay/runtime.ts — это platform SSOT.

    Tier-3 overlay socket (platform) + plug (clone)

    PathOwnerRole
    lib/overlay/types.tsPlatformContracts
    lib/overlay/runtime.tsPlatformloadOverlayMessages / resolveOverlayHomeRail
    lib/overlay/registry.tsPlatform empty maps; clone overlays mapsDomain feature loaders

    Consumers импортируют из @/lib/overlay/runtime. Клоны никогда не дублируют loaders в registry.ts.

    Чеклист оператора (калькулятор / Order Lab): Ringization playbook.

    Источник propagation остаётся ring-platform.org → clones для shared code. Clone-local custom presets остаются в clone dir и побеждают на ringdom-clone-build.

    Cutover GreenFood

    Deprecated

    • Hard-coded if (productPreset === 'agricultural') в accessors
    • Per-clone custom-types.ts / overrides.ts без именованного preset module
    • switch (vertical) в feature code — используйте реестр
    • Сборка Docker-образов из thin overlay без merge platform
    1. Документация
    2. /Кастомизация
    3. /Vertical Presets (SSOT)

    Обновлено 14 июл. 2026 г.3 мин прослушивания

    Vertical Presets (SSOT)

    White-label Ring разделяют одну platform codebase: ring-platform.org. Вертикали выбираются по имени пресета в ring-config.json. Типизированные каталоги живут в features/*/presets/<preset>.ts (и home в components/pages/home-presets/<preset>.tsx).

    Два источника модулей пресетов

    SourceWhat lives thereWhen it wins
    Platform (ring-platform.org)Shared niches (platform, agricultural, …)База каждой сборки
    Clone project dir (напр. ring-greenfood-live)Branding, ring-config.json, custom <preset>.ts + registry overlaysOverwrite при коллизии после copy platform

    Merge сборки (истина клона побеждает)

    Используйте ringdom-clone-build (ringdom-mcp):

    1. Скопируйте свежий ring-platform.org → build tmp (пропуская node_modules / .next / .git)
    2. Скопируйте все файлы из clone project dir поверх tmp — overwrite collisions
    3. Docker / CI build из tmp dir

    Не ожидайте, что thin overlay сам по себе будет runnable app — сначала merge.

    Два уровня контента

    TierWhatWhere
    1 — dataCategory lists, badge tokens, labelsкарты ring-config.json + locales/
    2 — typed logicEntity catalogs, zod/forms, niche field UIsfeatures/*/presets/<preset>.ts (platform и/или clone overlay)

    Ключи конфига

    GreenFood задаёт entities / productFields / productBadges в "agricultural" и home.preset в "mvm-landing".

    Accessors (именованный preset SSOT)

    Все используют настроенную строку *.preset. Если singular-ключ не задан, entities и productBadges падают на productFields.preset, затем "platform" — без hard-coded niche if/else.

    • getEntitiesPreset() → реестр features/entities/presets
    • getHomePreset() → реестр components/pages/home-presets
    • getProductFieldsPreset() / getProductFieldsPresets()
    • getProductBadgesPreset() / getProductBadgesPresets()

    Реестр entities

    Правило: имена пресетов появляются в ring-config + карте реестра. Consumers вызывают getEntityTypes() / getEntityTypeList() — никогда не импортируйте agricultural.ts напрямую.

    Своя ниша на клоне: добавьте features/entities/presets/<name>.ts в clone project, overlay index.ts для регистрации, задайте entities.preset этим именем, затем ringdom-clone-build.

    Дисциплина бандла: sync-каталоги — лёгкие UI-списки. Тяжёлые ERP field catalogs живут в модулях *-erp.ts, загружаемых только через async loadErpEntityTypes().

    Слои copy / icons (без hardcoded UI strings)

    • Catalog (presets/<name>.ts): ids, emoji, English fallback names/descriptions
    • Copy: locales/*/modules/entities.json → types.<id> + types.<id>Desc
    • Visual skin: components/entities/entity-type-icons.tsx карта TYPE_VISUALS
    • Render: useEntityTypeLabel() / useEntityTypeDescription() — сначала i18n, fallback каталога

    Реестр home landing

    Добавить shared vertical (platform)

    1. Добавьте features/entities/presets/<name>.ts (+ опционально <name>-erp.ts)
    2. Одна строка в ENTITIES_PRESET_REGISTRY (+ ERP_CATALOG_REGISTRY при необходимости)
    3. Опциональный landing → components/pages/home-presets/<name>.tsx
    4. Опциональные Tier-1 карты под productFieldsPresets / productBadgesPresets
    5. Ключи i18n в locales/*/modules/entities.json
    6. Задокументируйте preset id в ring-config.template.json

    Целевой roster: platform, agricultural, затем tourism, sport, business, pet, auto, connect, technopark, manufacturing.

    Thin exclude (propagation)

    .reggie-propagate-exclude.json защищает пути только overlay от перезаписи Reggie:

    • ring-config.json
    • public/logo*.svg, favicon.ico, public/branding/
    • locales/{en,uk,ru}/config.json, vendor.json
    • Custom features/*/presets/<clone-only>.ts (+ registry overlay), пока не upstream'нуты
    • Tier-3 plug: только lib/overlay/registry.ts (maps). Не исключайте lib/overlay/types.ts или lib/overlay/runtime.ts — это platform SSOT.

    Tier-3 overlay socket (platform) + plug (clone)

    PathOwnerRole
    lib/overlay/types.tsPlatformContracts
    lib/overlay/runtime.tsPlatformloadOverlayMessages / resolveOverlayHomeRail
    lib/overlay/registry.tsPlatform empty maps; clone overlays mapsDomain feature loaders

    Consumers импортируют из @/lib/overlay/runtime. Клоны никогда не дублируют loaders в registry.ts.

    Чеклист оператора (калькулятор / Order Lab): Ringization playbook.

    Источник propagation остаётся ring-platform.org → clones для shared code. Clone-local custom presets остаются в clone dir и побеждают на ringdom-clone-build.

    Cutover GreenFood

    Deprecated

    • Hard-coded if (productPreset === 'agricultural') в accessors
    • Per-clone custom-types.ts / overrides.ts без именованного preset module
    • switch (vertical) в feature code — используйте реестр
    • Сборка Docker-образов из thin overlay без merge platform
    1. Документация
    2. /Кастомизация
    3. /Vertical Presets (SSOT)

    Обновлено 14 июл. 2026 г.3 мин прослушивания

    json
    
    {
      "entities": { "preset": "platform" },
      "home": { "preset": "platform" },
      "productFields": { "preset": "platform" },
      "productBadges": { "preset": "platform" },
      "productFieldsPresets": {
        "platform": { "storeCategories": ["commerce", "education", "…"] },
        "agricultural": { "storeCategories": ["organic-produce", "honey-sweets", "…"] }
      },
      "productBadgesPresets": {
        "platform": { "productBadges": ["new", "featured", "popular"] },
        "agricultural": { "productBadges": ["organic", "local", "regenerative"] }
      }
    }
    text
    
    ringdom-clone-build({ project_name: "ring-greenfood-live", dry_run?: true })
    → .ringdom-build/<project>/<timestamp>
    text
    
    features/entities/presets/
      types.ts             # EntityTypeCatalog contract
      platform.ts          # export const entityTypes (26 industries)
      agricultural.ts      # healthy-living UI catalog (lightweight)
      agricultural-erp.ts  # heavy ERP field catalogs — async-only via loadErpEntityTypes()
      index.ts             # ENTITIES_PRESET_REGISTRY + getEntityTypes()
    text
    
    components/pages/
      home.tsx                       # platform default landing
      home-presets/mvm-landing.tsx   # multi-vendor-marketplace e-commerce landing
      home-content-resolver.tsx      # HOME_PRESET_REGISTRY + getHomePreset()
    text
    
    ensure ring-config: entities/productFields/productBadges = agricultural, home = mvm-landing
    keep branding + locale deltas in ring-greenfood-live
    ringdom-clone-build({ project_name: "ring-greenfood-live" })
    build/deploy from .ringdom-build/ring-greenfood-live/<stamp>
    json
    
    {
      "entities": { "preset": "platform" },
      "home": { "preset": "platform" },
      "productFields": { "preset": "platform" },
      "productBadges": { "preset": "platform" },
      "productFieldsPresets": {
        "platform": { "storeCategories": ["commerce", "education", "…"] },
        "agricultural": { "storeCategories": ["organic-produce", "honey-sweets", "…"] }
      },
      "productBadgesPresets": {
        "platform": { "productBadges": ["new", "featured", "popular"] },
        "agricultural": { "productBadges": ["organic", "local", "regenerative"] }
      }
    }
    text
    
    ringdom-clone-build({ project_name: "ring-greenfood-live", dry_run?: true })
    → .ringdom-build/<project>/<timestamp>
    text
    
    features/entities/presets/
      types.ts             # EntityTypeCatalog contract
      platform.ts          # export const entityTypes (26 industries)
      agricultural.ts      # healthy-living UI catalog (lightweight)
      agricultural-erp.ts  # heavy ERP field catalogs — async-only via loadErpEntityTypes()
      index.ts             # ENTITIES_PRESET_REGISTRY + getEntityTypes()
    text
    
    components/pages/
      home.tsx                       # platform default landing
      home-presets/mvm-landing.tsx   # multi-vendor-marketplace e-commerce landing
      home-content-resolver.tsx      # HOME_PRESET_REGISTRY + getHomePreset()
    text
    
    ensure ring-config: entities/productFields/productBadges = agricultural, home = mvm-landing
    keep branding + locale deltas in ring-greenfood-live
    ringdom-clone-build({ project_name: "ring-greenfood-live" })
    build/deploy from .ringdom-build/ring-greenfood-live/<stamp>
    json
    
    {
      "entities": { "preset": "platform" },
      "home": { "preset": "platform" },
      "productFields": { "preset": "platform" },
      "productBadges": { "preset": "platform" },
      "productFieldsPresets": {
        "platform": { "storeCategories": ["commerce", "education", "…"] },
        "agricultural": { "storeCategories": ["organic-produce", "honey-sweets", "…"] }
      },
      "productBadgesPresets": {
        "platform": { "productBadges": ["new", "featured", "popular"] },
        "agricultural": { "productBadges": ["organic", "local", "regenerative"] }
      }
    }
    text
    
    ringdom-clone-build({ project_name: "ring-greenfood-live", dry_run?: true })
    → .ringdom-build/<project>/<timestamp>
    text
    
    features/entities/presets/
      types.ts             # EntityTypeCatalog contract
      platform.ts          # export const entityTypes (26 industries)
      agricultural.ts      # healthy-living UI catalog (lightweight)
      agricultural-erp.ts  # heavy ERP field catalogs — async-only via loadErpEntityTypes()
      index.ts             # ENTITIES_PRESET_REGISTRY + getEntityTypes()
    text
    
    components/pages/
      home.tsx                       # platform default landing
      home-presets/mvm-landing.tsx   # multi-vendor-marketplace e-commerce landing
      home-content-resolver.tsx      # HOME_PRESET_REGISTRY + getHomePreset()
    text
    
    ensure ring-config: entities/productFields/productBadges = agricultural, home = mvm-landing
    keep branding + locale deltas in ring-greenfood-live
    ringdom-clone-build({ project_name: "ring-greenfood-live" })
    build/deploy from .ringdom-build/ring-greenfood-live/<stamp>