{
    "2.0.0": {
        "date": "2026-07-02",
        "info": [
            "[NEW] Auth device binding — per-user device registry with biometric & revoke support | [নতুন] অথ ডিভাইস বাইন্ডিং — ইউজার-প্রতি ডিভাইস রেজিস্ট্রি (বায়োমেট্রিক ও রিভোক সহ)",
            "[NEW] Somity areas/groups — member grouping with collector assignment | [নতুন] সমিতির এরিয়া/গ্রুপ — সদস্য গ্রুপিং ও কালেক্টর অ্যাসাইনমেন্ট",
            "[NEW] DB-backed permission system — permission catalog, role & per-user grants, 5 system role templates | [নতুন] ডাটাবেজ-ভিত্তিক পারমিশন সিস্টেম — পারমিশন ক্যাটালগ, রোল ও ইউজার-প্রতি ওভাররাইড, ৫টি সিস্টেম রোল টেমপ্লেট",
            "[NEW] User username (future login id) & locale preference | [নতুন] ইউজারনেম (ভবিষ্যৎ লগইন আইডি) ও ভাষা পছন্দ"
        ],
        "function": "updateTwoZeroZero"
    },
    "2.1.0": {
        "date": "2026-07-02",
        "info": [
            "[NEW] Somity members — full member profiles with per-organization account numbers, nominee & KYC fields | [নতুন] সমিতির সদস্য — সংস্থা-প্রতি অ্যাকাউন্ট নম্বর, নমিনি ও কেওয়াইসি তথ্যসহ পূর্ণ সদস্য প্রোফাইল",
            "[NEW] Products — savings/DPS/FDR/share/loan product catalog with interest & fee configuration | [নতুন] প্রোডাক্ট — সঞ্চয়/ডিপিএস/এফডিআর/শেয়ার/লোন প্রোডাক্ট ক্যাটালগ (সুদ ও ফি কনফিগারেশনসহ)",
            "[NEW] Billing now counts real active members for usage snapshots | [নতুন] বিলিং এখন ইউসেজ স্ন্যাপশটে প্রকৃত সক্রিয় সদস্য গণনা করে"
        ],
        "function": "updateTwoOneZero"
    },
    "2.2.0": {
        "date": "2026-07-02",
        "info": [
            "[NEW] General savings — per-member general accounts with deposit/withdraw transactions | [নতুন] সাধারণ সঞ্চয় — সদস্য-প্রতি জেনারেল অ্যাকাউন্ট ও জমা/উত্তোলন লেনদেন",
            "[NEW] DPS savings — daily/weekly/monthly accounts, transactions & installment collection schedules | [নতুন] ডিপিএস সঞ্চয় — দৈনিক/সাপ্তাহিক/মাসিক অ্যাকাউন্ট, লেনদেন ও কিস্তি আদায়ের সিডিউল",
            "[NEW] FDR — fixed deposit accounts with profit cycle transactions | [নতুন] এফডিআর — স্থায়ী আমানত অ্যাকাউন্ট ও মুনাফা সাইকেল লেনদেন",
            "[NEW] Share — member share accounts with buy/sell/transfer transactions | [নতুন] শেয়ার — সদস্য শেয়ার অ্যাকাউন্ট ও ক্রয়/বিক্রয়/হস্তান্তর লেনদেন",
            "[NEW] Offline-sync columns on all transactions — device, idempotency key, reversal tracking | [নতুন] সব লেনদেনে অফলাইন-সিংক কলাম — ডিভাইস, আইডেমপোটেন্সি কী ও রিভার্সাল ট্র্যাকিং"
        ],
        "function": "updateTwoTwoZero"
    },
    "2.3.0": {
        "date": "2026-07-02",
        "info": [
            "[NEW] Loans — flat-interest loan accounts with 2-stage approval, disbursement & closing lifecycle | [নতুন] লোন — ফ্ল্যাট সুদের লোন অ্যাকাউন্ট, ২-ধাপ অনুমোদন, বিতরণ ও ক্লোজিং লাইফসাইকেল",
            "[NEW] Loan collections — principal/profit split transactions with penalty & DPS-linked collection | [নতুন] লোন আদায় — আসল/মুনাফা ভাগ করা লেনদেন, জরিমানা ও ডিপিএস-লিংকড আদায়",
            "[NEW] Installment schedules — auto-generated due dates (daily/weekly/monthly) with exact-total rounding on the final installment | [নতুন] কিস্তির সিডিউল — দৈনিক/সাপ্তাহিক/মাসিক নির্ধারিত তারিখ, শেষ কিস্তিতে রাউন্ডিং সমন্বয়"
        ],
        "function": "updateTwoThreeZero"
    },
    "2.4.0": {
        "date": "2026-07-02",
        "info": [
            "[NEW] Income/expense vouchers — categorized income & expense entries with 2-stage approval (Approval Center) | [নতুন] আয়/ব্যয় ভাউচার — ক্যাটাগরিভিত্তিক আয়-ব্যয় এন্ট্রি ও ২-ধাপ অনুমোদন (অ্যাপ্রুভাল সেন্টার)",
            "[NEW] Banks — bank accounts with deposit/withdraw transactions & cached balance | [নতুন] ব্যাংক — ব্যাংক অ্যাকাউন্ট, জমা/উত্তোলন লেনদেন ও ব্যালেন্স ক্যাশ",
            "[NEW] Cash closings — daily cash count with note-denomination breakdown (নোট-গণনা) | [নতুন] ক্যাশ ক্লোজিং — দৈনিক ক্যাশ গণনা ও নোট-ভাঙতির হিসাব",
            "[NOTE] The somity voucher system is the new canonical income/expense path; the old AmarAuto incomes/expenses tables stay untouched — a later version will migrate/retire them | [নোট] সমিতির ভাউচার সিস্টেমই এখন আয়/ব্যয়ের মূল পথ; পুরনো আমারঅটো আয়/ব্যয় টেবিল আপাতত অপরিবর্তিত — পরবর্তী ভার্সনে মাইগ্রেট/অবসর করা হবে"
        ],
        "function": "updateTwoFourZero"
    },
    "2.5.0": {
        "date": "2026-07-02",
        "info": [
            "[NEW] Double-entry ledger core — somity system chart of accounts (15 accounts, Bangla names) seeded per organization on the shared GL | [নতুন] ডাবল-এন্ট্রি লেজার কোর — সংস্থা-প্রতি সমিতির সিস্টেম চার্ট অব অ্যাকাউন্টস (১৫টি অ্যাকাউন্ট, বাংলা নামসহ)",
            "[NEW] PostingService — the single door to journal writes: balanced-entry validation (bccomp), polymorphic source linkage & reversal entries | [নতুন] পোস্টিং সার্ভিস — জার্নাল লেখার একমাত্র দরজা: ব্যালেন্সড-এন্ট্রি যাচাই, সোর্স লিংক ও রিভার্সাল এন্ট্রি",
            "[NEW] Journal entries now link back to their origin row (savings/loan/voucher/bank transactions) and flag manual journals | [নতুন] জার্নাল এন্ট্রি এখন উৎস লেনদেনের সাথে লিংকড (সঞ্চয়/লোন/ভাউচার/ব্যাংক) ও ম্যানুয়াল জার্নাল চিহ্নিত",
            "[FIX] voucher category & bank ledger mapping now foreign-keyed to the chart of accounts (deferred from v2.4) | [ফিক্স] ভাউচার ক্যাটাগরি ও ব্যাংকের লেজার ম্যাপিং এখন চার্ট অব অ্যাকাউন্টসের সাথে ফরেন-কি যুক্ত (v2.4 থেকে স্থগিত ছিল)"
        ],
        "function": "updateTwoFiveZero"
    },
    "2.6.0": {
        "date": "2026-07-02",
        "info": [
            "[NEW] Event-based SMS templates — system defaults + per-somity overrides for 11 events, Bangla/English bodies with {name} {account} {amount} {balance} {date} {somity} placeholders | [নতুন] ইভেন্ট-ভিত্তিক এসএমএস টেমপ্লেট — ১১টি ইভেন্টের সিস্টেম ডিফল্ট + সমিতি-প্রতি ওভাররাইড, প্লেসহোল্ডারসহ বাংলা/ইংরেজি বডি",
            "[NEW] TemplateRenderer — locale-aware template rendering with Bangla digits (org override beats default, disabled events return nothing) | [নতুন] টেমপ্লেট রেন্ডারার — ভাষা-সচেতন রেন্ডারিং ও বাংলা সংখ্যা (সমিতির ওভাররাইড ডিফল্টের উপরে, বন্ধ ইভেন্টে কিছু পাঠানো হয় না)",
            "[NEW] Somity subscription plans — Free/Starter/Standard/Pro with member, user & module limits; old AmarAuto p10/p20/p30 tiers deactivated (দাম চূড়ান্ত নয়, অ্যাডমিন প্যানেল থেকে বদলানো যায়) | [নতুন] সমিতির সাবস্ক্রিপশন প্ল্যান — ফ্রি/স্টার্টার/স্ট্যান্ডার্ড/প্রো (সদস্য, ইউজার ও মডিউল সীমাসহ); পুরনো আমারঅটো p10/p20/p30 টিয়ার নিষ্ক্রিয়",
            "[NEW] PlanGate helper — plan module gating & member-limit check (enforcement middleware ships in Phase 3) | [নতুন] প্ল্যানগেট হেল্পার — প্ল্যান-ভিত্তিক মডিউল গেটিং ও সদস্য-সীমা চেক (এনফোর্সমেন্ট মিডলওয়্যার ফেজ ৩-এ আসবে)"
        ],
        "function": "updateTwoSixZero"
    },
    "2.7.0": {
        "date": "2026-07-02",
        "info": [
            "[NEW] Delete governance — delete_logs permanent void record (full row snapshot, reason, reversal journal link) + deleted_via foreign keys wired on all 7 transaction tables | [নতুন] ডিলিট গভর্নেন্স — delete_logs স্থায়ী ভয়েড রেকর্ড (সম্পূর্ণ রো স্ন্যাপশট, কারণ, রিভার্সাল জার্নাল লিংক) ও ৭টি লেনদেন টেবিলে deleted_via ফরেন-কি",
            "[NEW] Approval Center queue — approval_requests for delete/edit/withdraw/loan-waive requests with reviewer trail | [নতুন] অ্যাপ্রুভাল সেন্টার কিউ — ডিলিট/এডিট/উত্তোলন/লোন-মাফ অনুরোধের approval_requests ও রিভিউয়ার ট্রেইল",
            "[NEW] Audit trail — append-only audit_logs of who did what (action, old/new values, ip, device) | [নতুন] অডিট ট্রেইল — কে কী করেছে তার append-only audit_logs (অ্যাকশন, আগের/পরের মান, আইপি, ডিভাইস)",
            "[NEW] Offline sync bookkeeping — sync_batches per device upload with accepted/rejected counts | [নতুন] অফলাইন সিংক হিসাব — ডিভাইস-প্রতি আপলোডের sync_batches (গৃহীত/প্রত্যাখ্যাত গণনাসহ)"
        ],
        "function": "updateTwoSevenZero"
    },
    "2.8.0": {
        "date": "2026-07-02",
        "info": [
            "[NEW] Subscription plan pinning — subscriptions.plan_key lets an org be pinned to a specific plan; a valid + active pinned plan wins over the member-count auto-tier, invalid/inactive falls back to auto-tier | [নতুন] সাবস্ক্রিপশন প্ল্যান পিনিং — subscriptions.plan_key দিয়ে সংস্থাকে নির্দিষ্ট প্ল্যানে পিন করা যায়; বৈধ ও সক্রিয় পিন করা প্ল্যান সদস্য-সংখ্যা অটো-টিয়ারের উপরে অগ্রাধিকার পায়, অবৈধ/নিষ্ক্রিয় হলে অটো-টিয়ারে ফিরে যায়"
        ],
        "function": "updateTwoEightZero"
    },
    "2.9.0": {
        "date": "2026-07-02",
        "info": [
            "[NEW] Offline batch sync-push — POST /api/v1/sync/push drains the mobile outbox (member creates, general deposits, DPS collections) idempotently: one sync_batches row per upload, per-item accept/duplicate/reject with bilingual errors, client_seq ordering & in-batch client_ref → server_id resolution | [নতুন] অফলাইন ব্যাচ সিংক-পুশ — POST /api/v1/sync/push মোবাইল আউটবক্স (সদস্য তৈরি, সাধারণ জমা, ডিপিএস আদায়) আইডেমপোটেন্টভাবে ড্রেইন করে: প্রতি আপলোডে এক sync_batches রো, আইটেম-প্রতি গৃহীত/ডুপ্লিকেট/প্রত্যাখ্যাত (দ্বিভাষিক বার্তাসহ), client_seq অনুসারে ক্রম ও ব্যাচের ভেতরে client_ref → server_id রেজলিউশন",
            "[NEW] sync_receipts — per-item idempotency ledger keyed by client uuid (org-unique); safe re-push returns the original server_id as 'duplicate' with no duplicate rows/journal | [নতুন] sync_receipts — ক্লায়েন্ট uuid দিয়ে আইটেম-প্রতি আইডেমপোটেন্সি লেজার (সংস্থা-প্রতি ইউনিক); নিরাপদ রি-পুশে মূল server_id 'duplicate' হিসেবে ফেরে, কোনো ডুপ্লিকেট রো/জার্নাল ছাড়া",
            "[FIX] sync_batches.device_id is now nullable — a tokenless/transient push records a batch with no bound device | [ফিক্স] sync_batches.device_id এখন nullable — ডিভাইস-বিহীন পুশ ডিভাইস ছাড়াই ব্যাচ রেকর্ড করে"
        ],
        "function": "updateTwoNineZero"
    },
    "3.0.0": {
        "date": "2026-07-03",
        "info": [
            "[NEW] Loan / FDR / share delete governance executors — deleting a loan collection re-opens an auto-closed loan and un-marks its settled schedule rows (latest-collection-only), an FDR pay-profit void un-applies the general-savings credit it created, a share buy/return void restores the holding count + amount (latest-movement-only); each posts the mirror reversal journal so the books stay balanced | [নতুন] লোন / এফডিআর / শেয়ার ডিলিট গভর্নেন্স এক্সিকিউটর — লোন কিস্তি আদায় ডিলিট করলে অটো-ক্লোজ হওয়া লোন পুনরায় চালু হয় ও সেটল করা সিডিউল রো ফিরে আসে (শুধু সর্বশেষ আদায়), এফডিআর মুনাফা ভয়েড করলে তার তৈরি সাধারণ সঞ্চয় ক্রেডিট আন-অ্যাপ্লাই হয়, শেয়ার ক্রয়/ফেরত ভয়েড করলে শেয়ার সংখ্যা ও পরিমাণ ফিরে আসে (শুধু সর্বশেষ লেনদেন); প্রতিটি মিরর রিভার্সাল জার্নাল পোস্ট করে বই ব্যালেন্সড রাখে",
            "[NEW] general_transactions.fdr_transaction_id — links a general-savings passbook row to the FDR pay-profit(to_general) transaction that created it, so the FDR delete executor can find and un-apply it | [নতুন] general_transactions.fdr_transaction_id — এফডিআর মুনাফা(সাধারণে) লেনদেন ও তার তৈরি সাধারণ সঞ্চয় রো-এর সংযোগ, যাতে এফডিআর ডিলিট এক্সিকিউটর সেটি খুঁজে আন-অ্যাপ্লাই করতে পারে"
        ],
        "function": "updateThreeZeroZero"
    }
}
