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): arrayFlatten a `provides` provision to its `{id, interface, contractVersion, service, priority, exclusive}` shape.
Parameters
| Name | Type | Description |
|---|---|---|
| $provision | Milpa\ValueObjects\Capability\CapabilityProvision |
RecordShape::requirement()
public static function requirement(Milpa\ValueObjects\Capability\CapabilityRequirement $requirement): arrayFlatten a `requires` requirement to its `{id, interface, constraint, oneOf}` shape.
Parameters
| Name | Type | Description |
|---|---|---|
| $requirement | Milpa\ValueObjects\Capability\CapabilityRequirement |
RecordShape::suggestion()
public static function suggestion(Milpa\ValueObjects\Capability\CapabilitySuggestion $suggestion): arrayFlatten a `suggests` suggestion to its `{id, interface, constraint, fallback}` shape.
Parameters
| Name | Type | Description |
|---|---|---|
| $suggestion | Milpa\ValueObjects\Capability\CapabilitySuggestion |