/**

 * @defgroup public_capital_fundprog_process Фондирование членских взносов на программу
 * @ingroup public_capital_processes
 *
 * Кооператив может направлять накопленные членские взносы на распределение между всеми участниками программы "Благорост" в целях обеспечения возвратов их вкладов.
 * Источником для регистрации входящих членских взносов является кошелек накопленных членских взносов кооператива.
 *
 * Процесс использует механизм CRPS - обновляет кумулятивный показатель на уровне программы
 * без одновременного пересчета персональных кошельков участников. Расчёты долей по каждому участнику запрашиваются отдельно по @ref public_capital_refresh_program_process "процессу обновления кошелька программы". 
 *
 * @note CRPS помогает обойти ограничения блокчейна на количество одновременных математических вычислений, которые должны быть выполнены при приёме блока в цепочку каждым делегатом. 
 * Алгоритм позволяет динамично распределять общий пул среди участников независимо друг от друга и производя вычисления только для одного участника за раз. Подробнее о алгоритме здесь: @ref public_capital_crps_algorithm. 
 * 
 * Формула обновления кумулятивного показателя:
 *
 * ```cpp
 * reward_per_share_delta = новый_взнос / общее_количество_долей
 * cumulative_reward_per_share += reward_per_share_delta
 * ```
 *
 * ## Диаграмма процесса
 *
 * \htmlonly
 * <div class="mermaid">
 * sequenceDiagram
 *     participant K as Кооператив
 *     participant C as Capital Contract
 *
 *     K->>C: fundprog(coopname, amount, memo)
 *     Note over C: Валидация суммы
 *     Note over C: Обновление показателя CRPS
 *     Note over C: Средства готовы к распределению
 * </div>
 * \endhtmlonly
 *
 * ## Пошаговое описание
 *
 * ### Шаг 1: Регистрация членских взносов программы
 * @ref capital::fundprog "Регистрация входящих членских взносов по программе"
 *
 * Кооператив направляет накопленные членские взносы на распределение между участниками программы благороста.
 * Для этого требуется вызов от авторизованного контракта (soviet/gateway) с указанием кооператива,
 * суммы взноса и мемо. Метод валидирует сумму и обновляет кумулятивный показатель CRPS. После регистрации взноса участники могут самостоятельно обновить свои начисления через @ref public_capital_refresh_program_process "процесс обновления кошелька программы". Или, кооператив может обновить эту информацию за них, но по одному.
 *
 * @post Обновление показателя CRPS для программы благороста
 *
 * ## Эффекты процесса
 @include{doc} fundprog-effect.dox

 ## Связанные процессы
 * - @ref public_capital_refresh_program_process "Обновление кошелька программы"
 * - @ref public_capital_withdraw_from_program_process "Возврат паевого взноса из программы"
 */

