@hyperscale0/hsx 1.0.248 → 1.0.256
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -3
- package/SECURITY.md +1 -1
- package/dist/src/compile.d.ts.map +1 -1
- package/dist/src/compile.js +16 -0
- package/dist/src/compile.js.map +1 -1
- package/docs/README.md +7 -127
- package/examples/cost-table.json +0 -492
- package/package.json +4 -4
- package/src/compile.ts +27 -0
package/docs/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# HSX
|
|
2
2
|
|
|
3
|
+
Read [how Hyperscale fits](https://hyperscale0.ai/docs/runtime.md#how-hyperscale-fits) for provider authority and the shared operation API.
|
|
4
|
+
|
|
3
5
|
HSX composes a company's objects, agreements and actions into a typed program.
|
|
4
6
|
A repair approval can change state without moving money. A rental can collect a
|
|
5
7
|
deposit and refund it under declared rules. Headers supply reusable instruments;
|
|
@@ -299,44 +301,6 @@ with typed input in the same transaction.
|
|
|
299
301
|
The compiler removes branches excluded by fixed enum tunables. An invalid program reports its source line
|
|
300
302
|
and a correction. No artifact is returned with diagnostics.
|
|
301
303
|
|
|
302
|
-
## Financing policies
|
|
303
|
-
|
|
304
|
-
`financing.installments` keeps principal and fixed profit as claims from
|
|
305
|
-
activation. The company chooses how profit is priced, where funding goes and when
|
|
306
|
-
profit becomes earned. All choices use accounts, calculations and moves in the same
|
|
307
|
-
two books.
|
|
308
|
-
|
|
309
|
-
`pricing` has no default, so every plan states it. `amortizing` reads
|
|
310
|
-
`profit_rate` as an annual rate on the declining balance: equal monthly
|
|
311
|
-
instalments from standard annuity maths, interest and instalment rounded half up,
|
|
312
|
-
the last instalment absorbing the rounding. 12,000 SAR at 18% over 12 months is
|
|
313
|
-
11 instalments of 1,100.16 SAR and a last one of 1,100.19 SAR, 13,201.95 SAR in
|
|
314
|
-
total. `flat_total` reads `profit_rate` as one charge on principal for the whole
|
|
315
|
-
term, rounded down and split evenly with the remainder in position 1: murabaha and
|
|
316
|
-
fixed-fee pay-later. The same 12,000 SAR at 18% `flat_total` costs 14,160 SAR.
|
|
317
|
-
|
|
318
|
-
| Tunable | Default | Selected behavior |
|
|
319
|
-
| ---------------------------------- | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
320
|
-
| `disburse_to` | `funds` | `funds` pays down payment and principal into the hold and confirms it. `borrower` credits principal to the borrower's balance. `seller` pays principal to the `seller` party at activation; after capital refunds every paid payment, capital's `unwind` debits it back from the seller and cancels open slices. |
|
|
321
|
-
| `profit_earned` | `on_payment` | `on_payment` collects unearned profit on payment. `by_schedule` moves unearned claims to earned claims at each slice's date. `at_disbursement` makes that move at activation. Cash arrives only on payment. |
|
|
322
|
-
| `apply` | `fines_profit_principal` | Visit each slice in position order; within that slice collect assessed fines by overdue date, evidenced costs, profit, then principal. `principal_profit` collects each slice in position order, principal before profit. `pro_rata` uses the slice's fixed principal:profit ratio (its own principal and profit under `amortizing`), caps each side by its collectible balance, and assigns the remainder without stranding cash. |
|
|
323
|
-
| `payoff_rebate` | `100%` | Reverse this share of unearned profit to borrower debt. Collect the remainder and all earned profit with outstanding principal. |
|
|
324
|
-
| `late_charge.fines_to` | `programOperator` | Receive fine cash and fund its refunds. |
|
|
325
|
-
| `late_charge.costs_to` | `programOperator` | Receive evidenced recovery cash and fund its refunds. |
|
|
326
|
-
| `collections.case.fee` | `20%` | After payment succeeds, transfer this share of the payment amount from plan capital to the agency. |
|
|
327
|
-
| `lending.distribution.residual_to` | `programOperator` | Receive the cash remainder and own the claim loss remainder after weighted distribution. |
|
|
328
|
-
|
|
329
|
-
Each slice owns separate unearned and earned claim accounts. Scheduled recognition
|
|
330
|
-
uses a dated child record so a partial payment cannot disable the maturity clock.
|
|
331
|
-
A normal payment collects only earned profit for the schedule and disbursement
|
|
332
|
-
choices; payoff can also collect non-rebated unearned profit. Partial fines and
|
|
333
|
-
costs stay assessed until their receivable reaches zero. Immutable receipts let
|
|
334
|
-
a refund restore only what that payment collected. The plan's payment receipt
|
|
335
|
-
records actual principal and profit after all ordered collections finish.
|
|
336
|
-
Write-off moves principal and earned profit claims to loss and reverses unearned
|
|
337
|
-
profit to debt. `write_off_after` sets how long a slice must be overdue before a capital-authorized
|
|
338
|
-
write-off request can apply. There is no provision policy.
|
|
339
|
-
|
|
340
304
|
## Header branches and bounds
|
|
341
305
|
|
|
342
306
|
A header may select action clauses at compile time:
|
|
@@ -416,28 +380,6 @@ On refusal, inspect `result.diagnostics`; no artifact is returned.
|
|
|
416
380
|
[object example](../examples/library.hsx) shows authenticated role bindings.
|
|
417
381
|
The [playground](https://hyperscale0.ai/playground/) compiles locally in the browser.
|
|
418
382
|
|
|
419
|
-
## Standard-library behavior
|
|
420
|
-
|
|
421
|
-
Read the instrument's states, time gates and moves before promising a money
|
|
422
|
-
outcome. A compiler pass does not prove that required actions are exposed,
|
|
423
|
-
adapters are bound, participants have funds, or the flow can finish.
|
|
424
|
-
|
|
425
|
-
| Instrument | Behavior |
|
|
426
|
-
| ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
427
|
-
| `financing.installments` | `share` allocates collected profit to a cash payable owned by `capital`. It does not itself pay operator income. |
|
|
428
|
-
| `financing.limits` | `per_borrower` caps outstanding principal. Both borrower and portfolio limits must be approved before disbursement; attaching them does not approve them. |
|
|
429
|
-
| `lending.round` | The target is the linked plan's principal. Closing requires commitments and held funds to equal that amount. |
|
|
430
|
-
| `lending.distribution` | Cash distribution needs an eligible recorded settlement, `prepare_cash`, one share record per funded commitment, then `distribute_cash`. Attaching it moves nothing. |
|
|
431
|
-
| `insurance.cover.slice` | `collect` credits premium net of commission to the insurer account. The tenant retains commission. `refund` returns both portions; claims reserve insurer funds. External settlement uses the boundary protocol. |
|
|
432
|
-
| `financing.installments`, `savings.circle` | Supply explicit date lists when creating agreements. A term count does not generate a monthly calendar. Savings supports at most 60 distinct member seats. |
|
|
433
|
-
| `escrow.hold` | `fund` takes the whole price. Financing into pending escrow collects the remaining down payment and adds capital principal at disbursement; `fund` is not a down-payment checkout. |
|
|
434
|
-
| `escrow.hold` | Acceptance timeout enters `disputed` without paying the seller. Delivery and return verification belong to `payee`; rebinding it also changes who receives accepted funds. |
|
|
435
|
-
| `escrow.hold` | `deliver_within` (default `14d`) starts at funding. After it passes without delivery, an exposed `refund_undelivered` lets the payer take the whole held price back. Nothing runs it automatically. |
|
|
436
|
-
| `wallet.balance` | `topup_fee` (default `0%`) takes a floored percentage of each top-up for the Company. At `1%`, a 100.00 top-up credits 99.00 and earns 1.00. |
|
|
437
|
-
| `booking.reservation` | The balance is payable only from `deposit_paid`, so a cancelled booking never takes it. `middle_forfeit` and `late_forfeit` default to `0%`, so every cancellation returns all held money until the author sets them. At departure the clock completes a paid booking and lapses an unpaid one on `late_forfeit`. |
|
|
438
|
-
| `financing.late_charge` | `fine` is a fixed money amount, not a percentage of overdue principal. |
|
|
439
|
-
| `cards.card` | `spend_limit` is a per-authorization ceiling, not a monthly aggregate. Bind `person` to the cardholder's `holder`, such as `person: actor`; create refuses any other party. The person freezes, unfreezes and cancels; the issuer uses `issuer_freeze`, `issuer_unfreeze` and `issuer_cancel`, and only `issuer_unfreeze` lifts a block. |
|
|
440
|
-
|
|
441
383
|
A seller-owned marketplace object can declare `entryActions: [create_order]`
|
|
442
384
|
when `create_order` exposes an attachment's create action with its buyer bound
|
|
443
385
|
to `actor`. This admits active enrolled customers to that action. The default
|
|
@@ -465,11 +407,9 @@ the bound party accounts. The aggregate caps still apply across all plans.
|
|
|
465
407
|
The account primitive creates it automatically and shares it across the Product.
|
|
466
408
|
Zero-tax escrow releases need no additional party setup.
|
|
467
409
|
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
after the program exposes it. A child alias names the full attachment path, for
|
|
472
|
-
example:
|
|
410
|
+
A child action uses the object's existing operation routes. A caller sees it
|
|
411
|
+
only after the program exposes it; admission still checks authority, state and
|
|
412
|
+
provider evidence. A child alias names the full attachment path, for example:
|
|
473
413
|
|
|
474
414
|
```hsx
|
|
475
415
|
expose enrolment.tuition.payment.create as create_payment
|
|
@@ -484,72 +424,12 @@ same object. The caller must satisfy the header's actor rule. Parties bind from
|
|
|
484
424
|
the session and object ownership. Retry the same request with the same
|
|
485
425
|
Idempotency-Key to retrieve its result without moving money again.
|
|
486
426
|
|
|
487
|
-
Supply payment amount and identity at creation. Pass the quote instance as the
|
|
488
|
-
parent payoff's `quote` input. For a late charge on a multi-instalment plan, select
|
|
489
|
-
the overdue child with the creation input `slice`. Repayment uses the declared
|
|
490
|
-
allocation order and payoff rebate; aliases do not change those terms.
|
|
491
|
-
|
|
492
|
-
The [lending sample](../examples/lending.hsx) also exposes share creation. Callers
|
|
493
|
-
still need dates, agreement inputs, funded wallets and eligible settlements.
|
|
494
427
|
Every agreement reference is an optional creation input on an exposed create.
|
|
495
428
|
With one matching agreement on the object the engine picks it; with several,
|
|
496
429
|
such as a plan's slices or a lending round's settlements, the caller passes the
|
|
497
430
|
chosen instance ID under the reference's name.
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
## Checkout and reversals
|
|
502
|
-
|
|
503
|
-
For financed checkout, expose `installments.collect_down_payment` after `create`
|
|
504
|
-
and `sign`. It credits the linked pending escrow with the missing down payment.
|
|
505
|
-
It does not disburse principal or activate the plan. The later `disburse` action
|
|
506
|
-
uses that credit before collecting any remainder. Borrower-directed financing
|
|
507
|
-
has no checkout collection action. The plan and escrow must agree on payer and
|
|
508
|
-
price.
|
|
509
|
-
|
|
510
|
-
Expose escrow `cancel` to return money credited before full funding. Plan `void`
|
|
511
|
-
cancels the signed financing agreement but does not cancel its escrow. Between
|
|
512
|
-
funding and delivery, the payee's `refund` returns the full price. After
|
|
513
|
-
delivery, the default return path needs three separate aliases for
|
|
514
|
-
`dispute`, `verify_return` and `refund`. The payee supplies return evidence and
|
|
515
|
-
returns the full price to the payer. `accept` pays the payee instead.
|
|
516
|
-
Marketplace order fulfillment alone does not execute any of these money actions.
|
|
517
|
-
|
|
518
|
-
Expose `late_charge.create` to create an assessment with matching plan, slice
|
|
519
|
-
and borrower. Only that existing assessment can reach clock-owned `assess` after
|
|
520
|
-
grace. A payment can collect part of a fine without settling the rest. A recovery
|
|
521
|
-
cost assessment is a separate record.
|
|
522
|
-
|
|
523
|
-
## Separate payments and states
|
|
524
|
-
|
|
525
|
-
Bind `insurance.cover.broker` to the agency that receives commission. Collection
|
|
526
|
-
pays the insurer's net premium and the broker's commission as two moves. Refunds
|
|
527
|
-
reverse those same portions. The default broker, `programOperator`, is the
|
|
528
|
-
Product's own company and needs no binding.
|
|
529
|
-
`claim.deny` accepts only `submitted`; after approval, `pay` or expiry consumes
|
|
530
|
-
the reservation. `claim_limit` is the sum insured, supplied per cover at creation:
|
|
531
|
-
approved and paid claims on one cover never total more. `adapter` names a
|
|
532
|
-
registered boundary adapter, `conformance_boundary` in sandbox. `covers` is
|
|
533
|
-
optional; the attached object is already the insured thing.
|
|
534
|
-
|
|
535
|
-
A booking cancellation refunds only its own held cash. Expose `cover.cancel`
|
|
536
|
-
separately for eligible premium refunds before the paid period starts. Active
|
|
537
|
-
and expired premium periods are excluded. A card transaction needs a captured
|
|
538
|
-
authorization and its own record before refund, but no authorization-expiry wait.
|
|
539
|
-
|
|
540
|
-
A booking runs two clock actions at departure. `complete` takes a `paid`
|
|
541
|
-
booking and pays the held money to `operator`. `lapse` takes a booking still
|
|
542
|
-
`reserved` or `deposit_paid` to `cancelled`: `operator` keeps `late_forfeit` of
|
|
543
|
-
the held money and the customer gets the rest back. An unpaid balance at
|
|
544
|
-
departure therefore costs the customer the same as `cancel_late`, and with the
|
|
545
|
-
default `0%` it costs nothing. Nothing stays held after departure.
|
|
546
|
-
|
|
547
|
-
A savings membership becomes `received` after its pot payout. Its contribution
|
|
548
|
-
records become `paid` independently. Future contributions can remain pending
|
|
549
|
-
after the member receives the pot; paying a contribution does not advance their
|
|
550
|
-
payout seat. Late contributions remain eligible while the membership is
|
|
551
|
-
`active` or `received` and the circle is `active`. These guards do not promise
|
|
552
|
-
scheduler retries or permit a payout larger than the available cash.
|
|
431
|
+
Read each header's creation and lifecycle requirements. Financial decisions
|
|
432
|
+
come from a provider or the tenant's people; a header records their result.
|
|
553
433
|
|
|
554
434
|
## Posted economics in the money flows
|
|
555
435
|
|
package/examples/cost-table.json
CHANGED
|
@@ -162,497 +162,5 @@
|
|
|
162
162
|
}
|
|
163
163
|
],
|
|
164
164
|
"version": "2026-09-27.1"
|
|
165
|
-
},
|
|
166
|
-
{
|
|
167
|
-
"currency": "USD",
|
|
168
|
-
"declaredMeters": [
|
|
169
|
-
"account.active_month",
|
|
170
|
-
"instrument.event.count",
|
|
171
|
-
"transfer.internal.count"
|
|
172
|
-
],
|
|
173
|
-
"effectiveTableDigest": "f2845819ad077745ed5d0af924b33f34210b20da703522e78aa2629d9be5040e",
|
|
174
|
-
"fixed": {
|
|
175
|
-
"activationBaseMinor": "133300",
|
|
176
|
-
"activationPerPointMinor": "2700",
|
|
177
|
-
"monthlyBaseMinor": "26700",
|
|
178
|
-
"monthlyPerPointMinor": "500",
|
|
179
|
-
"weights": {
|
|
180
|
-
"aggregate_invariant": 2,
|
|
181
|
-
"flow": 1,
|
|
182
|
-
"gate": 1,
|
|
183
|
-
"instrument": 3,
|
|
184
|
-
"move": 3,
|
|
185
|
-
"provider_decision": 5,
|
|
186
|
-
"timer": 1,
|
|
187
|
-
"unwind": 4
|
|
188
|
-
}
|
|
189
|
-
},
|
|
190
|
-
"rows": [
|
|
191
|
-
{
|
|
192
|
-
"bps": 0,
|
|
193
|
-
"meter": "instrument.event.count",
|
|
194
|
-
"payer": "product",
|
|
195
|
-
"perEventMinor": "0",
|
|
196
|
-
"settlement": "invoice",
|
|
197
|
-
"signature": "calculate"
|
|
198
|
-
},
|
|
199
|
-
{
|
|
200
|
-
"bps": 0,
|
|
201
|
-
"meter": "instrument.event.count",
|
|
202
|
-
"payer": "product",
|
|
203
|
-
"perEventMinor": "0",
|
|
204
|
-
"settlement": "invoice",
|
|
205
|
-
"signature": "clock.deadline"
|
|
206
|
-
},
|
|
207
|
-
{
|
|
208
|
-
"bps": 0,
|
|
209
|
-
"meter": "instrument.event.count",
|
|
210
|
-
"payer": "product",
|
|
211
|
-
"perEventMinor": "0",
|
|
212
|
-
"settlement": "invoice",
|
|
213
|
-
"signature": "clock.due"
|
|
214
|
-
},
|
|
215
|
-
{
|
|
216
|
-
"bps": 0,
|
|
217
|
-
"meter": "instrument.event.count",
|
|
218
|
-
"payer": "product",
|
|
219
|
-
"perEventMinor": "0",
|
|
220
|
-
"settlement": "invoice",
|
|
221
|
-
"signature": "holds.reserve"
|
|
222
|
-
},
|
|
223
|
-
{
|
|
224
|
-
"bps": 0,
|
|
225
|
-
"meter": "instrument.event.count",
|
|
226
|
-
"payer": "product",
|
|
227
|
-
"perEventMinor": "0",
|
|
228
|
-
"settlement": "invoice",
|
|
229
|
-
"signature": "invoke"
|
|
230
|
-
},
|
|
231
|
-
{
|
|
232
|
-
"bps": 0,
|
|
233
|
-
"meter": "account.active_month",
|
|
234
|
-
"payer": "product",
|
|
235
|
-
"perEventMinor": "133",
|
|
236
|
-
"settlement": "invoice",
|
|
237
|
-
"signature": "meters.account.active_month"
|
|
238
|
-
},
|
|
239
|
-
{
|
|
240
|
-
"bps": 0,
|
|
241
|
-
"meter": "instrument.event.count",
|
|
242
|
-
"payer": "product",
|
|
243
|
-
"perEventMinor": "7",
|
|
244
|
-
"settlement": "invoice",
|
|
245
|
-
"signature": "meters.instrument.event.count"
|
|
246
|
-
},
|
|
247
|
-
{
|
|
248
|
-
"bps": 0,
|
|
249
|
-
"meter": "transfer.internal.count",
|
|
250
|
-
"payer": "product",
|
|
251
|
-
"perEventMinor": "7",
|
|
252
|
-
"settlement": "invoice",
|
|
253
|
-
"signature": "meters.transfer.internal.count"
|
|
254
|
-
},
|
|
255
|
-
{
|
|
256
|
-
"bps": 0,
|
|
257
|
-
"meter": "instrument.event.count",
|
|
258
|
-
"payer": "product",
|
|
259
|
-
"perEventMinor": "0",
|
|
260
|
-
"settlement": "invoice",
|
|
261
|
-
"signature": "moves.transfer.internal"
|
|
262
|
-
},
|
|
263
|
-
{
|
|
264
|
-
"bps": 0,
|
|
265
|
-
"meter": "instrument.event.count",
|
|
266
|
-
"payer": "product",
|
|
267
|
-
"perEventMinor": "0",
|
|
268
|
-
"settlement": "invoice",
|
|
269
|
-
"signature": "reminder.email"
|
|
270
|
-
},
|
|
271
|
-
{
|
|
272
|
-
"bps": 0,
|
|
273
|
-
"meter": "instrument.event.count",
|
|
274
|
-
"payer": "product",
|
|
275
|
-
"perEventMinor": "0",
|
|
276
|
-
"settlement": "invoice",
|
|
277
|
-
"signature": "requires.aggregate"
|
|
278
|
-
},
|
|
279
|
-
{
|
|
280
|
-
"bps": 0,
|
|
281
|
-
"meter": "instrument.event.count",
|
|
282
|
-
"payer": "product",
|
|
283
|
-
"perEventMinor": "0",
|
|
284
|
-
"settlement": "invoice",
|
|
285
|
-
"signature": "requires.compare"
|
|
286
|
-
},
|
|
287
|
-
{
|
|
288
|
-
"bps": 0,
|
|
289
|
-
"meter": "instrument.event.count",
|
|
290
|
-
"payer": "product",
|
|
291
|
-
"perEventMinor": "0",
|
|
292
|
-
"settlement": "invoice",
|
|
293
|
-
"signature": "requires.evidence"
|
|
294
|
-
},
|
|
295
|
-
{
|
|
296
|
-
"bps": 0,
|
|
297
|
-
"meter": "instrument.event.count",
|
|
298
|
-
"payer": "product",
|
|
299
|
-
"perEventMinor": "0",
|
|
300
|
-
"settlement": "invoice",
|
|
301
|
-
"signature": "requires.hours"
|
|
302
|
-
},
|
|
303
|
-
{
|
|
304
|
-
"bps": 0,
|
|
305
|
-
"meter": "instrument.event.count",
|
|
306
|
-
"payer": "product",
|
|
307
|
-
"perEventMinor": "0",
|
|
308
|
-
"settlement": "invoice",
|
|
309
|
-
"signature": "requires.state"
|
|
310
|
-
},
|
|
311
|
-
{
|
|
312
|
-
"bps": 0,
|
|
313
|
-
"meter": "instrument.event.count",
|
|
314
|
-
"payer": "product",
|
|
315
|
-
"perEventMinor": "0",
|
|
316
|
-
"settlement": "invoice",
|
|
317
|
-
"signature": "requires.unique"
|
|
318
|
-
},
|
|
319
|
-
{
|
|
320
|
-
"bps": 0,
|
|
321
|
-
"meter": "instrument.event.count",
|
|
322
|
-
"payer": "product",
|
|
323
|
-
"perEventMinor": "0",
|
|
324
|
-
"settlement": "invoice",
|
|
325
|
-
"signature": "unwinds.void"
|
|
326
|
-
}
|
|
327
|
-
],
|
|
328
|
-
"version": "2026-09-27.1"
|
|
329
|
-
},
|
|
330
|
-
{
|
|
331
|
-
"currency": "EUR",
|
|
332
|
-
"declaredMeters": [
|
|
333
|
-
"account.active_month",
|
|
334
|
-
"instrument.event.count",
|
|
335
|
-
"transfer.internal.count"
|
|
336
|
-
],
|
|
337
|
-
"effectiveTableDigest": "f741132e1aa38a860d855a83f20f12c0ec8a7ec5379117c407799e2012e63335",
|
|
338
|
-
"fixed": {
|
|
339
|
-
"activationBaseMinor": "125000",
|
|
340
|
-
"activationPerPointMinor": "2500",
|
|
341
|
-
"monthlyBaseMinor": "25000",
|
|
342
|
-
"monthlyPerPointMinor": "500",
|
|
343
|
-
"weights": {
|
|
344
|
-
"aggregate_invariant": 2,
|
|
345
|
-
"flow": 1,
|
|
346
|
-
"gate": 1,
|
|
347
|
-
"instrument": 3,
|
|
348
|
-
"move": 3,
|
|
349
|
-
"provider_decision": 5,
|
|
350
|
-
"timer": 1,
|
|
351
|
-
"unwind": 4
|
|
352
|
-
}
|
|
353
|
-
},
|
|
354
|
-
"rows": [
|
|
355
|
-
{
|
|
356
|
-
"bps": 0,
|
|
357
|
-
"meter": "instrument.event.count",
|
|
358
|
-
"payer": "product",
|
|
359
|
-
"perEventMinor": "0",
|
|
360
|
-
"settlement": "invoice",
|
|
361
|
-
"signature": "calculate"
|
|
362
|
-
},
|
|
363
|
-
{
|
|
364
|
-
"bps": 0,
|
|
365
|
-
"meter": "instrument.event.count",
|
|
366
|
-
"payer": "product",
|
|
367
|
-
"perEventMinor": "0",
|
|
368
|
-
"settlement": "invoice",
|
|
369
|
-
"signature": "clock.deadline"
|
|
370
|
-
},
|
|
371
|
-
{
|
|
372
|
-
"bps": 0,
|
|
373
|
-
"meter": "instrument.event.count",
|
|
374
|
-
"payer": "product",
|
|
375
|
-
"perEventMinor": "0",
|
|
376
|
-
"settlement": "invoice",
|
|
377
|
-
"signature": "clock.due"
|
|
378
|
-
},
|
|
379
|
-
{
|
|
380
|
-
"bps": 0,
|
|
381
|
-
"meter": "instrument.event.count",
|
|
382
|
-
"payer": "product",
|
|
383
|
-
"perEventMinor": "0",
|
|
384
|
-
"settlement": "invoice",
|
|
385
|
-
"signature": "holds.reserve"
|
|
386
|
-
},
|
|
387
|
-
{
|
|
388
|
-
"bps": 0,
|
|
389
|
-
"meter": "instrument.event.count",
|
|
390
|
-
"payer": "product",
|
|
391
|
-
"perEventMinor": "0",
|
|
392
|
-
"settlement": "invoice",
|
|
393
|
-
"signature": "invoke"
|
|
394
|
-
},
|
|
395
|
-
{
|
|
396
|
-
"bps": 0,
|
|
397
|
-
"meter": "account.active_month",
|
|
398
|
-
"payer": "product",
|
|
399
|
-
"perEventMinor": "125",
|
|
400
|
-
"settlement": "invoice",
|
|
401
|
-
"signature": "meters.account.active_month"
|
|
402
|
-
},
|
|
403
|
-
{
|
|
404
|
-
"bps": 0,
|
|
405
|
-
"meter": "instrument.event.count",
|
|
406
|
-
"payer": "product",
|
|
407
|
-
"perEventMinor": "6",
|
|
408
|
-
"settlement": "invoice",
|
|
409
|
-
"signature": "meters.instrument.event.count"
|
|
410
|
-
},
|
|
411
|
-
{
|
|
412
|
-
"bps": 0,
|
|
413
|
-
"meter": "transfer.internal.count",
|
|
414
|
-
"payer": "product",
|
|
415
|
-
"perEventMinor": "6",
|
|
416
|
-
"settlement": "invoice",
|
|
417
|
-
"signature": "meters.transfer.internal.count"
|
|
418
|
-
},
|
|
419
|
-
{
|
|
420
|
-
"bps": 0,
|
|
421
|
-
"meter": "instrument.event.count",
|
|
422
|
-
"payer": "product",
|
|
423
|
-
"perEventMinor": "0",
|
|
424
|
-
"settlement": "invoice",
|
|
425
|
-
"signature": "moves.transfer.internal"
|
|
426
|
-
},
|
|
427
|
-
{
|
|
428
|
-
"bps": 0,
|
|
429
|
-
"meter": "instrument.event.count",
|
|
430
|
-
"payer": "product",
|
|
431
|
-
"perEventMinor": "0",
|
|
432
|
-
"settlement": "invoice",
|
|
433
|
-
"signature": "reminder.email"
|
|
434
|
-
},
|
|
435
|
-
{
|
|
436
|
-
"bps": 0,
|
|
437
|
-
"meter": "instrument.event.count",
|
|
438
|
-
"payer": "product",
|
|
439
|
-
"perEventMinor": "0",
|
|
440
|
-
"settlement": "invoice",
|
|
441
|
-
"signature": "requires.aggregate"
|
|
442
|
-
},
|
|
443
|
-
{
|
|
444
|
-
"bps": 0,
|
|
445
|
-
"meter": "instrument.event.count",
|
|
446
|
-
"payer": "product",
|
|
447
|
-
"perEventMinor": "0",
|
|
448
|
-
"settlement": "invoice",
|
|
449
|
-
"signature": "requires.compare"
|
|
450
|
-
},
|
|
451
|
-
{
|
|
452
|
-
"bps": 0,
|
|
453
|
-
"meter": "instrument.event.count",
|
|
454
|
-
"payer": "product",
|
|
455
|
-
"perEventMinor": "0",
|
|
456
|
-
"settlement": "invoice",
|
|
457
|
-
"signature": "requires.evidence"
|
|
458
|
-
},
|
|
459
|
-
{
|
|
460
|
-
"bps": 0,
|
|
461
|
-
"meter": "instrument.event.count",
|
|
462
|
-
"payer": "product",
|
|
463
|
-
"perEventMinor": "0",
|
|
464
|
-
"settlement": "invoice",
|
|
465
|
-
"signature": "requires.hours"
|
|
466
|
-
},
|
|
467
|
-
{
|
|
468
|
-
"bps": 0,
|
|
469
|
-
"meter": "instrument.event.count",
|
|
470
|
-
"payer": "product",
|
|
471
|
-
"perEventMinor": "0",
|
|
472
|
-
"settlement": "invoice",
|
|
473
|
-
"signature": "requires.state"
|
|
474
|
-
},
|
|
475
|
-
{
|
|
476
|
-
"bps": 0,
|
|
477
|
-
"meter": "instrument.event.count",
|
|
478
|
-
"payer": "product",
|
|
479
|
-
"perEventMinor": "0",
|
|
480
|
-
"settlement": "invoice",
|
|
481
|
-
"signature": "requires.unique"
|
|
482
|
-
},
|
|
483
|
-
{
|
|
484
|
-
"bps": 0,
|
|
485
|
-
"meter": "instrument.event.count",
|
|
486
|
-
"payer": "product",
|
|
487
|
-
"perEventMinor": "0",
|
|
488
|
-
"settlement": "invoice",
|
|
489
|
-
"signature": "unwinds.void"
|
|
490
|
-
}
|
|
491
|
-
],
|
|
492
|
-
"version": "2026-09-27.1"
|
|
493
|
-
},
|
|
494
|
-
{
|
|
495
|
-
"currency": "GBP",
|
|
496
|
-
"declaredMeters": [
|
|
497
|
-
"account.active_month",
|
|
498
|
-
"instrument.event.count",
|
|
499
|
-
"transfer.internal.count"
|
|
500
|
-
],
|
|
501
|
-
"effectiveTableDigest": "12ed3fa44010e80ae20c114d7dd94f277686225c040576a8bb96d12a0fe5333a",
|
|
502
|
-
"fixed": {
|
|
503
|
-
"activationBaseMinor": "104200",
|
|
504
|
-
"activationPerPointMinor": "2100",
|
|
505
|
-
"monthlyBaseMinor": "20800",
|
|
506
|
-
"monthlyPerPointMinor": "400",
|
|
507
|
-
"weights": {
|
|
508
|
-
"aggregate_invariant": 2,
|
|
509
|
-
"flow": 1,
|
|
510
|
-
"gate": 1,
|
|
511
|
-
"instrument": 3,
|
|
512
|
-
"move": 3,
|
|
513
|
-
"provider_decision": 5,
|
|
514
|
-
"timer": 1,
|
|
515
|
-
"unwind": 4
|
|
516
|
-
}
|
|
517
|
-
},
|
|
518
|
-
"rows": [
|
|
519
|
-
{
|
|
520
|
-
"bps": 0,
|
|
521
|
-
"meter": "instrument.event.count",
|
|
522
|
-
"payer": "product",
|
|
523
|
-
"perEventMinor": "0",
|
|
524
|
-
"settlement": "invoice",
|
|
525
|
-
"signature": "calculate"
|
|
526
|
-
},
|
|
527
|
-
{
|
|
528
|
-
"bps": 0,
|
|
529
|
-
"meter": "instrument.event.count",
|
|
530
|
-
"payer": "product",
|
|
531
|
-
"perEventMinor": "0",
|
|
532
|
-
"settlement": "invoice",
|
|
533
|
-
"signature": "clock.deadline"
|
|
534
|
-
},
|
|
535
|
-
{
|
|
536
|
-
"bps": 0,
|
|
537
|
-
"meter": "instrument.event.count",
|
|
538
|
-
"payer": "product",
|
|
539
|
-
"perEventMinor": "0",
|
|
540
|
-
"settlement": "invoice",
|
|
541
|
-
"signature": "clock.due"
|
|
542
|
-
},
|
|
543
|
-
{
|
|
544
|
-
"bps": 0,
|
|
545
|
-
"meter": "instrument.event.count",
|
|
546
|
-
"payer": "product",
|
|
547
|
-
"perEventMinor": "0",
|
|
548
|
-
"settlement": "invoice",
|
|
549
|
-
"signature": "holds.reserve"
|
|
550
|
-
},
|
|
551
|
-
{
|
|
552
|
-
"bps": 0,
|
|
553
|
-
"meter": "instrument.event.count",
|
|
554
|
-
"payer": "product",
|
|
555
|
-
"perEventMinor": "0",
|
|
556
|
-
"settlement": "invoice",
|
|
557
|
-
"signature": "invoke"
|
|
558
|
-
},
|
|
559
|
-
{
|
|
560
|
-
"bps": 0,
|
|
561
|
-
"meter": "account.active_month",
|
|
562
|
-
"payer": "product",
|
|
563
|
-
"perEventMinor": "104",
|
|
564
|
-
"settlement": "invoice",
|
|
565
|
-
"signature": "meters.account.active_month"
|
|
566
|
-
},
|
|
567
|
-
{
|
|
568
|
-
"bps": 0,
|
|
569
|
-
"meter": "instrument.event.count",
|
|
570
|
-
"payer": "product",
|
|
571
|
-
"perEventMinor": "5",
|
|
572
|
-
"settlement": "invoice",
|
|
573
|
-
"signature": "meters.instrument.event.count"
|
|
574
|
-
},
|
|
575
|
-
{
|
|
576
|
-
"bps": 0,
|
|
577
|
-
"meter": "transfer.internal.count",
|
|
578
|
-
"payer": "product",
|
|
579
|
-
"perEventMinor": "5",
|
|
580
|
-
"settlement": "invoice",
|
|
581
|
-
"signature": "meters.transfer.internal.count"
|
|
582
|
-
},
|
|
583
|
-
{
|
|
584
|
-
"bps": 0,
|
|
585
|
-
"meter": "instrument.event.count",
|
|
586
|
-
"payer": "product",
|
|
587
|
-
"perEventMinor": "0",
|
|
588
|
-
"settlement": "invoice",
|
|
589
|
-
"signature": "moves.transfer.internal"
|
|
590
|
-
},
|
|
591
|
-
{
|
|
592
|
-
"bps": 0,
|
|
593
|
-
"meter": "instrument.event.count",
|
|
594
|
-
"payer": "product",
|
|
595
|
-
"perEventMinor": "0",
|
|
596
|
-
"settlement": "invoice",
|
|
597
|
-
"signature": "reminder.email"
|
|
598
|
-
},
|
|
599
|
-
{
|
|
600
|
-
"bps": 0,
|
|
601
|
-
"meter": "instrument.event.count",
|
|
602
|
-
"payer": "product",
|
|
603
|
-
"perEventMinor": "0",
|
|
604
|
-
"settlement": "invoice",
|
|
605
|
-
"signature": "requires.aggregate"
|
|
606
|
-
},
|
|
607
|
-
{
|
|
608
|
-
"bps": 0,
|
|
609
|
-
"meter": "instrument.event.count",
|
|
610
|
-
"payer": "product",
|
|
611
|
-
"perEventMinor": "0",
|
|
612
|
-
"settlement": "invoice",
|
|
613
|
-
"signature": "requires.compare"
|
|
614
|
-
},
|
|
615
|
-
{
|
|
616
|
-
"bps": 0,
|
|
617
|
-
"meter": "instrument.event.count",
|
|
618
|
-
"payer": "product",
|
|
619
|
-
"perEventMinor": "0",
|
|
620
|
-
"settlement": "invoice",
|
|
621
|
-
"signature": "requires.evidence"
|
|
622
|
-
},
|
|
623
|
-
{
|
|
624
|
-
"bps": 0,
|
|
625
|
-
"meter": "instrument.event.count",
|
|
626
|
-
"payer": "product",
|
|
627
|
-
"perEventMinor": "0",
|
|
628
|
-
"settlement": "invoice",
|
|
629
|
-
"signature": "requires.hours"
|
|
630
|
-
},
|
|
631
|
-
{
|
|
632
|
-
"bps": 0,
|
|
633
|
-
"meter": "instrument.event.count",
|
|
634
|
-
"payer": "product",
|
|
635
|
-
"perEventMinor": "0",
|
|
636
|
-
"settlement": "invoice",
|
|
637
|
-
"signature": "requires.state"
|
|
638
|
-
},
|
|
639
|
-
{
|
|
640
|
-
"bps": 0,
|
|
641
|
-
"meter": "instrument.event.count",
|
|
642
|
-
"payer": "product",
|
|
643
|
-
"perEventMinor": "0",
|
|
644
|
-
"settlement": "invoice",
|
|
645
|
-
"signature": "requires.unique"
|
|
646
|
-
},
|
|
647
|
-
{
|
|
648
|
-
"bps": 0,
|
|
649
|
-
"meter": "instrument.event.count",
|
|
650
|
-
"payer": "product",
|
|
651
|
-
"perEventMinor": "0",
|
|
652
|
-
"settlement": "invoice",
|
|
653
|
-
"signature": "unwinds.void"
|
|
654
|
-
}
|
|
655
|
-
],
|
|
656
|
-
"version": "2026-09-27.1"
|
|
657
165
|
}
|
|
658
166
|
]
|