Skip to content
docsv0.2.0

RecordShape

Flattens the milpa/core capability records back to their canonical 012 array shapes. milpa/core does not serialize its own records, so the ingestion loaders round-trip a bare FQCN or a typed record THROUGH a core record (which validates it and applies the unversioned defaults `contractVersion 0.0.0` / `constraint *`) and back to the plain array the pure engine reads via `CapabilityProvision::parse()`. Defined once here so both {@see \Milpa\Resolver\Ingest\ManifestLoader} and {@see \Milpa\Resolver\Ingest\AttributeLoader} emit byte-identical record shapes.

RecordShape::provision()

public static function provision(Milpa\ValueObjects\Capability\CapabilityProvision $provision): array

Flatten a `provides` provision to its `{id, interface, contractVersion, service, priority, exclusive}` shape.

Parameters

Parameters of provision()
NameTypeDescription
$provisionMilpa\ValueObjects\Capability\CapabilityProvision

RecordShape::requirement()

public static function requirement(Milpa\ValueObjects\Capability\CapabilityRequirement $requirement): array

Flatten a `requires` requirement to its `{id, interface, constraint, oneOf}` shape.

Parameters

Parameters of requirement()
NameTypeDescription
$requirementMilpa\ValueObjects\Capability\CapabilityRequirement

RecordShape::suggestion()

public static function suggestion(Milpa\ValueObjects\Capability\CapabilitySuggestion $suggestion): array

Flatten a `suggests` suggestion to its `{id, interface, constraint, fallback}` shape.

Parameters

Parameters of suggestion()
NameTypeDescription
$suggestionMilpa\ValueObjects\Capability\CapabilitySuggestion