command · command.money
Contribute money
Requests one conserved transfer from a directly controlled Actor wallet to that Actor's Household.
command.money.contribute(actor_id, household_id, currency_definition_id, amount_minor_units, expected_authority_revision, expected_household_revision, expected_personal_custody_revision, expected_household_custody_revision) -> command.receipt
- Stable ID
command.money.contribute- Owner
- game.resource-economy
- Authority
- request
- Timing
- fixed_tick
- Availability
- active-session
- Side effects
- may move exact currency units from Actor custody to that Actor's Household custody
- Determinism
- record request and Resource result in engine sequence order; request sequence is the stable custody-transfer identity
- Introduced
- 1.4.0
Usage
Submit a contribution only after the player explicitly takes control of the Actor. Use detached Actor, Household, and money queries to supply current stable IDs and revisions.
Parameters
- actor_id: contributing Actor.
- household_id: Actor's own Household.
- currency_definition_id: authored currency identity.
- amount_minor_units: positive exact amount.
- expected_authority_revision: current direct-control revision.
- expected_household_revision: current Household revision.
- expected_personal_custody_revision: current Actor-wallet revision.
- expected_household_custody_revision: current Household-money revision.
Returns
A fixed-tick command receipt. Completion produces events.money.transferred followed by events.command.completed.
Cost
One bounded membership and authority check, two indexed custody lookups, and one atomic Resource transfer.
Fields
| ID | Type | Units | Required | Description |
|---|---|---|---|---|
actor_id | stable-id | none | yes | Actor whose personal wallet supplies the contribution. |
amount_minor_units | unsigned-integer | minor-currency-units | yes | Exact contribution amount. |
currency_definition_id | string | none | yes | Authored currency definition identity. |
expected_authority_revision | revision | none | yes | Expected Actor control-authority revision. |
expected_household_custody_revision | revision | none | yes | Expected Household-money revision. |
expected_household_revision | revision | none | yes | Expected Household membership revision. |
expected_personal_custody_revision | revision | none | yes | Expected Actor-wallet revision. |
household_id | stable-id | none | yes | Actor Household that receives the contribution. |
Errors
error.command-budget-exhaustederror.command-owner-rejectederror.command-queue-fullerror.invalid-commanderror.restricted-command
Examples
local receipt = command.submit("command.money.contribute", {
actor_id = actor.actor_id,
household_id = household.household_id,
currency_definition_id = personal.currency_definition_id,
amount_minor_units = 1,
expected_authority_revision = actor.authority_revision,
expected_household_revision = household.revision,
expected_personal_custody_revision = personal.container_revision,
expected_household_custody_revision = shared.container_revision
}, 1)
API history
- 1.4.0: Actor-to-own-Household contribution added for Phase 16D2.