DomainInstance

interface DomainInstance

A blackboard value whose identity is a DomainType (typically a DynamicType declared in YAML, not a JVM class) plus a property map carrying the actual data.

Implementing this interface gives a value two things the platform couldn't otherwise see:

  • Type identity beyond the JVM hierarchy. satisfiesType consults domainType (and its parents) so a value carried by a generic JVM class can satisfy preconditions and action inputs by the pack-declared type name — it:HubSpotContactCreated resolves to a value whose JVM class is some carrier, not a HubSpotContactCreated JVM class.

  • Uniform property access. Templating, validation, and other introspection can read properties without downcasting to a specific carrier class. The keys correspond to the type's DomainType.properties (plus framework-required fields like id, occurredAt for signal-shaped types).

Properties

Link copied to clipboard
abstract val domainType: DomainType
Link copied to clipboard
abstract val properties: Map<String, Any?>