# ProposalReviewSource

[All API schemas](/api-reference/schemas/)

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>generation</code> | Yes | <code>string</code> | Allowed: <code>V1</code>, <code>V2</code> |
| <code>recordType</code> | Yes | <code>string</code> | Allowed: <code>PROPOSAL</code>, <code>PROPOSAL&#95;WORKSPACE</code> |
| <code>recordId</code> | Yes | <code>string</code> | Pattern: <code>^&#91;a-zA-Z0-9&#93;&#91;a-zA-Z0-9:&#95;-&#93;{2,159}$</code> |
| <code>version</code> | Yes | <code>string</code> | Min length: <code>1</code>; Max length: <code>100</code> |
| <code>artifactHash</code> | Yes | At least one of: <code>string</code>; <code>null</code> | — |
| <code>economicHash</code> | Yes | <code>string</code> | Pattern: <code>^0x&#91;0-9a-f&#93;{64}$</code> |

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

Exact definition: <code>#/components/schemas/ProposalReviewSource</code> in the [OpenAPI contract](/openapi/liquidity-operating-system-v2.openapi.json).