diff --git a/.gitignore b/.gitignore index 9f75a0f579..4950c2b065 100644 --- a/.gitignore +++ b/.gitignore @@ -81,6 +81,9 @@ $RECYCLE.BIN/ !/.vscode/settings.recommended.json !/.vscode/tasks.recommended.json +venv/ +# Python virtual environments + # Dart stuff /pubspec.lock /.dart_tool/**/* diff --git a/docs/src/architecture/08_concepts/signed_doc/diagrams/all.dot b/docs/src/architecture/08_concepts/signed_doc/diagrams/all.dot index af9f30cf9e..b810e40dbb 100644 --- a/docs/src/architecture/08_concepts/signed_doc/diagrams/all.dot +++ b/docs/src/architecture/08_concepts/signed_doc/diagrams/all.dot @@ -121,16 +121,6 @@ digraph "All" { - - - - - - - -
parametersBrand Parameters
- - > @@ -186,16 +176,6 @@ digraph "All" { - - - - - - - -
parametersCampaign Parameters
- - > @@ -437,7 +417,7 @@ digraph "All" { - +
parametersBrand Parameters
Campaign Parameters
Category Parameters
Decision Parameters
@@ -963,10 +943,8 @@ digraph "All" { ]; - "Campaign Parameters":"parameters":e -> "Brand Parameters":"title":w [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*"] - "Category Parameters":"parameters":e -> "Campaign Parameters":"title":w [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*"] "Comment Moderation Action":"ref":e -> "Proposal Comment":"title":w [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*"] - "Decision Parameters":"parameters":e -> "Brand Parameters" [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*", lhead="cluster_system_parameters"] + "Decision Parameters":"parameters":e -> "Decision Parameters":"title":n [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*"] "Proposal":"template":e -> "Proposal Template":"title":w [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*"] "Proposal":"parameters":e -> "Brand Parameters" [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*", lhead="cluster_system_parameters"] "Proposal Comment":"ref":e -> "Proposal":"title":w [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*"] diff --git a/docs/src/architecture/08_concepts/signed_doc/diagrams/brand_parameters.dot b/docs/src/architecture/08_concepts/signed_doc/diagrams/brand_parameters.dot index ec4702ddac..854ce68f55 100644 --- a/docs/src/architecture/08_concepts/signed_doc/diagrams/brand_parameters.dot +++ b/docs/src/architecture/08_concepts/signed_doc/diagrams/brand_parameters.dot @@ -72,38 +72,8 @@ Relationships" > ]; - - "Campaign Parameters" [ - id="Campaign Parameters"; - label=< - - - - - -
- Campaign Parameters -
- > - ]; - } - "Decision Parameters" [ - id="Decision Parameters"; - label=< - - - - - -
- Decision Parameters -
- > - ]; - - "Proposal" [ id="Proposal"; label=< @@ -209,8 +179,6 @@ Relationships" ]; - "Campaign Parameters":"title":e -> "Brand Parameters":"title":w [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*"] - "Decision Parameters":"title":e -> "Brand Parameters" [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*", lhead="cluster_system_parameters"] "Proposal":"title":e -> "Brand Parameters" [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*", lhead="cluster_system_parameters"] "Proposal Comment":"title":e -> "Brand Parameters" [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*", lhead="cluster_system_parameters"] "Proposal Comment Meta Template":"title":e -> "Brand Parameters" [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*", lhead="cluster_system_parameters"] diff --git a/docs/src/architecture/08_concepts/signed_doc/diagrams/campaign_parameters.dot b/docs/src/architecture/08_concepts/signed_doc/diagrams/campaign_parameters.dot index f21afdeadf..c6746ece95 100644 --- a/docs/src/architecture/08_concepts/signed_doc/diagrams/campaign_parameters.dot +++ b/docs/src/architecture/08_concepts/signed_doc/diagrams/campaign_parameters.dot @@ -18,21 +18,6 @@ Relationships" color=blue penwidth=20 - "Brand Parameters" [ - id="Brand Parameters"; - label=< - - - - - -
- Brand Parameters -
- > - ]; - - "Campaign Parameters" [ id="Campaign Parameters"; label=< @@ -82,31 +67,6 @@ Relationships" - - - - - - - -
parametersBrand Parameters
- - - - - > - ]; - - - "Category Parameters" [ - id="Category Parameters"; - label=< - - - -
- Category Parameters -
> @@ -114,21 +74,6 @@ Relationships" } - "Decision Parameters" [ - id="Decision Parameters"; - label=< - - - - - -
- Decision Parameters -
- > - ]; - - "Proposal" [ id="Proposal"; label=< @@ -234,9 +179,6 @@ Relationships" ]; - "Campaign Parameters":"parameters":e -> "Brand Parameters":"title":w [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*"] - "Category Parameters":"title":e -> "Campaign Parameters":"title":w [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*"] - "Decision Parameters":"title":e -> "Campaign Parameters" [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*", lhead="cluster_system_parameters"] "Proposal":"title":e -> "Campaign Parameters" [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*", lhead="cluster_system_parameters"] "Proposal Comment":"title":e -> "Campaign Parameters" [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*", lhead="cluster_system_parameters"] "Proposal Comment Meta Template":"title":e -> "Campaign Parameters" [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*", lhead="cluster_system_parameters"] diff --git a/docs/src/architecture/08_concepts/signed_doc/diagrams/category_parameters.dot b/docs/src/architecture/08_concepts/signed_doc/diagrams/category_parameters.dot index b6a2aa470a..ff1f5e4b40 100644 --- a/docs/src/architecture/08_concepts/signed_doc/diagrams/category_parameters.dot +++ b/docs/src/architecture/08_concepts/signed_doc/diagrams/category_parameters.dot @@ -18,21 +18,6 @@ Relationships" color=blue penwidth=20 - "Campaign Parameters" [ - id="Campaign Parameters"; - label=< - - - - - -
- Campaign Parameters -
- > - ]; - - "Category Parameters" [ id="Category Parameters"; label=< @@ -82,16 +67,6 @@ Relationships" - - - - - - - -
parametersCampaign Parameters
- - > @@ -99,21 +74,6 @@ Relationships" } - "Decision Parameters" [ - id="Decision Parameters"; - label=< - - - - - -
- Decision Parameters -
- > - ]; - - "Proposal" [ id="Proposal"; label=< @@ -219,8 +179,6 @@ Relationships" ]; - "Category Parameters":"parameters":e -> "Campaign Parameters":"title":w [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*"] - "Decision Parameters":"title":e -> "Category Parameters" [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*", lhead="cluster_system_parameters"] "Proposal":"title":e -> "Category Parameters" [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*", lhead="cluster_system_parameters"] "Proposal Comment":"title":e -> "Category Parameters" [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*", lhead="cluster_system_parameters"] "Proposal Comment Meta Template":"title":e -> "Category Parameters" [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*", lhead="cluster_system_parameters"] diff --git a/docs/src/architecture/08_concepts/signed_doc/diagrams/decision_parameters.dot b/docs/src/architecture/08_concepts/signed_doc/diagrams/decision_parameters.dot index ff41dcf0f6..eb5faa35e0 100644 --- a/docs/src/architecture/08_concepts/signed_doc/diagrams/decision_parameters.dot +++ b/docs/src/architecture/08_concepts/signed_doc/diagrams/decision_parameters.dot @@ -13,57 +13,6 @@ Relationships" - subgraph cluster_system_parameters { - label = "System Parameters"; - color=blue - penwidth=20 - - "Brand Parameters" [ - id="Brand Parameters"; - label=< - - - - - -
- Brand Parameters -
- > - ]; - - - "Campaign Parameters" [ - id="Campaign Parameters"; - label=< - - - - - -
- Campaign Parameters -
- > - ]; - - - "Category Parameters" [ - id="Category Parameters"; - label=< - - - - - -
- Category Parameters -
- > - ]; - - } - "Decision Parameters" [ id="Decision Parameters"; label=< @@ -118,7 +67,7 @@ Relationships" - +
parametersBrand Parameters
Campaign Parameters
Category Parameters
Decision Parameters
@@ -129,5 +78,5 @@ Relationships" ]; - "Decision Parameters":"parameters":e -> "Brand Parameters" [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*", lhead="cluster_system_parameters"] + "Decision Parameters":"parameters":e -> "Decision Parameters":"title":n [dir=forward, penwidth=6, color="#29235c", headlabel="1", taillabel="*"] } diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/brand_parameters.md b/docs/src/architecture/08_concepts/signed_doc/docs/brand_parameters.md index 8f2571f9e8..95cc328f55 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/brand_parameters.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/brand_parameters.md @@ -2,7 +2,10 @@ ## Description -Parameters which define this brand within the system. +This specification outlines the required definitions for the current features. +The document will be incrementally improved in future iterations as more functionality +and features are added. +This section will be included and updated in future iterations. @@ -118,9 +121,13 @@ New versions of this document may be published by: ### Changelog -#### 0.01 (2025-04-04) +#### v1 (2024-06-07) + +Initial version. Structure aligned with global metadata requirements. + +#### v2 (2025-04-04) -* First Published Version +Updated to include common definitions and examples. [RFC9052-HeaderParameters]: https://www.rfc-editor.org/rfc/rfc8152#section-3.1 [CC-BY-4.0]: https://creativecommons.org/licenses/by/4.0/legalcode diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/campaign_parameters.md b/docs/src/architecture/08_concepts/signed_doc/docs/campaign_parameters.md index 8836c1999a..b86067891b 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/campaign_parameters.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/campaign_parameters.md @@ -2,7 +2,10 @@ ## Description -Parameters which define a Campaign within a Brand in the system. +This specification outlines the required definitions for the current features. +The document will be incrementally improved in future iterations as more functionality +and features are added. +This section will be included and updated in future iterations. @@ -89,24 +92,6 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] The document version must always be >= the document ID. -### [`parameters`](../metadata.md#parameters) - - -| Parameter | Value | -| --- | --- | -| Required | yes | -| Format | [Document Reference](../metadata.md#document-reference) | -| Valid References | [Brand Parameters](brand_parameters.md) | - -A reference to the Parameters Document this document lies under. - -#### [`parameters`](../metadata.md#parameters) Validation - -In addition to the validation performed for [Document Reference](../metadata.md#document-reference) type fields: - -* Any linked referenced document that includes a [`parameters`](../metadata.md#parameters) metadata must match the -[`parameters`](../metadata.md#parameters) of the referencing document. - ## Payload This specification outlines the required definitions for the current features. @@ -136,13 +121,9 @@ New versions of this document may be published by: ### Changelog -#### 0.01 (2025-04-04) - -* First Published Version - -#### 0.03 (2025-05-05) +#### v1 (2024-06-07) -* Use generalized parameters. +Initial version. Structure aligned with global metadata requirements. [RFC9052-HeaderParameters]: https://www.rfc-editor.org/rfc/rfc8152#section-3.1 [CC-BY-4.0]: https://creativecommons.org/licenses/by/4.0/legalcode diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/category_parameters.md b/docs/src/architecture/08_concepts/signed_doc/docs/category_parameters.md index 7f123e98fc..339da8e194 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/category_parameters.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/category_parameters.md @@ -2,7 +2,10 @@ ## Description -Parameters which define a Category withing a Campaign under a Brand in the system. +This specification outlines the required definitions for the current features. +The document will be incrementally improved in future iterations as more functionality +and features are added. +This section will be included and updated in future iterations. @@ -89,24 +92,6 @@ The first version of the document must set [`ver`](../metadata.md#ver) == [`id`] The document version must always be >= the document ID. -### [`parameters`](../metadata.md#parameters) - - -| Parameter | Value | -| --- | --- | -| Required | yes | -| Format | [Document Reference](../metadata.md#document-reference) | -| Valid References | [Campaign Parameters](campaign_parameters.md) | - -A reference to the Parameters Document this document lies under. - -#### [`parameters`](../metadata.md#parameters) Validation - -In addition to the validation performed for [Document Reference](../metadata.md#document-reference) type fields: - -* Any linked referenced document that includes a [`parameters`](../metadata.md#parameters) metadata must match the -[`parameters`](../metadata.md#parameters) of the referencing document. - ## Payload This specification outlines the required definitions for the current features. @@ -136,13 +121,9 @@ New versions of this document may be published by: ### Changelog -#### 0.01 (2025-04-04) - -* First Published Version - -#### 0.03 (2025-05-05) +#### v1 (2024-06-07) -* Use generalized parameters. +Initial version. Structure aligned with global metadata requirements. [RFC9052-HeaderParameters]: https://www.rfc-editor.org/rfc/rfc8152#section-3.1 [CC-BY-4.0]: https://creativecommons.org/licenses/by/4.0/legalcode diff --git a/docs/src/architecture/08_concepts/signed_doc/docs/decision_parameters.md b/docs/src/architecture/08_concepts/signed_doc/docs/decision_parameters.md index dc128901ba..5e50e1dc92 100644 --- a/docs/src/architecture/08_concepts/signed_doc/docs/decision_parameters.md +++ b/docs/src/architecture/08_concepts/signed_doc/docs/decision_parameters.md @@ -2,7 +2,7 @@ ## Description -Parameters which define an individual voting event. + Parameters which define an individual voting event. @@ -96,9 +96,7 @@ The document version must always be >= the document ID. | --- | --- | | Required | yes | | Format | [Document Reference](../metadata.md#document-reference) | -| Valid References | [Brand Parameters](brand_parameters.md) | -| | [Campaign Parameters](campaign_parameters.md) | -| | [Category Parameters](category_parameters.md) | +| Valid References | [Decision Parameters](decision_parameters.md) | A reference to the Parameters Document this document lies under. @@ -111,10 +109,32 @@ In addition to the validation performed for [Document Reference](../metadata.md# ## Payload -This specification outlines the required definitions for the current features. -The document will be incrementally improved in future iterations as more functionality -and features are added. -This section will be included and updated in future iterations. +Payload for Decision Parameters document. + +### Schema + + +??? abstract + + Payload for Decision Parameters document. + + ```json + {} + ``` + + + +### Example + +??? example "Example: Final Proposal Submission" + + This document indicates the linked proposal is final and requested to proceed for further consideration. + + ```json + {} + ``` + + ## Signers @@ -132,7 +152,7 @@ New versions of this document may be published by: | --- | --- | | License | This document is licensed under [CC-BY-4.0] | | Created | 2024-12-27 | -| Modified | 2025-05-30 | +| Modified | 2025-06-06 | | Authors | Alex Pozhylenkov | | | Steven Johnson | @@ -140,11 +160,15 @@ New versions of this document may be published by: #### 0.01 (2025-04-04) -* First Published Version + * First Published Version #### 0.03 (2025-05-05) -* Use generalized parameters. + * Use generalized parameters. + +#### 0.04 (2025-06-06) + + * Added brand reference to decision parameters. [RFC9052-HeaderParameters]: https://www.rfc-editor.org/rfc/rfc8152#section-3.1 [CC-BY-4.0]: https://creativecommons.org/licenses/by/4.0/legalcode diff --git a/specs/gen_docs/main.py b/specs/gen_docs/main.py index 521f49338f..eb344ccbde 100755 --- a/specs/gen_docs/main.py +++ b/specs/gen_docs/main.py @@ -1,4 +1,4 @@ -#!/usr/bin/env -S uv run +#!/usr/bin/env python3 """Autogenerate Documentation Pages from the specification.""" import argparse @@ -77,6 +77,10 @@ def main(args: argparse.Namespace) -> None: good &= MetadataMd(args, spec).save_or_validate() good &= IndividualDocMd.save_or_validate_all(args, spec) + # Add generation for Brand, Campaign, Category, and Decision documents + for doc_name in ["Brand Parameters", "Campaign Parameters", "Category Parameters", "Decision Parameters"]: + good &= IndividualDocMd(args, spec, doc_name).save_or_validate() + if not good: rich.print("File Comparisons Failed, Documentation is not current.") sys.exit(1) diff --git a/specs/gen_docs/pyproject.toml b/specs/gen_docs/pyproject.toml index 5ac71cbe38..4046227b91 100644 --- a/specs/gen_docs/pyproject.toml +++ b/specs/gen_docs/pyproject.toml @@ -3,7 +3,7 @@ name = "gen-docs" version = "0.1.0" description = "Generate Signed Document documentation files." readme = "README.md" -requires-python = ">=3.13" +requires-python = ">=3.10" dependencies = [ "jsonschema[format]>=4.23.0", "pydantic>=2.11.4", diff --git a/specs/signed_doc.json b/specs/signed_doc.json index a5064f6d38..786ce25514 100644 --- a/specs/signed_doc.json +++ b/specs/signed_doc.json @@ -322,7 +322,6 @@ "docs": { "Brand Parameters": { "authors": {}, - "description": "Parameters which define this brand within the system.", "headers": { "content type": { "coseLabel": 3, @@ -429,15 +428,19 @@ ], "versions": [ { - "changes": "* First Published Version", + "changes": "Initial version. Structure aligned with global metadata requirements.", + "modified": "2024-06-07", + "version": "v1" + }, + { + "changes": "Updated to include common definitions and examples.", "modified": "2025-04-04", - "version": "0.01" + "version": "v2" } ] }, "Campaign Parameters": { "authors": {}, - "description": "Parameters which define a Campaign within a Brand in the system.", "headers": { "content type": { "coseLabel": 3, @@ -475,10 +478,7 @@ "description": "A reference to the Parameters Document this document lies under.", "exclusive": null, "format": "Document Reference", - "linked_refs": null, - "multiple": false, - "required": "yes", - "type": "Brand Parameters", + "required": "excluded", "validation": "In addition to the validation performed for `Document Reference` type fields: \n\n* Any linked referenced document that includes a `parameters` metadata must match the \n`parameters` of the referencing document." }, "ref": { @@ -547,20 +547,14 @@ ], "versions": [ { - "changes": "* First Published Version", - "modified": "2025-04-04", - "version": "0.01" - }, - { - "changes": "* Use generalized parameters.", - "modified": "2025-05-05", - "version": "0.03" + "changes": "Initial version. Structure aligned with global metadata requirements.", + "modified": "2024-06-07", + "version": "v1" } ] }, "Category Parameters": { "authors": {}, - "description": "Parameters which define a Category withing a Campaign under a Brand in the system.", "headers": { "content type": { "coseLabel": 3, @@ -598,10 +592,7 @@ "description": "A reference to the Parameters Document this document lies under.", "exclusive": null, "format": "Document Reference", - "linked_refs": null, - "multiple": false, - "required": "yes", - "type": "Campaign Parameters", + "required": "excluded", "validation": "In addition to the validation performed for `Document Reference` type fields: \n\n* Any linked referenced document that includes a `parameters` metadata must match the \n`parameters` of the referencing document." }, "ref": { @@ -670,14 +661,9 @@ ], "versions": [ { - "changes": "* First Published Version", - "modified": "2025-04-04", - "version": "0.01" - }, - { - "changes": "* Use generalized parameters.", - "modified": "2025-05-05", - "version": "0.03" + "changes": "Initial version. Structure aligned with global metadata requirements.", + "modified": "2024-06-07", + "version": "v1" } ] }, @@ -805,7 +791,7 @@ }, "Decision Parameters": { "authors": {}, - "description": "Parameters which define an individual voting event.", + "description": "\tParameters which define an individual voting event.", "headers": { "content type": { "coseLabel": 3, @@ -846,11 +832,7 @@ "linked_refs": null, "multiple": false, "required": "yes", - "type": [ - "Brand Parameters", - "Campaign Parameters", - "Category Parameters" - ], + "type": "Decision Parameters", "validation": "In addition to the validation performed for `Document Reference` type fields: \n\n* Any linked referenced document that includes a `parameters` metadata must match the \n`parameters` of the referencing document." }, "ref": { @@ -904,6 +886,17 @@ } }, "notes": [], + "payload": { + "description": "Payload for Decision Parameters document.", + "examples": [ + { + "description": "This document indicates the linked proposal is final and requested to proceed for further consideration.", + "example": {}, + "title": "Final Proposal Submission" + } + ], + "schema": {} + }, "signers": { "roles": { "user": [ @@ -919,14 +912,19 @@ ], "versions": [ { - "changes": "* First Published Version", + "changes": "\t* First Published Version", "modified": "2025-04-04", "version": "0.01" }, { - "changes": "* Use generalized parameters.", + "changes": "\t* Use generalized parameters.", "modified": "2025-05-05", "version": "0.03" + }, + { + "changes": "\t* Added brand reference to decision parameters.", + "modified": "2025-06-06", + "version": "0.04" } ] }, diff --git a/specs/signed_docs/docs/brand_parameters.cue b/specs/signed_docs/docs/brand_parameters.cue index 75deb70f29..eff82abe57 100644 --- a/specs/signed_docs/docs/brand_parameters.cue +++ b/specs/signed_docs/docs/brand_parameters.cue @@ -1,21 +1,28 @@ package signed_docs -// Proposal Document Definition +_common_defs: {} @embed(file="./payload_schemas/common_definitions.schema.json") + +// Brand Parameters Document Definition docs: #DocumentDefinitions & { "Brand Parameters": { - - description: """ - Parameters which define this brand within the system. - """ - + metadata: { + ref: metadata.ref // Reference to the next highest document + template: metadata.template // Reference to a brand/campaign/etc template document + } versions: [ { - version: "0.01" + version: "v1" + modified: "2024-06-07" + changes: "Initial version. Structure aligned with global metadata requirements." + }, + { + version: "v2" modified: "2025-04-04" - changes: """ - * First Published Version - """ + changes: "Updated to include common definitions and examples." }, - ]} + ] + // Payload is fully templated and not defined here + } + } diff --git a/specs/signed_docs/docs/campaign_parameters.cue b/specs/signed_docs/docs/campaign_parameters.cue index 9cafb80ba5..6376c36af7 100644 --- a/specs/signed_docs/docs/campaign_parameters.cue +++ b/specs/signed_docs/docs/campaign_parameters.cue @@ -1,34 +1,22 @@ package signed_docs -// Proposal Document Definition +// Import common definitions JSON schema for use in embedded schemas +_common_defs: {} @embed(file="./payload_schemas/common_definitions.schema.json") +// Campaign Parameters Document Definition docs: #DocumentDefinitions & { "Campaign Parameters": { - description: """ - Parameters which define a Campaign within a Brand in the system. - """ - metadata: { - parameters: { - required: "yes" - type: "Brand Parameters" - } + ref: metadata.ref + template: metadata.template } - versions: [ { - version: "0.01" - modified: "2025-04-04" - changes: """ - * First Published Version - """ - }, - { - version: "0.03" - modified: "2025-05-05" - changes: """ - * Use generalized parameters. - """ + version: "v1" + modified: "2024-06-07" + changes: "Initial version. Structure aligned with global metadata requirements." }, - ]} + ] + // Payload is fully templated and not defined here + } } diff --git a/specs/signed_docs/docs/category_parameters.cue b/specs/signed_docs/docs/category_parameters.cue index 7d8904f7db..8fe82f891e 100644 --- a/specs/signed_docs/docs/category_parameters.cue +++ b/specs/signed_docs/docs/category_parameters.cue @@ -1,35 +1,22 @@ package signed_docs -// Proposal Document Definition +// Import common definitions JSON schema for use in embedded schemas +_common_defs: {} @embed(file="./payload_schemas/common_definitions.schema.json") +// Category Parameters Document Definition docs: #DocumentDefinitions & { "Category Parameters": { - - description: """ - Parameters which define a Category withing a Campaign under a Brand in the system. - """ - metadata: { - parameters: { - required: "yes" - type: "Campaign Parameters" - } + ref: metadata.ref + template: metadata.template } - versions: [ { - version: "0.01" - modified: "2025-04-04" - changes: """ - * First Published Version - """ - }, - { - version: "0.03" - modified: "2025-05-05" - changes: """ - * Use generalized parameters. - """ + version: "v1" + modified: "2024-06-07" + changes: "Initial version. Structure aligned with global metadata requirements." }, - ]} + ] + // Payload is fully templated and not defined here + } } diff --git a/specs/signed_docs/docs/decision_parameters.cue b/specs/signed_docs/docs/decision_parameters.cue index 133d908d5e..53e333f500 100644 --- a/specs/signed_docs/docs/decision_parameters.cue +++ b/specs/signed_docs/docs/decision_parameters.cue @@ -1,34 +1,54 @@ package signed_docs -// Proposal Document Definition +// Import common definitions JSON schema for use in embedded schemas +_common_defs: {} @embed(file="./payload_schemas/common_definitions.schema.json") +// Decision Parameters Document Definition docs: #DocumentDefinitions & { "Decision Parameters": { description: """ - Parameters which define an individual voting event. + Parameters which define an individual voting event. """ - metadata: { parameters: { required: "yes" - type: doc_clusters."System Parameters".docs + type: "Decision Parameters" } } - + payload: { + description: "Payload for Decision Parameters document." + schema: {} @embed(file="./payload_schemas/decision_parameters.schema.json") + examples: [ + { + title: "Final Proposal Submission" + description: """ + This document indicates the linked proposal is final and requested to proceed for further consideration. + """ + example: {} @embed(file="./payload_schemas/decision_parameter.example.json") + }, + ]} versions: [ { version: "0.01" modified: "2025-04-04" changes: """ - * First Published Version + * First Published Version """ }, { version: "0.03" modified: "2025-05-05" changes: """ - * Use generalized parameters. + * Use generalized parameters. + """ + }, + { + version: "0.04" + modified: "2025-06-06" + changes: """ + * Added brand reference to decision parameters. """ }, - ]} + ] + } } diff --git a/specs/signed_docs/docs/payload_schemas/brand_parameter.example.json b/specs/signed_docs/docs/payload_schemas/brand_parameter.example.json new file mode 100644 index 0000000000..a161fefafc --- /dev/null +++ b/specs/signed_docs/docs/payload_schemas/brand_parameter.example.json @@ -0,0 +1,11 @@ +{ + "directVotingPrivacyState": true, + "brandName": "Catalyst Foundation", + "minimumBudgetRequestPerProposal": 15000, + "maximumBudgetRequestPerProposal": "200000 (variable per challenge)", + "maximumProposalsPerProposer": 6, + "communityReviewerRegistration": "Open to all ADA holders", + "votingPowerThreshold": 1000000, + "tallyingOptimization": "majority", + "proposalAcceptanceThreshold": 60 +} \ No newline at end of file diff --git a/specs/signed_docs/docs/payload_schemas/brand_parameters.schema.json b/specs/signed_docs/docs/payload_schemas/brand_parameters.schema.json new file mode 100644 index 0000000000..186efb70a9 --- /dev/null +++ b/specs/signed_docs/docs/payload_schemas/brand_parameters.schema.json @@ -0,0 +1,85 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://raw.githubusercontent.com/input-output-hk/catalyst-libs/main/specs/signed_docs/docs/payload_schemas/brand_parameters.schema.json", + "title": "Brand Parameters", + "description": "Schema for defining Catalyst brand-level parameters, with UI/UX metadata and logical grouping.", + "type": "object", + "properties": { + "directVotingPrivacyState": { + "$ref": "#/definitions/booleanParameter", + "title": "Direct Voting Privacy State", + "description": "Whether direct voting privacy is enabled.", + "x-guidance": "Set to true if direct voting privacy is required." + }, + "brandName": { + "$ref": "#/definitions/stringParameter", + "title": "Brand Name", + "description": "The name of the brand.", + "x-guidance": "Enter the official brand name." + }, + "minimumBudgetRequestPerProposal": { + "$ref": "#/definitions/adaAmount", + "title": "Minimum Budget Request Per Proposal", + "description": "The minimum ADA amount that can be requested per proposal.", + "x-guidance": "Specify the minimum allowed budget per proposal in ADA." + }, + "maximumBudgetRequestPerProposal": { + "$ref": "#/definitions/stringParameter", + "title": "Maximum Budget Request Per Proposal", + "description": "The maximum ADA amount (variable per challenge/category) that can be requested per proposal.", + "x-guidance": "Specify the maximum allowed budget per proposal." + }, + "maximumProposalsPerProposer": { + "$ref": "#/definitions/integerParameter", + "title": "Maximum Proposals per Proposer/co-proposer", + "description": "The maximum number of proposals a proposer or co-proposer can submit.", + "x-guidance": "Set the limit for proposals per proposer/co-proposer." + }, + "communityReviewerRegistration": { + "$ref": "#/definitions/stringParameter", + "title": "Community Reviewer Registration", + "description": "Information or rules about community reviewer registration.", + "x-guidance": "Describe the process or requirements for community reviewer registration." + }, + "votingPowerThreshold": { + "$ref": "#/definitions/lovelaceAmount", + "title": "Voting Power Threshold", + "description": "The minimum Lovelace required to participate in voting.", + "x-guidance": "Specify the minimum voting power threshold in Lovelace." + }, + "tallyingOptimization": { + "$ref": "#/definitions/ratioFormula", + "title": "Tallying Optimization", + "description": "The ratio or formula used for tallying optimization.", + "x-guidance": "Provide the formula or ratio for tallying optimization." + }, + "proposalAcceptanceThreshold": { + "$ref": "#/definitions/percentageParameter", + "title": "Proposal Acceptance Threshold", + "description": "The percentage threshold for proposal acceptance.", + "x-guidance": "Set the acceptance threshold as a percentage." + } + }, + "required": [ + "directVotingPrivacyState", + "brandName", + "minimumBudgetRequestPerProposal", + "maximumBudgetRequestPerProposal", + "maximumProposalsPerProposer", + "communityReviewerRegistration", + "votingPowerThreshold", + "tallyingOptimization", + "proposalAcceptanceThreshold" + ], + "x-order": [ + "directVotingPrivacyState", + "brandName", + "minimumBudgetRequestPerProposal", + "maximumBudgetRequestPerProposal", + "maximumProposalsPerProposer", + "communityReviewerRegistration", + "votingPowerThreshold", + "tallyingOptimization", + "proposalAcceptanceThreshold" + ] +} \ No newline at end of file diff --git a/specs/signed_docs/docs/payload_schemas/campaign_parameter.example.json b/specs/signed_docs/docs/payload_schemas/campaign_parameter.example.json new file mode 100644 index 0000000000..4407a3c620 --- /dev/null +++ b/specs/signed_docs/docs/payload_schemas/campaign_parameter.example.json @@ -0,0 +1,27 @@ +{ + "fundName": "Fund 14", + "fundSize": 5000000, + "campaignTitle": "Cardano Open Innovation", + "campaignBudget": 1000000, + "proposalSubmissionFee": 100, + "compensationsDistributionDate": "2025-07-01", + "proposalsRegistrationOnChain": "2025-06-15", + "drepDeadlineDate": "2025-06-10", + "registrationDeadlineDate": "2025-06-20T23:59:59Z", + "votingPeriodStart": "2025-07-05T00:00:00Z", + "votingPeriodEnd": "2025-07-12T23:59:59Z", + "startOfTallying": "2025-07-13", + "endOfTallying": "2025-07-15", + "proposalFundingLogic": "top N by votes", + "voterCompensations": 2.5, + "communityReviewCompensations": 1.5, + "communityModeratorCompensations": 1.0, + "onboardingCompensations": 0.5, + "projectAccountabilityManagementComp": 0.25, + "currentInsightSharingStart": "2025-05-01", + "currentProposalSubmissionStart": "2025-05-10", + "currentRefineProposalsStart": "2025-05-20", + "currentFinalizeProposalsStart": "2025-05-30", + "currentProposalAssessment": "2025-06-01", + "currentAssessmentQaStart": "2025-06-05" +} \ No newline at end of file diff --git a/specs/signed_docs/docs/payload_schemas/campaign_parameters.schema.json b/specs/signed_docs/docs/payload_schemas/campaign_parameters.schema.json new file mode 100644 index 0000000000..e800be43d0 --- /dev/null +++ b/specs/signed_docs/docs/payload_schemas/campaign_parameters.schema.json @@ -0,0 +1,208 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://raw.githubusercontent.com/input-output-hk/catalyst-libs/main/specs/signed_docs/docs/payload_schemas/campaign_parameters.schema.json", + "title": "Campaign Parameters", + "description": "Schema for defining Catalyst campaign-level parameters, with UI/UX metadata and logical grouping.", + "type": "object", + "properties": { + "fundName": { + "$ref": "#/definitions/stringParameter", + "title": "Fund/Campaign Name" + }, + "fundSize": { + "$ref": "#/definitions/adaAmount", + "title": "Fund/Campaign Size" + }, + "campaignTitle": { + "$ref": "#/definitions/stringParameter", + "title": "Campaign (Challenge) Title" + }, + "campaignBudget": { + "$ref": "#/definitions/adaAmount", + "title": "Campaign (Challenge) Budget" + }, + "proposalSubmissionFee": { + "$ref": "#/definitions/currencyAmount", + "title": "Proposal Submission Fee" + }, + "compensationsDistributionDate": { + "$ref": "#/definitions/dateParameter", + "title": "Compensations and funds distribution target date" + }, + "proposalsRegistrationOnChain": { + "$ref": "#/definitions/dateParameter", + "title": "Proposals registration on the blockchain" + }, + "drepDeadlineDate": { + "$ref": "#/definitions/dateParameter", + "title": "Drep deadline date" + }, + "registrationDeadlineDate": { + "$ref": "#/definitions/datetimeParameter", + "title": "Registration deadline date" + }, + "votingPeriodStart": { + "$ref": "#/definitions/datetimeParameter", + "title": "Voting period start time" + }, + "votingPeriodEnd": { + "$ref": "#/definitions/datetimeParameter", + "title": "Voting period end time" + }, + "startOfTallying": { + "$ref": "#/definitions/dateParameter", + "title": "Start of tallying" + }, + "endOfTallying": { + "$ref": "#/definitions/dateParameter", + "title": "End of tallying" + }, + "proposalFundingLogic": { + "$ref": "#/definitions/stringRule", + "title": "Proposal Funding logic (winner selection)" + }, + "voterCompensations": { + "$ref": "#/definitions/percentageOrAda", + "title": "Voter Compensations (Vrtotal)" + }, + "communityReviewCompensations": { + "$ref": "#/definitions/percentageOrAda", + "title": "Community Review Compensations" + }, + "communityModeratorCompensations": { + "$ref": "#/definitions/percentageOrAda", + "title": "Community Moderator Compensations (AArtotal)" + }, + "onboardingCompensations": { + "$ref": "#/definitions/percentageOrAda", + "title": "Onboarding compensations (Cttotal)" + }, + "projectAccountabilityManagementComp": { + "$ref": "#/definitions/percentageOrAda", + "title": "Project Accountability Management Comp." + }, + "currentInsightSharingStart": { + "$ref": "#/definitions/dateParameter", + "title": "current_insight_sharing_start" + }, + "currentProposalSubmissionStart": { + "$ref": "#/definitions/dateParameter", + "title": "current_proposal_submission_start" + }, + "currentRefineProposalsStart": { + "$ref": "#/definitions/dateParameter", + "title": "current_refine_proposals_start" + }, + "currentFinalizeProposalsStart": { + "$ref": "#/definitions/dateParameter", + "title": "current_finalize_proposals_start" + }, + "currentProposalAssessment": { + "$ref": "#/definitions/dateParameter", + "title": "current_proposal_assessment" + }, + "currentAssessmentQaStart": { + "$ref": "#/definitions/dateParameter", + "title": "current_assessment_qa_start" + } + }, + "required": ["fundName", "fundSize", "campaignTitle", "campaignBudget"], + "x-order": [ + "fundName", + "fundSize", + "campaignTitle", + "campaignBudget", + "proposalSubmissionFee", + "compensationsDistributionDate", + "proposalsRegistrationOnChain", + "drepDeadlineDate", + "registrationDeadlineDate", + "votingPeriodStart", + "votingPeriodEnd", + "startOfTallying", + "endOfTallying", + "proposalFundingLogic", + "voterCompensations", + "communityReviewCompensations", + "communityModeratorCompensations", + "onboardingCompensations", + "projectAccountabilityManagementComp", + "currentInsightSharingStart", + "currentProposalSubmissionStart", + "currentRefineProposalsStart", + "currentFinalizeProposalsStart", + "currentProposalAssessment", + "currentAssessmentQaStart" + ], + "definitions": { + "booleanParameter": { + "type": "boolean", + "title": "Boolean Parameter", + "x-note": "A true/false value." + }, + "stringParameter": { + "type": "string", + "title": "String Parameter", + "x-note": "A plain text value." + }, + "adaAmount": { + "type": "integer", + "title": "ADA Amount", + "x-note": "Amount in ADA." + }, + "lovelaceAmount": { + "type": "integer", + "title": "Lovelace Amount", + "x-note": "Amount in Lovelace." + }, + "integerParameter": { + "type": "integer", + "title": "Integer Parameter", + "x-note": "An integer value." + }, + "dateParameter": { + "type": "string", + "format": "date", + "title": "Date Parameter", + "x-note": "A date value (YYYY-MM-DD)." + }, + "datetimeParameter": { + "type": "string", + "format": "date-time", + "title": "Datetime Parameter", + "x-note": "A datetime value (ISO 8601)." + }, + "ratioFormula": { + "type": "string", + "title": "Ratio / Formula", + "x-note": "A ratio or formula expression." + }, + "percentageParameter": { + "type": "number", + "minimum": 0, + "maximum": 100, + "title": "Percentage Parameter", + "x-note": "A percentage value (0-100)." + }, + "currencyAmount": { + "type": ["string", "number"], + "title": "Currency Amount or String" + }, + "stringRule": { + "type": "string", + "title": "String / Rule" + }, + "percentageOrAda": { + "oneOf": [ + { "$ref": "#/definitions/percentageParameter" }, + { "$ref": "#/definitions/adaAmount" } + ], + "title": "Percentage or ADA Amount" + }, + "listParameter": { + "type": "array", + "items": { "type": "string" }, + "title": "List Parameter" + } + } +} \ No newline at end of file diff --git a/specs/signed_docs/docs/payload_schemas/category_parameter.example.json b/specs/signed_docs/docs/payload_schemas/category_parameter.example.json new file mode 100644 index 0000000000..4aecdefd1d --- /dev/null +++ b/specs/signed_docs/docs/payload_schemas/category_parameter.example.json @@ -0,0 +1,8 @@ +{ + "campaignTitle": "Cardano Open Innovation", + "minimumBudgetRequestPerProposal": 15000, + "maximumBudgetRequestPerProposal": "200000 (variable per challenge)", + "proposalFundingLogic": "top N by votes", + "proposalAcceptanceThreshold": 60, + "votingOptions": ["Yes", "No", "Abstain"] +} \ No newline at end of file diff --git a/specs/signed_docs/docs/payload_schemas/category_parameters.schema.json b/specs/signed_docs/docs/payload_schemas/category_parameters.schema.json new file mode 100644 index 0000000000..a193c96a64 --- /dev/null +++ b/specs/signed_docs/docs/payload_schemas/category_parameters.schema.json @@ -0,0 +1,117 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://raw.githubusercontent.com/input-output-hk/catalyst-libs/main/specs/signed_docs/docs/payload_schemas/category_parameters.schema.json", + "title": "Category Parameters", + "description": "Schema for defining Catalyst category-level parameters, with UI/UX metadata and logical grouping.", + "type": "object", + "properties": { + "campaignTitle": { + "$ref": "#/definitions/stringParameter", + "title": "Campaign (Challenge) Title" + }, + "minimumBudgetRequestPerProposal": { + "$ref": "#/definitions/adaAmount", + "title": "Minimum Budget Request Per Proposal" + }, + "maximumBudgetRequestPerProposal": { + "$ref": "#/definitions/stringParameter", + "title": "Maximum Budget Request Per Proposal" + }, + "proposalFundingLogic": { + "$ref": "#/definitions/stringRule", + "title": "Proposal Funding logic (winner selection)" + }, + "proposalAcceptanceThreshold": { + "$ref": "#/definitions/percentageParameter", + "title": "Proposal acceptance threshold" + }, + "votingOptions": { + "$ref": "#/definitions/listParameter", + "title": "Voting options" + } + }, + "required": [ + "campaignTitle", + "minimumBudgetRequestPerProposal", + "maximumBudgetRequestPerProposal" + ], + "x-order": [ + "campaignTitle", + "minimumBudgetRequestPerProposal", + "maximumBudgetRequestPerProposal", + "proposalFundingLogic", + "proposalAcceptanceThreshold", + "votingOptions" + ], + "definitions": { + "booleanParameter": { + "type": "boolean", + "title": "Boolean Parameter", + "x-note": "A true/false value." + }, + "stringParameter": { + "type": "string", + "title": "String Parameter", + "x-note": "A plain text value." + }, + "adaAmount": { + "type": "integer", + "title": "ADA Amount", + "x-note": "Amount in ADA." + }, + "lovelaceAmount": { + "type": "integer", + "title": "Lovelace Amount", + "x-note": "Amount in Lovelace." + }, + "integerParameter": { + "type": "integer", + "title": "Integer Parameter", + "x-note": "An integer value." + }, + "dateParameter": { + "type": "string", + "format": "date", + "title": "Date Parameter", + "x-note": "A date value (YYYY-MM-DD)." + }, + "datetimeParameter": { + "type": "string", + "format": "date-time", + "title": "Datetime Parameter", + "x-note": "A datetime value (ISO 8601)." + }, + "ratioFormula": { + "type": "string", + "title": "Ratio / Formula", + "x-note": "A ratio or formula expression." + }, + "percentageParameter": { + "type": "number", + "minimum": 0, + "maximum": 100, + "title": "Percentage Parameter", + "x-note": "A percentage value (0-100)." + }, + "currencyAmount": { + "type": ["string", "number"], + "title": "Currency Amount or String" + }, + "stringRule": { + "type": "string", + "title": "String / Rule" + }, + "percentageOrAda": { + "oneOf": [ + { "$ref": "#/definitions/percentageParameter" }, + { "$ref": "#/definitions/adaAmount" } + ], + "title": "Percentage or ADA Amount" + }, + "listParameter": { + "type": "array", + "items": { "type": "string" }, + "title": "List Parameter" + } + } +} \ No newline at end of file diff --git a/specs/signed_docs/docs/payload_schemas/common_definitions.schema.json b/specs/signed_docs/docs/payload_schemas/common_definitions.schema.json new file mode 100644 index 0000000000..e2b2ae1331 --- /dev/null +++ b/specs/signed_docs/docs/payload_schemas/common_definitions.schema.json @@ -0,0 +1,78 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://raw.githubusercontent.com/input-output-hk/catalyst-libs/main/specs/signed_docs/docs/payload_schemas/common_definitions.schema.json", + "title": "Common Definitions for Catalyst Schemas", + "description": "Reusable definitions for all Catalyst parameter schemas.", + "type": "object", + "definitions": { + "booleanParameter": { + "type": "boolean", + "title": "Boolean Parameter", + "x-note": "A true/false value." + }, + "stringParameter": { + "type": "string", + "title": "String Parameter", + "x-note": "A plain text value." + }, + "adaAmount": { + "type": "integer", + "title": "ADA Amount", + "x-note": "Amount in ADA." + }, + "lovelaceAmount": { + "type": "integer", + "title": "Lovelace Amount", + "x-note": "Amount in Lovelace." + }, + "integerParameter": { + "type": "integer", + "title": "Integer Parameter", + "x-note": "An integer value." + }, + "dateParameter": { + "type": "string", + "format": "date", + "title": "Date Parameter", + "x-note": "A date value (YYYY-MM-DD)." + }, + "datetimeParameter": { + "type": "string", + "format": "date-time", + "title": "Datetime Parameter", + "x-note": "A datetime value (ISO 8601)." + }, + "ratioFormula": { + "type": "string", + "title": "Ratio / Formula", + "x-note": "A ratio or formula expression." + }, + "percentageParameter": { + "type": "number", + "minimum": 0, + "maximum": 100, + "title": "Percentage Parameter", + "x-note": "A percentage value (0-100)." + }, + "currencyAmount": { + "type": ["string", "number"], + "title": "Currency Amount or String" + }, + "stringRule": { + "type": "string", + "title": "String / Rule" + }, + "percentageOrAda": { + "oneOf": [ + { "$ref": "#/definitions/percentageParameter" }, + { "$ref": "#/definitions/adaAmount" } + ], + "title": "Percentage or ADA Amount" + }, + "listParameter": { + "type": "array", + "items": { "type": "string" }, + "title": "List Parameter" + } + } +} diff --git a/specs/signed_docs/docs/payload_schemas/decision_parameter.example.json b/specs/signed_docs/docs/payload_schemas/decision_parameter.example.json new file mode 100644 index 0000000000..08f3548d3f --- /dev/null +++ b/specs/signed_docs/docs/payload_schemas/decision_parameter.example.json @@ -0,0 +1,4 @@ +{ + "votingPeriodStart": "2025-07-05T00:00:00Z", + "votingOptions": ["Yes", "No", "Abstain"] +} \ No newline at end of file diff --git a/specs/signed_docs/docs/payload_schemas/decision_parameters.schema.json b/specs/signed_docs/docs/payload_schemas/decision_parameters.schema.json new file mode 100644 index 0000000000..bb12f3d07a --- /dev/null +++ b/specs/signed_docs/docs/payload_schemas/decision_parameters.schema.json @@ -0,0 +1,112 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://raw.githubusercontent.com/input-output-hk/catalyst-libs/main/specs/signed_docs/docs/payload_schemas/decision_parameters.schema.json", + "title": "Decision Parameters", + "description": "Schema for defining Catalyst decision-level parameters, with UI/UX metadata and logical grouping.", + "type": "object", + "properties": { + "decisionTitle": { + "$ref": "#/definitions/stringParameter", + "title": "Decision Title" + }, + "decisionType": { + "$ref": "#/definitions/stringParameter", + "title": "Decision Type" + }, + "decisionDate": { + "$ref": "#/definitions/dateParameter", + "title": "Decision Date" + }, + "votingOptions": { + "$ref": "#/definitions/listParameter", + "title": "Voting Options" + }, + "acceptanceThreshold": { + "$ref": "#/definitions/percentageParameter", + "title": "Acceptance Threshold" + } + }, + "required": [ + "decisionTitle", + "decisionType", + "decisionDate" + ], + "x-order": [ + "decisionTitle", + "decisionType", + "decisionDate", + "votingOptions", + "acceptanceThreshold" + ], + "definitions": { + "booleanParameter": { + "type": "boolean", + "title": "Boolean Parameter", + "x-note": "A true/false value." + }, + "stringParameter": { + "type": "string", + "title": "String Parameter", + "x-note": "A plain text value." + }, + "adaAmount": { + "type": "integer", + "title": "ADA Amount", + "x-note": "Amount in ADA." + }, + "lovelaceAmount": { + "type": "integer", + "title": "Lovelace Amount", + "x-note": "Amount in Lovelace." + }, + "integerParameter": { + "type": "integer", + "title": "Integer Parameter", + "x-note": "An integer value." + }, + "dateParameter": { + "type": "string", + "format": "date", + "title": "Date Parameter", + "x-note": "A date value (YYYY-MM-DD)." + }, + "datetimeParameter": { + "type": "string", + "format": "date-time", + "title": "Datetime Parameter", + "x-note": "A datetime value (ISO 8601)." + }, + "ratioFormula": { + "type": "string", + "title": "Ratio / Formula", + "x-note": "A ratio or formula expression." + }, + "percentageParameter": { + "type": "number", + "minimum": 0, + "maximum": 100, + "title": "Percentage Parameter", + "x-note": "A percentage value (0-100)." + }, + "currencyAmount": { + "type": ["string", "number"], + "title": "Currency Amount or String" + }, + "stringRule": { + "type": "string", + "title": "String / Rule" + }, + "percentageOrAda": { + "oneOf": [ + { "$ref": "#/definitions/percentageParameter" }, + { "$ref": "#/definitions/adaAmount" } + ], + "title": "Percentage or ADA Amount" + }, + "listParameter": { + "type": "array", + "items": { "type": "string" }, + "title": "List Parameter" + } + } +} \ No newline at end of file diff --git a/specs/signed_docs/docs/payload_schemas/parameters.md b/specs/signed_docs/docs/payload_schemas/parameters.md new file mode 100644 index 0000000000..f631497861 --- /dev/null +++ b/specs/signed_docs/docs/payload_schemas/parameters.md @@ -0,0 +1,55 @@ +# Catalyst Signed Document Parameters + +## Brand Parameters + +- directVotingPrivacyState +- brandName +- minimumBudgetRequestPerProposal +- maximumBudgetRequestPerProposal +- maximumProposalsPerProposer +- communityReviewerRegistration +- votingPowerThreshold +- tallyingOptimization +- proposalAcceptanceThreshold + +## Campaign Parameters + +- fundName +- fundSize +- campaignTitle +- campaignBudget +- proposalSubmissionFee +- compensationsDistributionDate +- proposalsRegistrationOnChain +- drepDeadlineDate +- registrationDeadlineDate +- votingPeriodStart +- votingPeriodEnd +- startOfTallying +- endOfTallying +- proposalFundingLogic +- voterCompensations +- communityReviewCompensations +- communityModeratorCompensations +- onboardingCompensations +- projectAccountabilityManagementComp +- currentInsightSharingStart +- currentProposalSubmissionStart +- currentRefineProposalsStart +- currentFinalizeProposalsStart +- currentProposalAssessment +- currentAssessmentQaStart + +## Category Parameters + +- campaignTitle +- minimumBudgetRequestPerProposal +- maximumBudgetRequestPerProposal +- proposalFundingLogic +- proposalAcceptanceThreshold +- votingOptions + +## Contest Parameters + +- votingPeriodStart +- votingOptions diff --git a/specs/signed_docs/docs/payload_schemas/proposal_submission_action.schema.json b/specs/signed_docs/docs/payload_schemas/proposal_submission_action.schema.json index 965b66f37a..f7c7494c20 100644 --- a/specs/signed_docs/docs/payload_schemas/proposal_submission_action.schema.json +++ b/specs/signed_docs/docs/payload_schemas/proposal_submission_action.schema.json @@ -3,12 +3,10 @@ "$id": "https://raw.githubusercontent.com/input-output-hk/catalyst-libs/refs/heads/main/specs/signed_docs/docs/payload_schemas/proposal_submission_action.schema.json", "title": "Proposal Submission Action Payload Schema", "description": "Structure of the payload of a Proposal Submission Action.", - "maintainers": [ - { - "name": "Catalyst Team", - "url": "https://projectcatalyst.io/" - } - ], + "maintainers": [{ + "name": "Catalyst Team", + "url": "https://projectcatalyst.io/" + }], "x-changelog": { "2025-03-01": [ "First Version Created."