Skip to content

baseParty fragment and DSL #81

@matt-beanland

Description

@matt-beanland

Overview
Introduce BaseParty as an Ash Resource fragment in Diffo, mirroring the existing BaseInstance pattern. Add a Party DSL extension and extend the existing Instance DSL with a party do block.

Background
The NBN domain requires Party kinds — RSP, Person — with rich typed relationships between them and Instance.

Scope
BaseParty fragment

Ash Resource fragment providing common Party attributes: id, name, kind, and shared Party fields
Party DSL extension — initially just one instance block on party resource.

instance do — declares what this Party kind means to Instances that relate to it, for example facilitated_by Person
party do - declares relationship between parties, example Person managed_by Person
Instance DSL extension

Add parties do block to the existing Instance DSL so a specialised Instance can declare its party relationships and roles
Language is lifecycle-neutral

Acceptance
BaseParty fragment compiles and is recognised as a Party in a domain
PartyDSL extension provides instance and party do blocks
Instance DSL extension gains a party do block
A lightweight example domain in the Diffo test suite

Non-scope
Places, including places block in Party DSL

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions